1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án hệ thống có điện tử: Robot tự hành (bao gồm code + thuyết minh + bản vẽ chi tiết)

91 84 0

Đ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 91
Dung lượng 4,47 MB
File đính kèm đồ án htcđt.rar (19 MB)

Nội dung

Đề tài robot tự hành tải hàng được thiết kế phục vụ nhu cầu vận chuyển hàng hóa của con người.Robot bao gồm 2 chế độ: indoor và outdoor. outdoor vận chuyển ngoài trời sẽ sử dụng GPS để định vị được vị trí kho hàng cũng như vị trí đặt sản phẩm. Indoor sử dụng HCM5883l để xác định phương hướng cũng như quảng đường đặt trước của robot.Tài liệu bao gồm thuyết minh+bản vẽ robot+ code Arduino Zalo: 0705577771

Đại học Bách khoa – Đà Nẵng Khoa Cơ Khí ĐỒ ÁN: HỆ THỐNG CƠ ĐIỆN TỬ GVHD: TS Đỗ Thế Cần SVTH : Nguyễn Đăng Quang Nguyễn Công Cường Lớp : 17CĐT2 Nhóm : 17.04A MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG I: TỔNG QUAN VỀ ROBOT TỰ HÀNH TẢI HÀNG .5 1.1 Tổng quan Robot 1.1.1 Giới thiệu robot hình thành phát triển 1.1.2 Phân loại ứng dụng robot 1.2 Giới thiệu robot tự hành tránh vật cản 1.2.1 Giới thiệu robot tự hành tránh vật cản .9 1.2.2 Tổng quan robot tự hành tránh vật cản CHƯƠNG 2: THIẾT KẾ CƠ KHÍ .18 2.1 Sơ lược phần mềm thiết kế .18 2.2 Hệ thống robot tự hành 21 2.2.1 Mơ hình hóa hệ thống Sơ đồ khối hệ thống 21 2.2.2 Thiết bị khí 22 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG ĐIỆN TỬ .24 3.1 Thiết bị điện tử 24 3.1.2 Module wifi ESP8266 nodeMCU .26 3.1.3 Module Bluetooth 29 3.1.4 La bàn số HMC5883L 30 3.1.5 Khối nhận tín hiệu GPS .32 3.1.6 Module điều khiển động L298N 34 3.1.7 Động DC Servo JGY371 36 3.2 Sơ đồ nguyên lý toàn mạch 38 CHƯƠNG 4: LẬP TRÌNH ĐIỀU KHIỂN 39 4.1 Giới thiệu phần mềm lập trình 39 4.1.1 Ngơn ngữ lập trình cho arduino 39 4.1.2 Công cụ tạo ứng dụng Smartphone .39 4.2 Lập trình app INVENTOR 41 4.3 Nguyên lý điều khiển 44 4.4 Lưu đồ thuật toán 44 4.4.1 Lưu đồ thuật toán điều khiển robot GPS(outdoor) 44 4.4.2 Lưu đồ thuật toán điều khiển robot HMC5883L(indoor) 48 CHƯƠNG 5: TỔNG KẾT 50 5.1 Kết đạt 50 5.2 Hạn chế 51 5.3 Hướng phát triển 51 TÀI LIỆU THAM KHẢO .53 PHỤ LỤC 54 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN LỜI MỞ ĐẦU Ngày với phát triển nhanh chóng Cơng nghệ thơng tin việc ứng dụng vào thực tế ngành nghề đời sống đem lại lợi ích vơ to lớn.Với mong muốn tìm tịi , sáng tạo mang cơng nghệ đến gần với sống, nhóm chúng em hướng dẫn tận tình thầy Đỗ Thế Cần xin giới thiệu tới thầy, cô giáo bạn sinh viên sản phẩm Robot tự hành tải hàng Có thể nói , điều khiển tự động ngày trở nên phần thiếu sống người.Chính lí mà nhóm chúng em cố gắng sáng tạo sản phẩm Robot có tính ứng dụng cao có khả làm việc thay người.Với sản phẩm Robot dị đường tích hợp thêm chức cảnh báo khí gây cháy ứng dụng nhà kho cơng ty, xí nghiệp, phần thay người số cơng việc Bên cạnh đó, sản phẩm Robot cịn ứng dụng thêm cơng nghệ IoT, giúp người điều khiển Robot thơng qua hành động Mặc dù nhóm chúng em cố gắng mình, thời gian có hạn lượng kiến thức eo hẹp nên khơng tránh khỏi thiếu sót.Do vậy, chúng em mong nhận góp ý q báu thầy bạn để nhóm hồn thiện tốt Cuối cùng, em xin thay mặt nhóm gửi lời cảm ơn sâu sắc đến thầy hướng dẫn Đỗ Thế Cần tận tình giúp đỡ bảo để chúng em hoàn thành nghiên cứu tốt nhất! GVHD SVTH Nguyễn Đăng Quang TS Đỗ Thế Cần Nguyễn Cơng Cường ĐỒ ÁN HỆ THƠNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN MỞ ĐẦU Thế kỷ 20 phát triển vượt bậc nhân loại khoa học, kỹ thuật lẫn kinh tế Ngày robot khơng cịn xa lạ với tên Asimo, Titan…Chúng kết tinh thành tựu to lớn khoa học kỹ thuật nhân loại robot ứng dụng rộng rãi ngành công nghiệp, y tế, nghiên cứu khoa học, giải trí Trong loại robot, khơng thể không nhắc tới robot di động với đặc thù riêng mà loại robot khác khơng có Các tay máy cố định hoạt động không gian bị giới hạn phạm vi Ngược lại robot di động tự di chuyển, tạo nên khơng gian hoạt động lớn khẳng định vai trị quan trọng thiếu nhiều lĩnh vực dân quân sự, thu hút nhiều đầu tư nghiên cứu Do chúng em chọn đề tài: “Thiết kế chế tạo robot tự hành tải hàng ” Nhiệm vụ đồ án - Tính tốn thiết kế robot di động - Tính tốn thiết kế hệ thống tải hàng - Thiết kế mạch điều khiển - Thiết kế app điều khiển robot Nội dung nghiên cứu đề có ý nghĩa cao gắn liền thực tiễn Hệ thống mơ hình thu nhỏ robot di động kho Tiềm ứng dụng xe tự hành lớn, kể đến robot vận hành vật liệu, hàng hóa tịa nhà, nhà máy, cửa hàng, sân bay hay thư viện… Nghiên cứu tài liệu, thiết bị sản phẩm liên quan đến đề tài: ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN - Nghiên cứu sở lý thuyết thiết kế robot di động - Trên sở lý thuyết tính tốn, thiết kế chế tạo mơ hình CHƯƠNG I: TỔNG QUAN VỀ ROBOT TỰ HÀNH TẢI HÀNG 1.1 Tổng quan Robot 1.1.1 Giới thiệu robot hình thành phát triển 1.1.1.1 Định nghĩa robot Robot hay gọi “Người máy" loại máy thực công việc cách tự động điều khiển máy tính vi mạch điện tử lập trình Robot tác nhân khí, nhân tạo, ảo, thường hệ thống khí-điện tử Từ ngữ "robot" thường hiểu với hai nghĩa: robot khí phần mềm tự hoạt động Do đa dạng mức độ tự động hệ thống cơ-điện tử mà ranh giới phân chia robot với phần cịn lại khơng rõ ràng, thể quan niệm định nghĩa robot Về lĩnh vực Robot, Mỹ Nhật Bản nước đầu giới lĩnh vực Hầu hết robot sử dụng động điện, chủ yếu động DC chổi thay không chổi than dùng robot di động động AC dùng robot cong nghiệp máy CNC Chúng thích hợp hệ thống nhẹ tải, dạng chuyển động chủ yếu chuyển động quay 1.1.1.2 Tình hình phát triển Robot tổng hợp có khoa học công nghệ Để thiết kế chế tạo robot, ta cần có tri thức toán học, học, vật lý, điện tử, lý thuyết ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN điều khiển, khoa học tính tốn nhiều tri thức khác Để ứng dụng rô bốt, ta cần biết rõ đối tượng ứng dụng Robot sản phẩm tích hợp khoa học công nghệ với độ phức tạp cao Robot có tiến đáng kể nửa kỷ qua Robot ứng dụng công nghiệp vào năm 60 để thay người làm công việc nặng nhọc, nguy hiểm môi trường độc hại Do nhu cầu cần sử dụng ngày nhiều trình sản xuất phức tạp nên robot cần có khả thích ứng linh họat thơng minh Ngày nay, ngồi ứng dụng sơ khai ban đầu rô bốt chế tạo máy ứng dụng khác y tế, chăm sóc sức khỏe, nơng nghiệp, đóng tàu, xây dựng, an ninh quốc phịng gia đình có nhu cầu gia tăng động lực cho robot địa hình robot dịch vụ phát triển Hình 1.1 Ứng dụng robot cơng nghiệp Có thể kể đến số loại rô bốt quan tâm nhiều thời gian qua là: tay máy robot, robot di động, robot sinh học robot cá nhân ( Tay máy ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN robot bao gồm loại robot công nghiệp, robot y tế robot trợ giúp người tàn tật Robot di động nghiên cứu nhiều xe tự hành mặt đất AGV, robot tự hành nước AUV, robot tự hành không UAV robot vũ trụ Với robot sinh học, nghiên cứu thời gian qua tập trung vào loại robot robot dáng người.Bên cạnh đó, loại robot sinh học nước robot cá, cấu trúc chuyển động theo sinh vật biển nhiều nhóm nghiên cứu phát triển Hình 1.2 Ứng dụng robot nghiên cứu khoa học 1.1.2 Phân loại ứng dụng robot 1.1.2.1 Phân loại robot Thế giới robot phong phú đa dạng, phân loại chúng khơng đơn giản Có nhiều quan điểm phân loại khác Mỗi quan điểm phục vụ mục đích riêng Tuy nhiên, nêu cách phân loại bản: theo kết cấu, theo điều khiển theo phạm vi ứng dụng robot ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN  Phân loại theo kết cấu Theo kết cấu (hay theo hình học), người ta phân robot thành loại: đề các, trụ, cầu, SCARA, kiểu tay người dạng khác  Phân loại theo điều khiển Có kiểu điều khiển robot: điểu khiển hở điều khiển kín Điều khiển hở, dùng truyền động bước (động điện động thủy lực, khí tránhn,… ) mà quãng đường góc dịch chuyển tỷ lệ với số xung điều khiển Kiểu điều khiển đơn giản, đạt độ xác thấp Điều khiển kín (hay điều khiển servo), sử dụng tín hiệu phản hồi vị trí để tãng độ xác điều khiển Có kiểu điều khiển servo: điều khiển điểm – điểm điều khiển theo đường (contour) Với kiểu điều khiển điểm – điểm, phần công tác dịch chuyển từ điểm đến điểm theo đường thẳng với tốc độ cao (không làm việc) Nó làm việc điểm dừng Kiểu điều khiển dùng robot hàn điểm, vận chuyển, tán đinh, bắn đinh,… Điều khiển contour đảm bảo cho phần công tác dịch chuyển theo quỹ đạo bất kỳ, với tốc độ điều khiển Có thể gặp kiểu điểu khiển robot hàn hồ quang, phun sơn  Phân loại theo ứng dụng Cách phân loại dựa vào ứng dụng robot Ví dụ, có robot cơng nghiệp, robot dùng nghiên cứu khoa học, robot dùng kỹ thuật vũ trụ, robot dùng quân sự,… 1.1.2.2 Ứng dụng robot Robot đời giúp dây chuyền sản xuất tổ chức lại, suất ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN { Oritntation(goc_home_1[b]); MoveForward(CMtoSteps(khoangcach_home_1[b])); } Stop(); kho_1 = 3; } } } void motor1_thuan(int c){ analogWrite(in1,c); // motor1 quay thuận digitalWrite(in2,LOW); } void motor1_nghich(int d){ digitalWrite(in1,LOW); // motor quay nghịch analogWrite(in2,d); } /**************** MOTOR *****************/ void motor2_thuan(int e){ 76 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN digitalWrite(in3,LOW); // motor quay thuận analogWrite(in4,e); } void motor2_nghich(int g){ analogWrite(in3,g); // motor2 quay nghịch digitalWrite(in4,LOW); } void chaytoi(){ motor1_thuan(150); motor2_thuan(148);} void tien(){ motor1_thuan(150); motor2_thuan(140);} void chaylui(){ motor1_nghich(150); motor2_nghich(148);} void xoayphai(int a){ analogWrite(in1,a); // motor1 quay thuận digitalWrite(in2,LOW); digitalWrite(in4,LOW); // motor quay nghịch analogWrite(in3,a);} 77 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN void xoaytrai(int b){ digitalWrite(in1,LOW); // motor quay nghịch analogWrite(in2,b); analogWrite(in4,b); // mtor quay thuận digitalWrite(in3,LOW);} void Stop() { digitalWrite(in1,LOW); digitalWrite(in2,LOW); digitalWrite(in3,LOW); digitalWrite(in4,LOW); } void turn() { float tur = heading - head; if (tur < 0.0) { if (tur > -180.0) xoayphai(100); else xoaytrai(100); 78 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN } else { if (tur < 180.0) xoaytrai(100); else xoayphai(100); } } void gpshead(float x2lat, float x2lon) { bool newData = false; for (unsigned long start = millis(); millis() - start < 1000;) { while (Serial1.available()) { char c = Serial1.read(); // Serial.write(c); // uncomment this line if you want to see the GPS data flowing if (gps.encode(c)) // Did a new valid sentence come in? newData = true; } } 79 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN if (newData) { x2lat = radians(x2lat); x2lon = radians(x2lon); float flat1, flon1; unsigned long age; gps.f_get_position(&flat1, &flon1, &age); flon1 = radians(flon1); //also must be done in radians flat1 = radians(flat1); //also must be done in radians Serial.print(flat1,6); Serial.print(flon1,6); head = atan2(sin(x2lon - flon1) * cos(x2lat), cos(flat1) * sin(x2lat) sin(flat1) * cos(x2lat) * cos(x2lon - flon1)); head = head * 180 / 3.1415926535; // convert from radians to degrees float dist_calc = 0; float diflat = 0; float diflon = 0; diflat = x2lat - flat1; //notice it must be done in radians diflon = (x2lon) - (flon1); //subtract and convert longitudes to radians distance = (sin(diflat / 2.0) * sin(diflat / 2.0)); dist_calc = cos(flat1); 80 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN dist_calc *= cos(x2lat); dist_calc *= sin(diflon / 2.0); dist_calc *= sin(diflon / 2.0); distance += dist_calc; distance = (2 * atan2(sqrt(distance), sqrt(1.0 - distance))); distance *= 6371000.0; //Converting to meters if (head < 0) { head += 360; //if the heading is negative then add 360 to make it positive } } } void doc_gt_hmc5883l() { int x, y, z; qmc.read(&x, &y, &z,&heading); //azimuth = qmc.azimuth(&y,&x);//you can get custom azimuth /*Serial.print("x: "); Serial.print(x); Serial.print(" y: "); Serial.print(y); 81 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN Serial.print(" z: "); Serial.print(z);*/ Serial.print(" a: "); Serial.print(heading); Serial.println(); delay(100); } // Motor A pulse count ISR void ISR_countA() { counter_A++; // increment Motor A counter value } void ISR_countB() { counter_B++; // increment Motor B counter value } // Function to convert from centimeters to steps int CMtoSteps(float cm) { 82 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN int result; // Final calculation result float circumference = (wheeldiameter * 3.14) / 10; // Calculate wheel circumference in cm float cm_step = circumference / stepcount; // CM per Step float f_result = cm / cm_step; // Calculate result as a float result = (int) f_result; // Convert to an integer (note this is NOT rounded) return result; // End and return result } void MoveForward(int steps) { counter_A = 0; // reset counter A to zero counter_B = 0; // reset counter B to zero while (steps > counter_A || steps > counter_B) { cm_t = sonar_t.ping_cm(); cm_p = sonar_p.ping_cm(); cm_g = sonar_g.ping_cm(); if ((cm_g < 30 && cm_g > 0)||(cm_t < 20 && cm_t > 0)||(cm_p < 20 && cm_p > 0)) { Stop(); } 83 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN else tien(); } Stop(); counter_A = 0; // reset counter A to zero counter_B = 0; // reset counter B to zero } void SpinRight(int steps) { counter_A = 0; // reset counter A to zero counter_B = 0; // reset counter B to zero while (steps > counter_A || steps > counter_B){ digitalWrite(in1, HIGH); digitalWrite(in2,LOW ); // Set Motor B forward digitalWrite(in3, HIGH); digitalWrite(in4, LOW); } Stop(); counter_A = 0; // reset counter A to zero 84 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN counter_B = 0; // reset counter B to zero } // Function to Spin Left void SpinLeft(int steps) { counter_A = 0; // reset counter A to zero counter_B = 0; // reset counter B to zero while (steps > counter_A || steps > counter_B) { digitalWrite(in1,LOW ); digitalWrite(in2,HIGH ); // Set Motor B forward digitalWrite(in3, LOW ); digitalWrite(in4,HIGH); } Stop(); counter_A = 0; // reset counter A to zero counter_B = 0; // reset counter B to zero } 85 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN // Move the robot by desired angle with degree as North void Oritntation(int Angle) { //doc_gt_hmc5883l(); int Difference = Angle - heading; // if difference is negative move left or else move right int Tolerance1 = 1; int Tolerance2 = -1; while (Difference < Tolerance2 || Difference > Tolerance1) { doc_gt_hmc5883l(); Difference = Angle - heading; if (Difference >= 90 && Difference < 180) { SpinRight(25); doc_gt_hmc5883l(); //delay(1000); } if (Difference -180) { SpinLeft(25); doc_gt_hmc5883l(); 86 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN //delay(1000); } if (Difference >= 180 && Difference < 270) { SpinRight(45); doc_gt_hmc5883l(); //delay(1000); } if (Difference -270) { SpinLeft(45); doc_gt_hmc5883l(); //delay(1000); } if (Difference >= 270 && Difference < 360) { SpinRight(65); doc_gt_hmc5883l(); //delay(1000); } if (Difference -360) 87 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN { SpinLeft(65); doc_gt_hmc5883l(); //delay(1000); } if (Difference >= 45 && Difference < 90) { SpinRight(10); doc_gt_hmc5883l(); //delay(1000); } if (Difference -90) { SpinLeft(15); doc_gt_hmc5883l(); //delay(1000); } if (Difference >= 10 && Difference < 45) { SpinRight(10); doc_gt_hmc5883l(); 88 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN //delay(1000); } if (Difference -45) { SpinLeft(10); doc_gt_hmc5883l(); //delay(1000); } if (Difference >= && Difference < 10) { SpinRight(3); doc_gt_hmc5883l(); //delay(1000); } if (Difference -10) { SpinLeft(3); doc_gt_hmc5883l(); //delay(1000); } } 89 ĐỒ ÁN HỆ THÔNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN } 90 ... 23 ĐỒ ÁN HỆ THƠNG CƠ ĐIỆN TỬ GVHD: TS ĐỖ THẾ CẦN 2.2 Hệ thống robot tự hành 2.2.1 Mơ hình hóa hệ thống Sơ đồ khối hệ thống Để Robot tự hành hoạt động cần có kết hợp khối sau để tạo nên hệ thống. .. cứu chế tạo Robot tự hành tránh vật cản Trong hiệp hội nghiên cứu Robot tự hành tránh vật cản có hướng nghiên cứu khác nhau:  Hướng thứ nhất: nghiên cứu Robot tự hành tránh vật cản có khả điều... xe tự hành mặt đất AGV, robot tự hành nước AUV, robot tự hành không UAV robot vũ trụ Với robot sinh học, nghiên cứu thời gian qua tập trung vào loại robot robot dáng người.Bên cạnh đó, loại robot

Ngày đăng: 02/12/2021, 00:15

TỪ KHÓA LIÊN QUAN

w