Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
705,48 KB
Nội dung
HỌC VIỆN HÀNG KHÔNG VIỆT NAM KHOA ĐIỆN TỬ VIỄN THÔNG HÀNG KHÔNG ĐỒ ÁN MÔN HỌC ĐỀ TÀI : ĐIỀU KHIỄN ROBOT QUA INTERNET CÓ CHỨC NĂNG TỰ HÀNH Giảng viên hướng dẫn : Th.s Nguyễn Hữu Châu Minh Sinh viên thực : Phan Hồng Doanh Mssv: 1953020071 Lớp: 19 ĐHĐT- 02 TP Hồ Chí Minh - 2022 LỜI CẢM ƠN Em xin chân thành cảm ơn thầy Nguyễn Hữu Châu Minh giúp đỡ em nhiều trình thực đồ án này, Giúp e tích lũy nhiều kiến thức quý báu để ứng dụng vào cơng việc tương lai Em xin trân trọng cảm ơn! LỜI CAM ĐOAN Tôi cam đoan đồ án môn học tơi thực hiện, sơ liệu thu thâp kết phân tích báo cáo trung thực, không chép tư đề tài nghiên cứu khoa học Ngày…….Tháng…….Năm 2022 Sinh viên thực (ký ghi họ tên) LỜI NÓI ĐẦU Ngày nay, phát triển vượt bâc khoa học đời sông , sông người thay đổi ngày tôt hơn, với trang bị đại phục vụ cơng cơng nghiệp hóa đại hóa Để phục vụ cơng cải cách vi xử lý thành phần thiếu Để ứng dụng kiến thức học vi xử lý đồ án mơn học lần em “ thiết kế robot điều khiển qua internet có chức tự hành” Với nhiều ứng dụng thực tế ví dụ giúp người cơng việc nguy hiểm , khảo sát địa hình nhỏ mà người vào Với ưu điểm điều khiển không hạn chế khoảng cách cần kết nơi internet Trong q trình thực đồ án thời gian hạn hẹp ,chưa có nhiều kinh nghiệm nên khơng tránh khỏi có sai sót Em mong nhân góp ý thầy để hoàn thiện đề tài MỤC LỤC CHƯƠNG TỔNG QUAN Giới thiệu đề tài .4 Mục đích đề tài Sơ lược bước thực CHƯƠNG GIỚI THIỆU NODEMCU WIFI ESP8266 VÀ CÁC THÀNH PHẦN MẠCH Kit NodeMCU WIFI ESP8266 1.1 Sơ lược esp8266 1.2 Thông số kỷ thuật 1.3 Sơ đồ chân 1.4 Cách lập trình cho esp8266 CÁC THÀNH PHẦN MẠCH 11 2.1 Module L298N 11 2.1.1 Sơ lược L298N 11 2.1.2 Thông số kỷ thuật 11 2.1.3 Cấu tạo module L298N 11 2.1.4 Bảng trạng thái hoạt động 12 2.2 Cảm biến siêu âm HC SR04 13 2.2.1 Sơ lược HC SR04 13 2.2.2 Sơ đồ chân 13 2.2.3 Thông số kỷ thuật 14 2.2.4 Hoạt động cảm biến 14 2.3 Động servo SG90 15 2.3.1 Sơ lược động servo SG90 15 2.3.2 Thông số kỷ thuật 16 2.3.3 Sơ đồ chân 16 2.3.4 Lập trình cho động servo 16 2.4 Động giảm tốc 17 2.4.1 Thông số kỷ thuật 17 2.5 Pin 18650 17 2.5.1 Sơ lược pin 18650 17 2.5.2 Thông số kỷ thuật 18 2.6 Module mạch sạc pin 18650 tích hợp tăng áp 18 2.6.1 Thông số kỷ thuật 18 CHƯƠNG BLYNK .19 Sơ lược BLYNK 19 Cách hoạt động BLYNK .19 Cách lập trình để BLYNK ESP8266 kết nối với .20 CHƯƠNG LẬP TRÌNH .22 CHƯƠNG LẮP RÁP MẠCH 32 Mô tả hoạt động 32 Hình ảnh lắp ráp thực tế .32 CHƯƠNG KẾT LUẬN 35 Tài Liệu Tham Khảo 36 MỤC LỤC HÌNH ẢNH Hình 1.1 - NodeMCU wifi esp8266············································ Hình 1.2 - Sơ đồ chân NodeMCU wifi esp8266····························· Hình 1.3 ············································································ Hình 1.4············································································· Hình 1.5··········································································· 10 Hình 1.6··········································································· 10 Hình 1.7 - Module L298N······················································11 Hình 1.8 - Sơ đồ mạch L298N················································ 12 Hình 1.9 - Cảm biến siêu âm HC SR04····································· 13 Hình 2.0 - Động servo SG90··············································· 15 Hình 2.1 - Động giảm tốc ··················································17 Hình 2.2 - Pin 18650···························································· 17 Hình 2.3 - Mạch sạc tích hợp tăng áp······································· 18 Hình 2.4 - Giao diện BLYNK················································· 19 Hình 2.5 - Cấu hình Blynk···················································· 21 Hình 2.6 - Mặt trên····························································· 32 Hình 2.7 - Mặt trái······························································ 33 Hình 2.8 - Mặt phải ···························································· 33 Hình 2.9 - Mặt dưới·····························································34 CHƯƠNG TỔNG QUAN Giới thiệu đề tài Trong đồ án kỳ tìm hiểu vi xử lý cụ thể arduino cách lâp trình cho qua phần mềm ARDUINO IDLE để ứng dụng cho sô nhu cầu người Để đáp ứng yêu cầu em chọn đề tài “điều khiển xe qua internet có chức tự hành” Với đề tài em sử dụng esp8266 MCU WIFI lâp trình phần mềm ARDUINO IDLE , với ưu điểm nhỏ gọn, hỗ trợ UART , ADC lên tới 10bit cấu hình BLYNK app điện thoại viết code để BLYNK giao tiếp đc với esp8266, tư điều khiển động chạy theo ý app BLYNK Dùng module điều khiển động L298 để lấy tín hiệu xuất tư vi xử lý để điều khiển động , dùng pin 18650 để cấp nguồn cho toàn mạch qua module boost áp tư 3,7v lên 12v Mục đích đề tài Áp dụng học vi xử lý , mạch điện tử Để thiết kế mơ hình ứng dụng thực tế, tư có kinh nghiệm làm việc với vi xử lý ví dụ lỗi sai cấu hình cho vi xử lý , lâp trình Và robot phù hợp để sinh viên học tâp nghiên cứu thêm ngành tự động hóa cách cụ thể Sơ lược bước thực - Tìm hiều NodeMCU WIFI esp8266 cách lâp trình cho - Tìm hiểu BLYNK , cách lâp trình để esp8266 giao tiếp với - Tìm hiểu động servo sg90 cảm biến siêu âm HC SR04 - Tìm hiểu mạch điều khiển động L298N - Tìm hiểu động giảm tơc - Tìm hiểu pin 18650 mạch boost - Lắp ráp lâp trình cho esp8266 CHƯƠNG GIỚI THIỆU NODEMCU WIFI ESP8266 VÀ CÁC THÀNH PHẦN MẠCH Kit NodeMCU WIFI ESP8266 Hình 1- NodeMCU wifi esp8266 1.1 Sơ lược esp8266 ESP8266 hệ thông chip (SoC), công ty Espressif Trung Quôc sản xuất Nó bao gồm vi điều khiển Tensilica L106 32-bit (MCU) thu phát Wi-Fi Nó có 11 chân GPIO (Chân đầu vào / đầu đa dụng) đầu vào analog, có nghĩa bạn lâp trình giơng với Arduino vi điều khiển khác Bản thân chip ESP8266 có 17 chân GPIO, sô chân (6-11) sử dụng để giao tiếp với chip nhớ flash bo mạch Ngồi có kết nơi Wi-Fi, vây bạn sử dụng để kết nôi với mạng Wi-Fi, kết nôi Internet, lưu trữ máy chủ web với trang web thực, để điện thoại thơng minh bạn kết nơi với nó, Khả vơ tân! Khơng có lạ chip trở thành thiết bị IoT phổ biến 1.2.Thơng số kỷ thuật IC chính: ESP8266 Phiên firmware: NodeMCU v1.0 Chip nạp giao tiếp UART: CH340 GPIO tương thích hồn tồn với firmware Node MCU Cấp nguồn: 5VDC MicroUSB Vin GIPO giao tiếp mức 3.3VDC Tích hợp Led báo trạng thái, nút Reset, Flash Tương thích hồn tồn với trình biên dịch Arduino Kích thước: 25 x 50 mm IO capability : UART, I2C, PWM, GPIO, ADC WiFi: 2.4 GHz hỗ trợ chuẩn hỗ trợ chuẩn 802.11 b/g/n Bộ nhớ Flash: 4MB 1.3 Sơ đồ chân Hình - sơ đồ chân NodeMCU wifi esp8266 Chân GPIO D0 D1 Input Output Note GPIO16 Không gián đoạn Không hỗ trợ PWM I2C Mức cao khởi động, sử dụng để đánh thức ngủ sâu GPIO5 OK Thường sử dụng SDA(I2C) OK CHƯƠNG LẬP TRÌNH #define BLYNK_PRINT Serial #define BLYNK_TEMPLATE_ID "TMPLBQTjKeYq" #define BLYNK_DEVICE_NAME "drivecar" #define BLYNK_AUTH_TOKEN "HciTK80j7ot4ArSlZ5SjzVXaZcuj7Q0" #include #include #include #define ENA D1 #define ENB D6 #define IN1 D2 #define IN2 D3 #define IN3 D4 #define IN4 D5 #define trig D7 #define echo D8 #define servosg90 D0 Servo myservo; char auth[] = "HciTK80j7ot4Ar-SlZ5SjzVXaZcuj7Q0"; char ssid[] = "Doanh"; char pass[] = "11111111"; int x,y,v2,v4,v5,v3; 22 int tocdoxe = 100; int gioihan = 20;//khoảng cách nhận biết vật unsigned long thoigian; int khoangcach=0; int khoangcachtrai, khoangcachphai; int button; BlynkTimer timer; void tien() { analogWrite(ENA, tocdoxe); analogWrite(ENB, tocdoxe); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); } void lui() { analogWrite(ENA, tocdoxe); analogWrite(ENB, tocdoxe); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); 23 digitalWrite(IN4, LOW); } void dung() { analogWrite(ENA, tocdoxe); analogWrite(ENB, tocdoxe); digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } void rephai() { analogWrite(ENA, tocdoxe); analogWrite(ENB, tocdoxe); digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); } void retrai() { analogWrite(ENA, tocdoxe); 24 analogWrite(ENB, tocdoxe); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } BLYNK_WRITE(V0) { x = param.asInt(); } BLYNK_WRITE(V1){ y = param.asInt(); } BLYNK_WRITE(V2){ v2 = param.asInt(); } BLYNK_WRITE(V4){ v4 = param.asInt(); } BLYNK_WRITE(V5){ v5 = param.asInt(); } BLYNK_WRITE(V3){ v3 = param.asInt(); 25 } void DKCAR() { if (v2==1) // tới { tien(); Serial.println("Đang tới"); } else if (v5==1)// rẽ phải { rephai(); Serial.println("Đang rẽ phải"); } else if (v4==1)// rẽ trái { retrai(); Serial.println("Đang rẽ trái"); } else if (v3==1)// Lui { lui(); Serial.println("Đang lùi"); } else{ dung(); 26 Serial.println("Dừng"); } } void dokhoangcach() { digitalWrite(trig, LOW); delayMicroseconds(2); digitalWrite(trig, HIGH); delayMicroseconds(10); digitalWrite(trig, LOW); // Đo độ rộng xung HIGH chân echo thoigian = pulseIn(echo, HIGH); khoangcach = thoigian / / 29.412; Blynk.virtualWrite(V6, khoangcach); } void quaycbsangtrai() { myservo.write(0); delay(1000); dokhoangcach(); myservo.write(90); delay(1000); 27 } void quaycbsangphai() { myservo.write(180); delay(1000); dokhoangcach(); myservo.write(90); delay(1000); } void AUTO(){ dokhoangcach(); Serial.println(khoangcach); if (khoangcach > gioihan || khoangcach == 0) { tien(); Serial.println("Di toi"); } else { dung();delay(300); quaycbsangtrai(); dokhoangcach(); Serial.println(khoangcach); 28 khoangcachtrai = khoangcach; quaycbsangphai(); dokhoangcach(); Serial.println(khoangcach); khoangcachphai = khoangcach; if (khoangcachphai < 15 && khoangcachtrai < 15) { lui();delay(300);dung();delay(300); Serial.println("Di lui"); } else { if (khoangcachphai > khoangcachtrai) { lui();delay(300);dung();delay(300); rephai(); Serial.println("Di sang phai"); delay(300);dung();delay(300); } if (khoangcachphai < khoangcachtrai) { lui();delay(300);dung();delay(300); retrai(); Serial.println("Di sang trai"); delay(300);dung();delay(300); 29 } } } } void setup() { Serial.begin(115200); pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); myservo.attach(servosg90); pinMode(trig, OUTPUT); pinMode(echo, INPUT); Serial.begin(115200); digitalWrite(ENA, LOW); digitalWrite(ENB, LOW); digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); 30 digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); myservo.write(90); delay(500); Serial.begin(115200); Blynk.begin(auth, ssid, pass); } void loop() { // put your main code here, to run repeatedly: if (x==1&&y==0){ DKCAR(); } if (y==1&&x==0){ AUTO(); } Blynk.run(); timer.run(); } 31 CHƯƠNG LẮP RÁP MẠCH Mô tả hoạt động xe - Khi nhấn nút CONTROL BLYNK lệnh điều khiển tay sẵn sàng hoạt động , nhấn lệnh điều khiển tiến lùi trái phải BLYNK gửi tín hiệu tương ứng với lệnh ESP8266 để xuất tín hiệu cho mạch L298N điều khiển động chạy - Khi nhấn nút AUTO BLYNK lệnh xe tự hành sẵn sàng cảm biến siêu âm bắt đầu hoạt động để đo khoảng cách khoảng cách lớn giới hạn cho trước xe tiến trước , khoảng cách nhỏ giới hạn xe dưng lại servo bắt đầu quay sang trái đo khoảng cách quay sang phải đo khoảng cách khoảng cách bên lớn điều khiển xe hướng , bên khoảng cách nhỏ giới hạn xe lùi dưng lại để đo khoảng cách lặp lại vây Hình ảnh lắp ráp thực tế Hình 2.6 - Mặt 32 Hình 2.7 - Mặt trái Hình 2.8 - Mặt phải 33 Hình 2.9 - mặt 34 CHƯƠNG KẾT LUẬN Ở phần điều khiển tay xe chạy xác gần di chuyển tức thời điều khiển ,và phần tín hiệu wifi bị yếu làm lệnh điều khiển hoạt động xe bị delay Ở phần tự động di chuyển xe tránh vât cản nhiên hướng di chuyển xe có phần chưa mong mn Qua đề tài đồ án kỳ giúp em có thêm hiểu biết thực tế cách lâp trình cho vi xử lý , cách điều khiển động kiến thức sơ khai ngành tự động hóa để giúp em có kinh nghiệm cho công việc sau Lời cuôi em xin lần cảm ơn thầy Nguyễn Hữu Châu Minh hướng dẫn để em có hồn thành tơt đề tài đồ án lần 35 Tài Liệu Tham Khảo https://arduino.esp8266.vn/ https://arduinokit.vn/cai-dat-esp8266-voi-blynk/ http://arduino.vn/bai-viet/893-cach-dung-module-dieu-khien-dong-col298n-cau-h-de-dieu-khien-dong-co-dc http://arduino.vn/bai-viet/233-su-dung-cam-bien-khoang-cach-hc-sr04 https://dientutuonglai.com/dong-co-servo-sg90-goc-quay-180.html https://nshopvn.com/blog/hieu-ro-ve-pin-18650/ https://www.youtube.com/watch?v=Vz4ZW9FrJ9E&list=PLej2rpPeZ3_R-lkyo5MRZO08-dEZeNUe&index=1 36 ... 2. 1.1 Sơ lược L298N 11 2. 1 .2 Thông số kỷ thuật 11 2. 1.3 Cấu tạo module L298N 11 2. 1.4 Bảng trạng thái hoạt động 12 2 .2 Cảm biến siêu âm HC SR04 13 2. 2.1... 13 2. 2.1 Sơ lược HC SR04 13 2. 2 .2 Sơ đồ chân 13 2. 2.3 Thông số kỷ thuật 14 2. 2.4 Hoạt động cảm biến 14 2. 3 Động servo SG90 15 2. 3.1 Sơ lược... LỜI CAM ĐOAN Tôi cam đoan đồ án mơn học thực hiện, sô liệu thu thâp kết phân tích báo cáo trung thực, khơng chép tư đề tài nghiên cứu khoa học Ngày…….Tháng…….Năm 20 22 Sinh viên thực (ký ghi họ