1. Trang chủ
  2. » Giáo án - Bài giảng

Đồ Án kĩ thuật Điều khiển tự Động hutech

30 18 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Robot Dò Line
Người hướng dẫn ThS. Huỳnh Phát Huy
Trường học Trường Đại Học Công Nghệ TP. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Điện
Thể loại Đồ Án
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 30
Dung lượng 1,73 MB

Cấu trúc

  • CHƯƠNG I: TỔNG QUAN VỀ ĐỒ ÁN (13)
    • 2. Mục tiêu đề tài (13)
  • CHƯƠNG II: CƠ SỞ LÝ THUYẾT (14)
    • 2.1. Phần cứng (14)
      • 2.1.1 Cấu tạo xe dò line (14)
        • 2.1.1.1 Bốn bánh xe cho động cơ N20 (14)
        • 2.1.1.2 Bánh xe trước là hai bánh xe dẫn động đa hướng (14)
        • 2.1.1.3 Bo mạch chủ ESP 32 lua 30 chân (14)
        • 2.1.1.4 Động cơ giảm tốc GA12 N20 (15)
        • 2.1.1.5 Mạch Điều Khiển Động Cơ TB6612FNG (16)
        • 2.1.1.6 Cảm biến thanh 8 led QTR 8A (0)
        • 2.1.1.7 MODULE BUCK MINI 560 DC-DC 5A 5V (0)
    • 2.2. Phần mềm (19)
      • 2.2.1 Khai báo các thành phần (19)
      • 2.2.2 Hàm setup() (22)
      • 2.2.3 Hàm loop() (22)
        • 2.2.3.1 Hàm readIR() (23)
      • 2.2.3. Hàm checkError() (0)
        • 2.2.3.3 Hàm Run_robot() (24)
    • 2.3. Thi công.....................................................Error: Reference source not found CHƯƠNG III: KẾT LUẬN................................Error: Reference source not found 3.1. Kết quả đạt được (0)
    • 3.2. Ưu, nhược điểm (29)
      • 3.2.1. Ưu điểm (29)
      • 3.2.2 Nhược điểm (29)

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HỒ CHÍ MINH BÁO CÁO ĐỒ ÁN MÔN HỌC KĨ THUẬT ĐIỀU KHIỂN TỰ ĐỘNG ROBOT DÒ LINE Ngành: KỸ THUẬT ĐIỆN Lớp: 21DDCA1 Giảng viên hướng dẫn: ThS. HUỲNH PHÁT HUY Sinh viên thực hiện: Họ và tên: TP. Hồ Chí Minh, ngày 5 tháng 12 năm 2023 Viện: KỸ THUẬT HUTECH PHIẾU GIAO ĐỀ TÀI ĐỒ ÁN: ROBOT XE DÒ LINE 1. Họ và tên sinh viên/ nhóm sinh viên được giao đề tài (sĩ số trong nhóm: 03) 2. Tên đề tài: Robot xe dò line 3. Các dữ liệu ban đầu: - Tìm hiểu tổng quan về đề tài đồ án, mục tiêu thiết kế - Thiết kế sơ sồ khối cho mô hình “Robot dò line” - Tìm hiểu thông số của các linh kiện dùng để thiết kế mạch nguyên lý chi tiết gồm: ESP32 luna mode, Mạch sạc 3s 20A, driver TB6612FNG Dual DC motor, Động cơ giảm tốc G12 N20, Module giảm áp dc-dc mini 560 5v 5A, Cảm biến thanh 8 led QTR 8A,… 4. Nội dung nhiệm vụ: • Thiết kế, tính toán giá trị và thi công mô hình phần cứng • Mô phỏng nguyên lý hoạt động của mạch trên phần mềm mô phỏng • Viết báo cáo đồ án. 5.Kết quả tối thiểu phải có: 1) Báo cáo đồ án. 2) Phần cứng Robot dò line Ngày giao đề tài: 29/ 09/ 2022 Ngày nộp báo cáo: 16/12/2022 TP. HCM, ngày 29 tháng 09 năm 2022 Giảng viên hướng dẫn Sinh viên thực hiện (Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên các thành viên) VIỆN KỸ THUẬT HUTECH PHIẾU THEO DÕI TIẾN ĐỘ THỰC HIỆN ĐỒ ÁN MÔN HỌC & ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN TÊN MÔN HỌC: ĐỒ ÁN KỸ THUẬT ĐIỀU KHIỂN TỰ ĐỘNG NGÀNH: KỸ THUẬT ĐIỆN (Do giảng viên hướng dẫn ghi và giao lại cho sinh viên đóng vào cuốn báo cáo) Tên đề tài: Robot xe dò line Giảng viên hướng dẫn: Huỳnh Phát Huy Sinh viên/ nhóm sinh viên thực hiện đề tài (sĩ số trong nhóm: 03) Tuần Ngày Nội dung thực hiện Kết quả thực hiện của sinh viên (Giảng viên hướng dẫn ghi) 1 Từ: 12/09/2023 Đến: 29/09/2023 GV gợi ý hướng nghiên cứu, giúp sinh viên định hướng chọn đề tài. GV hướng dẫn quy trình thực hiện thực hiện đồ án, cách trình bày báo cáo đồ án 2 Từ: 30/09/2023 Đến: 6/10/2023 Xác nhận đăng ký chính thức đề tài thực hiện. Tìm hiểu, thống kê linh kiện. Tìm hiểu khái quát về linh kiện. 3 Từ: 07/10/2023 Đến: 14/10/2023 Tìm hiểu chi tiết QTR 8A Đọc tài liệu Tìm hiểu cách tính toán thiết kế Viết báo cáo 4 Từ: 15/10/2023 Đến: 22/10/2023 Tính toán thiết kế mạch nguyên lý Vẽ mạch nguyên lý Viết báo cáo 5 Từ: 23/10/2023 Đến: 30/10/2023 Tính toán tỷ số truyền của động cơ Viết báo cáo 6 Từ: 24/10/2022 Đến: 30/10/2022 Nghiên cứu code cho ESP 32 Viết báo cáo 7 Từ: 31/10/2023 Đến: 06/11/2023 Tiếp tục nghiên cứu code cho ESP 32 Viết báo cáo 8 Từ: 07/10/2023 Đến: 14/11/2023 Tiến hành thi công phần cứng, mô hình Viết báo cáo 9 Từ: 15/10/2023 Đến: 22/11/2023 Thí nghiệm vận tốc của động cơ và tính ổn định của cảm biến Viết báo cáo 10 Từ: 23/10/2023 Đến: 30/11/2023 Kiểm tra lần cuối Hoàn thành thi công cải biến, thiết kế mô hình Hoàn thành báo cáo 11 Từ: 31/10/2023 Đến: 5/12/2023 Trình bày nội dung thí nghiệm, báo cáo kết quả thu được từ đồ án. Bảo vệ đồ án. Cách tính điểm: Điểm quá trình = 0.5 x Tổng điểm tiêu chí đánh giá + 0.5 x điểm báo cáo ĐAMH Lưu ý: Tổng điểm tiêu chí đánh giá về quá trình thực hiện đồ án; Điểm báo cáo bảo vệ đồ án môn học; Điểm quá trình (Ghi theo thang điểm 10) Họ tên sinh viên Mã số SV Tiêu chí đánh giá về quá trình thực hiện đồ án Tổng điểm tiêu chí đánh giá về quá trình thực hiện đồ án (tổng 2 cột điểm 1+2) 50% Điểm báo cáo bảo vệ đồ án môn học (50%) Điểm quá trình = 0.5*tổng điểm tiêu chí + 0.5*điểm báo cáo Tính chủ động, tích cực, sáng tạo (tối đa 5 điểm) Đáp ứng mục tiêu đề ra (tối đa 5 điểm) 1 2 3 4 5 Nguyễn Thanh Tú 2187800749 Nguyễn Anh Tú 2187800658 Bùi Minh Triết 2187800790 Ghi chú: Điểm số nếu có sai sót, GV gạch bỏ rồi ghi lại điểm mới kế bên và ký nháy vào phần điểm chỉnh sửa. TP. HCM, ngày 5 tháng 12 năm 2022 Giảng viên hướng dẫn Sinh viên thực hiện (Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên từng thành viên)   LỜI CÁM ƠN Lời đầu tiên em xin chân thành cảm ơn tất quý Thầy/Cô của trường Đại học Công Nghệ TP Hồ Chí Minh, cũng như quý Thầy/Cô trong Viện Kỹ thuật HUTECH đã giảng dạy, truyền đạt những kiến thức hữu ích cũng như kinh nghiệm quý báu cho em trong thời gian qua. Em xin chân thành gửi lời cảm ơn sâu sắc tới thầy Huỳnh Phát Huy, người đã tận tình hướng dẫn em hoàn thành đồ án môn học này. Xin cảm ơn tất cả các bạn, các anh/chị đã tận tình giúp đỡ và quan tâm tới tác giả trong suốt quá trình thực hiện thành đồ án môn học này. Vì lần đầu làm đồ án, kiến thức chuyên môn còn hạn chế và bản thân còn thiếu kinh nghiệm thực tiễn nên nội dung của báo cáo sẽ không tránh khỏi những thiếu sót. Với ước mong học hỏi, em rất mong nhận được sự góp ý, hướng dẫn, chỉ bảo thêm của quý Thầy/Cô giáo để em rút kinh nghiệm cho những đồ án tiếp theo được tốt hơn. Tác giả xin chân thành cảm ơn! TPHCM, ngày 5 tháng 12 năm 2022 Mục lục CHƯƠNG I: TỔNG QUAN VỀ ĐỒ ÁN 1 1.Giới thiệu đề tài 1 2. Mục tiêu đề tài 1 CHƯƠNG II: CƠ SỞ LÝ THUYẾT 2 2.1. Phần cứng 2 2.1.1 Cấu tạo xe dò line 2 2.1.1.1 Bốn bánh xe cho động cơ N20 2 2.1.1.2 Bánh xe trước là hai bánh xe dẫn động đa hướng 2 2.1.1.3 Bo mạch chủ ESP 32 lua 30 chân 3 2.1.1.4 Động cơ giảm tốc GA12 N20 4 2.1.1.5 Mạch Điều Khiển Động Cơ TB6612FNG 5 2.1.1.6 Cảm biến thanh 8 led QTR 8A 6 2.1.1.7 MODULE BUCK MINI 560 DC-DC 5A 5V 7 2.2. Phần mềm: 8 2.2.1 Khai báo các thành phần 8 2.2.2 Hàm setup() 9 2.2.3 Hàm loop() 9 2.2.3.1 Hàm readIR() 9 2.2.3. Hàm checkError()…………………………………………………….10 2.2.3.3 Hàm Run_robot():………………………………………………….10 2.2.3.3.1 Hàm run_fwd()………………………………………………….11 2.2.3.3.2 Hàm Run_robot()……………………………………………….11 2.3. Thi công 22 CHƯƠNG III: KẾT LUẬN 23 3.1. Kết quả đạt được: 23 3.2. Ưu, nhược điểm 23 3.2.1. Ưu điểm 23 3.2.2 Nhược điểm..................................................................................................23 Mục lục hình ảnh Hình 2.1.1.1 Bánh xe của động cơ N20 2 Hình 2.1.1.2 Bánh xe mắt trâu 2 Hình 2.1.1.3 Module ESP 32 3 Hình 2.1.1.4 Động cơ GA12 N20 4 Hình 2.1.1.5 Mạch Điều Khiển Động Cơ TB6612FNG 5 Hình 2.1.1.6 Sơ đồ mạch và cảm biến QTR 8A 6 Hình 2.1.1.7 Module buck mini 560 DC-DC 5A 5V 7 CHƯƠNG I: TỔNG QUAN VỀ ĐỒ ÁN 1.Giới thiệu đề tài Tự động hóa là tổng hoà của nhiều lĩnh vực như cơ khí, điều khiển, công nghệ thông tin và cơ điện tử. Các lĩnh vực này kết hợp lại với nhau tạo thành các hệ thống tự động hóa và cao hơn nữa là tự động hóa toàn bộ quá trình sản xuất. Ngành công nghiệp tự động hóa ngày càng có vai trò quan trọng và hết sức cần thiết để đáp ứng các mục tiêu phát triển kinh tế, nhất là trong tiến trình công nghiệp- hiện đại hóa nhanh như hiện nay. Nó đòi hỏi một nguồn nhân lực có trình độ cao để vận hành. Trên thế giới hiện nay có rất nhiều loại robot: Quy mô lớn như: Những cánh tay máy trong các dây chuyển sản xuất, những hệ thống sản xuất tự động. Nhỏ hơn là những robot có khả năng di chuyển, làm những công việc nguy hiểm thay thể con người, robot giúp người già, robot bán hang, robot học đường đi, robot dò đường line, robot tránh vật cản, robot tìm đường cho mê cung...vv, trong số đó robot dò đường line dễ dàng ứng dụng nhiều trong cuộc sống. Việc phát triển loại robot này sẽ phục vụ rất đắc lực cho con người 2. Mục tiêu đề tài Robot dò line vừa có nhiều ứng dụng trong thực tế vừa dễ dàng để sinh viên vận dụng những kiến thức tiếp thu được trên giảng đường vào nó. Với những kết cấu cơ khí đơn giản nhưng lại có thể kết hợp được với khá nhiều thành phần điện tử (encoder, sensor xác định đường line, sensor đo khoảng cách...) nên Robot này rất phù hợp để sinh viên học tập và nghiên cứu thêm về ngành Tự động hóa một cách cụ thể. Trong đồ án lần này em thực hiện làm robot dò line, so với những robot khác thì nó chỉ là 1 robot nhỏ, đơn giản nhưng đây là nền tảng để em làm được những cái lớn hơn, có ích hơn trong quá trình học tập và làm việc của em sau này. CHƯƠNG II: CƠ SỞ LÝ THUYẾT 2.1. Phần cứng 2.1.1 Cấu tạo xe dò line: 2.1.1.1 Bốn bánh xe cho động cơ N20 Hình 2.1.1.1 Bánh xe của động cơ N20 2.1.1.2 Bánh xe trước là hai bánh xe dẫn động đa hướng Hình 2.1.1.2 Bánh xe mắt trâu 2.1.1.3 Bo mạch chủ ESP 32 lua 30 chân tiếp nhận tính hiệu từ sensor và phát tính hiệu điều khiển hoạt động xe Hình 2.1.1.3 Module ESP 32 Thông số kĩ thuật của ESP32: • Loại: Wifi + Bluetooth Module • Mô hình: ESP32 38 chân • Điện áp nguồn (USB): 5V DC • Đầu vào/Đầu ra điện áp: 3.3V DC • Công suất tiêu thụ: 5μA trong hệ thống treo chế độ • Hiệu suất: Lên đến 600 DMIPS • Tần số: lên đến 240MHz • Wifi: 802.11 B/g/n/E/I (802.11N @ 2.4 GHz lên đến 150 Mbit/S) • Bluetooth: 4.2 BR/EDR BLE 2 chế độ điều khiển • Bộ nhớ: 448 Kbyte ROM, 520 Kbyte SRAM, 6 Kbyte SRAM trên RTC và QSPI Hỗ trợ đèn flash / SRAM chip • Chip USB-Serial: CP2102 • Ăng ten: PCB • GPIO kỹ thuật số: 24 chân (một số chân chỉ làm đầu vào) • Kỹ thuật số Analog: 12bit SAR loại ADC, hỗ trợ các phép đo trên lên đến 18 kênh, một số chân hỗ trợ một bộ khuếch đại với lập trình tăng • Bảo mật: IEEE 802.11, bao gồm cả WFA, WPA/WPA2 và WAPI • Phần cứng tăng tốc mật mã học: AES, SHA-2, RSA, hình elip mật mã Đường Cong (ECC), số ngẫu nhiên Máy phát điện (RNG) 2.1.1.4 Động cơ giảm tốc GA12 N20 Hình 2.1.1.4 Động cơ GA12 N20 Thông số kĩ thuật của động cơ giảm tốc GA12 N20: • Điện áp sử dụng: 1.5-12VDC. • Kích thước: 37 x 12mm. • Bề rộng động cơ : 12mm. • Chiều dài động cơ : 34mm. • Đường kính trục : 3mm. • Chiều dài trục : 10mm. • Tốc độ 1000 vòng/phút. 2.1.1.5 Mạch Điều Khiển Động Cơ TB6612FNG Hình 2.1.1.5 Mạch Điều Khiển Động Cơ TB6612FNG Thông số kĩ thuật mạch điều khiển động cơ TB6612FNG • Điện áp cung cấp: 2.7 ~ 5.5V DC. • Driver hỗ trợ 2 cầu H có thể dùng cho hai động cơ DC hoặc một động cơ bước. • Điện áp cung cấp cho motor: giới hạn ở mức 15V DC. • Tần số hoạt động lên đến 100KHz. • Dòng điện ngõ ra max: 3.2A cho mỗi cầu. • Dòng ngõ ra liên tục: 1.2A cho mỗi cầu (có thể mắc song song để lên đến 2.4A). • chế độ điều khiển: quay thuận, quay ngược, hãm, stop. • Bảo vệ quá nhiệt và quá áp. • Tụ lọc ở cả 2 ngõ cấp nguồn. • Bảo vệ chống ngược nguồn cấp cho motor. 2.1.1.6 MODULE BUCK MINI 560 DC-DC 5A 5V Hình 2.1.1.6 Module buck mini 560 DC-DC 5A 5V Chức Năng: mạch giảm áp DC-DC Buck Mini560 5A có kích thước nhỏ gọn được sử dụng để giảm áp DC với hiệu suất lên đến 99%, dòng đầu ra lên đến 5A với dải điện áp đầu vào 5~20VC (theo thông số nhà sản xuất), mạch có hai phiên bản điện áp đầu ra 3.3VDC và 5VDC. Thông số kĩ thuật MODULE BUCK MINI 560 DC-DC 5A 5V • Điện áp đầu vào: • Phiên bản 3.3VDC: 5~20VDC • Phiên bản 5VDC: 7~20VDC • Điện áp đầu ra: 2 phiên bản tùy chọn là 5VDC và 3.3VDC • Dòng đầu ra tối đa: Max 5A (dòng trên 4A cần mắc thêm tản nhiệt). • Hiệu suất : 99% • Kích thước: 29 x 18 x 5.4mm 2.1.1.7 Cảm biến thanh 8 led QTR 8A Hình 2.1.1.7 Sơ đồ mạch và cảm biến QTR 8A Thông số kĩ thuật cảm biến thanh 8 led QTR 8A • Kích thước: 2,95" x 0,5" x 0,125" (không cài đặt chân tiêu đề) • Điện áp hoạt động: 3,3-5,0 V • Dòng cung cấp: 100 mA • Định dạng đầu ra: 8 tín hiệu tương thích I/O kỹ thuật số có thể được đọc dưới dạng xung cao theo thời gian • Khoảng cách phát hiện tối ưu: 0,125" (3 mm) • Khoảng cách phát hiện tối đa được đề nghị: 0,375" (9,5 mm) • Trọng lượng không có chân tiêu đề: 0,11 oz (3,09g) 2.2. Phần mềm: 2.2.1 Khai báo các thành phần: /Khai báo nút nhấn bắt đầu #define button 12 //Khai báo đèn hiển thị #include #define NUM_LEDS 8 int ledsLine[8] = {4, 5, 6, 7, 3, 2, 1, 0}; CRGB leds[NUM_LEDS]; #define DATA_PIN 23 //Khai báo các giá trị PID #define Kp 0.1 #define Ki 0.05 #define Kd 0.003 //Khai báo tốc độ và #define rightMaxSpeed 180 #define leftMaxSpeed 180 #define multiplicationError 100 //Khai báo các chân driver #define ENA 15 #define ENB 18 #define MOTOR_A1 4 #define MOTOR_A2 2 #define MOTOR_B1 17 #define MOTOR_B2 5 #define STBY 16 //Khai báo trị lấy mẫu PID int lastError=0; unsigned long cTime, pTime; float eTime; float P_error; float I_error; float D_error; float PID_value; int error; //Khai báo các chân giá trị mẫu của cảm biến int IR[8] = {33, 25, 32, 13, 35, 27, 34, 14}; int valueIR[8]; int valueIRError[8]; String vitriV1[17] = {"01111111", "00111111", "00011111", "10011111", "10001111", "11001111", "11000111", "11100111", "11100011", "11110011", "11110001", "11111001", "11111000", "11111100", "11111110", "11110000", "00001111"}; int exampleError[17] = {-6, -4, 3, -2, -1, -1, 0, 0, 0, 1, 1, 2, 3, 4, 6, 10, -10}; //Khai báo chế độ hoạt động, khi bắt đầu thì dừng bool mode = false; 2.2.2 Hàm setup(): //Kích hoạt các chân hoạt động void setup() { Serial.begin(115200); pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(MOTOR_A1, OUTPUT); pinMode(MOTOR_A2, OUTPUT); pinMode(MOTOR_B1, OUTPUT); pinMode(MOTOR_B2, OUTPUT); pinMode(STBY, OUTPUT); FastLED.addLeds(leds, NUM_LEDS); FastLED.setBrightness(64); } 2.2.3 Hàm loop(): /Thực hiện chương trình trong vòng lập void loop() { readIR(); checkError(); if (digitalRead(button)) { mode = true; delay(500); } if(mode) { Run_robot(); } } 2.2.3.1 Hàm readIR(): //Đọc giá trị của cảm biến void readIR() { for (int i = 0; i < 8; i++) { valueIR[i] = 4096 - analogRead(IR[i]); } } 2.2.3.2 Hàm checkError(): //Xác định vị trí của cảu biến và lưu giá trị lệch đường line vào biến error void checkError() { for (int i = 0; i < 8; i++) { if (valueIR[i] > 500) { valueIRError[i] = 1; leds[ledsLine[i]] = CRGB::Green; FastLED.show(); } else { valueIRError[i] = 0; leds[ledsLine[i]] = CRGB::Black; FastLED.show(); } } String vlError = String(valueIRError[0]) + String(valueIRError[1]) + String(valueIRError[2]) + String(valueIRError[3]) + String(valueIRError[4]) + String(valueIRError[5]) + String(valueIRError[6]) + String(valueIRError[7]); // Serial.println(vlError); for (int i = 0; i < 17; i++) { if (vlError == vitriV1[i]) { error = exampleError[i]*multiplicationError; } } } 2.2.3.3 Hàm Run_robot(): //Sau khi nhấn nút thì xe chạy sau 500ms void Run_robot() { //Tính toán các giá trị PID theo độ lệch đường line và thời gian lập lại quá trình tính P_error = error; cTime = millis(); eTime = (float)(cTime - pTime) / 500; I_error = I_error * 2 / 3 + P_error * eTime; D_error = (P_error - lastError) / eTime; PID_value = Kp * P_error + Ki * I_error + Kd * D_error; lastError = P_error; pTime = cTime; //Giảm tốc độ khi vào các khúc cua int med_Speed_L = leftMaxSpeed - abs(PID_value)*1.3; int med_Speed_R = rightMaxSpeed - abs(PID_value)*1.3; //Tính toán tốc độ của hai động cơ sau khi qua tính toán PID int leftMotorSpeed = med_Speed_L + PID_value; int rightMotorSpeed = med_Speed_R - PID_value; //Giới hạn tốc độ động cơ khoảng giá trị xung từ 0 đến 255 leftMotorSpeed = constrain(leftMotorSpeed, 0, leftMaxSpeed); rightMotorSpeed = constrain(rightMotorSpeed, 0, rightMaxSpeed); //Xuất ra serial để quan xác tốc độ hai động cơ Serial.print(rightMotorSpeed); Serial.print(" "); Serial.println(leftMotorSpeed); //Hàm chạy hai động cơ run_fwd(leftMotorSpeed, rightMotorSpeed); } 2.2.3.3.1 Hàm run_fwd(): void run_fwd(int valueSA, int valueSB){ digitalWrite(STBY, HIGH); motorLeft(valueSA); motorRight(valueSB); } /Nếu tốc độ động cơ dưới 110 thì dừng hẳn động cơ void motorLeft(int valueSA) { if ( valueSA >= 110 ) { digitalWrite(MOTOR_A1,HIGH); digitalWrite(MOTOR_A2,LOW); analogWrite(ENA, valueSA); } else { digitalWrite(MOTOR_A1,HIGH); digitalWrite(MOTOR_A2,HIGH); analogWrite(ENA, 0); } } //Nếu tốc độ động cơ dưới 110 thì dừng hẳn động cơ void motorRight(int valueSB) { if ( valueSB >= 110 ) { digitalWrite(MOTOR_B1,HIGH); digitalWrite(MOTOR_B2,LOW); analogWrite(ENB, valueSB); } else { digitalWrite(MOTOR_B1,HIGH); digitalWrite(MOTOR_B2,HIGH); analogWrite(ENB, 0); } } 3.2 Thi công: Hình 3.2.1: Mặt trên của xe. Hình 3.2.2: Mặt dưới của xe. CHƯƠNG III: KẾT LUẬN 3.1. Kết quả đạt được: - Xe Robot tự động có khả năng di chuyển theo một đường đã định sẵn ( xa bàn đường đen nền trắng. - Có thể điều khiển tốc độ động cơ xe nhanh chậm bằng 2 cách: + Giảm áp vào từ module giảm áp + Lập trình tốc độ trên code Arduino 3.2. Ưu, nhược điểm 3.2.1. Ưu điểm Dò đường theo line: • Chạy ổn định, bám vạch chính xác • Thể hiện được khả năng hoàn toàn tự động của mô hình • Hệ thống vận hành đơn giản • Kết cấu nhỏ gọn • Hệ thống chạy ổn định và tin cậy trong các điều kiện khắc nghiệt 3.2.2. Nhược điểm - Dò đường theo line: • Chỉ có thể chạy theo vạch đã được định sẳn • Tính linh hoạt chưa cao • Lập trình phức tạp • Tài liệu tham khảo ít, chưa phổ biến TÀI LIỆU THAM KHẢO [1] https://www.pololu.com/product/960 [2] https://www.youtube.com/watch?v=jBXEjhB1748&list=LL&index=3&t=47s [3] https://www.youtube.com/watch?v=SSPc8BPdjuQ&list=LL&index=2

TỔNG QUAN VỀ ĐỒ ÁN

Mục tiêu đề tài

Robot dò line vừa có nhiều ứng dụng trong thực tế vừa dễ dàng để sinh viên vận dụng những kiến thức tiếp thu được trên giảng đường vào nó Với những kết cấu cơ khí đơn giản nhưng lại có thể kết hợp được với khá nhiều thành phần điện tử (encoder, sensor xác định đường line, sensor đo khoảng cách ) nên Robot này rất phù hợp để sinh viên học tập và nghiên cứu thêm về ngành Tự động hóa một cách cụ thể Trong đồ án lần này em thực hiện làm robot dò line, so với những robot khác thì nó chỉ là 1 robot nhỏ, đơn giản nhưng đây là nền tảng để em làm được những cái lớn hơn, có ích hơn trong quá trình học tập và làm việc của em sau này.

CƠ SỞ LÝ THUYẾT

Phần cứng

2.1.1 Cấu tạo xe dò line:

2.1.1.1 Bốn bánh xe cho động cơ N20

Hình 2.1.1.1 Bánh xe của động cơ N20

2.1.1.2 Bánh xe trước là hai bánh xe dẫn động đa hướng

Hình 2.1.1.2 Bánh xe mắt trâu

2.1.1.3 Bo mạch chủ ESP 32 lua 30 chân tiếp nhận tính hiệu từ sensor và phát tính hiệu điều khiển hoạt động xe

Thông số kĩ thuật của ESP32:

 Điện áp nguồn (USB): 5V DC

 Đầu vào/Đầu ra điện áp: 3.3V DC

 Công suất tiêu thụ: 5μA trong hệ thống treo chế độA trong hệ thống treo chế độ

 Hiệu suất: Lên đến 600 DMIPS

 Tần số: lên đến 240MHz

 Wifi: 802.11 B/g/n/E/I (802.11N @ 2.4 GHz lên đến 150 Mbit/S)

 Bluetooth: 4.2 BR/EDR BLE 2 chế độ điều khiển

 Bộ nhớ: 448 Kbyte ROM, 520 Kbyte SRAM, 6 Kbyte SRAM trên RTC và QSPI

Hỗ trợ đèn flash / SRAM chip

 GPIO kỹ thuật số: 24 chân (một số chân chỉ làm đầu vào)

 Kỹ thuật số Analog: 12bit SAR loại ADC, hỗ trợ các phép đo trên lên đến 18 kênh, một số chân hỗ trợ một bộ khuếch đại với lập trình tăng

 Bảo mật: IEEE 802.11, bao gồm cả WFA, WPA/WPA2 và WAPI

 Phần cứng tăng tốc mật mã học: AES, SHA-2, RSA, hình elip mật mã Đường Cong (ECC), số ngẫu nhiên Máy phát điện (RNG)

2.1.1.4 Động cơ giảm tốc GA12 N20

Thông số kĩ thuật của động cơ giảm tốc GA12 N20:

 Điện áp sử dụng: 1.5-12VDC

 Bề rộng động cơ : 12mm

 Chiều dài động cơ : 34mm.

2.1.1.5 Mạch Điều Khiển Động Cơ TB6612FNG

Hình 2.1.1.5 Mạch Điều Khiển Động Cơ TB6612FNG

Thông số kĩ thuật mạch điều khiển động cơ TB6612FNG

 Điện áp cung cấp: 2.7 ~ 5.5V DC.

 Driver hỗ trợ 2 cầu H có thể dùng cho hai động cơ DC hoặc một động cơ bước.

 Điện áp cung cấp cho motor: giới hạn ở mức 15V DC.

 Tần số hoạt động lên đến 100KHz.

 Dòng điện ngõ ra max: 3.2A cho mỗi cầu.

 Dòng ngõ ra liên tục: 1.2A cho mỗi cầu (có thể mắc song song để lên đến 2.4A).

 chế độ điều khiển: quay thuận, quay ngược, hãm, stop.

 Bảo vệ quá nhiệt và quá áp

 Tụ lọc ở cả 2 ngõ cấp nguồn.

 Bảo vệ chống ngược nguồn cấp cho motor.

2.1.1.6 MODULE BUCK MINI 560 DC-DC 5A 5V

Hình 2.1.1.6 Module buck mini 560 DC-DC 5A 5V

Chức Năng: mạch giảm áp DC-DC Buck Mini560 5A có kích thước nhỏ gọn được sử dụng để giảm áp DC với hiệu suất lên đến 99%, dòng đầu ra lên đến 5A với dải điện áp đầu vào 5~20VC (theo thông số nhà sản xuất), mạch có hai phiên bản điện áp đầu ra 3.3VDC và 5VDC.

Thông số kĩ thuật MODULE BUCK MINI 560 DC-DC 5A 5V

 Điện áp đầu ra: 2 phiên bản tùy chọn là 5VDC và 3.3VDC

 Dòng đầu ra tối đa: Max 5A (dòng trên 4A cần mắc thêm tản nhiệt).

2.1.1.7 Cảm biến thanh 8 led QTR 8A

Hình 2.1.1.7 Sơ đồ mạch và cảm biến QTR 8A

Thông số kĩ thuật cảm biến thanh 8 led QTR 8A

 Kích thước: 2,95" x 0,5" x 0,125" (không cài đặt chân tiêu đề)

 Định dạng đầu ra: 8 tín hiệu tương thích I/O kỹ thuật số có thể được đọc dưới dạng xung cao theo thời gian

 Khoảng cách phát hiện tối ưu: 0,125" (3 mm)

 Khoảng cách phát hiện tối đa được đề nghị: 0,375" (9,5 mm)

 Trọng lượng không có chân tiêu đề: 0,11 oz (3,09g)

Phần mềm

2.2.1 Khai báo các thành phần:

/Khai báo nút nhấn bắt đấu

//Khai báo đèn hiển thị

#define NUM_LEDS 8 int ledsLine[8] = {4, 5, 6, 7, 3, 2, 1, 0}; CRGB leds[NUM_LEDS];

//Khai báo các giá trị PID

//Khai báo tốc độ và

//Khai báo các chấn driver

//Khai báo trị lấy mấN u PID int lastError=0; unsigned long cTime, pTime; float eTime;

8 float P_error; float I_error; float D_error; float PID_value; int error;

//Khai báo các chấn giá trị mấN u cua cam biển int IR[8] = {33, 25, 32, 13, 35, 27, 34, 14}; int valueIR[8]; int valueIRError[8];

//Khai báo chể độ hoạt động, khi bắt đấu thì dừng bool mode = false;

//Kích hoạt các chấn hoạt động void setup()

Serial.begin(115200); pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(MOTOR_A1, OUTPUT); pinMode(MOTOR_A2, OUTPUT); pinMode(MOTOR_B1, OUTPUT); pinMode(MOTOR_B2, OUTPUT); pinMode(STBY, OUTPUT);

FastLED.addLeds(leds, NUM_LEDS); FastLED.setBrightness(64);

/Thực hiện chương trình trong vòng lập void loop() { readIR(); checkError(); if (digitalRead(button))

//Đọc giá trị cua cam biển void readIR()

//Xác định vị trí cua cau biển và lưu giá trị lệch đường line vào biển error void checkError()

{ valueIRError[i] = 1; leds[ledsLine[i]] = CRGB::Green;

11 valueIRError[i] = 0; leds[ledsLine[i]] = CRGB::Black;

// Serial.println(vlError); for (int i = 0; i < 17; i++)

//Sau khi nhấn nút thì xe chạy sau 500ms void Run_robot()

//Tính toán các giá trị PID theo độ lệch đường line và thời gian lập lại quá trình tính

P_error = error; cTime = millis(); eTime = (float)(cTime - pTime) / 500;

PID_value = Kp * P_error + Ki * I_error + Kd * D_error; lastError = P_error; pTime = cTime;

//Giam tốc độ khi vào các khúc cua int med_Speed_L = leftMaxSpeed - abs(PID_value)*1.3; int med_Speed_R = rightMaxSpeed - abs(PID_value)*1.3;

//Tính toán tốc độ cua hai động cơ sau khi qua tính toán PID int leftMotorSpeed = med_Speed_L + PID_value; int rightMotorSpeed = med_Speed_R - PID_value;

//Giới hạn tốc độ động cơ khoang giá trị xung từ 0 đển 255 leftMotorSpeed = constrain(leftMotorSpeed, 0, leftMaxSpeed); rightMotorSpeed = constrain(rightMotorSpeed, 0, rightMaxSpeed); //Xuất ra serial để quan xác tốc độ hai động cơ

//Hàm chạy hai động cơ run_fwd(leftMotorSpeed, rightMotorSpeed);

2.2.3.3.1 Hàm run_fwd(): void run_fwd(int valueSA, int valueSB){ digitalWrite(STBY, HIGH);

/Nểu tốc độ động cơ dưới 110 thì dừng hắn động cơ void motorLeft(int valueSA)

{ digitalWrite(MOTOR_A1,HIGH); digitalWrite(MOTOR_A2,LOW); analogWrite(ENA, valueSA);

{ digitalWrite(MOTOR_A1,HIGH); digitalWrite(MOTOR_A2,HIGH); analogWrite(ENA, 0);

//Nểu tốc độ động cơ dưới 110 thì dừng hắn động cơ void motorRight(int valueSB)

{ digitalWrite(MOTOR_B1,HIGH); digitalWrite(MOTOR_B2,LOW); analogWrite(ENB, valueSB);

{ digitalWrite(MOTOR_B1,HIGH); digitalWrite(MOTOR_B2,HIGH); analogWrite(ENB, 0);

Hình 3.2.1: Mặt trên của xe.

Hình 3.2.2: Mặt dưới của xe.

- Xe Robot tự động có khả năng di chuyển theo một đường đã định sẵn ( xa bàn đường đen nền trắng.

- Có thể điều khiển tốc độ động cơ xe nhanh chậm bằng 2 cách:

+ Giảm áp vào từ module giảm áp

+ Lập trình tốc độ trên code Arduino

 Chạy ổn định, bám vạch chính xác

 Thể hiện được khả năng hoàn toàn tự động của mô hình

 Hệ thống vận hành đơn giản

 Hệ thống chạy ổn định và tin cậy trong các điều kiện khắc nghiệt

 Chỉ có thể chạy theo vạch đã được định sẳn

 Tính linh hoạt chưa cao

 Tài liệu tham khảo ít, chưa phổ biến

Ưu, nhược điểm

 Chạy ổn định, bám vạch chính xác

 Thể hiện được khả năng hoàn toàn tự động của mô hình

 Hệ thống vận hành đơn giản

 Hệ thống chạy ổn định và tin cậy trong các điều kiện khắc nghiệt

 Chỉ có thể chạy theo vạch đã được định sẳn

 Tính linh hoạt chưa cao

 Tài liệu tham khảo ít, chưa phổ biến

Ngày đăng: 08/05/2024, 19:22

HÌNH ẢNH LIÊN QUAN

Hình 2.1.1.2 Bánh xe mắt trâu - Đồ Án kĩ thuật Điều khiển tự Động hutech
Hình 2.1.1.2 Bánh xe mắt trâu (Trang 14)
Hình 2.1.1.1 Bánh xe của động cơ N20 - Đồ Án kĩ thuật Điều khiển tự Động hutech
Hình 2.1.1.1 Bánh xe của động cơ N20 (Trang 14)
Hình 2.1.1.3 Module ESP 32 - Đồ Án kĩ thuật Điều khiển tự Động hutech
Hình 2.1.1.3 Module ESP 32 (Trang 15)
Hình 2.1.1.4 Động cơ GA12 N20 - Đồ Án kĩ thuật Điều khiển tự Động hutech
Hình 2.1.1.4 Động cơ GA12 N20 (Trang 16)
Hình 2.1.1.5 Mạch Điều Khiển Động Cơ TB6612FNG - Đồ Án kĩ thuật Điều khiển tự Động hutech
Hình 2.1.1.5 Mạch Điều Khiển Động Cơ TB6612FNG (Trang 17)
Hình 2.1.1.6 Module buck mini 560 DC-DC 5A 5V - Đồ Án kĩ thuật Điều khiển tự Động hutech
Hình 2.1.1.6 Module buck mini 560 DC-DC 5A 5V (Trang 18)
Hình 2.1.1.7 Sơ đồ mạch và cảm biến QTR 8A - Đồ Án kĩ thuật Điều khiển tự Động hutech
Hình 2.1.1.7 Sơ đồ mạch và cảm biến QTR 8A (Trang 19)
Hình 3.2.1: Mặt trên của xe. - Đồ Án kĩ thuật Điều khiển tự Động hutech
Hình 3.2.1 Mặt trên của xe (Trang 28)
Hình 3.2.2: Mặt dưới của xe. - Đồ Án kĩ thuật Điều khiển tự Động hutech
Hình 3.2.2 Mặt dưới của xe (Trang 28)

TỪ KHÓA LIÊN QUAN

w