1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

XE tự cân BẰNG điều KHIỂN BLUETOOTH (có code)

47 641 9

Đ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 47
Dung lượng 5,99 MB

Nội dung

ĐỒ ÁN TỐT NGHIỆP XE TỰ CÂN BẰNG ĐIỀU KHIỂN BLUETOOTH 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 xe tự cân Xe 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ều khiển cho xe tự cân bằng, đề tài sử dụng giải thuật điều khiể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ều khiển cho xe chạy tiến, chạy lùi, xoay trái xoay phải Xe tự cân điều khiển bluetooth ĐỒ Á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ều khiển ATmega 328PU; – Hiểu nguyên lí hoạt động cảm biến gia tốc bậc tự do, module điều khiển động L298N, module bluetooth HC-05; – Hiểu giải thuật điều khiển PID; – Điều khiển xe cân qua bluetoot điều khiển xe 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ều khiể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ề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 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: Xe tự cân điều khiển bluetooth ĐỒ Á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ều khiển Khối điều khiển sau nhận liệu từ khối cảm biến xử lý liệu truyền tín hiệu điều khiển cho khối động Khối động nhận tín hiệu truyền từ khối điều khiển điều khiển động di chuyển để xe tự cân Xe tự cân điều khiển bluetooth ĐỒ Á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ều khiển Khối điều khiển có nhiệm vụ phản hồi kết nối với module bluetooth; từ giúp điều khiển xe 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ều khiể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ều khiể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 Xe tự cân điều khiển bluetooth ĐỒ Á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 Xe tự cân điều khiển bluetooth ĐỒ Á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ều khiển có nhiệm vụ đo nhiệt độ độ ẩm môi trường; lấy truyền liệu trung tâm điều khiển Khi nhận yêu cầu từ module bluetooth (tức nhấn lệnh Xe tự cân điều khiển bluetooth ĐỒ ÁN TỐT NGHIỆP Trang 9/45 Update), trung tâm điều khiể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ều khiển Hình 2-6: Sơ đồ nguyên lý khối điều khiển – Khối điều khiển có hai nhiệm vụ Thứ nhậ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 NGHIỆP Trang 10/45 khiển xe cập nhật nhiệt độ, độ ẩm mơi trường có u cầu Khối điều khiển xử lí tất liệu xuất tín hiệu port điều khiển để cấp cho khối động khối module bluetooth hoạt động – Hiện đa dạng loại vi điều khiển giúp có nhiều lựa chọn để làm linh kiện cho trung tâm điều khiển Ví dụ vi điều khiển thuộc họ vi điều khiểm Atmel, họ vi điều khiển AMCC, họ vi điều khiển microchip, … Trong đề tài chọn vi điều khiể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ều khiển ATmega 328PU: Hình 2-7: Vi điều khiển ATmega 328PU [2] Xe tự cân điều khiển bluetooth ĐỒ Á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 Xe tự cân điều khiển bluetooth ĐỒ Á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 Xe tự cân điều khiển bluetooth ĐỒ Á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° Xe tự cân điều khiển bluetooth ĐỒ ÁN TỐT NGHIỆP Trang 36/45 Với dốc nghiêng khoảng 20°, ta điều khiể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 đủ Xe tự cân điều khiển bluetooth ĐỒ Á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 xe tự cân + Tự thiết kế thi cơng mạch, mơ hình xe tự cân theo yêu cầu đề tài + Nắm quy trình, cách thức điều khiển xe hiểu phương pháp PID giúp xe tự 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ều khiển bluetooth ổ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 để xe tự cân + Xe tự 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ều khiển cấu trúc - lập trình ứng dụng; NXB giáo dục Việt Nam Xe tự cân điều khiển bluetooth ĐỒ ÁN TỐT NGHIỆP Trang 38/45 [3] Kiều Xuân Thực (2009); Vi điều khiể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ều khiển tự động; NXB Khoa học kỹ thuật, Hà Nội [6] Nguyễn Thị Phương Hà (1999); Lý thuyết điều khiển tự động; NXB Khoa học kỹ thuật, Hà Nội [7] Nguyễn Thị Phương Hà (1999); Lý thuyết điều khiển tự động; NXB Khoa học kỹ thuật, Hà Nội [8] Nguyễn Doãn Phước (2002); Lý thuyết điều khiển tuyến tính; NXB khoa học kỹ thuật, Hà Nội Xe tự cân điều khiển bluetooth ĐỒ ÁN TỐT NGHIỆP Trang 39/45 PHỤ LỤC A #CODE XE CÂN BẰ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; Xe tự cân điều khiển bluetooth ĐỒ Á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(); Xe tự cân điều khiển bluetooth ĐỒ Á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') { Xe tự cân điều khiển bluetooth ĐỒ Á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); Xe tự cân điều khiển bluetooth ĐỒ Á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() { Xe tự cân điều khiển bluetooth ĐỒ Á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); } Xe tự cân điều khiển bluetooth ĐỒ Á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(); } } } Xe tự cân điều khiển bluetooth ĐỒ ÁN TỐT NGHIỆP Trang 46/45 #CODE ĐIỀU KHIỂN BLUETOOTH Xe tự cân điều khiển bluetooth ĐỒ ÁN TỐT NGHIỆP Trang 47/45 Xe tự cân điều khiển bluetooth ... 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

Ngày đăng: 22/03/2019, 20:33

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w