Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 47 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
47
Dung lượng
5,99 MB
Nội dung
ĐỒ ÁN TỐT NGHIỆP XETỰCÂNBẰNGĐIỀUKHIỂNBLUETOOTH DANH MỤC CÁC TỪ VIẾT TẮT DC Direct Current GND Ground I2C Inter-Interated Circuit MPU Motion Processing Unit PID Proportional Integral Derivative PWM Pulse Width Modulation RX Receiver TX Transmitter VCC Voltage Common Collector ĐỒ ÁN TỐT NGHIỆP Trang 3/45 CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu chung Lĩnh vực robot lĩnh vực phát triển Trong thời kì phát triển mạnh mẽ vượt bậc khoa học công nghệ, robot dần thay người làm việc môi trường nguy hiểm độc hại Robot ứng dụng ngày đa lĩnh vực với nhiều mục đích học tập, kinh tế, sản xuất, giải trí, … Với khả tựcân bằng, di chuyển nhanh, linh hoạt mơ hình nhỏ gọn “Xe tựcân bằng” đề tài ứng dụng nhiều sống Hình 1-1: Nguyên lí hoạt động xetựcânXe hai bánh tựcân hoạt động dựa nguyên lí mơ hình lắc ngược Tức xe ngã trước hai bánh xe chạy trước để đỡ cho xe đứng lên; ngược lại, xe ngã sau hai bánh xe lùi sau để đỡ cho xe đứng lên Có nhiều phương pháp để thiết lập giải thuật điềukhiển cho xetựcân bằng, đề tài sử dụng giải thuật điềukhiển PID Phương pháp đơn giản, dễ sử dụng phổ biến Ngồi ra, tơi sử dụng Module bluetooth để điềukhiển cho xe chạy tiến, chạy lùi, xoay trái xoay phải Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 4/45 1.2 Mục tiêu đề tài Mục tiêu đề tài là: – Tự thiết kế xây dựng mơ hình xe hai bánh có khả tựcân đơn giản nhỏ gọn; – Hiểu phần mềm lập trình lập trình cho vi điềukhiển ATmega 328PU; – Hiểu nguyên lí hoạt động cảm biến gia tốc bậc tự do, module điềukhiển động L298N, module bluetooth HC-05; – Hiểu giải thuật điềukhiển PID; – Điềukhiểnxecân qua bluetoot điềukhiểnxe chạy địa hình dốc, khơng phẳng 1.3 Hướng thực – Tìm hiểu phần mềm lập trình lập trình cho vi điềukhiển ATmega 328PU; – Tìm hiểu cấu tạo, ngun lí hoạt động cảm biến gia tốc bậc tự do, module bluetooth HC-05; cách điềukhiển động module điềukhiển động L298N kết hợp giải thuật điềukhiển PID điềukhiển cho xetựcân – Điềukhiểnxe qua bluetooth CHƯƠNG TÌM HIỂU ĐỀ TÀI 1.4 Sơ đồ khối Dựa theo yêu cầu đề tài mà hệ thống phải bao gồm khối sau: Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 5/45 Hình 2-1: Sơ đồ khối hệ thống Hệ thống hoạt động theo sơ đồ hình 2-1 hoạt động theo nguyên lý sau: Nhiệm vụ khối nguồn cung cấp nguồn cho toàn hệ thống hoạt động Sau cấp nguồn, khối cảm biến lấy thơng số góc nghiêng, vận tốc ngã xe truyền khối điềukhiển Khối điềukhiển sau nhận liệu từ khối cảm biến xử lý liệu truyền tín hiệu điềukhiển cho khối động Khối động nhận tín hiệu truyền từ khối điềukhiểnđiềukhiển động di chuyển để xetựcânXetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 6/45 Khi yêu cầu, tín hiệu từ khối module bluetooth gửi đến khối điềukhiển Khối điềukhiển có nhiệm vụ phản hồi kết nối với module bluetooth; từ giúp điềukhiểnxe 1.1 Chức khối 1.1.1 Khối nguồn Hình 2-2: Sơ đồ nguyên lí khối nguồn Khối nguồn cung cấp nguồn cho hệ thống hoạt động Có nhiều loại nguồn nguồn pin, nguồn từ adapter sử dụng lượng mặt trời tạo nguồn điện Trong đề tài tơi sử dụng nguồn pin có điện áp 11.1 V, dòng 2.2 A Nguồn pin đủ để cấp cho toàn hệ thống hoạt động ổn định Khối nguồn có khả giảm áp đầu vào để đầu có điện áp V cấp cho khối điềukhiển khối module bluetooth hoạt động 1.1.2 Khối cảm biến – Nhiệm vụ khối cảm biến thu thập liệu tất cảm biến hệ thống, sau truyền liệu khối điềukhiển để xử lí – Trong đề tài sử dụng hai cảm biến: cảm biến bậc tự MPU 6050 cảm biến nhiệt độ độ ẩm DHT11 Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 7/45 2.2.2.1 Cảm biến gia tốc bậc tự MPU 6050 − Cảm biến sử dụng rộng rãi, phổ biến có hiệu cho đề tài robot tựcân Hình 2-3: Cảm biến gia tốc bậc tự MPU 6050 [1] − Cảm biến tích hợp trục cảm biến gồm quay hồi chuyển trục cảm biến gia tốc trục Cảm biến gia tốc bậc tự MPU 6050 đóng vai trò quan trọng, cảm biến thu thập góc nghiêng, gia tốc xe cập nhật liệu liên tục nên giúp xe hoạt động ổn định trạng thái cân − Các thông số kỹ thuật: + Điện áp hoạt động: từ V đến V + Giao tiếp: chuẩn I2C + Các độ phân giải góc: ± 250, ± 500, ± 1000, ± 2000 dps + Các độ phân giải gia tốc: ± 2, ± 4, ± 6, ± g − Các chân cảm biến: + VCC: chân nối với nguồn + GND: chân nối đất + SCL: chân tạo xung clock đồng + SDA: chân truyền nhận liệu + XDA: chân liệu kết nối với cảm biến khác + XDL: chân xung clock kết nối với cảm biến khác + AD0: bit địa I2C + INT: chân ngắt 2.2.2.2 Cảm biến nhiệt độ độ ẩm DHT11 Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 8/45 − Hiện có nhiều cảm biến nhiệt độ độ ẩm cảm biến LM35, cảm biến DS18B20,… Với đề tài sử dụng cảm biến nhiệt độ độ ẩm DHT11 − DHT11 loại cảm biến thông dụng dễ sử dụng nên ưa chuộng Cảm biến có chi phí rẻ dễ lấy liệu thông qua giao tiếp 1-wire So với cảm biến khác liệu cảm biến DHT11 lấy có độ xác cao Khi nhiệt độ độ ẩm mơi trường thay đổi cảm biến DHT11 đo cập nhật liên tục Hình 2-4: Cảm biến nhiệt độ độ ẩm DHT11 − Các chân cảm biến: + VCC: chân nối với nguồn + DATA: chân lấy liệu + NC: chân không kết nối + GND: chân nối đất − Các thông số kỹ thuật cảm biến: + Điện áp để cảm biến hoạt động: V đến V + Nhiệt độ hoạt động khoảng từ 20 % đến 90 % (với sai số ±5 %) + Độ ẩm hoạt động khoảng từ °C đến 50 °C (với sai số ±2 °C) + Tần số lấy mẫu tối đa Hz + Khoảng cách truyền tối đa 20 m − Cảm biến nhiệt độ độ ẩm DHT11 nối với trung tâm điềukhiển có nhiệm vụ đo nhiệt độ độ ẩm môi trường; lấy truyền liệu trung tâm điềukhiển Khi nhận yêu cầu từ module bluetooth (tức nhấn lệnh Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 9/45 Update), trung tâm điềukhiển gửi nhiệt độ độ ẩm để hiển thị lên điện thoại Hình 2-5: Hiển thị nhiệt độ độ ẩm điện thoại 1.1.3 Khối điềukhiển Hình 2-6: Sơ đồ nguyên lý khối điềukhiển – Khối điềukhiển có hai nhiệm vụ Thứ nhận thông tin góc nghiêng xe, gia tốc xetừ cảm biến gia tốc bậc tự do, tính tốn điềukhiển cho xetựcân Nhiệm vụ thứ hai kết nối với module bluetooth để điềuXetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 10/45 khiểnxe cập nhật nhiệt độ, độ ẩm mơi trường có u cầu Khối điềukhiển xử lí tất liệu xuất tín hiệu port điềukhiển để cấp cho khối động khối module bluetooth hoạt động – Hiện đa dạng loại vi điềukhiển giúp có nhiều lựa chọn để làm linh kiện cho trung tâm điềukhiển Ví dụ vi điềukhiển thuộc họ vi điều khiểm Atmel, họ vi điềukhiển AMCC, họ vi điềukhiển microchip, … Trong đề tài chọn vi điềukhiển ATmega 328PU, sử dụng rộng rãi, phổ biến, gần gũi, dễ lập trình – Tìm hiểu vi điềukhiển ATmega 328PU: Hình 2-7: Vi điềukhiển ATmega 328PU [2] Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 33/45 Hình 4-11: Xe chạy qua bậc cao cm Xe chạy qua bậc cao cm dễ dàng, khơng té ngã Xe giữ cân vượt qua bậc Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 34/45 Hình 4-12: Xe chạy qua bậc cao cm Xe chạy qua bậc cao cm vượt qua nấc lấy lại cân với khoảng cách vừa đủ để giảm tốc độ 1.10 Thử nghiệm địa hình dốc Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 35/45 Hình 4-13: Xe chạy lên dốc nghiêng khoảng 20° Hình 4-14: Xe vượt qua dốc nghiêng khoảng 20° Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 36/45 Với dốc nghiêng khoảng 20°, ta điềukhiển cho xe vượt qua Điều kiện để xe chạy lên dốc xe phải cách dốc khoảng để xe lấy trớn Xe vượt qua dốc giảm tốc lấy lại cân với khoảng cách cần đủ Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 37/45 CHƯƠNG KẾT LUẬN 5.1 Kết − Kết đạt được: + Hiểu cách tổng quát đề tài xetựcân + Tự thiết kế thi cơng mạch, mơ hình xetựcân theo yêu cầu đề tài + Nắm quy trình, cách thức điềukhiểnxe hiểu phương pháp PID giúp xetựcân − Ưu điểm: + Xe có thiết kế nhỏ gọn, khơng bị lệch + Xe hoạt động trạng thái cân bằng, không ngã khơng có lực tác động q lớn + Điềukhiểnbluetooth ổn định + Hai thông số nhiệt độ độ ẩm cập nhật yêu cầu, thông số thay đổi theo điều kiện môi trường xác, sai số − Nhược điểm: + Cần nhiều thời gian làm phép thử sai để xetựcân + Xetựcân bằng, không té ngã chưa thể đứng yên chỗ + Khi chạy địa hình khơng phẳng địa hình dốc xe chưa ổn định tuyệt đối 5.2 Hướng mở rộng − Có thể thiết kế cho xe nhỏ gọn để xe hoạt động linh hoạt − Sử dụng thêm cảm biến khác để lấy thông số môi trường cảm biến bụi, cảm biến khí gas,… − Ứng dụng nhiều cảm biến khác để xe thực nhiều chức khác cập nhật vị trí, chạy dò line,… TÀI LIỆU THAM KHẢO [1] forum.arduino.cc [2] Kiều Xuân Thực (2009); Vi điềukhiển cấu trúc - lập trình ứng dụng; NXB giáo dục Việt Nam Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 38/45 [3] Kiều Xuân Thực (2009); Vi điềukhiển cấu trúc - lập trình ứng dụng; NXB giáo dục Việt Nam [4] Phan Đình Duy (2016), Vũ Đức Lung, Lê Quang Minh; NXB Đại Học Quốc Gia, Hồ Chí Minh [5] Nguyễn Thị Phương Hà (1999); Lý thuyết điềukhiểntự động; NXB Khoa học kỹ thuật, Hà Nội [6] Nguyễn Thị Phương Hà (1999); Lý thuyết điềukhiểntự động; NXB Khoa học kỹ thuật, Hà Nội [7] Nguyễn Thị Phương Hà (1999); Lý thuyết điềukhiểntự động; NXB Khoa học kỹ thuật, Hà Nội [8] Nguyễn Doãn Phước (2002); Lý thuyết điềukhiển tuyến tính; NXB khoa học kỹ thuật, Hà Nội Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 39/45 PHỤ LỤC A #CODE XECÂNBẰNG #include #include #include #include #include MPU6050 CBgoc; Kalman kalman; const int DHTPIN =2; const int DHTTYPE=DHT11; DHT dht(DHTPIN,DHTTYPE); int16_t ax,ay,az; int16_t gx,gy,gz; double dt; double last_time; double CurrentAngle; double set_point = 0; double kp = 23 ; //23 //22//22//23 double ki = 0.5 ; //0 //0.2//0.2//0.5 double kd = 2.2 ; //1.15//2//2.2//2.2 double p,i,d; double e, last_e; double output; Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 40/45 char blue; char status = '0'; int AIN1 = 8; int AIN2 = 11; int BIN1 = 12; int BIN2 = 13; int CIN1 = 9; int CIN2 = 10; int speed; int speed1; int spd = 100; void setup() { pinMode(AIN1, OUTPUT); pinMode(AIN2, OUTPUT); pinMode(BIN1, OUTPUT); pinMode(BIN2, OUTPUT); pinMode(CIN1, OUTPUT); pinMode(CIN2, OUTPUT); Serial.begin(9600); Wire.begin(); CBgoc.initialize(); } void loop() { cambiengoc(); Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 41/45 temphumi(); if(CurrentAngle > -80 && CurrentAngle < 80) { pid(); android(); } else { stop(); } } void pid() { double samplingtime = 0.01; e = set_point - CurrentAngle; p = e*kp; i += e*ki*samplingtime; d = (kd*(e - last_e))/samplingtime; output = p+i+d; last_e = e; speed = constrain(output, -255, 255); if(status == '0') { if(blue == 'S') { set_point = 0; } else if(blue == 'U') { Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 42/45 set_point = 8; } else if(blue == 'D') { set_point = -8; } if(blue == 'L' && CurrentAngle > -3 && CurrentAngle < 3) { trai(); } else if(blue == 'R' && CurrentAngle > -3 && CurrentAngle < 3) { phai(); } else if(CurrentAngle > -80 && CurrentAngle < 80) { motor(); } } else if(status == '1') { motor(); } } void motor() { if(speed >= 0) { analogWrite(CIN1, speed); Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 43/45 digitalWrite(AIN1, HIGH); digitalWrite(AIN2, LOW); analogWrite(CIN2, speed); digitalWrite(BIN1, LOW); digitalWrite(BIN2, HIGH); } else { speed = map(speed,0,-255,0,255); analogWrite(CIN1, speed); digitalWrite(AIN1, LOW); digitalWrite(AIN2, HIGH); analogWrite(CIN2, speed); digitalWrite(BIN1, HIGH); digitalWrite(BIN2, LOW); } } void stop() { analogWrite(CIN1, speed); digitalWrite(AIN1, LOW); digitalWrite(AIN2, LOW); analogWrite(CIN2, speed); digitalWrite(BIN1, LOW); digitalWrite(BIN2, LOW); } void cambiengoc() { Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 44/45 CBgoc.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); ay=(ay/182); gx=(gx/131); CurrentAngle=kalman.getAngle(ay,gx,dt); dt=(millis()-last_time)/1000.0; last_time=millis(); } void trai() { speed1 = constrain((speed+100), -255, 255); analogWrite(CIN1,abs(speed1)); digitalWrite(AIN1, LOW); digitalWrite(AIN2, HIGH); analogWrite(CIN2,abs(speed1)); digitalWrite(BIN1, LOW); digitalWrite(BIN2, HIGH); } void phai() { speed1 = constrain((speed+100), -255, 255); analogWrite(CIN1,abs(speed1)); digitalWrite(AIN1, HIGH); digitalWrite(AIN2, LOW); analogWrite(CIN2,abs(speed1)); digitalWrite(BIN1, HIGH); digitalWrite(BIN2, LOW); } Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 45/45 void android() { if(Serial.available() > 0) { blue = Serial.read(); if(Serial.read() == '1') { status = '1'; } } } void temphumi() { if (blue=='T') { float h =dht.readHumidity(); float t =dht.readTemperature(); Serial.print("Temperature: "); Serial.println(t); Serial.print("Humidity: "); Serial.println(h); while (blue=='T') { pid(); android(); } } } Xetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 46/45 #CODE ĐIỀUKHIỂNBLUETOOTHXetựcânđiềukhiểnbluetooth ĐỒ ÁN TỐT NGHIỆP Trang 47/45 Xetựcânđiềukhiểnbluetooth ... biến gia tốc bậc tự do, module bluetooth HC-05; cách điều khiển động module điều khiển động L298N kết hợp giải thuật điều khiển PID điều khiển cho xe tự cân – Điều khiển xe qua bluetooth CHƯƠNG... nhận tín hiệu điều khiển từ khối điều khiển thực theo yêu cầu để xe tự cân – Tìm hiểu Module điều khiển động L298N: Hình 2-9: Module điều khiển động L298N Xe tự cân điều khiển bluetooth ĐỒ ÁN... thơng tin góc nghiêng xe, gia tốc xe từ cảm biến gia tốc bậc tự do, tính tốn điều khiển cho xe tự cân Nhiệm vụ thứ hai kết nối với module bluetooth để điều Xe tự cân điều khiển bluetooth ĐỒ ÁN TỐT