1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đồ án thiết kế: Xe tự hành Robot tự hành Robot dò đường

29 147 1

Đ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 29
Dung lượng 4,8 MB

Nội dung

Xe tự hành hay còn gọi là Robot tự hành “là một thành phần có vai trò quan trọng trong ngành Robot học. Đề tài tập trung tìm hiểu về nguyên lý hoạt động và cách thức thực hiện xe tự hành (cụ thể là xe dò đường). Điểm khác biệt của xe tự hành này với các loại xe khác (ô tô, xe nâng…) là khả năng tự động đi theo một đường đã vạch sẵn mà không cần sự điều khiển của con người trong quá trình di chuyển

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỂN THÔNG - - BÁO CÁO ĐỒ ÁN THIẾT KẾ Đề tài: XE TỰ HÀNH GVHD: PGS.TS Nguyễn Văn Khang SVTH: Nguyễn Minh Lê Quang Hoàn KSTN ĐTVT K58 KSTN ĐTVT K58 Hà Nội, tháng 01 năm 2017 MỤC LỤC DANH MỤC HÌNH VẼ .2 DANH MỤC BẢNG BIỂU .3 DANH MỤC THUẬT NGỮ NỘI DUNG Lý chọn đề tài .5 Yêu cầu chức phi chức 2.1 Yêu cầu chức .5 2.2 Yêu cầu phi chức Thiết kế hệ thống 3.1 Sơ đồ khối 3.2 Sơ đồ chi tiết khối 3.3 Ước tính chi phí 10 3.4 Phân tích nhân lực 11 3.5 Phân công công việc 12 Thực 12 4.1 Thực phần cứng 12 4.2 Thực phần mềm 17 4.3 Nạp code 20 Kiểm thử 23 5.1 Kiểm tra cảm biến hồng ngoại 23 5.2 Kiểm tra hoạt động xe 25 KẾT LUẬN 26 HƯỚNG PHÁT TRIỂN 27 TÀI LIỆU THAM KHẢO 28 1|Page DANH MỤC HÌNH V Hình 3-1: Sơ đồ khối tổng qt .6 Hình 3-2: Khối cảm biến Hình 3-3: Khối điều khiển .8 Hình 3-4: Khối điều khiển động Hình 3-5: Động giảm tốc .9 Hình 3-6: Khối nguồn 10 Hình 4-1: Tổng thể sản phẩm 13 Hình 4-2: Khối cảm biến .14 Hình 4-3: Arduino UNO R3 14 Hình 4-4: Khối điều khiển động .16 Hình 4-5: pin 9V 17 Hình 4-6: Mở sửa sổ Device Manager 21 Hình 4-7: Giao diện cửa sổ Device Manager 21 Hình 4-8: Chọn Board 22 Hình 4-0-9: Nạp chương trình .22 Hình 5-1: Test cảm biến đen, lại trắng 23 Hình 5-2: Test cảm biến đen, cịn lại trắng 24 Hình 5-3: Test cảm biến đen lại trắng 24 Hình 5-4: Test cảm biến đen, lại trắng 25 DANH MỤC BẢNG BIỂ 2|Page Bảng 3.1: Ước tính chi phí .10 Bảng 3.2: Phân tích nhân lực 11 Bảng 3.3: Phân công công việc 12 3|Page DANH MỤC THUẬT NGỮ EEPROM GND SRAM Electrically Erasable Programmable Read Only Memory Ground Static Random Access Memory 4|Page NỘI DUNG Lý chọn đề tài Xe tự hành hay gọi Robot tự hành “là 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, robot tự hành ngày hoàn thiện cho thấy lợi ích cơng nghiệp sinh hoạt.”[1] Với yêu cầu môn Đồ Án Thiết Kế 2, nhóm chúng em nhận thấy xe tự hành đề tài thú vị, giúp chúng em có thêm kiến thức lĩnh vực khác khí, điện, điện tử… chúng em thực thành cơng đề tài Do đó, xe tự hành lựa chọn để chúng em nghiên cứu cho môn Đồ Án Thiết Kế Đề tài tập trung tìm hiểu nguyên lý hoạt động cách thức thực xe tự hành (cụ thể xe dò đường) Điểm khác biệt xe tự hành với loại xe khác (ô tô, xe nâng…) khả tự động theo đường vạch sẵn mà không cần điều khiển người trình di chuyển Trong trình thực hiện, chúng em khơng thể tránh khỏi thiếu sót Chúng em mong nhận đóng góp thầy bạn để đồ án hồn thiện Chúng em xin chân thành cảm ơn PGS.TS Nguyễn Văn Khang, người trực tiếp hướng dẫn chúng em thực đồ án Thầy giúp đỡ, tận tình bảo chúng em suốt trình học tập nghiên cứu Yêu cầu chức phi chức 2.1 Yêu cầu chức - Xe chạy cheo đường màu đen vạch sẵn trắng - Khi xe nhận diện đường đi, quay trái để tìm đường - Xe có nút nhấn cho phép hoạt động khơng hoạt động 5|Page 2.2 Yêu cầu phi chức - Số bánh xe: bánh Hai bánh sau truyền động (mỗi bánh điều khiển động cơ), bánh trước dẫn động - Số cảm biến: cặp cảm biến hồng ngoại chia làm bên đối xứng với so với mặt phẳng trung trực xe trước bánh dẫn động Đặt tên cảm biến (tính từ trái qua phải xe: A1, A2, B1, B2) Khoảng cách hai cảm biến cạnh nhau: cm - Đường đi: o Màu: Màu đen o Chiều rộng: 3,5 cm - Nguồn: 18V o Nguồn cho mạch điều khiển trung tâm: 9V o Nguồn cho động cơ: 9V - Chất liệu sàn xe: nhựa mica - Kích thước: 25cm x 12cm x 8cm (chiều dài x chiều rộng x chiều cao) - Chi phí sản xuất: 700.000 đồng - Ngày hoàn thành: 12/01/2017 6|Page Thiết kế hệ thống 3.1 Sơ đồ khối Hình 3-1: Sơ đồ khối tổng quát - Khối cảm biến: xác định xe đường, lệch phải hay lệch trái - Khối điều khiển trung tâm: Nhận tín hiệu từ khối cảm biến, từ đưa định điều khiển khối điều khiển động - Khối điều khiển động cơ: điều khiển động xe quay hay dừng - Khối nguồn: Cung cấp nguồn điện cho khối lại hoạt động 3.2 Sơ đồ chi tiết khối 3.2.1 Khối cảm biến Khối cảm biến bao gồm module hồng ngoại cảm biến hồng ngoại Các cảm biến hồng ngoại nằm bên so với mặt phảng trung trực xe Module hồng ngoại nhận tín hiệu từ cảm biến hồng ngoại thông qua chân IN1, IN2, IN3, IN4 Giá trị chân OUT cảm biến hồng ngoại trả giá trị anolog Module hồng ngoại nhận tín hiêụ, sau dùng triết áp để định ngưỡng trả chân OUT hay Các chân OUT1, OUT2, OUT3, OUT4 nối với chân tương ứng khối điều khiển 7|Page Hình 3-2: Khối cảm biến 3.2.2 Khối điều khiển trung tâm Ta dùng module Arduino làm trung tâm điều khiển Lý do: Arduino có hệ thống thư viện phong phú, lập trình dễ dàng, dễ kết nối với khối khác Hình 3-3: Khối điều khiển 8|Page 3.2.3 Khối điều khiển động Khối điều khiển động gồm module L298 động điều khiển bánh trái, phải xe Module L298 IC tích hợp gồm hai mạch cầu H bên Điện áp làm tăng công suất đầu từ 5V đến 47V,dịng lên đến 4A.Các chân IN1, IN2, IN3, IN4 chân tín hiệu điều khiển, nối với chân tương ứng khối điều khiển, định xem motor quay Các chân OUT1, OUT2, OUT3, OUT4 nối với động Hai chân ENA ENB để điều khiển mạch cầu H L298 Nếu mức logic “1” cho phép mạch cầu H hoạt đơng, cịn mức logic “0” mạch cầu H khơng hoạt động Hình 3-4: Khối điều khiển động Mỗi động gắn với bánh xe truyền động cho xe Khi xe muốn rẽ trái, động bên phải quay, động bên trái không quay ngược lại, xe muốn rẽ phải động bên trái quay, động bên phải không quay Ở đây, chúng em dùng động giảm tốc để đảm bảo khả chịu tải xe, kéo theo vật khác 9|Page Hình 4-8: Khối cảm biến Khối cảm biến gồm module cảm biến hồng ngoại cảm biến hồng ngoại cảm biến lắp thẳng hàng đầu xe Khoảng cách cảm biến độ rộng đường xe chạy (đường màu đen) Các cảm biến đặt khoảng cách phù hợp (tức không ảnh hưởng lẫn nhau) 4.1.2 Khối điều khiển trung tâm Khối điều khiển trung tâm chúng em sử dụng Arduino uno R3 có hình dạng sau: Hình 4-9: Arduino UNO R3 - Một vài thơng số Arduino UNO R3 14 | P a g e Bảng 4.1: Thông số Arduino UNO R3[5] - - Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC Tần số hoạt động 16MHz Dòng tiêu thụ 30 mA Điện áp giới hạn – 20V DC Điện áp khuyên dùng – 12V DC Số chân Digital I/O 14 (6 chân cho phép sử dụng PWM) Số chân Analog (độ phân giản 10bit) Dòng tối đa chân I/O 30 mA Dòng tối đa (5V) 500mA Bộ nhớ flash 32KB SRAM 2KB EEPROM 1KB Các chân chức năng: o GND: cực âm nguồn điện cấp cho UNO o 5V: Điện áp 5V đầu với dòng tối đa 500 mA o 3.3V: Điện áp 3.3V đầu với dòng tối đa 50 mA o Vin: Cấp nguồn cho Arduino UNO Bộ nhớ: o Bộ nhớ Flash (32KB): đoạn lệnh lập trình lưu trữ nhớ Flash vi điều khiển o Bộ nhớ SRAM (2KB): giá trị biến khai báo lập trình lưu Khi điện, liệu trêu SRAM bị o EEPROM (1KB): giống ổ cứng mini – nơi đọc ghi liệu không bị mất điện 4.1.3 Khối điều khiển động Khối điều khiển động module L298 có hình dạng sau: 15 | P a g e Hình 4-10: Khối điều khiển động Hai nguồn 5V 9V nối cực âm với chân GND module Nguồn 5V (lấy từ chân 5V Kit Arduino UNO R3) để nuôi module, nguồn 9V để cấp dòng cho động A B 4.1.4 Khối nguồn Vì thiết kế xe nên khơng thể dùng nguồn cắm dây Chính thế, chúng em định dùng nguồn pin 9V Một pin dùng để cấp nguồn cho Arduino, pin dùng để cấp nguồn cho động 16 | P a g e Hình 4-11: pin 9V 4.2 Thực phần mềm Chúng em sử dụng phầm mềm Arduino 1.6.12 để viết chương trình cho xe chạy Code bao gồm phần: 4.2.1 Khai báo chân Đầu tiên, ta cần khai báo chân tín hiệu khối khác nối với chân Arduino UNO #define #define #define #define #define #define #define #define inA1 //Định nghĩa chân inA1 động A nối với chân Arduino inA2 //Định nghĩa chân inA2 động A nối với chân Arduino inB1 //Định nghĩa chân inB1 động A nối với chân Arduino inB2 //Định nghĩa chân inB2 động A nối với chân Arduino sensor1 10 //Định nghĩa cảm biến nối với chân 10 Arduino UNO sensor2 11 //Định nghĩa cảm biến nối với chân 11 Arduino UNO sensor3 12 //Định nghĩa cảm biến nối với chân 12 Arduino UNO sensor4 13 //Định nghĩa cảm biến nối với chân 13 Arduino UNO UNO UNO UNO UNO 4.2.2 Khai báo chân input, ouput Sau khai báo chân tín hiệu, ta xác định chân nhận tín hiệu đầu vào, chân cho tín hiệu đầu Để kiểm tra hoạt động hệ thống sau này, ta dùng lệnh Serial.begin() để gửi tín hiệu máy tính void setup() { 17 | P a g e Serial.begin(9600); // thiet lap su dung serial gui tin hieu ve may tinh pinMode(sensor1, INPUT); //Set chân sensor module hồng ngoại input pinMode(sensor2, INPUT); pinMode(sensor3, INPUT); pinMode(sensor4, INPUT); } pinMode(inA1, pinMode(inA2, pinMode(inB1, pinMode(inB2, OUTPUT); //Set chân inA1 dc A output OUTPUT); OUTPUT); //Set chân inB1 dc B output OUTPUT); 4.2.3 Hàm điều khiển chiều quay động void motorControlNoSpeed(byte in1, byte in2, byte direct) { // in1, in2 tín hiệu điều khiển chiều quayd dộng switch (direct) { case 0:// Dừng không quay digitalWrite(in1, LOW); //Thiết lập in1 mức thấp (LOW) digitalWrite(in2, LOW); break; case 1:// Quay chiều thứ digitalWrite(in1, HIGH); digitalWrite(in2, LOW); break; case 2:// Quay chiều thứ digitalWrite(in1, LOW); digitalWrite(in2, HIGH); break; //default: } } 4.2.4 Hàm điều khiển hướng di chuyển xe void robotMover(byte inR1, byte inR2, byte inL1, byte inL2, byte action) { /* inR1 inR2 chân tín hiệu động bên phải inL1 inL2 chân tín hiệu động bên trái */ switch (action) { case 0:// không di chuyển motorControlNoSpeed(inR1, inR2, 0); motorControlNoSpeed(inL1, inL2, 0); break; case 1://đi thẳng motorControlNoSpeed(inR1, inR2, 1); motorControlNoSpeed(inL1, inL2, 1); break; case 2:// lùi lại motorControlNoSpeed(inR1, inR2, 2); motorControlNoSpeed(inL1, inL2, 2); 18 | P a g e break; case 3:// quay trái motorControlNoSpeed(inR1, inR2, 1); motorControlNoSpeed(inL1, inL2, 2); break; case 4:// quay phải motorControlNoSpeed(inR1, inR2, 2); motorControlNoSpeed(inL1, inL2, 1); break; case 5:// rẽ trái motorControlNoSpeed(inR1, inR2, 1); motorControlNoSpeed(inL1, inL2, 0); break; case 6:// rẽ phải motorControlNoSpeed(inR1, inR2, 0); motorControlNoSpeed(inL1, inL2, 1); break; default: action = 0; } } 4.2.5 Các hàm kiểm tra vị trí cảm biến hồng ngoại int deviationDarkLine4Sensor(int PinNumb1, int PinNumb2, int PinNumb3, int PinNumb4) { int left = 0; //biến kiểm tra lệch trái int right = 0; // biến kiểm tra lệch phải left = IRSensor(PinNumb1) + IRSensor(PinNumb2); //kiểm tra cảm biến trái màu đen right = IRSensor(PinNumb3) + IRSensor(PinNumb4); //kiểm tra cảm biến phải màu đen Serial.print("left="); // In lên hình máy tính (nếu kết nối máy tính) Serial.println(left); Serial.print("right="); Serial.println(right); if ((left != 0) || (right != 0))return left - right; else return 3; } boolean IRSensor(byte PinNumb) { //0 sáng //1 tối return(digitalRead(PinNumb)); } 4.2.6 Hàm điều khiển động dựa theo cảm biến hồng ngoại void darkLineFollower(byte inR1, byte inR2, byte inL1, byte inL2, byte sen1, byte sen2, byte sen3, byte sen4) { //Hàm điều khiển robot bám line màu tối //inR1, inR2 inL1, inL2 chân tín hiệu điều khiển động di chuyển bên phải trái 19 | P a g e //sen1 đến sen4 chân nhận tín hiệu từ cảm biến hồng ngoại switch (deviationDarkLine4Sensor(sen1, sen2, sen3, sen4)) { case -1: robotMover(inR1, inR2, inL1, inL2, 1);// rẽ phải delay(10); // dừng 10 ms break; case -2: robotMover(inR1, inR2, inL1, inL2, 1); delay(10); break; case 1: robotMover(inR1, inR2, inL1, inL2, 2);// rẽ trái delay(10); break; case 2: robotMover(inR1, inR2, inL1, inL2, 2); delay(10); break; case 0: robotMover(inR1, inR2, inL1, inL2, 3);// tiến thẳng delay(10); break; default: robotMover(inR1, inR2, inL1, inL2, 0);// đứng yên delay(10); break; } } 4.2.7 Hàm void loop() { darkLineFollower(inA1, inA2, inB1, inB2, sensor1, sensor2, sensor3, sensor4); delayMicroseconds(1); } 4.3 Nạp code - Bước 1: Kết nối Arduino Kết nối với máy tính - Bước 2: Tìm cổng kết nối Arduino UNO với máy tính[6] Mở cử sổ Run gõ lệnh “mmc devmgmt.msc” 20 | P a g e Hình 4-12: Mở sửa sổ Device Manager Sau bấn Enter, cửa sổ Device Manager lên Hình 4-13: Giao diện cửa sổ Device Manager 21 | P a g e Chọn mục Ports (COM & LPT), ta thấy cổng COM Arduino UNO R3 - Bước 3: Khởi động Arduino IDE - Bước 4: Cấu hình làm việc cho Arduino IDE Vào menu Tools -> Board -> chọn Arduino Uno Hình 4-14: Chọn Board - Bước 5: Mở file code nạp chương trình Hình 4-0-15: Nạp chương trình 22 | P a g e Kiểm thử 5.1 Kiểm tra cảm biến hồng ngoại Trong phần báo cáo này, chúng em kiểm thử cảm biến Chúng em kiểm thử cách viết chương trình riêng để kiểm tra hoạt động cảm biến Chương trình có ghi cảm biến nhận màu đen hình máy tính lên chữ “black” cảm biến nhận màu trắng hình máy tính lên nét liền Chúng em thực kiểm tra tất cảm biến trường hợp ghi lại ảnh if (digitalRead (sensor1) == 0) Serial.print(" _"); else Serial.print ("black "); if (digitalRead (sensor2) == 0) Serial.print (" _"); else Serial.print ("black "); if (digitalRead (sensor3) == 0) Serial.print (" _"); else Serial.print ("black "); if (digitalRead (sensor4) == 0) Serial.print (" _\n"); else Serial.print ("black \n"); delay (100);  Trường hợp 1: test cảm biến đen; cảm biến 2, 3, trắng Kết sau: Hình 5-16: Test cảm biến đen, lại trắng 23 | P a g e  Trường hợp 2: test cảm biến đen lại trắng Kết ghi lại sau: Hình 5-17: Test cảm biến đen, lại trắng  Trường hợp 3: test cảm biến đen lại trắng Kết thu sau: Hình 5-18: Test cảm biến đen lại trắng 24 | P a g e  Trường hợp 4: test cảm biến đen lại trắng Kết thu sau: Hình 5-19: Test cảm biến đen, lại trắng 5.2 Kiểm tra hoạt động xe Sau thấy cảm biến hồng ngoại hoạt động xác, chúng em tiến hành nạp code để test hoạt động xe, bao gồm cảm biến hồng ngoại điều khiển động Kết cho thấy xe chạy với yêu cầu chức theo đường kẻ sẵn, khơng có trường hợp xe bị vạch 25 | P a g e KẾT LUẬN Như vậy, kỳ học, chúng em thực thành công đồ án với đề tài “Xe tự hành” Qua lần thực hành làm trực tiếp xe môn học này, chúng em rút nhiều học bổ ích Từ đây, chúng em thấy ưu, nhược điểm thân để từ khắc phục Chúng em xin chân thành cảm ơn PGS.TS Nguyễn Văn Khang tạo điều kiện cho chúng em để chúng em có kinh nghiệm quý báu tự tin để chuẩn bị hành trang bước vào đời 26 | P a g e HƯỚNG PHÁT TRIỂN Ta nhận thấy xe theo đường cố định nhiên gặp vật cản khơng thể tiếp Bên cạnh đó, xe theo hướng cho trước xe khơng có tính chủ động Vì vậy, nhóm chúng em xin đề xuất số hướng phát triển đề tài đề xe hoàn thiện tương lai:  Thiết kế thêm phận cảm biến vật cản để gặp vật cản xe quay  theo hướng khác tiếp Thiết kế thêm điều khiển từ xa để điều khiển xe theo hướng mong muốn 27 | P a g e TÀI LIỆU THAM KHẢO [1] Phạm Trọng Đạt, Phạm Đức Linh, Nguyễn Văn Lượm, “Thiết kế robot mini tự hành dò đương mê cung” Tuyển tập Báo cáo Hội nghị sinh viên Nghiên cứu Khoa học lần thứ Đại học Đà Nẵng năm 2010 [2] http://banlinhkien.vn/goods-955-dong-co-giam-toc-v3-1-dong-co-.html, truy cập lần cuối ngày 15/10/2016 [3] http://linhkien69.vn/banh-xe-dan-dong_i1898_c173.aspx, truy cập lần cuối ngày 26/11/2016 [4] http://linhkien69.vn/module-hong-ngoai-do-duong-v2_i2088_c156.aspx, truy cập lần cuối ngày 26/11/2016 [5] http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi, truy cập lần cuối 14/01/2017 [6] http://arduino.vn/bai-viet/nap-chuong-trinh-cho-arduino-uno-r3, truy cập lần cuối ngày 14/01/2017 28 | P a g e ... môn Đồ Án Thiết Kế Đề tài tập trung tìm hiểu nguyên lý hoạt động cách thức thực xe tự hành (cụ thể xe dò đường) Điểm khác biệt xe tự hành với loại xe khác (ô tô, xe nâng…) khả tự động theo đường. .. NỘI DUNG Lý chọn đề tài Xe tự hành hay gọi Robot tự hành “là 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, robot tự hành ngày hoàn thiện cho... cầu mơn Đồ Án Thiết Kế 2, nhóm chúng em nhận thấy xe tự hành đề tài thú vị, giúp chúng em có thêm kiến thức lĩnh vực khác khí, điện, điện tử… chúng em thực thành cơng đề tài Do đó, xe tự hành lựa

Ngày đăng: 12/04/2021, 08:28

TỪ KHÓA LIÊN QUAN

w