dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe ien 10,xe tu can bang suPM2:09:32 20242:09:32 dung ArduinoDieu ĐẠI khien xeHỌC PM61Monday, tu June CÔNG can bang 10, NGHIỆP su20242:09:32 dung ArduinoDieu khienTP.HCM PM2:09:32 xe PM61Monday, tu can bang su dung Arduino June 10, 20242:09:3 612410062:09:31 PM2:09:31 PM612410062:09:31 PM2:09:31 PM612410062:09:31 PM2:09:31 PM KHOA 10, 20242:09:32 PM2:09:32 PM61Monday, June 10,CÔNG NGHỆ 20242:09:32 ĐIỆN PM2:09:32 PM61Monday, June 10, 20242:09:3 dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe 10, 20242:09:31 PM2:09:31 PM61Monday, June 10, 20242:09:31 PM2:09:31 PM61Monday, June 10, 20242:09:3 dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe ĐỒ ÁN TỐT NGHIỆP dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe ĐIỀU KHIỂN XE CÂN BẰNG SỬ DỤNG ARDUINO dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe 61Dieu khien xe tu can bang su dung ArduinoMonday, June 10, 2024 dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe SINH VIÊN : BÙI DUY TIN MSSV : 14064861 LỚP : DHDKTD10B GVHD :THS. NGUYỄN NGỌC ANH dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe TUẤN dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe 10, 20242:09:31 PM2:09:31 PM61Monday, June 10, 20242:09:31 PM2:09:31 PM61Monday, June 10, 20242:09:3 Dieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDie Đồ án tốt nghiệp dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe tu can bang su dung ArduinoDieu khien xe ien 10,xe tu can bang suPM2:09:32 20242:09:32 dung ArduinoDieu PM61Monday, canTP.
Bối cảnh và vấn đề nghiên cứu
Trong xu thế phát triển của khoa học kỹ thuật hiện đại, các hệ thống tự hành và robot ngày càng giữ vai trò quan trọng trong sản xuất công nghiệp cũng như đời sống thường nhật. Mô hình robot hai bánh tự cân bằng (Two-Wheeled Self-Balancing Robot) là một trong những đối tượng nghiên cứu kinh điển và mang tính ứng dụng cao của lĩnh vực điều khiển tự động và cơ điện tử.
Khác với các dòng xe ba bánh (gồm hai bánh dẫn động và một bánh tự lựa) hoặc xe bốn bánh vốn đạt được trạng thái ổn định tĩnh nhờ trọng tâm luôn rơi vào mặt đáy chân đế, xe hai bánh đồng trục là một hệ thống phi tuyến, bất ổn định cố hữu ở trạng thái dừng tĩnh. Đối với các xe nhiều bánh thông thường:
- Khi di chuyển trên dốc nghiêng hoặc qua địa hình bậc thang gồ ghề, trọng tâm xe dễ bị dồn về phía trước (khi xuống dốc) làm bánh dẫn động mất lực bám, hoặc dồn về phía sau (khi lên dốc) gây nguy cơ lật úp.
- Kích thước cồng kềnh của xe bốn bánh hạn chế đáng kể khả năng xoay trở trong các không gian chật hẹp.
Ngược lại, mô hình robot hai bánh có trục bánh trùng nhau sở hữu khả năng tự điều chỉnh linh động: khi leo dốc, thân xe tự động nghiêng về phía trước; khi xuống dốc, thân xe nghiêng về phía sau nhằm giữ cho trọng tâm luôn nằm trên phương thẳng đứng đi qua trục bánh xe. Nhờ vậy, robot giữ vững độ bám, triệt tiêu nguy cơ lật úp và có thể đổi hướng tại chỗ trong phạm vi hẹp.
Đề tài "Điều khiển xe cân bằng sử dụng Arduino" được tác giả Bùi Duy Tin (lớp DHDKTD10B, Khoa Công nghệ Điện, Trường Đại học Công nghiệp TP.HCM) thực hiện dưới sự hướng dẫn của ThS. Nguyễn Ngọc Anh Tuấn trong khoảng thời gian 3 tháng (năm 2018).
Nhiệm vụ nghiên cứu cụ thể bao gồm:
- Khảo sát các mô hình robot cân bằng và nguyên lý cân bằng con lắc ngược.
- Thiết kế và chế tạo phần cứng hệ thống bao gồm khung cơ khí, mạch nguồn và mạch điều khiển.
- Ứng dụng cảm biến quán tính (IMU) và giải thuật lọc Kalman trên vi điều khiển nhằm ước lượng chính xác góc nghiêng thực tế của thân xe.
- Xây dựng thuật toán điều khiển PID (Proportional - Integral - Derivative) để điều khiển động cơ DC giữ thăng bằng và phục hồi vị trí.
- Lập trình nhúng hoàn chỉnh, thử nghiệm thực tế và đánh giá khả năng vận hành của mô hình.
Cơ sở lý thuyết và phương pháp
Đề tài kết hợp giữa lý thuyết điều khiển tự động vòng kín, kỹ thuật xử lý tín hiệu số và phương pháp thiết kế cơ điện tử thực nghiệm.
Khung lý thuyết ứng dụng
- Lý thuyết cân bằng con lắc ngược: Để giữ cân bằng cho hệ thống hai bánh có trục trùng nhau, bộ điều khiển không cần biết chính xác tọa độ trọng tâm mà thực hiện việc dịch chuyển bánh xe về phía thân xe đang nghiêng nhằm triệt tiêu góc lệch nghiêng ($\theta = 0$).
- Thuật toán lọc Kalman: Cảm biến đo lường thường gặp nhược điểm: cảm biến gia tốc (Accelerometer) đo góc tĩnh tốt nhưng chịu ảnh hưởng nặng bởi rung chấn và lực quán tính chuyển động; cảm biến con quay hồi chuyển (Gyroscope) đáp ứng nhanh với vận tốc góc nhưng bị sai số trôi dạt (drift) tích lũy theo thời gian. Giải thuật lọc Kalman 2 trạng thái được áp dụng để kết hợp hai nguồn dữ liệu này, ước lượng tối ưu góc nghiêng thực và loại bỏ thành phần sai lệch tĩnh (
gyro_bias). - Giải thuật điều khiển PID: Sử dụng cấu trúc điều khiển vòng kín với hàm truyền: $$u(t) = K_p e(t) + K_i \int e(t) dt + K_d \frac{de(t)}{dt}$$ Trong đó, sai lệch $e(t)$ là hiệu giữa góc đặt cân bằng và góc nghiêng thực tế từ bộ lọc Kalman.
Phương pháp nghiên cứu
- Phương pháp khảo sát và tổng hợp tài liệu: Nghiên cứu cấu tạo phần cứng vi điều khiển Arduino Mega 2560, cảm biến MPU6050, mạch công suất động cơ và các giải thuật lọc số.
- Phương pháp toán học và mô phỏng rời rạc hóa: Chuyển đổi các phương trình vi phân và ma trận của bộ lọc Kalman và giải thuật PID sang dạng rời rạc để chạy trên chip xử lý 8-bit.
- Phương pháp thực nghiệm: Chế tạo mô hình thực tế, đo đạc thông số và hiệu chỉnh tham số điều khiển trực tiếp trên phần cứng.
Thiết kế và triển khai
Hệ thống điều khiển xe tự cân bằng được tổ chức thành các khối chức năng liên kết chặt chẽ:
| Khối chức năng | Linh kiện / Thiết bị chính | Thông số kỹ thuật & Đặc điểm |
|---|---|---|
| Xử lý trung tâm | Arduino Mega 2560 | Vi điều khiển ATmega2560, thạch anh 16 MHz, 54 chân Digital (15 chân PWM), 16 chân Analog, 4 cổng UART Serial, Flash 256 KB, SRAM 8 KB. |
| Cảm biến góc | MPU6050 | Tích hợp gia tốc kế 3 trục và Gyroscope 3 trục, giao tiếp vi điều khiển qua chuẩn I2C (SDA, SCL). |
| Mạch công suất | Robo Shield | Sử dụng IC cầu H L298 dán, điều khiển 2 động cơ DC độc lập, hỗ trợ giao tiếp PWM và đảo chiều quay. |
| Cơ cấu chấp hành | Động cơ DC + Hộp số | Động cơ DC giảm tốc RP201 tích hợp encoder 334 xung phản hồi vị trí/vận tốc. |
| Nguồn cấp | Bộ Pin Lithium | 3 cell pin 12V mắc nối tiếp, dung lượng mỗi cell khoảng 3000 mAh. |
| Khung xe | Kết cấu khung cơ khí | Tấm nhựa cứng liên kết bằng vít đồng, hai bánh xe bọc lốp cao su có nhiều rãnh tăng độ bám. |
Xử lý tín hiệu với Bộ lọc Kalman
Mô hình bộ lọc Kalman 2 trạng thái được thiết lập với trạng thái góc (angle) và độ trôi vận tốc góc (q_bias):
- Ma trận hiệp phương sai nhiễu quá trình $Q$ (kích thước $2 \times 2$) đại diện cho độ tin cậy giữa gia tốc kế và con quay hồi chuyển.
- Hiệp phương sai nhiễu đo $R = 0.03 \text{ rad}^2 \approx (1.8^\circ)^2$ từ gia tốc kế.
- Chu trình xử lý gồm hai hàm chính:
State_update(): Cập nhật ước lượng trạng thái góc và ma trận hiệp phương sai theo chu kỳ lấy mẫu $dt$ dựa trên dữ liệu vận tốc góc của Gyroscope.Kalman_update(): Hiệu chỉnh góc ước lượng khi có dữ liệu đo góc mới từ gia tốc kế thông qua việc tính toán độ lợi Kalman ($K$).
Tinh chỉnh hệ số điều khiển PID
Hệ thống sử dụng bảng phân tích tác động của các khâu điều khiển nhằm thực hiện tinh chỉnh thực nghiệm:
| Thông số | Thời gian đáp ứng | Độ vọt lố | Thời gian xác lập | Sai số xác lập |
|---|---|---|---|---|
| $K_p$ | Giảm | Tăng | Ít thay đổi | Giảm |
| $K_i$ | Giảm | Tăng | Tăng | Triệt tiêu |
| $K_d$ | Ít thay đổi | Giảm | Giảm | Ít thay đổi |
Quy trình tinh chỉnh tham số PID thực nghiệm:
- Đặt ban đầu $K_p = K_i = K_d = 0$.
- Tăng dần $K_p$ cho đến khi thân xe bắt đầu xuất hiện dao động cân bằng xung quanh điểm thẳng đứng.
- Giảm $K_p$ xuống khoảng một nửa giá trị nói trên.
- Tăng dần $K_i$ để triệt tiêu sai số xác lập, đảm bảo xe không bị lệch hẳn về một phía khi đứng yên.
- Tăng dần $K_d$ nhằm dập tắt dao động nhanh chóng, giảm hiện tượng vọt lố và giữ hệ thống ổn định trước các tác động ngoại lực.
Nội dung chính theo từng chương
Chương 1: Tổng quan về robot hai bánh tự cân bằng
Chương này giới thiệu lý do phát triển dòng robot hai bánh tự cân bằng. Tác giả phân tích chi tiết cơ chế cân bằng của mô hình con lắc ngược và so sánh ưu thế hình học của hệ hai bánh đồng trục so với các hệ ba bánh và bốn bánh khi vận hành trên mặt phẳng nghiêng, dốc lồi lõm hoặc bậc thang. Chương 1 cũng xác định mục tiêu thiết kế hệ thống trong thời gian 3 tháng, các phương pháp tiếp cận và giới hạn nghiên cứu của đề tài.
Chương 2: Thiết kế chế tạo
Nội dung chương 2 tập trung vào việc mô tả chi tiết sơ đồ khối hệ thống và quá trình chế tạo thực tế:
- Phần cứng: Cung cấp thông số kỹ thuật chi tiết của Arduino Mega 2560 (sơ đồ chân, 4 cổng UART Serial, các chân ngắt ngoài, chuẩn SPI, I2C), cấu tạo module driver Robo Shield dùng IC L298, cảm biến quán tính MPU6050, động cơ DC RP201 tích hợp encoder 334 xung và hệ thống 3 cell pin 12V 3000 mAh.
- Phương thức giao tiếp: Trình bày nguyên lý điều chế độ rộng xung (PWM) để điều khiển tốc độ động cơ DC, các giao thức truyền thông UART và I2C.
- Giải thuật lập trình: Trình bày chi tiết toán học và thuật toán mã nguồn của bộ lọc Kalman 2 trạng thái tối ưu cho vi điều khiển, lý thuyết điều khiển vòng kín PID, bảng ảnh hưởng của các hệ số $K_p, K_i, K_d$, phương pháp Ziegler-Nichols và sơ đồ khối thuật toán điều khiển tổng thể.
Chương 3: Thử nghiệm và kết luận
Chương cuối trình bày các kết quả thử nghiệm thực tế trên mô hình sau khi lắp ráp và nạp code:
- Robot giữ thăng bằng ổn định tại vị trí ban đầu.
- Khi có ngoại lực đẩy ngang với cường độ vừa phải, robot tự động di chuyển bánh xe theo chiều nghiêng để triệt tiêu góc lệch và đưa thân xe trở lại trạng thái cân bằng thẳng đứng.
- Tác giả tổng kết các kết quả đạt được, chỉ ra những hạn chế do thời gian nghiên cứu và đề xuất hướng phát triển thành phương tiện chở người hoặc chuyên chở hàng hóa trong nhà.
Kết quả và đóng góp
Kết quả chính
- Chế tạo thành công mô hình phần cứng robot hai bánh tự cân bằng hoàn chỉnh với khung nhựa cứng, board Arduino Mega 2560, driver L298, cảm biến MPU6050 và động cơ DC giảm tốc có encoder.
- Lập trình nhúng thành công thuật toán lọc Kalman 2 trạng thái, giải quyết triệt để vấn đề trôi dạt của con quay hồi chuyển và nhiễu dao động của gia tốc kế, cho ra giá trị đo góc nghiêng ổn định theo thời gian thực.
- Xây dựng và thực thi giải thuật điều khiển PID vòng kín, xuất tín hiệu PWM điều khiển động cơ giữ thăng bằng tại vị trí đặt ban đầu và tự phục hồi khi có lực tác động ngang.
Đóng góp của đề tài
- Hệ thống hóa phương pháp toán học và mã nguồn C/C++ cho bộ lọc Kalman 2 trạng thái trên nền tảng vi điều khiển mã nguồn mở, tối ưu hóa các phép tính ma trận điểm trôi (floating-point) cho chip xử lý hạn chế tài nguyên.
- Cung cấp tài liệu thiết kế cơ điện tử chi tiết, làm nền tảng tham khảo thực tế cho các dự án phát triển xe tự cân bằng ở quy mô lớn hơn.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế: Đề tài thực hiện trong phạm vi 3 tháng nên tập trung chủ yếu vào việc hiện thực hóa mô hình cơ bản và giải thuật thăng bằng. Robot chưa được tích hợp các tính năng mở rộng như điều khiển từ xa không dây (qua module WiFi ESP8266, Bluetooth HC-06 hoặc RF PT2272 dù board Robo Shield đã hỗ trợ khe cắm), chưa có cảm biến tránh vật cản và tải trọng của khung xe còn nhỏ.
- Hướng phát triển: Nâng cấp kết cấu cơ khí và sử dụng động cơ công suất lớn để phát triển thành xe hai bánh tự cân bằng có khả năng chở người (tương tự xe Segway) hoặc làm phương tiện vận chuyển đồ đạc, hàng hóa tự động trong nhà và khuôn viên hẹp.
Giá trị tham khảo
Đồ án là tài liệu tham khảo hữu ích cho sinh viên và kỹ sư thuộc các ngành Công nghệ Kỹ thuật Điều khiển và Tự động hóa, Kỹ thuật Cơ điện tử, và Kỹ thuật Điện - Điện tử:
- Phần giải thuật lọc Kalman (Mục 2.5): Cung cấp các bước toán ma trận và logic lập trình C cụ thể để xử lý tín hiệu kết hợp từ cảm biến IMU (MPU6050), giải quyết bài toán chống trôi bias cho Gyroscope.
- Phần thiết kế điều khiển PID và giao tiếp phần cứng (Mục 2.2 - 2.4): Hướng dẫn chi tiết cách kết nối vi điều khiển với mạch cầu H L298, xử lý tín hiệu encoder và quy trình chỉnh định hệ số PID bằng thực nghiệm trên hệ phi tuyến.
Câu hỏi thường gặp
1. Đồ án sử dụng loại vi điều khiển nào và có đặc tính bộ nhớ ra sao?
Đồ án sử dụng bo mạch vi điều khiển Arduino Mega 2560 chạy chip ATmega2560 với tần số dao động 16 MHz. Chip có bộ nhớ Flash 256 KB (trong đó 8 KB dùng cho bootloader), 8 KB SRAM và 4 KB EEPROM.
2. Cảm biến nào được dùng để đo góc nghiêng và giao tiếp qua chuẩn gì?
Hệ thống sử dụng module cảm biến quán tính MPU6050 (gồm cảm biến gia tốc 3 trục và con quay hồi chuyển 3 trục), kết nối và truyền nhận dữ liệu với vi điều khiển Arduino thông qua giao thức truyền thông nối tiếp I2C (chân SDA và SCL).
3. Tại sao tác giả phải dùng bộ lọc Kalman thay vì chỉ lấy trực tiếp dữ liệu từ cảm biến?
Vì cảm biến gia tốc đo góc tĩnh tốt nhưng rất nhạy cảm với rung động cơ khí và quán tính khi xe chuyển động, trong khi con quay hồi chuyển Gyroscope đáp ứng tức thời tốt nhưng tích lũy sai số trôi dạt (gyro bias) theo thời gian. Bộ lọc Kalman 2 trạng thái giúp ước lượng tối ưu góc nghiêng thực tế và tự động cập nhật sai số trôi của con quay hồi chuyển.
4. Mạch công suất điều khiển động cơ trong đồ án sử dụng IC gì?
Mạch công suất sử dụng Robo Shield với thành phần điều khiển chính là IC cầu H L298 dạng dán, cho phép điều khiển đảo chiều và điều chế độ rộng xung (PWM) tốc độ cho 2 động cơ DC độc lập.
5. Kết quả thử nghiệm thực tế của robot đạt được như thế nào?
Trên mô hình thực nghiệm, robot duy trì thăng bằng ổn định tại vị trí ban đầu. Khi chịu tác động đẩy ngang làm nghiêng thân xe ở mức vừa phải, robot tự động điều chỉnh tốc độ và hướng quay của hai bánh xe để triệt tiêu góc nghiêng và quay trở lại vị trí cân bằng.
Kết luận
Đồ án tốt nghiệp "Điều khiển xe cân bằng sử dụng Arduino" của sinh viên Bùi Duy Tin đã hoàn thành trọn vẹn mục tiêu thiết kế và chế tạo mô hình robot hai bánh tự cân bằng trên nền tảng vi điều khiển ATmega2560. Bằng việc kết hợp thành công thuật toán lọc Kalman ước lượng góc nghiêng từ cảm biến MPU6050 và giải thuật điều khiển vòng kín PID lái mạch cầu L298, hệ thống đã chứng minh được khả năng duy trì thăng bằng và phục hồi vị trí ổn định khi chịu ngoại lực tác động. Công trình là tài liệu thực nghiệm có giá trị tham khảo cao cho các nghiên cứu về hệ thống con lắc ngược và phương tiện tự hành hai bánh.