đồ án thiết kế chế tạo máy hút bụi tự động bật tắt bằng giọng nói. Sử dụng Arduino Uno R3 làm bộ điều khiển trung tâm với mục đích Robot hút bụi tự động là robot di chuyển tự động mà không cần con người phải điều khiển , nó sẽ tự động tránh những vật cản từ đó có thể hút bụi được tất cả mọi vị trí trong nhà. Robot tránh vật bằng công nghệ dùng mạch logic đã được áp dụng từ rất sớm và thu được một số thành tựu nhất định đồng thời cũng xuất hiện một số các nhược điểm làm cho robot khó có thể xác định vật cản và di chuyển tránh vật cản một cách chính xác. Để khắc phục nhược điểm này đồ án đã xây dựng và thiết kế một robot tránh vật cản, tín hiệu từ cảm biến siêu âm được chuyển về cổng điều khiển của vi điều khiển, ở đó tín hiệu được xử lí và đưa ra tín hiệu để điều khiển cho các cơ cấu chấp hành như động cơ servo, moudule điều khiển động cơ,…Trong đồ án sử dụng các moudule vi điều khiển Arduino Uno R3 đây là một moudule rất thông dụng và rất dễ dàng lập trình. Ngoài ra phần hút bụi sử dụng các vật liệu có sẵn như quạt thông gió máy tính, các tấm vải…Rất dễ tìm kiếm trên thị trường và rất dễ chế tạo, lắp ráp.
Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức Mục lục PHẦN MỞ ĐẦU .8 1.Lí chọn đề tài 2.Mục đích nghiên cứu 3.Cách tiếp cận .8 4.Đối tượng nghiên cứu, phạm vi nghiên cứu 1.2.Phạm vi nghiên cứu 5.Phương pháp nghiên cứu chế tạo 6.Cấu trúc đồ án CHƯƠNG I: TỔNG QUAN VỀ ROBOT HÚT BỤI 11 1.1.Robot ứng dụng robot tự động thực tiễn 11 1.2.Cơ sở lí thuyết .13 1.2.1.Khái quát robot hút bụi tự động 13 1.2.2.Nguyên lí làm việc robot hút bụi tự động sử dụng cảm biến siêu âm 14 1.2.3.Một số linh kiện sử dụng đề tài 15 Thông số kỹ thuật: .15 Thông số kĩ thuật: 16 Động giảm tốc V1 17 b.Động RC Servo 9G .18 Động RC Servo 9G có kích thước nhỏ, loại sử dụng nhiều để làm mơ hình nhỏ cấu kéo không cần đến lực nặng Động RC Servo 9G có tốc độ phản ứng nhanh, bánh làm nhựa, động RC Servo 9G có tích hợp sẵn Driver điều khiển động bên nên dễ dàng điều khiển góc quay phương pháp điều độ rộng xung PWM 18 Thông số kỹ thuật: 18 19 SVTH: Nguyễn Hữu Tuấn Sibunhương Settha Đồ án tốt nghiệp GVHD: Th.S Hồng Anh Đức Hình 1.5: Động RC Servo 9G .19 c.Pin sạc 1680 Panasonic 4,2V, 1100 mAh, 2A 19 Thông số kĩ thuật .19 Thông số kĩ thuật .20 21 Hình 1.7: Mạch thu phát Bluetooth HC – 05 21 e.Module Relay với Opto cách ly kích H/L(5V DC) .21 22 Hình 1.8 Module Relay với Opto cách ly kích H/L(5V DC) .22 2.1.Ý tưởng thiết kế 23 2.2Sơ đồ khối 23 2.2.1Giao diện người máy 24 Nhiệm vụ: Nhận xử lý thông tin, liệu truyền gửi tín hiệu đến chân kích relay đóng ngắt thiết bị theo ý muốn 24 Cấu trúc mạch: 24 24 Hình 2.2: Cấu trúc mạch khối thông tin 24 Thiết kế app điều khiển Smart Phone .24 a.Giới thiệu Mit app eventor 24 Hình 2.4 Giao diện thiết kế .25 26 Hình 2.6 Block điều khiển thiết bị giọng nói sau lập trình .27 Thiết kế mạch nhận xuất tín hiệu từ Smarphone 27 a.Nguyên lý hoạt động .27 Sau Smart Phone nhận tín hiệu từ người điều khiển Google voice xử lý thông tin truyền đến Module Bluetooth xử lý Arduino Uno R3 xử lý thông tin qua việc so sánh với điều kiện xuất tín hiệu kích SVTH: Nguyễn Hữu Tuấn Sibunhương Settha Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức hoạt relay 27 Sơ đồ kết nối khối thông tin 27 27 Hình 2.7 Sơ đồ kết nối khối thông tin 27 28 Hình 2.8 Code điều khiển thiết bị giọng nói 28 2.2.2Khối xử lí .28 Phương án thiết kế: 28 Arduino Uno R3: 28 Các chân nguồn 29 Bộ nhớ sử dụng: 30 Các cổng vào/ra Arduino board: 30 Lập trình cho Arduino Uno R3 32 2.2.3Khối cảm biến .33 Quang trở: 33 Cảm biến lazer: 34 Cảm biến siêu âm SRF 04: 34 Khái niệm: 34 Nguyên lí hoạt động 34 Cấu tạo: .35 Sơ đồ ngun lí mơ moudule siêu âm 36 Code cảm biến siêu âm test cảm biến siêu âm 36 Sau nạp code vào Arduino bắt đầu test cảm biến : 36 2.2.3.Khối chấp hành 41 Module L298 .42 Động giảm tốc DC V1 43 43 Hình 2.22 Hình ảnh thực tế động giảm tốc V1 43 SVTH: Nguyễn Hữu Tuấn Sibunhương Settha Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức Nguyên tắc hoạt động: .43 2.2.4 Khối nguồn .44 Nguồn sử dụng ắc quy khô 12V 45 Sử dụng nguồn adapter 12V 45 Nguồn sử dụng pin cell 45 2.3.1.Sơ đồ lắp ráp 47 Nguyên lí hoạt động mạch: 47 2.3.2.Lưu đồ thuật toán tránh vật cản 48 48 2.4.Code tránh vật cản .49 2.5.Vật tư linh kiện .49 CHƯƠNG III: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 50 3.1.Mục đích kiểm nghiệm 50 3.2.Tiến trình kiểm nghiệm .50 3.4.Thử nghiệm khả di chuyển tránh vật cản 51 51 Hình 3.2 Robot vị trí ban đầu .51 Sau chạy đoạn robot gặp vật cản tường .52 52 Hình 3.3 Robot gặp vật cản 52 Sau tiếp tực rẽ trái tiếp tục di chuyển 52 52 Hình 3.4 Robot rẽ trái tiếp tục di chuyển 52 3.5.Đánh giá 53 Ưu điểm: 53 Xây dựng thành công phần mềm điều khiển thiết bị giọng nói thơng qua Smart Phone 53 Kết luận .57 SVTH: Nguyễn Hữu Tuấn Sibunhương Settha Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức Hướng phát triển đề tài 57 TÀI LIỆU THAM KHẢO .58 SVTH: Nguyễn Hữu Tuấn Sibunhương Settha Đồ án tốt nghiệp GVHD: Th.S Hồng Anh Đức Danh mục hình ảnh sử dụng báo cáo Hình 1 Arduino UNO R3 12 Hình Cảm biến siêu âm SRF-04 12 Hình Module điều khiển động L298 14 Hình Động giảm tốc V1 14 Hình Động RC Servo 9G 15 Hình 6.Pin sạc Panasonic 15 Hình Mạch thu phát Bluetooth HC – 05 17 Hình Module Relay với Opto cách ly kích H/L(5V DC) 18 Hình 2.1 : Sơ đồ khối hệ thống .19 Hình 2.2 : Cấu trúc mạch khối thông tin 20 Hình 2.3 Giao diện quản lý Project Mit appeventor…………………… .21 Hình 4.Giao diện thiết kế 21 Hình Giao diện lập trình (Blocks) 22 Hình Block điều khiển thiết bị giọng nói sau lập trình 23 Hình 7.Sơ đồ kết nối khối thông tin 23 Hình Code điều khiển thiết bị giọng nói 25 Hình Arduino Uno R3 25 Hình 10 Các chân nguồn Arduino Uno R3 26 Hình 11 Các chân vào/ra Arduino Uno R3 27 Hình 12 Giao diện lập trình cho Arduino Uno R3 29 Hình 13 Hình ảnh thực tế cảm biến siêu âm SRF 04 30 Hình 2.14 Sơ đồ kết nối arduino với cảm biến siêu âm SRF04 31 Hình 2.15 Code cho cảm biến siêu âm 32 Hình 15 Các khoảng cách đo từ cảm biến siêu âm 32 Hình 16 Động Servo 33 Hình 17 Cách nối dây servo với arduino 36 Hình 18 Cách nối dây khối cảm biến 37 SVTH: Nguyễn Hữu Tuấn Sibunhương Settha Đồ án tốt nghiệp GVHD: Th.S Hồng Anh Đức Hình 19 Hình ảnh thực tế khối cảm biến 37 Hình 20.Hình ảnh thực tế Module L298 38 Hình 21 Hình ảnh thực tế động giảm tốc V1 .38 Hình 22 Sơ đồ lắp ráp .42 Hình 23 Lưu đồ thuật toán 43 Hình 24 Code tránh vật cản 43 Hình 3.1 Giao diện điều khiển Smart Phone .46 Hình 3.2 Robot vị trí ban đầu 46 Hình 3.3 Robot gặp vật cản 47 Hình 3.4 Robot rẽ trái tiếp tục chuyển động 47 SVTH: Nguyễn Hữu Tuấn Sibunhương Settha Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức PHẦN MỞ ĐẦU Lí chọn đề tài Trong sống robot thay thế, trợ giúp người vận chuyển hàng hóa, robot kiểm tra nguy hiểm,robot phục vụ cho cơng việc gia đình phổ biến Nhất robot tự hoạt động mà không cần người điều khiển giúp giảm công việc cho người Cùng với phát triển khoa học, cơng nghệ việc thiết kế robot làm việc nhà điều nên làm Từ ý tưởng em chọn đề tài “ robot hút bụi tự động” cho đồ án Tính đề tài Robot hút bụi tự động robot di chuyển tự động mà không cần người phải điều khiển , tự động tránh vật cản từ hút bụi tất vị trí nhà Robot tránh vật công nghệ dùng mạch logic áp dụng từ sớm thu số thành tựu định đồng thời xuất số nhược điểm làm cho robot khó xác định vật cản di chuyển tránh vật cản cách xác Để khắc phục nhược điểm đồ án xây dựng thiết kế robot tránh vật cản, tín hiệu từ cảm biến siêu âm chuyển cổng điều khiển vi điều khiển, tín hiệu xử lí đưa tín hiệu để điều khiển cho cấu chấp hành động servo, moudule điều khiển động cơ,…Trong đồ án sử dụng moudule vi điều khiển Arduino Uno R3 moudule thông dụng dễ dàng lập trình Ngồi phần hút bụi sử dụng vật liệu có sẵn quạt thơng gió máy tính, vải…Rất dễ tìm kiếm thị trường dễ chế tạo, lắp ráp Mục đích nghiên cứu Thiết kế hồn chỉnh đưa quy trình làm mơ hình robot hút bụi tự động có khả tránh vật cản nhà vàvà hoạt động ổn định Cách tiếp cận SVTH: Nguyễn Hữu Tuấn Sibunhương Settha Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức Đồ án tiếp cận kết số cơng trình chế tạo robot cơng bố : lí thuyết chế tạo robot, sở liệu nguyên lí hoạt động số linh kiện điện tử, số máy đo chun dùng, phần mềm lập trình mơ Để từ đề xuất ngun lí đưa quy trình thực đồ án Đối tượng nghiên cứu, phạm vi nghiên cứu 4.1 Đối tượng nghiên cứu • Robot tránh vật cản • Máy hút bụi • Hệ thống cảm biến khoảng cách • Module điều khiển động Arduino Motor Shield Rev3 • Cách giao tiếp Arduino UNO R3 với hệ thống cảm biến với moudule điều khiển động Arduino Motor Shield Rev3 1.2 Phạm vi nghiên cứu Nghiên cứu, thiết kế máy hút bụi tự động có khả hút bụi tự động tránh vật cản sử dụng gia đình Phương pháp nghiên cứu chế tạo • Phương pháp chuyên gia: Hỏi ý kiến chuyên gia lĩnh vực nghiên cứu - Phương pháp nghiên cứu lí thuyết: Nghiên cứu tài liệu liên quan đến đề tài • Phương pháp nghiên cứu thực tiễn: - Mô proteus phần mềm arduino - Sử dụng module có sẵn cách tối ưu, hợp lí - Làm thân robot theo phương pháp gia cơng khí - Phương pháp viết code phần mềm có sẵn arduino Cấu trúc đồ án Ngoài phần mở đầu kết luận đồ án gồm chương: Chương Tổng quan robot hút bụi Chương Phương pháp nội dung nghiên cứu Chương Thực nghiệm đánh giá kết SVTH: Nguyễn Hữu Tuấn Sibunhương Settha Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức Chương Kết luận hướng phát triển đề tài SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 10 Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức 3.5 Đánh giá Ưu điểm: • Xây dựng thành cơng phần mềm điều khiển thiết bị giọng nói thơng qua Smart Phone • Robot hoàn thành hoạt động theo yêu cầu đặt • Robot nhỏ gọn dễ dàng di chuyển Nhược điểm: • Nếu chướng ngại vật bé ngồi tầm qt cảm biến cảm biến không hoạt động dẫn đến robot chạy sai • Hút bụi cơng suất yếu • Chưa có phần mơ đường lên đường hút bụi ngẫu nhiên SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 53 Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức CHƯƠNG IV KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 4.1 Kết qủa đạt - Đề tài nghiên cứu phương pháp điều khiển thiết kế, chế tạo robot hút bụi dựa nhu cầu thực tiễn.Robot hút bụi đạt yêu cầu đề - Mơ hình hồn thiện bao gồm phần thiết kế khí, mạch điện tử chương trình điều khiển Nghiên cứu ứng dụng vi điều khiển Arduino việc điều khiển robot hút bụi tự động thành công - Sử dụng Smart Phone điều khiển robot thơng qua giọng nói tiện lợi - Hồn thành app điều khiển giọng nói Smart Phone Kết : Mơ hình robot hút bụi hoạt động tốt theo yêu cầu thiết kế đặt 4.1.1 Một số hình ảnh đề tài Hình 3.5 Tổng thể mơ hình SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 54 Đồ án tốt nghiệp GVHD: Th.S Hồng Anh Đức Hình 3.6 Động bánh tạo chuyển động cho xe Hình 3.7 Hệ thống cảm biến bánh điều hướng SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 55 Đồ án tốt nghiệp GVHD: Th.S Hồng Anh Đức Hình 3.8 Nguồn mơ phận hút bụi Hình 3.9 Bố trí linh kiện xe SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 56 Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức 4.2.Kết chưa đạt - Robot hạn chế hoạt động địa hình nhấp nhơ - Dung lượng Pin khiêm tốn - Lặp lại diện tích làm việc - Robot chưa thể tự xạc nguồn Kết luận Sau thời gian nghiên cứu, đề tài hoàn thiện đáp ứng đầy đủ số yêu cầu ban đầu đặt cụ thể: • Nghiên cứu robot tránh vật cản sở thực tiễn sở lí thuyết thiết kế robot tránh vật cản sử dụng cảm biến siêu âm • Chế tạo thành công robot tránh vật cản sử dụng cảm biến siêu âm • Nghiên cứu, chế tạo thành cơng mơ hình máy hút bụi • Robot hút bụi tự động chạy ổn định Hướng phát triển đề tài • Lắp thêm cảm biến để robot hoạt động tốt khắc phục nhược điểm robot cũ robot tự trở chỗ sạc pin pin yếu • Thêm thuật tốn di chuyển để robot di chuyển tối ưu SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 57 Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức TÀI LIỆU THAM KHẢO [1] Nguyễn Minh Hà ( 2008), Kỹ thuật mạch điện tử, NXB Khoa học &Kĩ thuật Hà Nội [1] Nguyễn Thị Mai Lan (2015), Tập giảng Kĩ thuật tương tự,Khoa Sư phạm kĩ thuật, Đại học Sư phạm Hà Nội [2] Nguyễn Đức Phô (chủ biên), Nguyễn Đức Chiến (2009), Giáo trình cảm biến, NXB Khoa học kĩ thuật [3] Lê Thế Quang (Chủ biên) ,Thực hành kĩ thuật điện tử , NXB Đại học sư phạm Hà Nội [4] www.alldatasheet.com, truy cập cuối ngày 24/12/2018 [5] Tài liệu internet SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 58 Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức PHỤ LỤC: Code điều khiển giọng nói: String data; int led1 = 12; int led2 = 13; void setup() { Serial.begin(9600); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); } void loop() { while (Serial.available()){ //Kiểm tra byte để đọc delay(30); //Delay để ổn định char c = Serial.read(); // tiến hành đọc if (c == '#') {break;} //Thốt khỏi vòng lặp phát từ # data += c; // data = data + c } if (data.length() > 0) { Serial.println(data); if(data == "bật máy" ||data == "Bật máy"||data == "1") {digitalWrite(led1, HIGH);} ////////////////////////////////////////////////////// else if(data == "tắt máy"||data == "Tắt máy"||data == "10") {digitalWrite(led1, LOW);} data="";} Code tránh vật cản: SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 59 Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức #include #define trig //chân trig HC-SR04 #define echo 4//chân echo HC-SR04 Servo srf05; // create servo object to control a servo #define inA1 //Định nghĩa chân in1 động A #define inA2 //Định nghĩa chân in2 động A #define inB1 //Định nghĩa chân in1 động B #define inB2 //Định nghĩa chân in2 động B void setup() { pinMode(inA1, OUTPUT);//Set chân in1 dc A output pinMode(inA2, OUTPUT);//Set chân in2 dc A output pinMode(inB1, OUTPUT);//Set chân in1 dc B output pinMode(inB2, OUTPUT);//Set chân in2 dc B output pinMode(trig,OUTPUT);//chân trig phát tín hiệu pinMode(echo,INPUT);//chân echo nhận tín hiệu Serial.begin(9600); srf05.attach(5); // attaches the servo on pin to the servo object } void loop() { objectAvoider (inA1, inA2, inB1, inB2,50, 1000); } int objectDistance_cm (byte angle) { srf05.write(angle); delay(500); SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 60 Đồ án tốt nghiệp GVHD: Th.S Hoàng Anh Đức unsigned long duration;//biến đo thời gian int distance;//biến lưu khoảng cách /* phát xung từ chân trig */ digitalWrite(trig,0);//tắt chân trig delayMicroseconds(2); digitalWrite(trig,1);// phát xung từ chân trig delayMicroseconds(5);// xung có độ dài microSeconds digitalWrite(trig,0);//tắt chân trig /* tính tốn thời gian */ duration = pulseIn(echo,HIGH);//đo độ rộng xung HIGH chân echo ( http://arduino.vn/reference/pulsein ) distance = int(duration/2/29.412);//tính khoảng cách đến vật /* in kết Serial monitor */ //Serial.print(distance); //Serial.println("cm"); //delay(200); return distance; } 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 action= đứng yên action =1 thẳng action =2 lùi lại action =3 quay trái action =4 quay phải SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 61 Đồ án tốt nghiệp action =5 rẽ trái GVHD: Th.S Hoàng Anh Đức action =6 rẽ phải action =7 rẽ lùi trái action =8 rẽ lùi phả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); 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); SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 62 Đồ án tốt nghiệp motorControlNoSpeed(inL1, inL2, 0); GVHD: Th.S Hoàng Anh Đức break; case 6:// rẽ phải motorControlNoSpeed(inR1, inR2, 0); motorControlNoSpeed(inL1, inL2, 1); break; case 7:// rẽ lùi trái motorControlNoSpeed(inR1, inR2, 2); motorControlNoSpeed(inL1, inL2, 0); break; case 8:// rẽ lùi phải motorControlNoSpeed(inR1, inR2, 0); motorControlNoSpeed(inL1, inL2, 2); break; default: action = 0; } } void motorControlNoSpeed (byte in1,byte in2, byte direct) { // in1 and in2 are signal pins to control the motor // en is the enable pin // the defauspeed is the highest // direct includes: // 0:Stop // 1:Move on direct // 2:Move on another direct switch (direct) { SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 63 Đồ án tốt nghiệp case 0:// Dừng không quay GVHD: Th.S Hoàng Anh Đức digitalWrite(in1,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: } } void objectAvoider (byte inR1, byte inR2, byte inL1, byte inL2, byte allow_distance, int turn_back_time) { robotMover(inR1,inR2,inL1,inL2,1); Serial.println("Tiến"); //delay(10); int front_distance=objectDistance_cm (90); int left_distance; int right_distance; int max_distance; if (front_distance > allow_distance) { robotMover(inR1,inR2,inL1,inL2,1); Serial.println("Tiến"); SVTH: Nguyễn Hữu Tuấn Sibunhương Settha 64 Đồ án tốt nghiệp delay(10); GVHD: Th.S Hoàng Anh Đức } if (front_distance