Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
4,52 MB
Nội dung
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG Đề tài: Xe tự hành tránh vật cản điều khiển từ xa Giảng viên hướng dẫn : TS Đoàn Thị Hương Giang Sinh viên thực hiện: Tạ Tiến Đạt Đỗ Như Công – MSV: 19810000125 – MSV: 19810000304 Trịnh Mai Doanh – MSV: 19810000006 Quách Đăng Lộc – MSV: 19810000229 Lớp : D14THDK&TDH Hà Nội, tháng năm 2023 MỤC LỤ LỜI MỞ ĐẦU LỜI CẢM ƠN Đánh giá nhận xét GV hướng dẫn CHƯƠNG 1: PHÂN TÍCH BÀI TỐN 1.1 Lý chọn đề tài 1.2 Mục đích thiết kế 1.3 Phương pháp nghiên cứu .7 1.4 Giới hạn cho hệ thống CHƯƠNG II: THIẾT KẾ HỆ THỐNG 2.1 Sơ đồ khối tổng thể hệ thống 2.2 Đặc tả phần cứng 2.3 Đặc tả phần mềm 2.4 Sơ đồ nguyên lý module .9 2.4.1 Sơ đồ nguyên lý tổng thể 2.4.2 Khối điều khiển 10 2.4.3 Khối chấp hành .10 2.4.4 Khối nguồn 11 2.4.5 Khối cảm biến .11 2.5 Lựa chọn linh kiện .12 2.5.1 Vi điều khiển ESP32 .12 2.2.2 Module L298 13 2.5.3 Động Cơ RS380 14 2.5.4 Động servo MG996R 15 2.5.5 Module hạ áp LM2596 15 2.5.6 Cảm biến siêu âm 16 2.5.7 Động servo SG90 17 CHƯƠNG III: XÂY DỰNG HỆ THỐNG 18 3.1 Sơ đồ khối hệ thống .18 3.2 Lưu đồ thuật toán hệ thống 18 3.2.1 Lưu đồ thuật toán điều khiển 18 3.2.2 Lưu đồ thuật toán tránh vật cản 19 3.3 Mơ hình thực tế 19 3.4 Chương trình điều khiển 20 KẾT LUẬN 30 TÀI LIỆU THAM KHẢO .31 LỜI MỞ ĐẦU Đất nước ta giai đoạn cơng nghiệp hố đại hố, nên khoa học – kỹ thuật ln mối quan tâm hàng đầu Cùng với phát triển nhanh chóng khoa học kỹ thuật, nghành điện tự động có bước phát triển nhảy vọt với linh kiện bán dẫn, hệ thống nhúng đời kèm theo nhiều ứng dụng xuất phụ vụ cho sinh hoạt sản xuất người Hiện việc ứng dụng ngày trở nên phổ biến, từ đơn giản điều khiển cột đèn giao thông định thời, đếm sản phẩm dây chuyền sản xuất, điều khiển động điện chiều Đến ứng dụng phức tập điều khiển Robot, hệ thống kiểm soát Một ứng dụng không phần quan trọng công nghiệp điều khiển từ xa Nó góp phần lớn việc điều khiển thiết bị từ xa hay thiết bị mà người trực tiếp chạm vào để điều khiển Xuất phát từ ứng dụng quan trọng trên, em thiết kế thi công mạch “ Xe tự hành tránh vật cản điều khiển từ xa ”.Tuy nhiên, thời gian có hạn kiến thức chun mơn cịn hạn chế nên q trình thực đồ án khơng thể tránh thiếu sót định Vì vậy, chúng em mong giúp đỡ, ý kiến đóng góp thầy cô tất bạn để đồ án hoàn thiện Chúng em chân thành cảm ơn! LỜI CẢM ƠN Lời chúng em xin gửi lời cảm ơn đến TS.Đồn Thị Hương Giang Cơ hướng dẫn giúp đỡ tận tình chúng em nghiên cứu hoàn thành tốt đồ án Những lời nhận xét góp ý hướng dẫn thầy giúp chúng em có định hướng đắn trình thực đồ án, giúp chúng em nhìn ưu khuyết điểm đồ án bước khắc phục để có kết tốt Chúng em xin cảm ơn thầy cô khoa Điều Khiển Tự Động Hóa, mơn Thiết kế hệ thống nhúng, truyền đạt cho chúng em kiến thức chuyên ngành, công nghệ cách làm việc nhóm đề hồn thành tốt đồ án môn học Hà Nội, tháng năm 2023 Đánh giá nhận xét GV hướng dẫn Giảng viên hướng dẫn CHƯƠNG 1: PHÂN TÍCH BÀI TỐN 1.1 Lý chọn đề tài Ngày nay, người với ứng dụng khoa học kỹ thuật tiên tiến giới, ngày thay đổi, văn minh đại Sự phát triển kỹ thuật điện tử tạo hàng loạt thiết bị với đặc điểm bật sựchính xác cao, tốc độ nhanh, gọn nhẹ…là yếu tố cần thiết góp phần cho hoạt động người đạt hiệu ngày cao Vi xử lý điều khiển trở thành ngành khoa học đa nhiệm vụ Nó đáp ứng địi hỏi khơng ngừng ngành, lĩnh vực khác nhu cầu thiết yếu người sống hàng ngày Xuất phát từ ứng dụng đó, chúng em thiết kế thực đề tài: “Xe tự hành tránh vật cản điều khiển từ xa” 1.2 Mục đích thiết kế ❖ Đề tài có mục tiêu sau: • Điều khiển xe robot chạy tiến, lùi, trái phải • Sử dụng cảm biến siêu âm trước để tránh vật cản • Viết chương trình điều khiển cho ESP32 • Thi cơng mơ hình xe robot • Sản phẩm cuối chạy thực tế 1.3 Phương pháp nghiên cứu • Tìm hiểu tổng quan lý thuyết đề tài • Đọc hiểu tài liệu liên quan đến đề tài • Thảo luận nhóm để thống ý kiến • Thiết kế phần cứng • Thiết kế phần mềm • Thực nghiệm kiểm chứng sản phẩm 1.4 Giới hạn cho hệ thống • Mơ hình xe chạy địa hình phẳng dễ chạy • Điều khiển thơng qua mạng mạng wifi nên điều khiển phạm vi định vượt q khơng hoạt động • Nguồn hoạt động mạch pin nên có hạn chế thời gian sử dụng • Mơ hình thi cơng có kích thước khoảng 26 x 17.5cm • Tính bảo mật ứng dụng điều khiển khơng cao CHƯƠNG II: THIẾT KẾ HỆ THỐNG 2.1 Sơ đồ khối tổng thể hệ thống Sơ đồ tổng thể hệ thống Khối nguồn: Nguồn vào dùng pin 3s(3 cell mắc nối tiếp) viên pin có điện áp 11.1V (3.7V x 3),điện áp sạc đủ 100% 12.6V (4.2V x = 12.6V) sau đưa qua module hạ áp biến đổi thành nguồn DC 5V cung cấp cho khối điều khiển, hiển thị, cảm biến Khối cảm biến: Nhận vật cản đo khoảng cách thông qua việc dựa nguyên lý phát sóng phản xạ sóng sau gửi tín hiệu khối xử lý Khối xử lý: Tiếp nhận thơng tin từ khối cảm biến, từ xuất tín hiệu điều khiển gửi đến khối khối chấp hành theo chương trình lập sẵn Khối chấp hành: Nhận tín hiệu điều khiển từ khối xử lý, thực lệnh điều khiển khối xử lý đưa để tạo di chuyển xe 2.2 Đặc tả phần cứng Hệ thống sử dụng vi điều khiển ESP32 Đầu vào: - Cảm biến siêu âm - Dữ liệu truyền từ App BLynk Đầu : - Servo dùng để thay đổi góc cảm biến siêu âm - Servo dùng để thay đổi góc lái giúp xe quay trái, phỉa - Động 12v giúp xe chạy tiến lùi 2.3 Đặc tả phần mềm - Thực chức di chuyển có tín hiệu truyền từ appBlynk vào vi xử lý giúp cho xe chạy tiến lùi sang trái sang phải theo ý người dùng - Đo khoảng cách để thực chức phát vật cản - Xe phát vật cản phía trước,bên trái , bên phải để đưa tín hiệu vi xử lý thực chức di chuyển sang hướng khác để né vật cản - Các hàm chức năng: + Hàm đo khoảng cách : đọc tín hiệu từ cảm biến siêu âm sau thực tính tốn khoảng cách + Hàm đọc liệu từ AppBlynk : appBlynk gửi chuỗi liệu xuống hàm đọc liệu đưa lệnh điều khiển + Hàm điều khiển động : Thực điều khiển chức tiến lùi, quay trái, quay phải điều khiển góc biến siêu âm 2.4 Sơ đồ nguyên lý module 2.4.1 Sơ đồ nguyên lý tổng thể Với đồ án môn học Hệ thống nhúng với đề tài ‘‘Xe tự hành tránh vật cản điều khiển từ xa”, việc thiết kế phần cứng mạch hệ thống cụ thể chia làm khối : - Khối nguồn Khối cảm biến Khối động Khối điều khiển Sơ đồ mạch nguyên lý tổng quát hệ thống sau : 10 2.5.7 Động servo SG90 Hình 2.8 Động Cơ Servo SG90 Thơng Số Kỹ Thuật Động Cơ Servo SG90 - Khối lượng : 9g Kích thước: 23mmX12.2mmX29mm Momen xoắn: 1.8kg/cm Tốc độ hoạt động: 60 độ 0.1 giây Điện áp hoạt động: 4.8V(~5V) Nhiệt độ hoạt động: ºC – 55 ºC 18 CHƯƠNG III: XÂY DỰNG HỆ THỐNG 3.1 Sơ đồ khối hệ thống 3.2 Lưu đồ thuật toán hệ thống 3.2.1 Lưu đồ thuật toán điều khiển 19 3.2.2 Lưu đồ thuật tốn tránh vật cản 3.3 Mơ hình thực tế 20 3.4 Chương trình điều khiển #include Servo myservo; // create servo object to control a servo int pos = 0; // variable to store the servo position Servo myS; //===========================================/// #define BLYNK_TEMPLATE_ID "TMPLdj6EXQA1" #define BLYNK_TEMPLATE_NAME "CarRC" #define BLYNK_AUTH_TOKEN "0y3J_iq-XGqSd7aNbZ_rAx_OzdVyxSap" // Comment this out to disable prints and save space #define BLYNK_PRINT Serial #include #include #include #include //============================================// const int trig = 25; const int echo = 26; int dongcoservo = 33; int gioihan = 20;//khoảng cách nhận biết vật int i; 21 unsigned long thoigian; int khoangcach; int khoangcachtrai, khoangcachphai; int maxspeed=200; void dokhoangcach(); void dithang(int duongdi); void disangtrai(); void disangphai(); void dilui(); void resetdongco(); void quaycbsangphai(); void quaycbsangtrai(); //=====================// char auth[] = BLYNK_AUTH_TOKEN; // Your WiFi credentials // Set password to "" for open networks char ssid[] = "TienDatAbc"; char pass[] = "12345678"; int ENB = 14; int servoPin = 27; int IN3 = 13; int IN4 = 12; int x = 90; int y = 50; 22 int Speed; int Auto = 0; // Get the joystick values BLYNK_WRITE(V0) { x = param[0].asInt(); } // Get the joystick values BLYNK_WRITE(V1) { y = param[0].asInt(); } //Get the slider values BLYNK_WRITE(V2) { Speed = param.asInt(); } BLYNK_WRITE(V3) { Auto = param.asInt(); } //===================// void setup() { // put your setup code here, to run once: myservo.attach(dongcoservo); pinMode(trig, OUTPUT); pinMode(echo, INPUT); 23 pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(ENB, OUTPUT); myservo.write(90); Serial.begin(115200); myS.attach(servoPin); myS.write(90); Blynk.begin(auth, ssid, pass, "blynk.cloud", 8080); } void smartcar() { if (y > 70 && x > 75 && x 75 && x 70) { carForward(); myS.write(x); Serial.println("re trai"); } else if (x > 105 && y > 70) { carForward(); myS.write(x); 24 Serial.println("re phai"); }else if (x > 105 && y < 30) { carBackward(); myS.write(x); Serial.println("lui trai"); }else if (x < 75 && y < 30) { carBackward(); myS.write(x); Serial.println("lui phai"); } else if (x == 90 && y == 50) { carStop(); myS.write(x); Serial.println("dung"); }else if (x < 90) { myS.write(x); Serial.println("quay trai"); }else if (x > 90) { myS.write(x); Serial.println("quay phai"); } } void loop() { Blynk.run(); if(Auto == 0){ 25 smartcar(); } else { khoangcach = 0; dokhoangcach(); Serial.println(khoangcach); if (khoangcach > gioihan || khoangcach == 0) { dithang(); Serial.println("Di toi"); } else { dunglai();delay(300); quaycbsangtrai(); dokhoangcach(); Serial.println(khoangcach); khoangcachtrai = khoangcach; quaycbsangphai(); dokhoangcach(); Serial.println(khoangcach); khoangcachphai = khoangcach; if (khoangcachphai < 15 && khoangcachtrai < 15) { dilui();delay(300);dunglai();delay(300); 26 Serial.println("Di lui"); } else { if (khoangcachphai >= khoangcachtrai) { dilui();delay(300);dunglai();delay(300); disangphai(); Serial.println("Di sang phai"); delay(400);dunglai();delay(300); } if (khoangcachphai < khoangcachtrai) { dilui();delay(300);dunglai();delay(300); disangtrai(); Serial.println("Di sang trai"); delay(400);dunglai();delay(300); } } } } } void carForward() { analogWrite(ENB, Speed); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); 27 } void carBackward() { analogWrite(ENB, Speed); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); } void carStop() { digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } void dithang() { analogWrite(ENB, Speed); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); } void dunglai(){ analogWrite(ENB, Speed); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); delay(500 ); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } void disangphai() 28 { analogWrite(ENB, Speed); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); myS.write(119); } void disangtrai() { analogWrite(ENB, Speed); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); myS.write(60); } void dilui() { analogWrite(ENB, Speed); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); myS.write(90); } void dokhoangcach() { digitalWrite(trig, LOW); delayMicroseconds(2); digitalWrite(trig, HIGH); 29 delayMicroseconds(10); digitalWrite(trig, LOW); // Đo độ rộng xung HIGH chân echo thoigian = pulseIn(echo, HIGH); khoangcach = thoigian / / 29.412; } void quaycbsangtrai() { myservo.write(150); // tell servo to go to position in variable 'pos' delay(1000); dokhoangcach(); myservo.write(90); // tell servo to go to position in variable 'pos' } void quaycbsangphai() { myservo.write(30); // tell servo to go to position in variable 'pos' delay(1000); dokhoangcach(); myservo.write(90); // tell servo to go to position in variable 'pos' } void resetservo() { myservo.write(90); } 30 KẾT LUẬN Sau thời gian tìm hiểu, hướng dẫn nhiệt tình TS.Đồn Thị Hương Giang, nhóm chúng em hồn thành đề tài “Xe tự hành tránh vật cản điều khiển từ xa “ Xe hoạt động tương đối xác tự hành tránh vật cảnh điều khiển từ xa qua appBlynk Qua chúng em củng cố kiến thức học, kết hợp với thực tiễn, phục vụ cho công việc tương lai nhiều Chúng em cố gắng để thực đề tài cách hồn thiện nhanh có thể, trình độ cịn hạn chế nên cịn nhiều thiếu sót, đề tài dừng lại việc làm xe tránh vật cản đơn giản Cũng với đề tài này, tương lai chúng em phát triển mức cao hơn, kết hợp chúng với thiết bị khác để sử dụng cho chức có ích hơn… 31 TÀI LIỆU THAM KHẢO 1.Tài liệu tìm google.com.vn 2.Các diễn đàn: dientuvietnam.net, ti.com.vn, webdien.com 3.Cộng đồng Arduino Việt Nam (Arduino.vn) 4.Công nghệ chế tạo Robot (kythuatchetao.com) 32