1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo đồ án môn học Robot tìm đường trong mê cung đơn giản

33 1,7K 17

Đ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

Định dạng
Số trang 33
Dung lượng 741,21 KB

Nội dung

Đồ án báo cáo về kỹ thuật robot hoặc vi xử lý, đề tài Robot tìm đường trong mê cung đơn giản dành cho các bạn sinh viên cần tham khảo. Hướng dẫn về thuật toán bám tường cơ bản trong lập trình vi điều khiển

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN o0o ĐỒ ÁN MÔN HỌC ĐỀ TÀI: Điều Khiển Robot Dò Đường Trong Mê Cung SVTH: Nguyễn Hữu Toàn Hồ Đức Dũng GVHD: TS Trương Đình Nhơn TP HỒ CHÍ MINH, THÁNG 6/2016 13151102 13151015 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Giáo viên hướng dẫn: TS Trương Đình Nhơn Họ tên sinh viên: Lớp: Hồ Đức Dũng MSSV: 13151015 Nguyễn Hữu Toàn MSSV: 13151102 131512A Ngành: Công Nghệ Kỹ Thuật Điều Khiển Tự Động Hóa Tên đề tài: Thiết Kế Điều Khiển Robot Dò Đường Trong Mê Cung Nhận xét giáo viên hướng dẫn: - TP.HCM, tháng năm 2016 TS Trương Đình Nhơn MỤC LỤC MỞ ĐẦU Ngày điều khiển tự động trở thành nhu cầu thiếu người xuất học thuyết ứng dụng cụ thể đời sống ngày, nói điều khiển tự động chi phối dần sống người cố gắng sáng tạo robot có khả làm việc thay cho người Chúng ta thường bắt gặp robot dây chuyền công nghiệp sản xuất tự động hay robot giúp việc gia đình Để tìm ý tưởng sáng tạo hay hàng năm đề diễn thi robocon châu thái bình dương tiền đề để tạo robot có khả áp dụng vào thực tế Robot di động thành phần có vai trò quan trọng ngành robot học Cùng với phát triển mạnh mẽ hệ thống tự động hóa, mạch vi điều khiển, robot tìm đường ngày hoàn thiện cho thấy lượi ích to lớn sống Một vấn đề quan tâm nghiên cứu robot tìm đường làm robot di chuyển cách ổn định, nhận biết vị trí đứng di chuyển tránh né vật cản tới vị trí xác định Mục tiêu đề tài thiết kế, thi công, điều khiển robot tự hành Robot tự hành hoạt động ổn định, tự tìm đường đến vị trí đích xác định sẵn mê cung, học nhanh chóng cách tìm đường thay đổi hình dạng mê cung, sử dụng thuật toán tìm kiếm theo chiều sâu trí tuệ nhân tạo Áp dụng thuật toán Wall Follower để dò đường dùng Arduino giao tiếp với máy tính Trong phạm vi đề tài em tìm hiểu thuật toán thi công Robot di chuyển theo mép tường (Wall Following Robot) dựa vào cảm biến hồng ngoại vận cản Nội dung đề tài: bao gồm chương sau: Chương 1: Cơ sở lý thuyết Nội dung chương trình bày lý thuyết thuật toán tìm kiếm đường lý thuyết giải thuật PID Chương 2: Giới thiệu phẩn tử Robot Chương chủ yếu trình bày sơ lược cấu trúc hoạt động Board mạch Arduino, cảm biến hồng ngoại, mạch cầu H thiết kế phần khung xe phần điện cho mô hình robot di động Chương 3: Thuật toán điều khiển Chương trình bày giải thuật tìm đường bám tường, ứng dụng PID để điểu khiển tốc độ động Kết luận hướng phát triển đề tài Chương trình bày kết đạt được, mặt hạn chế hướng phát triển đề tài CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Tổng quan toán bám tường robot di động Ngày nay, Robot học đạt thành tựu to lớn sản xuất công nghiệp Những cánh tay robot có khả làm việc với tốc độ cao, xác liên tục làm suất lao động tăng nhiều lần Chúng làm việc môi trường độc hại hàn, phun sơn, nhà máy hạt nhân, hay lắp ráp linh kiện điện tử tạo điện thoại, máy tính…một công việc đòi hỏi tỉ mỉ, xác cao Tuy nhiên robot có hạn chế chung hạn chế không gian làm việc Không gian làm việc chúng bị giới hạn số bậc tự tay máy vị trí gắn chúng Ngược lại, Robot tự hành lại có khả hoạt động cách linh hoạt môi trường khác Robot tự hành loại mobile robot có khả tự hoạt động, thực thi nhiệm vụ mà không cần can thiệp người Với cảm biến, chúng có khả nhận biết môi trường xung quanh Robot tự hành ngày có nhiều ý nghĩa ngành công nghiệp, thương mại, y tế, ứng dụng khoa học phục vụ đời sống người Với phát triển ngành Robot học, robot tự hành ngày có khả hoạt động môi trường khác nhau, tùy lĩnh vực áp dụng mà chúng có nhiều loại khác robot sơn, robot hàn, robot cắt cỏ, robot thám hiểm đại dương, robot làm việc vũ trụ Cùng với phát triển yêu cầu thực tế, robot tự hành tiếp tục đưa thách thức cho nhà nghiên cứu Vấn đề robot tự hành làm để robot tự hành hoạt động, nhận biết môi trường thực thi nhiệm vụ đề Hiện vấn đề di chuyển vấn đề trọng tâm robot di động Để di chuyển được, robot phải thực loạt tác vụ, tác vụ gắn với toán nhỏ toán "dịch chuyển" Các toán gồm: - Công việc lập đồ môi trường hoạt động robot Nếu không cung cấp liệu trước robot phải có khả lập đồ - Việc định vị, robot phải có khả biết đâu đồ toàn cục địa phương - Việc hoạch định đường tới robot, sau biết đồ biết vị trí - Việc điều khiển cho robot di động, tức điều khiển cấu để robot theo đường thu - Nhiệm vụ tránh chướng ngại vật robot di chuyển 1.1.1 Bài toán di chuyển theo tường Việc di chuyển theo tường (wall following) tác vụ thường thấy robot di động, môi trường biết trước trước Tác vụ dùng với nhiệm vụ: tránh chướng ngại vật, theo tường biết trước, theo tường trước Để thực mục tiêu trên, đồ án bọn em tập trung vào vấn đề sau: - Nghiên cứu điều khiển cho robot bám tường - Thiết kế chế tạo Mobile Robot - Thiết kế thực mạch điều khiển cho robot - Lập trình cho robot để thực điều khiển - Nhận xét kết kết luận 1.2 Giải Thuật PID 1.2.1 Sơ đồ khối nguyên lý hoạt dộng 1.2.2 Lý thuyết thuật toán PID Một điều khiển vi tích phân tỉ lệ (bộ điều khiển PID- Proportional Integral Derivative) chế phản hồi vòng điều khiển (bộ điều khiển) tổng quát sử dụng rộng rãi hệ thống điều khiển công nghiệp – điều khiển PID điều khiển sử dụng nhiều điều khiển phản hồi Bộ điều khiển PID tính toán giá trị "sai số" hiệu số giá trị đo thông số biến đổi giá trị đặt mong muốn Bộ điều khiển thực giảm tối đa sai số cách điều chỉnh giá trị điều khiển đầu vào Giải thuật tính toán điều khiển PID bao gồm thông số riêng biệt, gọi điều khiển ba khâu: giá trị tỉ lệ, tích phân đạo hàm, viết tắt P, I, D Giá trị tỉ lệ xác định tác động sai số tại, giá trị tích phân xác định tác động tổng sai số khứ, giá trị vi phân xác định tác động tốc độ biến đổi sai số Tổng chập ba tác động dùng để điều chỉnh trình thông qua phần tử điều khiển vị trí van điều khiển hay nguồn phần tử gia nhiệt Nhờ vậy, giá trị làm sáng tỏ quan hệ thời gian: P phụ thuộc vào sai số tại, I phụ thuộc vào tích lũy sai số khứ, D dự đoán sai số tương lai, dựa vào tốc độ thay đổi Khâu tỉ lệ, tích phân, vi phân cộng lại với để tính toán đầu điều khiển PID Định nghĩa u(t) đầu điều khiển, biểu thức cuối giải thuật PID là: thông số điều chỉnh là: Độ lợi tỉ lệ, giá trị lớn đáp ứng nhanh sai số lớn, bù khâu tỉ lệ lớn Một giá gị độ lợi tỉ lệ lớn dấn đến trình ổn định dao động Độ lợi tích phân, giá trị lớn kéo theo sai số ổn định bị khử nhanh Đổi lại độ vọt lố lớn: sai số âm tích phân suốt đáp ứng độ phải triệt tiêu tích phân sai số dương trước tiến tới trạng thái ổn định Độ lợi vi phân, giá trị lớn giảm độ vọt lố, lại làm chậm đáp ứng độ dẫn đến ổn định khuếch đại nhiễu tín hiệu phép vi phân sai số CHƯƠNG GIỚI THIỆU VỀ CÁC PHẦN TỬ TRONG ROBOT 2.1 Động DC DC động động điện hoạt động với dòng chiều Động DC sử dụng rộng rãi ứng dụng dân cư ngành công nghiệp Thông thường động DC chạy tốc độ kết nối với nguồn điện, kiểm soát tốc độ hướng động với hỗ trợ mạch điện tử với phương pháp PWM Động DC hình thức động dân thường hoạt động với điện áp thấp, sử dụng với tải trọng nhỏ Trong công nghiệp, động DC sử dụng lĩnh vực đòi hỏi phải có mô-men xoắn lớn máy tính yêu cầu thay đổi phạm vi tốc độ 2.2 Mạch cầu H dùng IC L298N Cầu H mạch điện tử cho phép điện áp đặt lên tải theo hướng , mạch thường sử dụng để thay đổi điện áp trung bình cấp cho động nhờ vào xung PWM, cầu H dùng để đảo chiều quay động 10 15 pinMode(in2, OUTPUT); 16 pinMode(enB,OUTPUT); 17 pinMode(in3, OUTPUT); 18 pinMode(in4, OUTPUT); 19 } 20 21 void MotorRunning() 22 { 23 //Running motor A 24 digitalWrite(in1, HIGH); 25 digitalWrite(in2, LOW); 26 analogWrite(enA, 200); 27 28 //Speed PWM: 0~255 29 //Running motor B 30 digitalWrite(in3, HIGH); 31 digitalWrite(in4, LOW); 19 32 analogWrite(enB, 200); 33 34 //Speed PWM: 0~255 35 //Reverse 2s 36 delay(2000); 37 digitalWrite(in1, LOW); 38 digitalWrite(in2, HIGH); 39 digitalWrite(in3, LOW); 40 digitalWrite(in4, HIGH); 41 42 //STOP 2s 43 delay(2000); 44 digitalWrite(in1, LOW); 45 digitalWrite(in2, LOW); 46 digitalWrite(in3, LOW); 47 digitalWrite(in4, LOW); 48 } 20 49 50 void loop() 51 { 52 MotorRunning(); 53 delay(1000); 54 } 3.2 Giải thuật PID 3.2.1 Lưu đồ giải thuật 3.2.2 Thuật toán bám tường trái int Lmax=250,Midwall=9,Lwall=15,basespeed; 21 int Lmin=5; void straightL()// hàm bám tường trái { if(readirLLmin)&&(readirMid>Midwall)) { basespeed=50; motorL(1,basespeed); motorR(2,basespeed); } } 3.2.3 Thuật toán bám tường phải int Rmax=250,Midwall=9, Rwall=15 ,basespeed; int Rmin=5; 22 void straightR() { if(readirRRmin)&&(readirMid>Midwall)) { basespeed=50; motorL(2,basespeed); motorR(1,basespeed); } } 3.4 Ứng Dụng Robot giúp công việc công việc sơn dọc mép tường, di chuyển hàng hóa … KẾT LUẬN   Kết đạt được: Phần cứng: 23 - Kết cấu chắn, linh hoạt có bánh đa hướng phía trước phía sau, chịu va chạm - Động mạnh, tốc độ tối đa cấp nguồn 12V - Cảm biến hồng ngoại xác cao  Giải thuật: - Đo khoảng cách từ robot tới tường, từ xác định vị trí Robot - Luật điều khiển đơn giản hiệu  Hướng phát triển: - Kết hợp công nghệ xử lí ảnh vẽ lại hình dạng đường robot tự hành để ứng dụng việc tìm đường đến vị trí nguy hiểm thực tế - Tùy thuộc vào ứng dụng đường mà áp dụng thuật toán khác để đem lại hiệu cao 24 TÀI LIỆU THAM KHẢO [1] https://vi.wikipedia.org/wiki/Thu%E1%BA%ADt_to%C3%A1n_t%C3%ACm_ %C4%91%C6%B0%E1%BB%9Dng_%C4%91i_trong_m%C3%AA_cung [2] https://vi.wikipedia.org/wiki/B%E1%BB%99_%C4%91i%E1%BB%81u_khi %E1%BB%83n_PID [3] http://www.stdio.vn/articles/read/467/dieu-khien-2-dong-co-bang-ic-l298 [4.] http://doc.edu.vn/tai-lieu/do-an-thiet-ke-bo-pid-so-dieu-khien-toc-do-dong-codc-3828/ 25 PHỤ LỤC //Khai báo chân điều khiển động #define in1 #define in2 #define in3 #define in4 #define ena 10 #define enb //khai báo sensor (đọc analog) #define irL A0 #define irMid A1 #define irR A3 int Lmax=250,Midwall=9,Lwall=15,basespeed; int Lmin=5; int Rmax=250,Midwall=9, Rwall=15 ,basespeed; int Rmin=5; void setup() { Serial.begin(9600); pinMode(in1,OUTPUT); pinMode(in2,OUTPUT); pinMode(in3,OUTPUT); pinMode(in4,OUTPUT); pinMode(ena,OUTPUT); pinMode(enb,OUTPUT); 26 pinMode(irL,INPUT); pinMode(irMid,INPUT); pinMode(irR,INPUT); // khai báo chân kích sensor pinMode(4,OUTPUT); pinMode(3,OUTPUT); pinMode(2,OUTPUT); analogReference(EXTERNAL);// kéo điện áp xuống 3.3V void loop() { get_ir(); straightL(); } void analogreset(char x) { pinMode(x,OUTPUT); digitalWrite(x,HIGH); pinMode(x,INPUT); } //*******motor******************* void motorR(int mode, int duty) { switch(mode) { 27 case 0: //off digitalWrite(ena, LOW); break; case 1: //foward digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(ena, duty); break; case 2://backward digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(ena, duty); break; case 3: digitalWrite(in1, LOW); digitalWrite(in2, LOW); analogWrite(ena, duty); break; } } void motorL(int mode, int duty) { switch(mode) { case 0: //off digitalWrite(enb, LOW); 28 break; case 1: //foward digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enb, duty); break; case 2://backward digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enb, duty); break; case 3: digitalWrite(in3, LOW); digitalWrite(in4, LOW); analogWrite(enb, duty); break; } } void straightL() // hàm bám tường trái { if(readirLLmin)&&(readirMid>Midwall)) { basespeed=50; motorL(1,basespeed); motorR(2,basespeed); } } void straightR() // Bám tường phải { if(readirRRmin)&&(readirMid>Midwall)) { basespeed=50; motorL(2,basespeed); motorR(1,basespeed); 30 } } void pd( float er )// pid điều khiển tốc độ đông { tp=er; td=(er-older); ti=ti+er; older=er; total=kp*tp+kd*td+ki*ti; dutyL=basespeed + total; dutyR=basespeed - total; if(dutyR>255) dutyR= 255; else if(dutyR255) dutyL= 255; else if(dutyL[...]... liệu ta có thể dùng thư viện EEPROM của Arduino 14 15 2.4 Thiết Kế Robot Phần này giới thiệu sơ lược về phần cứng của robot tìm đường Robot tìm đường được thiết kế như hình gồm các phần chính như - Khung xe bằng sau: mica - Bánh xe đa hướng - Động cơ DC có hộp số dùng để truyền động cho 2 bánh xe - Hệ thống cảm biến được chọn sử dụng trong mô hình này là cảm biến hồng ngoại vật cản - Nguồn pin 12 VDC,... cách từ robot tới tường, từ đó xác định vị trí của Robot - Luật điều khiển đơn giản nhưng khá hiệu quả  Hướng phát triển: - Kết hợp công nghệ xử lí ảnh vẽ lại hình dạng đường đi của robot tự hành để ứng dụng trong việc tìm đường đến các vị trí nguy hiểm trong thực tế - Tùy thuộc vào các ứng dụng và đường đi mà áp dụng các thuật toán khác nhau để đem lại hiệu quả cao nhất 24 TÀI LIỆU THAM KHẢO [1] https://vi.wikipedia.org/wiki/Thu%E1%BA%ADt_to%C3%A1n_t%C3%ACm_... đó, dòng điện trong mạch có thể chạy từ nguồn 12V đến Q1, qua động cơ đến Q4 để về GND - Động cơ quay theo chiều ngược: Ở phía A, transistor Q1 đóng, Q3 mở Ở phía B, transistor Q2 mở, Q 4 đóng Dó đó, dòng điện trong mạch có thể chạy từ nguồn 12V đến Q2, qua động cơ đến Q3 để về GND 11 2.3 Cảm biến hồng ngoại Nguyên lý của cảm biến này như sau : mắt phát hồng ngoại sẽ phát ra sóng ánh sáng có bước sóng... Dụng Robot có thể giúp các công việc công việc như sơn dọc mép tường, di chuyển hàng hóa … KẾT LUẬN   Kết quả đạt được: Phần cứng: 23 - Kết cấu chắc chắn, linh hoạt do có bánh đa hướng phía trước và phía sau, chịu được va chạm - Động cơ mạnh, tốc độ tối đa khi cấp nguồn 12V - Cảm biến hồng ngoại chính xác cao  Giải thuật: - Đo được khoảng cách từ robot tới tường, từ đó xác định vị trí của Robot. .. khiển ATmega328P sử dụng thạch anh có chu kì dao động là 16 MHz Với vi điều khiển này, ta có tổng cộng 14 pin (ngõ) ra / vào được đánh số từ 0 tới 13 (trong đó có 6 pin PWM, được đánh dấu ~ trước mã số của pin) Song song đó, ta có thêm 6 pin nhận tín hiệu analog được đánh kí hiệu từ A0 - A5, 6 pin này cũng có thể sử dụng được như các pin ra / vào bình thường (như pin 0 - 13) Ở các pin được đề cập,... thuật PID 3.2.1 Lưu đồ giải thuật 3.2.2 Thuật toán bám tường trái int Lmax=250,Midwall=9,Lwall=15,basespeed; 21 int Lmin=5; void straightL()// hàm bám tường trái { if(readirLLmin)&&(readirMid>Midwall)) { basespeed=50; motorL(1,basespeed); motorR(2,basespeed); } } 3.2.3 Thuật toán bám tường phải... https://vi.wikipedia.org/wiki/Thu%E1%BA%ADt_to%C3%A1n_t%C3%ACm_ %C4%91%C6%B0%E1%BB%9Dng_%C4%91i _trong_ m%C3%AA _cung [2] https://vi.wikipedia.org/wiki/B%E1%BB%99_%C4%91i%E1%BB%81u_khi %E1%BB%83n_PID [3] http://www.stdio.vn/articles/read/467/dieu-khien-2-dong-co-bang-ic-l298 [4.] http://doc.edu.vn/tai-lieu/do-an-thiet-ke-bo-pid-so-dieu-khien-toc-do-dong-codc-3828/ 25 PHỤ LỤC //Khai báo chân điều khiển động cơ #define in1 5 #define in2 8 #define... ngoại chiếu vào thì nội trở của nó giảm xuống ( khoảng vài chục ôm) Lợi dụng nguyên lý này người ta chế tạo ra các cảm biến IR Hình sau biểu diễn nguyên lý hoạt động của cảm biến phát hiện vật cản IR: Sơ đồ mạch cảm biến chống nhiễu 12 Hình ảnh cảm biến sau khi hoàn thành: 2.4 Board mạch Arduino UNO R3 Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB) Tần số hoạt động... cho 2 bánh xe - Hệ thống cảm biến được chọn sử dụng trong mô hình này là cảm biến hồng ngoại vật cản - Nguồn pin 12 VDC, kèm theo mạch giảm áp - Bo mạch Arduino UNO - Module L298N 16 CHƯƠNG 3 THUẬT TOÁN ĐIỀU KHIỂN 3.1 Điều chế độ rộng xung PWM Điều khiển động cơ PWM phương pháp dựa trên nguyên tắc hoạt động cho động cơ chạy bằng chuỗi xung nhanh chóng mở và đóng Điện DC được chuyển đổi thành tín hiệu... http://doc.edu.vn/tai-lieu/do-an-thiet-ke-bo-pid-so-dieu-khien-toc-do-dong-codc-3828/ 25 PHỤ LỤC //Khai báo chân điều khiển động cơ #define in1 5 #define in2 8 #define in3 7 #define in4 6 #define ena 10 #define enb 9 //khai báo các sensor (đọc analog) #define irL A0 #define irMid A1 #define irR A3 int Lmax=250,Midwall=9,Lwall=15,basespeed; int Lmin=5; int Rmax=250,Midwall=9, Rwall=15 ,basespeed; int Rmin=5; void setup() {

Ngày đăng: 12/06/2016, 20:21

TỪ KHÓA LIÊN QUAN

w