1.2 Mục tiêu của đề tàiMục tiêu của đề tài là: – Tự thiết kế và xây dựng mô hình xe hai bánh có khả năng tự cân bằng đơn giản và nhỏ gọn; – Hiểu về phần mềm lập trình và lập trình cho vi
Trang 1ĐỒ ÁN TỐT NGHIỆP
XE TỰ CÂN BẰNG
ĐIỀU KHIỂN BLUETOOTH
Trang 2GND 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
Trang 3ĐỒ ÁN TỐT NGHIỆP Trang 3/45
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu chung
Lĩnh vực robot là một lĩnh vực đang rất phát triển hiện nay Trong thời kì pháttriển mạnh mẽ và vượt bậc của khoa học công nghệ, robot đang dần thay thế conngười làm việc trong môi trường nguy hiểm và độc hại Robot được ứng dụng ngàycàng đa lĩnh vực và với nhiều mục đích hơn như học tập, kinh tế, sản xuất, giải trí,
…
Với khả năng tự cân bằng, di chuyển nhanh, linh hoạt và mô hình khá nhỏ gọnthì “Xe tự cân bằng” là một đề tài được ứng dụng rất nhiều trong cuộc sống hiện
nay
Hình 1-1: Nguyên lí hoạt động của xe tự cân bằng
Xe hai bánh tự cân bằng hoạt động dựa trên nguyên lí mô hình của con lắcngược Tức là khi xe ngã về trước thì hai bánh xe sẽ chạy về trước để đỡ cho xeđứng lên; ngược lại, khi xe ngã về sau thì hai bánh xe sẽ lùi về sau để đỡ cho xeđứng lên
Có rất 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,trong đề tài này tôi sử dụng giải thuật điều khiển bằng PID Phương pháp này kháđơn giản, dễ sử dụng và phổ biến
Ngoài ra, tôi còn sử dụng Module bluetooth để điều khiển cho xe chạy tiến, chạylùi, xoay trái và xoay phải
Trang 41.2 Mục tiêu của đề tài
Mục tiêu của đề tài là:
– Tự thiết kế và xây dựng mô hình xe hai bánh có khả năng tự cân bằng đơn giản
và nhỏ gọn;
– Hiểu về phần mềm lập trình và lập trình cho vi điều khiển ATmega 328PU;– Hiểu được nguyên lí hoạt động của cảm biến gia tốc 6 bậc tự do, module điềukhiển động cơ L298N, module bluetooth HC-05;
– Hiểu được giải thuật điều khiển PID;
– Điều khiển xe cân bằng qua bluetoot và điều khiển xe chạy địa hình dốc, khôngbằng phẳng
1.3 Hướng thực hiện
– Tìm hiểu phần mềm lập trình và lập trình cho vi điều khiển ATmega 328PU;– Tìm hiểu cấu tạo, nguyên lí hoạt động của cảm biến gia tốc 6 bậc tự do, modulebluetooth HC-05; cách điều khiển động cơ của module điều khiển động cơL298N kết hợp giải thuật điều khiển PID điều khiển cho xe tự cân bằng
– Điều khiển xe qua bluetooth
CHƯƠNG 1 TÌM HIỂU ĐỀ TÀI1.4 Sơ đồ khối
Dựa theo yêu cầu của đề tài mà hệ thống phải bao gồm các khối sau:
Trang 5ĐỒ ÁN TỐT NGHIỆP Trang 5/45
Hình 2-1: Sơ đồ khối của hệ thống
Hệ thống hoạt động theo sơ đồ hình 2-1 và hoạt động theo nguyên lý sau:
Nhiệm vụ của khối nguồn là cung cấp nguồn cho toàn hệ thống hoạt động Saukhi được cấp nguồn, khối cảm biến sẽ lấy các thông số góc nghiêng, vận tốc ngãcủa xe truyền về khối điều khiển
Khối điều khiển sau khi nhận dữ liệu từ khối cảm biến sẽ xử lý dữ liệu đó rồitruyền tín hiệu điều khiển cho khối động cơ
Khối động cơ nhận tín hiệu truyền từ khối điều khiển sẽ điều khiển động cơ dichuyển để xe tự cân bằng
Trang 6Khi được yêu cầu, tín hiệu từ khối module bluetooth sẽ gửi đến khối điều khiển.Khối điều khiển có nhiệm vụ phản hồi và kết nối với module bluetooth; từ đó giúpđiều khiển xe.
1.1 Chức năng của từng khối
1.1.1 Khối nguồn
1
Hình 2-2: Sơ đồ nguyên lí của khối nguồn
Khối nguồn sẽ cung cấp nguồn cho hệ thống hoạt động Có rất nhiều loại nguồnnhư nguồn pin, nguồn từ adapter hoặc sử dụng năng lượng mặt trời tạo ra nguồnđiện
Trong đề tài này tôi sử dụng nguồn pin có điện áp 11.1 V, dòng 2.2 A Nguồnpin này đủ để cấp cho toàn hệ thống hoạt động ổn định Khối nguồn này có khảnăng giảm áp đầu vào để đầu ra có điện áp là 5 V cấp cho khối điều khiển và khốimodule bluetooth hoạt động
Trang 7ĐỒ ÁN TỐT NGHIỆP Trang 7/45
2.2.2.1 Cảm biến gia tốc 6 bậc tự do MPU 6050
− Cảm biến này được sử dụng rộng rãi, rất phổ biến và có hiệu quả cho các đề tàirobot tự cân bằng
Hình 2-3: Cảm biến gia tốc 6 bậc tự do MPU 6050 [1]
− Cảm biến này tích hợp 6 trục cảm biến gồm con quay hồi chuyển 3 trục và cảmbiến gia tốc 3 trục Cảm biến gia tốc 6 bậc tự do MPU 6050 đóng vai trò rấtquan trọng, vì cảm biến thu thập góc nghiêng, gia tốc của xe và còn cập nhật dữliệu liên tục nên giúp xe hoạt động ổn định ở trạng thái cân bằng
− Các thông số kỹ thuật:
+ Điện áp hoạt động: từ 3 V đến 5 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, ± 8 g
− Các chân của 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 bộ
+ SDA: chân truyền nhận dữ liệu
+ XDA: chân dữ liệu khi kết nối với cảm biến khác
+ XDL: chân xung clock khi kết nối với cảm biến khác
+ AD0: bit 0 của địa chỉ I2C
+ INT: chân ngắt
2.2.2.2 Cảm biến nhiệt độ và độ ẩm DHT11
Trang 8− Hiện tại có rất nhiều cảm biến nhiệt độ và độ ẩm như cảm biến LM35, cảm biếnDS18B20,… Với đề tài này tôi sử dụng cảm biến nhiệt độ và độ ẩm DHT11.
− DHT11 là loại cảm biến thông dụng và rất dễ sử dụng nên rất được ưa chuộng.Cảm biến có chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1-wire So vớicác cảm biến khác thì dữ liệu của cảm biến DHT11 lấy về có độ chính xác caohơn Khi nhiệt độ và độ ẩm môi trường thay đổi thì cảm biến DHT11 sẽ đo vàcập nhật liên tục
Hình 2-4: Cảm biến nhiệt độ và độ ẩm DHT11
− Các chân của cảm biến:
+ VCC: chân nối với nguồn
+ DATA: chân lấy dữ 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ủa cảm biến:
+ Điện áp để cảm biến hoạt động: 3 V đến 5 V
+ Nhiệt độ hoạt động trong khoảng từ 20 % đến 90 % (với sai số ±5 %)
+ Độ ẩm hoạt động trong khoảng từ 0 °C đến 50 °C (với sai số ±2 °C)
+ Tần số lấy mẫu tối đa là 1 Hz
+ Khoảng cách truyền tối đa là 20 m
− Cảm biến nhiệt độ và độ ẩm DHT11 được nối với trung tâm điều khiển có nhiệm
vụ là đo nhiệt độ và độ ẩm của môi trường; lấy và truyền dữ liệu về trung tâmđiều khiển Khi nhận được yêu cầu từ module bluetooth (tức là nhấn lệnh
Trang 9ĐỒ ÁN TỐT NGHIỆP Trang 9/45
Update), trung tâm điều khiển sẽ gửi nhiệt độ và độ ẩm để hiển thị lên điệnthoại
Hình 2-5: Hiển thị nhiệt độ và độ ẩm trên điện thoại
1.1.3 Khối điều khiển
Hình 2-6: Sơ đồ nguyên lý của khối điều khiển chính
– Khối điều khiển có hai nhiệm vụ Thứ nhất là nhận các thông tin về góc nghiêngcủa xe, gia tốc của xe từ cảm biến gia tốc 6 bậc tự do, tính toán và điều khiểncho xe tự cân bằng Nhiệm vụ thứ hai là kết nối với module bluetooth để điều
Trang 10khiển xe và cập nhật nhiệt độ, độ ẩm của môi trường khi có yêu cầu Khối điềukhiển sẽ xử lí tất cả dữ liệu và xuất tín hiệu ra các port điều khiển để cấp chokhối động cơ và khối module bluetooth hoạt động.
– Hiện nay sự đa dạng về các loại vi điều khiển giúp chúng ta có nhiều sự lựachọn để làm linh kiện chính 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 này tôi chọn vi điều khiển ATmega 328PU, bởi vì nó được sử dụngrộng rãi, khá 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]
Trang 11ĐỒ ÁN TỐT NGHIỆP Trang 11/45
Hình 2-8: Sơ đồ chân vi điều khiển ATmega 328PU [3]
+ ATmega 328PU là một chip điều khiển thuộc họ MegaAVR 8 bit, bộ nhớFLASH 32 KB, bộ nhớ EEPROM 1 KB, bộ nhớ RAM 2 KB, có 3 timer (1timer 8 bit và 2 timer 16 bit)
+ Vi điều khiển ATmega 328PU có 28 chân, trong đó có 23 chân sử dụng choI/O , có 6 chân được sử dụng với chế độ PWM ( chân số 5,11,12,15,16 và17)
+ Các thông số kỹ thuật:
• Điện áp hoạt động: từ 1.8 V đến 5.5 V
• Dòng hoạt động: 0.2 mA
• Các chuẩn giao tiếp: UART, I2C, SPI
− Một số chân của vi điều khiển:
+ Chân số 7, 20: nối với nguồn 5 V
+ Chân số 8, 22: nối với đất
+ Chân số 9, 10: nối với thạch anh (16 MHz) để tạo dao động
+ Chân số 1: chân nối với Swicht để reset
− Kết nối chân của cảm biến gia tốc 6 bậc tự do với vi điều khiển:
+ VCC là chân nối với chân 7, 20
+ GND là chân nối với chân 8, 22
+ SCL là chân nối với chân 28
+ SDA là chân nối với chân 27
– Kết nối chân của Module điều khiển động cơ L298N với vi điều khiển:
Trang 12+ ENA là chân nối với chân 15.
+ IP1 là chân nối với chân 14
+ IP2 là chân nối với chân 17
+ IP3 là chân nối với chân 18
+ IP4 là chân nối với chân 19
+ ENB là chân nối với chân 16
− Kết nối chân của cảm biến nhiệt độ và độ ẩm DHT11 với vi điều khiển:
+ VCC là chân nối với nguồn
+ DATA là chân nối với chân 4
+ GND là chân nối với đất
– Tìm hiểu Module điều khiển động cơ L298N:
Hình 2-9: Module điều khiển động cơ L298N
Trang 13ĐỒ ÁN TỐT NGHIỆP Trang 13/45
Hình 2-10: Sơ đồ chân Module điều khiển động cơ L298N
+ Module L298N được dùng để điều khiển hoạt động của động cơ DC, modulenày có thể điều khiển hai động cơ DC Động cơ một sẽ ứng với ngõ vàoInput 1, Input 2, Enable A và được điều khiển bởi ngõ ra Output 1, Output 2.Tương tự, động cơ hai sẽ ứng với ngõ vào Input 3, Input 4, Enable B và đượcđiều khiển bởi ngõ ra Output 3, Output 4
+ Khi tín hiệu điều khiển được truyền từ trung tâm điều khiển xuống Moduleđiều khiển động cơ L298N thì các chân ngõ vào Input và Enable sẽ đượckích Đồng thời, các ngõ ra Output cũng sẽ nhận được tín hiệu điều khiểntương tự để điều khiển cho động cơ hoạt động Hai động cơ sẽ tiến tới, đi lùi,quay trái hoặc quay phải theo yêu cầu được nhận từ trung tâm điều khiển.+ Các thông số kỹ thuật của module:
• IC chính của module: L298N
• Điện áp hoạt động: 5 V đến 30 V
• Dòng sử dụng tối đa cho mỗi cầu H: 2 A (Module có 2 mạch cầu H)
• Mức điện áp logic: 0.3 V đến 1.5 V mức thấp, 2.3 V đến VCC mức cao.– Tìm hiểu động cơ DC servo GA37:
Trang 14Hình 2-11: Động cơ DC Servo giảm tốc GA37
+ Động cơ DC servo giảm tốc GA37 thường được sử dụng cho các mô hìnhcần độ chính xác cao như xe tự cân bằng, xe chạy dò line, xe chạy mê cung,
… Động cơ giúp xe di chuyển tiến, lùi, rẽ trái, rẽ phải theo sự điều khiển củatrung tâm điều khiển thông qua Module điều khiển L298N
1.1.5 Khối Module bluetooth
– Trong đề tài này, tôi sử dụng Module bluetooth HC-05 (hình 2-10) vì độ phổbiến và dễ sử dụng của nó Module bluetooth HC-05 được sử dụng rất nhiều vàocác ứng dụng thực tế như điều khiển đèn, quạt,… qua điện thoại, máy tính.– Nhiệm vụ của Module bluetooth HC-05 là kết nối với trung tâm điều khiển đểgửi và nhận tín hiệu để điều khiển cho xe chạy tiến, lùi, xoay trái, xoay phải
Trang 15ĐỒ ÁN TỐT NGHIỆP Trang 15/45
+ TXD: nối với chân Rx của vi điều khiển
+ RXD: nối với chân Tx của vi điều khiển
– Module bluetooth HC-05 có thể sử dụng ở hai chế độ :
+ Chế độ SLAVE: phải thiết lập một kết nối từ smartphone, usb bluetooth haylaptop để dò tìm module Sau khi đã tìm thấy được module, ta phải nhập mãPIN 1234 Khi đã thực hiện thành công, chúng ta đã thiết lập thành công mộtcổng serial điều khiển từ xa
+ Chế độ MASTER: ở chế độ này module tự động dò tìm thiết bị bluetoothkhác Đồng thời tự kết nối tự động mà không cần phải thiết lập từsmartphone hay laptop
− Các lệnh yêu cầu gửi từ Module bluetooth về trung tâm điều khiển:
Trang 16Hình 2-13: Các lệnh gửi từ Module bluetooth về trung tâm điều khiển
Hình 2-14: Giao diện các lệnh điều khiển xe trên điện thoại
Như giao diện hiển thị trên điện thoại (hình 2-14) có bốn mũi tên trên, dưới, trái,phải ứng với các lệnh mà Module bluetooth sẽ gửi về trung tâm điều khiển các kítự: U, D, L, R Nếu trung tâm điều khiển nhận được kí tự “U” thì sẽ gửi tín hiệu
Trang 17ĐỒ ÁN TỐT NGHIỆP Trang 17/45
điều khiển xe chạy tiến; tương tự như vậy, nếu trung tâm điều khiển nhận được kí tự
“D” thì sẽ gửi tín hiệu điều khiển xe chạy lùi; nếu trung tâm điều khiển nhận được
kí tự “R” thì sẽ gửi tín hiệu điều khiển xe xoay phải; nếu trung tâm điều khiển nhậnđược kí tự “L” thì sẽ gửi tín hiệu điều khiển xe xoay trái
Nếu ta nhấn lệnh AUTO thì trung tâm điều khiển sẽ nhận được kí tự “S”, đồngthời xe sẽ chuyển từ chế độ điều khiển sang chế độ tự cân bằng
Ngoài ra, xe còn có chức năng cho biết nhiệt độ và độ ẩm của môi trường Vìvậy, nếu ta nhấn lệnh Update (giao diện trên điện thoại hình 2-14) trên điện thoại,Module blutooth sẽ gửi kí tự “T” về trung tâm điều khiển Sau đó trung tâm điềukhiển sẽ gửi dữ liệu về hai thông số đó để hiển thị lên điện thoại
1.5 Lưu đồ giải thuật
Hình 2-15: Lưu đồ giải thuật của hệ thống
Trang 18– Khi bắt đầu, cảm biến sẽ lấy giá trị góc nghiêng ay và vận tốc ngã gx Sau đó,hai dữ liệu của cảm biến gia tốc MPU 6050 này được đưa qua bộ lọc Kalman để
xử lí và lọc nhiễu Cuối cùng tín hiệu đầu ra ta đặt là giá trị biến Angle, tín hiệunày dùng phương pháp điều khiển PID để điều khiển cho xe tự cân bằng Nếugiá trị góc Angle mà đáp ứng được điều kiện là nằm trong khoảng giới hạn từ-80° đến 80° thì xe tiếp tục quay lại bước lấy dữ liệu từ cảm biến gia tốc và tựcân bằng Ngược lại, nếu điều kiện sai thì xe dừng hoạt động
− Ngoài ra, xe còn có thêm chức năng điều khiển bằng bluetooth và cho biết nhiệt
độ, độ ẩm của môi trường
Trước tiên module bluetooth HC-05 được kết nối với trung tâm điều khiển,tiếp theo chúng ta kết nối module bluetooth HC-05 với điện thoại và bắt đầu gửilệnh điều khiển tới trung tâm điều khiển Khi trung tâm điều khiển nhận đượclệnh từ điện thoại thì nó sẽ xử lý và gửi tín hiệu điều khiển xuống điều khiểnđộng cơ chạy tiến, chạy lùi, xoay trái, xoay phải hoặc cập nhật hai thông số môitrường
Theo cách lập trình của đề tài này, trung tâm điều khiển khi nhận được kí tự
“U’’ thì xe sẽ chạy tới; tương tự khi trung tâm nhận được kí tự “D” thì xe sẽchạy lùi, nhận được kí tự “L” thì xe sẽ xoay trái, nhận được kí tự “R” thì xe sẽxoay phải, nhận được kí tự “T” thì sẽ cập nhật và hiển thị nhiệt độ và độ ẩm.1.6 Tìm hiểu phương pháp điều khiển PID
Hình 2-16: Sơ đồ khối bộ điều khiển PID [4]
Trang 19ĐỒ ÁN TỐT NGHIỆP Trang 19/45
– Bộ điều khiển PID (Proportional Integral Derivative) là bộ điều khiển vi tíchphân tỷ lệ theo cơ chế hồi tiếp vòng điều khiển Với e là giá trị sai số được tínhbằng hiệu số của giá trị khi đo thông số thay đổi và giá trị đặt (giá trị mongmuốn) thì bộ điều khiển có nhiệm vụ phải làm giảm tối đa giá trị sai số này bằngcách thay đổi, điều chỉnh các giá trị ngõ vào
– Giải thuật điều khiển bằng phương pháp PID gồm 3 khâu: khâu tỷ lệ, khâu tíchphân và khâu đạo hàm Với SPEED là tín hiệu điều khiển ngõ ra; Pout, Iout, Dout là
3 thành phần ngõ ra của bộ điều khiển PID thì:
SPEED = Pout + Iout + Dout (2.1)+ Khâu tỷ lệ (Pout): là khâu điều chỉnh tạo ra tín hiệu ngõ ra tỷ lệ với sai lệchđầu vào hiện tại
Trong đó:
• Pout : thừa số tỷ lệ
• Kp : Độ lợi tỷ lệ
• e(t) : sai số theo thời gian (e(t) = setpoint – present point)
Hình 2-17: Đồ thị SPEED theo thời gian ứng với 3 giá trị K p (K i và K d không thay đổi) [5]
Trang 20Nếu độ lợi tỷ lệ quá cao thì hệ thống sẽ không ổn định vì đáp ứng ngõ ra lớn
mà sai số ngõ vào thì quá nhỏ Ngược lại, nếu độ lợi tỷ lệ quá thấp là do đápứng ngõ ra nhỏ mà sai số ngõ vào là quá lớn, vì thế hệ thống sẽ không đápứng kịp thời
+ Khâu tích phân (Iout): bằng cách dễ hiểu thì khâu tích phân là khâu điều chỉnh
độ lệch sau khi điều chỉnh tỷ lệ Độ lệch càng nhỏ càng tốt
Trong đó:
• Iout : thừa số tích phân
• e(t) : sai số theo thời gian ( setpoint – present point)
Hình 2-18: Đồ thị SPEED theo thời gian ứng với 3 giá trị K i (K p và K d không thay đổi) [6]
Nếu độ lợi tích phân càng lớn thì quá trình khử sai số diễn ra càng nhanh làmtăng độ vọt lố
+ Khâu đạo hàm (Dout): là khâu điều chỉnh để tín hiệu điều chỉnh tỷ lệ với tốc
độ sai lệch ngõ vào
Trang 21ĐỒ ÁN TỐT NGHIỆP Trang 21/45
Trong đó:
• Dout : thừa số vi phân
• e(t) : sai số theo thời gian ( setpoint – present point)
Hình 2-19: Đồ thị SPEED theo thời gian ứng với 3 giá trị K d (K p và K i không thay đổi) [7]
Khâu đạo hàm dùng sẽ làm chậm tốc độ thay đổi ngõ ra, giúp hệ thống có thểđạt tới giá trị đặt (giá trị mong muốn) Do đó, khâu đạo hàm được dùng đểgiảm biên độ của độ vọt lố của hệ thống
Trang 22CHƯƠNG 2 THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG
1.2 Sơ đồ mạch nguyên lí
Hình 3-1: Sơ đồ mạch nguyên lý Vi điều khiển ATmega 328PU
Sơ đồ trên bao gồm sơ đồ nguyên lí của mạch nguồn và sơ đồ nguyên lí của vi điềukhiển ATmega 328PU
Trang 23ĐỒ ÁN TỐT NGHIỆP Trang 23/45
1.3 Sơ đồ mạch PCB
Hình 3-2: Sơ đồ mạch PCB Vi điều khiển ATmega 328PU
Sơ đồ mạch PCB (hình 3-2) được vẽ bằng phần mềm Altium
1.4 Mạch in thực tế