Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 108 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
108
Dung lượng
2,66 MB
Nội dung
HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CƠ ĐIỆN ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: THIẾT KẾ CHẾ TẠO MƠ HÌNH ROBOT TỰ HÀNH GIÁM SÁT CÂY TRỒNG TRONG NHÀ LƯỚI Giảng viên hướng dẫn : TS NGƠ TRÍ DƯƠNG Sinh viên thưc : NGUYỄN TUẤN ANH Msv : 597682 Lớp : K59 – TDHB Chuyên ngành : TỰ ĐỘNG HÓA Hà Nội - 2021 LỜI CAM ĐOAN Tôi xin cam đoan cơng trình thân Các nội dung nghiên cứu kết đề tài trung thực, chưa công bố công trình Nếu có gian lận nào, xin chịu trách nhiệm trước hội đồng kết đồ án Các thơng tin tham khảo tiểu luận tác giả trích dẫn cách đầy đủ cẩn thận Hà Nội, ngày tháng năm 2021 Tác giả đồ án Nguyễn Tuấn Anh i LỜI CẢM ƠN Với tất tình cảm chân thành, em xin bày tỏ lòng biết ơn sâu sắc tới Ban Giám đốc, Ban Quản lý đào tạo, Khoa điện - Học viện Nông nghiệp Việt Nam, thầy cô, giảng viên tham gia giảng dạy khoá học 20142021, tạo điều kiện thuận lợi cho em học tập nghiên cứu, làm sở việc nghiên cứu đề tài Đặc biệt, em xin chân thành cảm ơn thầy giáo TS Ngơ Trí Dương dành nhiều thời gian, công sức để dẫn, hướng dẫn em tận tình chu đáo mặt chun mơn để em thực hoàn thành đồ án tốt nghiệp Em xin bày tỏ lịng biết ơn sâu sắc đến thầy phản biện, thầy cô hội đồng chấm đồ án đồng ý đọc duyệt góp ý kiến q báu để em hồn chỉnh đồ án định hướng nghiên cứu tương lai Mặc dù có nhiều cố gắng, song chắn khơng tránh khỏi thiếu sót định Rất mong đóng góp ý kiến Hội đồng chấm đồ án tốt nghiệp, đọc quan tâm đến đề tài đồ án Em xin chân thành cảm ơn! Hà Nội, ngày tháng năm 2021 Sinh viên thực Nguyễn Tuấn Anh ii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC HÌNH vi DANH MỤC CÁC BẢNG x MỞ ĐẦU 1 1. Đặt vấn đề 1 2. Mục đích nghiêm cứu 2 3. Nội dung phạm vi nghiên cứu 2 3.1. Nội dung 2 3.2. Phạm vi nghiên cứu 3 4. Ý nghĩa khoa học 3 5. Ý nghĩa thực tiễn 3 CHƯƠNG : TỔNG QUAN TÀI LIỆU 4 1.1. Tổng quan robot tự vận hành AGV 4 1.1.1. Khái niệm xe AGV 4 1.1.2. Lịch sử phát triển AGV 4 1.1.3. Phân loại AGV 5 1.1.4. Tình hình nghiên cứu nước 7 1.2 Ứng dụng xe tự hành AGV đời sống 8 1.2.1. Lĩnh vực giao thông vận tải 8 1.2.2. Lĩnh vực y tế 9 1.3 Ứng dụng tự động hóa xe tự hành AGV 9 1.3.1. Ứng dụng công nghiệp 9 1.3.2. Ứng dụng nông nghiệp 11 1.4 u cầu thiết kế mơ hình 14 iii CHƯƠNG 2: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 16 2.1 Đối tượng nghiên cứu 16 2.1.1. Cây dưa chuột, yếu tố ảnh hưởng sinh trưởng phát triển dưa chuột 16 2.1.2. Thiết bị chung 28 2.1.3. Cài đặt hệ điều hành cho Raspberry PI 34 2.1.4. Cài đặt phần mềm lập trình Arduino IDE 36 2.1.5. Phương pháp thiết kế mơ hình xe tự hành AGV 38 2.1.6. Ngôn ngữ lập trình C 41 2.2 Nội dung nghiên cứu 45 2.3 Phương pháp nghiên cứu 46 CHƯƠNG : KẾT QUẢ VÀ THẢO LUẬN 47 3.1 Sơ đồ tổng quát 47 3.1.1. Sơ đồ khối 47 3.1.2. Sơ đồ thiết kế không gian 48 3.2 Thiết kế phần cứng 48 3.2.1. Khung 48 3.2.2. Lựa chọn thiết bị 51 3.2.3. Các cấu chấp hành 58 3.2.4. Thiết kế phần cứng phần mềm Autocad 2007 62 3.2.5. Sơ đồ mạch điều khiển mạch động lực 65 3.3 Thiết kế phần mềm 66 3.3.1. Bảng phân cơng tín hiệu vào 66 3.3.2. Lưu đồ thuật toán 67 3.3.3. Nguyên lý hoạt động 69 3.3.4. Chương trình điều khiển 70 3.3.5. Xây dựng chương trình điều khiển 72 3.4 Lắp ráp thử nghiệm xe tự hành AGV 73 iv 3.4.1. Lắp ráp 73 3.4.2. Hình ảnh chạy thử mơ hình thực tế 76 3.5 Kết thảo luận 79 3.5.1. Kết 79 3.5.2. Thảo luận 80 3.6 Hạch toán 81 KẾT LUẬN VÀ ĐỀ NGHỊ 82 1. Kết luận 82 2. Kiến nghị 82 TÀI LIỆU THAM KHẢO 84 PHỤ LỤC 85 v DANH MỤC HÌNH Hình 1.1 Robot AGV kéo xe hàng 5 Hình 1.2 Robot AGV xe chở 6 Hình 1.3 : Mơ hình AGV xe nâng 6 Hình Ứng dụng xe tự hành vào hệ thống ô tô tự lái 8 Hình 1.10 : Hình ảnh xe tự hành AGV kéo lĩnh vữ y tế 9 Hình 1.11 : Hình ảnh mơ hình xe AGV tự hành nhà máy 10 Hình 1.12 : Hình ảnh xe tự hành hỗ trợ báo cháy tự động chữa cháy 10 Hình 1.13 : Hình ảnh xe tự hành khám phá hành tinh 11 Hình 1.14 : Máy cày tự hành dùng sản xuất Nơng nghiệp 12 Hình 1.15 Hình ảnh máy gieo hạt tự động nông nghiệp 13 Hình 1.16 : Robot làm cỏ chăm sóc trồng 14 Hình 2.1 Cây dưa chuột, rễ dưa chuột 16 Hình 2.2 Thân dưa chuột, tua mọc thân 17 Hình 2.3 Lá mầm dưa chuột 17 Hình 2.4 Lá thật dưa chuột 18 Hình 2.5 Hoa dưa chuột 18 Hình 2.6 Giai phẫu hoa dưa chuột 18 Hình 2.7 Giai phẫu trái dưa leo 19 Hình 2.8 Dưa leo thuộc nhóm dây leo ưa nhiệt 20 Hình 2.9 Món Salad dưa leo cà chua hấp dẫn 21 Hình 2.10 Hệ thống tưới nước nơng nghiệp 22 Hình 2.11 Ảnh hưởng lượng mặt trời 23 Hình 2.12 Bệnh xoắn dưa chuột 25 Hình 2.13 Bệnh héo dưa chuột 26 Hình 2.14 Bệnh đốm dưa chuột 27 Hình 2.15 Bệnh thối trái non dưa chuột 28 vi Hình 2.16 Mạch Raspberry PI 3B Zero 29 Hình 2.17 Các khối chức CPU S7-1200 32 Hình 2.18 Các phương thức kết nối PLC S7-1200 32 Hình 2.19 Arduino UNO R3 Microchip ATmega328 33 Hình 2.20 Các kết nối ngõ ra, ngõ vào Arduino UNO R3 34 Hình 2.21 Sơ đồ cắm đầu kết nối để cài hệ điều hành 35 Hình 2.22 Hướng dẫn cài đặt hệ điều hành trung tâm 36 Hình 2.23 Giao diện hệ điều hành trung tâm Raspberry pi 36 Hình 2.24 Hình ảnh phiên Ardino IDE 36 Hình 2.25 Hình ảnh liên kết tải Arduino IDE 37 Hình 2.26 Hình ảnh cài đặt 37 Hình 2.27 Hình ảnh cài đặt thành cơng 37 Hình 2.28 Giao diện phần mềm Arduino IDE 38 Hình 2.29 Hình ảnh giải thuật dị line 38 Hình 2.30 Hình ảnh mã hóa dị line 38 Hình 2.31 Hình ảnh sơ đồ khối giải thuật PID 39 Hình 2.32 Hình ảnh khâu tỉ lệ giải thuật PID 39 Hình 2.33 Hình ảnh khâu tích phân giải thuật PID 40 Hình 2.34 Hình ảnh vi phân giải thuật PID 40 Hình 2.35 Hình ảnh mơ tả giai đoạn thực thi chương trình C 45 Hình 3.1 Sơ đồ khối hệ thống 47 Hình 3.2 Hình ảnh sơ đồ thiết kế không gian 48 Hình 3.3 Hình ảnh line dành cho cảm biến Thanh Cảm Biến Dò Line TCRT5000 48 Hình 3.4 Hình ảnh khung nhơm định hình thiết kế khung xe 49 Hình 3.5 Hình ảnh cấu vít-me 50 Hình 3.6 Hình ảnh thực tế raspberry PI 51 Hình 3.7 Hình ảnh Arduino Nano 52 vii Hình 3.8 Các kết nối ngõ ra, ngõ vào Arduino Nano 53 Hình 3.9 Hình ảnh modul L298N 54 Hình 3.10 Hình ảnh Modul Webcam Dahua Z2+ Plus 54 Hình 3.11 Hình ảnh Màn hình LCD 5″ cho Raspberry 55 Hình 3.12 Hình ảnh modul Thanh cảm biến dị line TCRT5000 56 Hình 3.13 Hình ảnh nguyên lý hoạt động cảm biến dị line 57 Hình 3.14 Hình ảnh Acquy Yamato 12v 57 Hình 3.15.Hình ảnh Động Cơ DC Servo GM25-370 DC Geared Motor 58 Hình 3.16 Hình ảnh Động RC Servo MG996 61 Hình 3.17 Hình ảnh bánh xe dùng mơ hình 62 Hình 3.18 Hình ảnh thiết kế đế xe AutoCad 2007 62 Hình 3.19 Hình ảnh phần cứng đế xe 62 Hình 3.20 Hình ảnh thiết kế cấu nâng hạ camera phần mên AutoCad 2007 63 Hình 3.21 Hình ảnh cấu nâng hạ camera 63 Hình 3.22 Hình ảnh thiết kế cấu xoay camera AutoCad 2007 64 Hình 3.23 Hình ảnh cấu xoay camera 64 Hình 3.24 Hình ảnh sơ đồ mạch nguyên lý mạch độg lực 65 Hình 3.27 Hình ảnh lưu đồ thuật toán cấu xoay Camera 69 Hình 3.28 Hình ảnh tải cài đặt JRE 72 Hình 3.29 Hình ảnh xây dựng chương trình Aduino IDE 72 Hình 3.230 Hình ảnh lắp ráp bánh xe dây dẫn điện 73 Hình 3.31 Hình ảnh lắp động cảm biến dò line vào khung 73 Hình 3.32 Hình ảnh lắp ráp điều khiển xe 74 Hình 3.33 Lắp ráp cấu vít me ren vào khung xe 74 Hình 3.34 Lắp ráp động Camera vào cấu cố định Camera 74 Hình 3.35 Hình ảnh lắp ráp cấu Camera vào cấu nâng hạ 75 Hình 3.36 Hình ảnh lắp ráp mơ hình hồn thiện 75 viii Hình 3.37 Hình ảnh xe tự động chạy hai luống 76 Hình 3.38 Hình ảnh xe di chuyển chụp ảnh dưa chuột 76 Hình 3.39 Hình ảnh camera thu thập hình ảnh dưa chuột khơng bị bênh (chụp từ diện) 77 Hình 3.40 Hình ảnh camera thu thập hình ảnh bình thường dưa chuột khơng bệnh (chụp từ đằng sau) 77 Hình 3.41 Hình ảnh Camera thu thập hình ảnh dưa chuột bị bệnh phấn trắng 78 Hình 3.42 Hình ảnh Camera thu thập hình ảnh dưa chuột bị bệnh sương mai 78 ix Đối với ứng dụng nhận dạng đối tượng phát triển rộng không sâu bệnh cây, chăn ni, hay đời sống hàng ngày giám sát an ninh, nhận dạng khuôn mặt, theo dõi đối tượng Em mong quý thầy, cô tạo điều kiện hướng cho bạn sinh viên khoá sau tiếp tục phát triển cho đề tài 83 TÀI LIỆU THAM KHẢO [1] Pivietnam.com.vn [2] Tài liệu học làm robot < http://mlab.vn/mo-hinh-robot> [3] Bệnh thường gặp dưa leo [4] Tài liệu Raspberry [5] Paul A Viola and Michael J Jones, (2001) Rapid Object Detection using a Boosted Cascade of Simple Features IEEE Conference on Computer Vision and Pattern Recognition [6] Paul A Viola and Michael J Jones, (2004) Robust real-time face detection International Journal of Computer Vision 84 PHỤ LỤC CHƯƠNG TRÌNH ĐIỀU KHIỂN XE #include #define DC11 #define DC12 #define DC21 #define DC22 #define DC31 #define DC32 #define HN0 #define HN1 #define HN2 10 #define HN3 11 #define HN4 12 #define IM A0 #define CT A1 #define SV A2 Servo Servo1; int sensor[5]; float P = 0, D = 0, I = 0; int error = 0, previous_error, PID_value = 0, initial_motor_speed = 200; int Kp = 0, Kd = 0, Ki = 0; int t_h = 20000; int lx = 0, goc = 0; unsigned long int time_chup = 0; 85 void setup() { // put your setup code here, to run once: pinMode(DC11,OUTPUT); pinMode(DC12,OUTPUT); pinMode(DC21,OUTPUT); pinMode(DC22,OUTPUT); pinMode(DC31,OUTPUT); pinMode(DC32,OUTPUT); pinMode(IM,OUTPUT); pinMode(HN0,INPUT_PULLUP); pinMode(HN1,INPUT_PULLUP); pinMode(HN2,INPUT_PULLUP); pinMode(HN3,INPUT_PULLUP); pinMode(HN4,INPUT_PULLUP); pinMode(CT,INPUT_PULLUP); digitalWrite(DC11,LOW); digitalWrite(DC12,LOW); digitalWrite(DC21,LOW); digitalWrite(DC22,LOW); Servo1.attach(A2); while(digitalRead(A2) == 1){ // di xuong digitalWrite(DC32,LOW); digitalWrite(DC31,HIGH); } digitalWrite(DC32,LOW); digitalWrite(DC31,LOW); } 86 void loop() { // DI THEO LINE read_sensor_values(); calculate_pid(); motor_control(); if(millis() - time_chup >= 10000){ chup(); chup(); lx = lx + 1; if(lx >= 2) lx = 0; if(lx == 0){ // di xuong digitalWrite(DC32,LOW); digitalWrite(DC31,HIGH); } if(lx == 1){ // di len digitalWrite(DC32,HIGH); digitalWrite(DC31,LOW); } delay(t_h); digitalWrite(DC32,LOW); digitalWrite(DC31,LOW); delay(1000); chup(); chup(); time_chup = millis(); 87 } } // -// // -// void chup(){ goc = goc + 180; if(goc > 180) goc = 0; Servo1.write(goc); digitalWrite(IM,HIGH); delay(1000); digitalWrite(IM,LOW); delay(5000); } // -// // -// void read_sensor_values() { sensor[0] = digitalRead(HN0); sensor[1] = digitalRead(HN1); sensor[2] = digitalRead(HN2); sensor[3] = digitalRead(HN3); sensor[4] = digitalRead(HN4); 88 if ((sensor[0] == 0) && (sensor[1] == 0) && (sensor[2] == 0) && (sensor[4] == 0) && (sensor[4] == 1)) error = 4; else if ((sensor[0] == 0) && (sensor[1] == 0) && (sensor[2] == 0) && (sensor[4] == 1) && (sensor[4] == 1)) error = 3; else if ((sensor[0] == 0) && (sensor[1] == 0) && (sensor[2] == 0) && (sensor[4] == 1) && (sensor[4] == 0)) error = 2; else if ((sensor[0] == 0) && (sensor[1] == 0) && (sensor[2] == 1) && (sensor[4] == 1) && (sensor[4] == 0)) error = 1; else if ((sensor[0] == 0) && (sensor[1] == 0) && (sensor[2] == 1) && (sensor[4] == 0) && (sensor[4] == 0)) error = 0; else if ((sensor[0] == 0) && (sensor[1] == 1) && (sensor[2] == 1) && (sensor[4] == 0) && (sensor[4] == 0)) error = -1; else if ((sensor[0] == 0) && (sensor[1] == 1) && (sensor[2] == 0) && (sensor[4] == 0) && (sensor[4] == 0)) error = -2; else if ((sensor[0] == 1) && (sensor[1] == 1) && (sensor[2] == 0) && (sensor[4] == 0) && (sensor[4] == 0)) error = -3; else if ((sensor[0] == 1) && (sensor[1] == 0) && (sensor[2] == 0) && (sensor[4] == 0) && (sensor[4] == 0)) error = -4; 89 else if ((sensor[0] == 0) && (sensor[1] == 0) && (sensor[2] == 0) && (sensor[4] == 0) && (sensor[4] == 0)) if (error == -4) error = -5; else error = 5; } // -// // -// void calculate_pid() { P = error; I = I + error; D = error - previous_error; PID_value = (Kp * P) + (Ki * I) + (Kd * D); if(PID_value >= 55 ) PID_value = 55; if(PID_value =500){ Serial.write(benh); mySerial.write(benh); time_gui = millis(); } } // // void tinnhan() { // - - binh thuong, - thap, - cao - 93 if (benh == suong_mai) { if(cp_gui != 1){ sms.SendSMS(sdt, "CAY DANG BI BENH SUONG MAI "); // Serial.println("CAY DANG BI BENH SUONG MAI"); cp_gui = 1; } } if (benh == phan_trang) { if(cp_gui != 2){ sms.SendSMS(sdt, "CAY DANG BI BENH PHAN TRANG "); // Serial.println("CAY DANG BI BENH PHAN TRANG "); cp_gui = 2; } } if (benh == 0){ if(cp_gui != 3){ sms.SendSMS(sdt, "CAY KHONG BI BENH GI "); // Serial.println("CAY KHONG BI BENH GI "); cp_gui = 3; } } } 94 CHƯƠNG TRÌNH GỬI TIN NHẮN VỀ MAIL #include #include #include //needed for library #include #include #include #include #include #define led #define button char auth[] = "hT3ZNU4z2NWfhMMxD0gnMLuz0r4CyOBV"; char ssid[] = ""; char pass[] = ""; WiFiClient client; WidgetLED led_1(V1); unsigned long time_gui = 0; int benh = 0, save = 0,tg = 0; int mang[10]; int set_uart = 0; void setup() { // put your setup code here, to run once: pinMode(led , OUTPUT); pinMode(button , INPUT_PULLUP); // TU DONG KET NOI WIFI 95 WiFiManager wifiManager; wifiManager.autoConnect("ESP", "12345678"); Blynk.begin(auth, ssid, pass); nhayled(3); // Blynk.run(); // Blynk.email("nguyenquocviet490@gmail.com", "THONG BAO", "KHOI DONG"); // delay(5000); } void loop() { Serial.print("b = "); Serial.println(benh); Serial.print("s = "); Serial.println(save); if (set_uart == 1) { Serial.begin(9600); set_uart = 2; } if (set_uart == 0) set_uart = 1; // -CAI DAT WIFI // // NHAN DU LIEU VA XU LY -// if (Serial.available()) { benh = Serial.read(); } // -BLYNK -// Blynk.run(); if (save != benh) { 96 if (benh == 0) { Blynk.email("nguyenquocviet490@gmail.com", "THONG BAO", "CAY KHONG BI BENH"); } if (benh == 1) { Blynk.email("nguyenquocviet490@gmail.com", "THONG BAO", "CAY DANG BI BENH SUONG MAI"); } if (benh == 2) { Blynk.email("nguyenquocviet490@gmail.com", "THONG BAO", "CAY DANG BI BENH PHAN TRANG"); } save = benh; } } // -// // -// void nhayled(int lan) { int k; for (k = 0; k < lan; k++) { digitalWrite(led, LOW); delay(500); digitalWrite(led, HIGH); delay(500); } } 97