Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh đô thị hóa nhanh chóng, mật độ phương tiện cơ giới gia tăng gây áp lực lớn lên hạ tầng giao thông và làm gia tăng mức độ ô nhiễm môi trường. Việc nghiên cứu các phương tiện di chuyển cá nhân thông minh, nhỏ gọn và sử dụng năng lượng điện trở thành một hướng tiếp cận quan trọng trong kỹ thuật điều khiển và tự động hóa. Hệ thống xe hai bánh tự cân bằng là mô hình phi tuyến, không ổn định vòng hở, mang tính kinh điển trong lý thuyết điều khiển (mô hình con lắc ngược). Việc làm chủ công nghệ điều khiển cân bằng động kết hợp với giám sát, điều khiển từ xa qua mạng không dây là cơ sở để phát triển các phương tiện di chuyển thông minh và robot phục vụ đời sống.
Đồ án tốt nghiệp "Thiết kế và thi công xe điều khiển tự cân bằng sử dụng STM32" do sinh viên Nguyễn Đức Quân và Phạm Đức Thắng thực hiện (ngành Công nghệ Kỹ thuật Điện tử - Viễn thông, chuyên ngành Điện tử Công nghiệp, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh, dưới sự hướng dẫn của ThS. Nguyễn Đình Phú) được triển khai nhằm giải quyết bài toán cân bằng động thời gian thực và tích hợp hệ thống IoT điều khiển không dây. So với các công trình trước đây như đề tài nghiên cứu khoa học của Phạm Ngọc Thái (2018) hay đồ án của Hoàng Minh Nhật và Trần Đức Tấn (2015) vốn sử dụng vi điều khiển 8-bit Arduino Mega 2560, nghiên cứu này nâng cấp bộ xử lý trung tâm lên dòng ARM Cortex-M4 32-bit (STM32F407VET6) nhằm tăng tốc độ tính toán ma trận, xử lý tín hiệu cảm biến tần số cao và thực thi giải thuật điều khiển mượt mà hơn.
Nhiệm vụ và mục tiêu nghiên cứu của đồ án được xác định gồm năm nội dung:
- Thiết kế và xây dựng mô hình phần cứng xe hai bánh tự cân bằng, sử dụng vi điều khiển STM32F407VET6 kết hợp cảm biến quán tính 6 bậc tự do (6DOF IMU) MPU6050.
- Nghiên cứu và ứng dụng giải thuật lọc bổ sung (Complementary Filter) để ước lượng góc nghiêng chính xác cùng thuật toán điều khiển tỉ lệ - tích phân - vi phân (PID) nhằm duy trì trạng thái thăng bằng của xe.
- Tích hợp module ESP32-CAM để thu nhận hình ảnh thời gian thực từ camera OV2640 và thiết lập kênh truyền thông Wi-Fi kết nối với nền tảng Google Firebase.
- Lập trình ứng dụng di động trên hệ điều hành Android (phần mềm DATN_2024) cho phép người dùng giám sát video, điều khiển chuyển động bằng nút bấm ảo hoặc thông qua cảm biến gia tốc tích hợp trên điện thoại.
- Thi công mô hình thực tế, thử nghiệm thực nghiệm, tinh chỉnh các tham số điều khiển và đánh giá độ ổn định của hệ thống.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Mô hình phần cứng xe hai bánh tự cân bằng cơ cấu con lắc ngược; thuật toán lọc tín hiệu cảm biến góc nghiêng và giải thuật điều khiển động cơ DC Servo; hệ thống truyền dữ liệu không dây và ứng dụng di động Android.
- Phạm vi không gian và công nghệ: Mô hình thử nghiệm kích thước nhỏ gọn hoạt động trong phạm vi phủ sóng của mạng Wi-Fi cục bộ; giao tiếp cơ sở dữ liệu thời gian thực qua Firebase; ứng dụng di động giới hạn trên hệ điều hành Android.
- Thời gian thực hiện: Từ ngày 19/02/2024 đến ngày 10/06/2024 (bảo vệ tốt nghiệp tháng 06/2024).
Cơ sở lý thuyết và phương pháp tiếp cận
Mô hình động học con lắc ngược hai bánh
Xe hai bánh tự cân bằng là hệ cơ điện tử có cấu trúc con lắc ngược đặt trên trục hai bánh xe chủ động. Khi góc nghiêng thân xe ($\theta$) lệch khỏi vị trí thẳng đứng vuông góc với mặt sàn, trọng tâm của xe sẽ bị dịch chuyển, tạo ra mô-men quay kéo xe ngã. Hệ thống duy trì trạng thái cân bằng bằng cách điều khiển hai bánh xe di chuyển nhanh về phía thân xe bị nghiêng để đưa trọng tâm trở lại đường thẳng đứng đi qua trục bánh xe.
Động lực học của hệ thống được mô tả thông qua việc phân tích lực tác động lên bánh xe và khung thân theo định luật II Newton:
- Phương trình động lực học bánh xe:
$$\sum F_x = M_n \ddot{x}$$
$$\sum M_O = I_w \ddot{\theta}w = C_R - H{fR} r$$
Trong đó $M_n$ là khối lượng bánh xe, $I_w$ là mô-men quán tính của bánh xe, $r$ là bán kính bánh xe, $C_R$ là mô-men xoắn ngõ ra động cơ, $H_{fR}$ và $H_R$ là các thành phần lực tác động tại điểm tiếp xúc và khớp nối.
- Phương trình động học khung thân (mô hình con lắc ngược):
$$(I_p + M_p l^2)\ddot{\theta}_p - \frac{2k_m k_e}{R r} \dot{x} + \frac{2k_m}{R} V_a + M_p g l \sin(\theta_p) = M_p l \ddot{x} \cos(\theta_p)$$
Trong đó $M_p$ là khối lượng khung xe, $l$ là khoảng cách từ trục bánh xe đến trọng tâm khung, $I_p$ là mô-men quán tính khung quanh trọng tâm, $k_m, k_e$ là các hằng số động cơ, $R$ là điện trở phần ứng, $V_a$ là điện áp điều khiển cấp cho động cơ. Phương trình được tuyến tính hóa quanh điểm cân bằng thẳng đứng ($\theta_p \approx 0, \sin\theta_p \approx \theta_p, \cos\theta_p \approx 1$) để thiết lập phương trình không gian trạng thái.
Phương pháp xác định góc nghiêng bằng bộ lọc bổ sung
Để cung cấp tín hiệu phản hồi cho bộ điều khiển, góc nghiêng của xe quanh trục Y ($\theta$) được xác định từ cảm biến MPU6050 (kết hợp gia tốc kế 3 trục và con quay hồi chuyển 3 trục):
- Gia tốc kế (Accelerometer) đo thành phần trọng lực $g$ tác động lên các trục $A_x, A_y, A_z$ để tính góc nghiêng tĩnh:
$$\theta_{accel} = \arctan\left(\frac{-A_x}{\sqrt{A_y^2 + A_z^2}}\right)$$
Ưu điểm của gia tốc kế là không bị trôi theo thời gian, nhưng nhược điểm là rất nhạy với rung động cơ khí và gia tốc động tần số cao.
- Con quay hồi chuyển (Gyroscope) đo vận tốc góc $\omega_y$ và tính góc nghiêng động bằng tích phân số theo chu kỳ lấy mẫu $\Delta t$:
$$\theta_{gyro}(t) = \theta(t-1) + \omega_y \cdot \Delta t$$
Ưu điểm của con quay hồi chuyển là đáp ứng tức thời chính xác, nhưng nhược điểm là tích lũy sai số trôi (drift) theo thời gian.
- Bộ lọc bổ sung (Complementary Filter) kết hợp hai nguồn dữ liệu qua công thức:
$$\theta = \alpha \cdot \theta_{gyro} + (1 - \alpha) \cdot \theta_{accel}$$
Hệ số lọc $\alpha$ (thường chọn từ $0.9$ đến $0.98$) đóng vai trò như một bộ lọc thông cao đối với dữ liệu con quay hồi chuyển và lọc thông thấp đối với dữ liệu gia tốc kế, giúp loại bỏ hoàn toàn hiện tượng trôi và triệt tiêu nhiễu dao động cơ khí tần số cao.
Lý thuyết điều khiển PID và phương pháp chỉnh định
Bộ điều khiển PID (Proportional - Integral - Derivative) tạo tín hiệu điều khiển $u(t)$ từ sai lệch góc $e(t) = r(t) - y(t)$:
$$u(t) = K_P e(t) + K_I \int_0^t e(\tau) d\tau + K_D \frac{de(t)}{dt}$$
Hàm truyền tương ứng trên miền Laplace:
$$G_{PID}(s) = K_P + \frac{K_I}{s} + K_D s = K_P \left(1 + \frac{1}{T_I s} + T_D s\right)$$
- Khâu tỉ lệ ($K_P$): Tạo phản ứng nhanh theo độ lớn sai số, làm giảm sai số xác lập nhưng nếu tăng quá lớn sẽ gây dao động mạnh và mất ổn định.
- Khâu tích phân ($K_I = K_P / T_I$): Triệt tiêu hoàn toàn sai số xác lập ở trạng thái tĩnh ($e(\infty) = 0$), nhưng làm chậm đáp ứng quá độ và làm tăng độ vọt lố (overshoot).
- Khâu vi phân ($K_D = K_P \cdot T_D$): Dự đoán xu hướng biến thiên sai số, tạo lực cản dập tắt dao động, giảm độ vọt lố và cải thiện tính ổn định động của hệ kín.
Văn bản hệ thống hóa ba phương pháp chỉnh định thông số PID:
- Phương pháp Ziegler-Nichols dạng vòng kín: Xác định độ lợi tới hạn $K_U$ (khi hệ thống bắt đầu dao động tự duy trì với $K_I=0, K_D=0$) và chu kỳ dao động tới hạn $T_U$, sau đó tính toán theo bảng quy tắc:
| Loại hiệu chỉnh |
Hệ số khuếch đại $K_P$ |
Thời hằng tích phân $T_I$ |
Thời hằng vi phân $T_D$ |
| Ziegler-Nichols Cổ điển |
$0.6 K_U$ |
$0.5 T_U$ |
$0.125 T_U$ |
| Quy tắc Pessen Integral |
$0.7 K_U$ |
$0.4 T_U$ |
$0.15 T_U$ |
| Không vọt lố (No Overshoot) |
$0.2 K_U$ |
$0.5 T_U$ |
$0.33 T_U$ |
- Phương pháp điều chỉnh thủ công (Manual Tuning): Thiết lập $K_I = 0, K_D = 0$, tăng dần $K_P$ đến khi xe phản ứng nhanh và dao động nhẹ quanh trục cân bằng; tiếp tục tăng dần $K_D$ để dập tắt dao động và triệt tiêu độ vọt lố; cuối cùng tăng dần $K_I$ từ giá trị nhỏ để loại bỏ sai số tĩnh mà không làm tái xuất hiện dao động.
- Phương pháp phần mềm: Ứng dụng mô phỏng và công cụ toán học phân tích đáp ứng tần số để tính toán tối ưu tham số.
Thiết kế và triển khai hệ thống
Kiến trúc phần cứng và sơ đồ khối
Hệ thống phần cứng của xe tự cân bằng được tổ chức thành 6 khối chức năng chính:
| Khối chức năng |
Linh kiện / Thiết bị sử dụng |
Vai trò và thông số kỹ thuật chính |
| Xử lý trung tâm |
Kit STM32F407VET6 |
Vi điều khiển ARM Cortex-M4, xung nhịp 168 MHz, 512KB Flash, 192KB SRAM, hỗ trợ FPU. Đọc cảm biến qua I2C, tính toán PID, xuất xung PWM điều khiển động cơ. |
| Cảm biến góc nghiêng |
Module GY-521 (MPU6050) |
Cảm biến 6 trục (3 trục Accel $\pm 2g/\pm 4g/\pm 8g/\pm 16g$, 3 trục Gyro $\pm 250/\pm 500/\pm 1000/\pm 2000^\circ/s$), tích hợp bộ chuyển đổi ADC 16-bit, giao tiếp I2C tốc độ cao. |
| Điều khiển công suất |
Module L298N (Cầu H) |
IC cầu H kép L298N, điện áp điều khiển $5\text{V} - 35\text{V}$, dòng định mức 2A/kênh (dòng đỉnh 3A), nhận tín hiệu PWM từ STM32 để đảo chiều và điều tiết tốc độ hai động cơ. |
| Động cơ chấp hành |
02 Động cơ DC Servo JGB37-520 |
Điện áp hoạt động $12\text{V DC}$, tốc độ định mức 333 vòng/phút, tích hợp hộp số giảm tốc và đĩa mã hóa vòng quay (Encoder) đo tốc độ phản hồi. |
| Xử lý tín hiệu & IoT |
Module ESP32-CAM AI-Thinker |
SoC ESP32-S dual-core Xtensa 32-bit LX6 240 MHz, camera OV2640 2.0 Megapixel (hỗ trợ định dạng JPEG/RGB), kết nối Wi-Fi 802.11 b/g/n, giao tiếp UART với STM32. |
| Góc quay camera |
Động cơ Servo SG90 |
Micro Servo $180^\circ$, điều khiển góc ngẩng/cúi của camera OV2640 thông qua độ rộng xung PWM (chu kỳ 20ms) từ ESP32-CAM. |
| Khối nguồn & Bảo vệ |
03 Pin Li-Ion 18650 + Mạch XR-121 |
Cấu hình nguồn 3S (điện áp danh định $11.1\text{V}$, sạc đầy $12.6\text{V}$), dung lượng cao. Mạch XR-121 3S 20A bảo vệ quá dòng, quá nạp, quá xả và cân bằng cell pin. |
Thiết kế phần mềm và cấu trúc giao tiếp
Hệ thống nhúng được lập trình đa tầng với các công cụ phát triển chuyên dụng:
- Lập trình STM32 (Keil uVision5 & STM32CubeMX): Cấu hình cây xung nhịp (System Clock 168 MHz), bộ định thời (Timer) tạo tín hiệu ngắt định thời lấy mẫu cảm biến chính xác và sinh 2 kênh PWM tần số cao cho L298N, cổng I2C1 giao tiếp MPU6050, cổng UART2 nhận chuỗi byte dữ liệu lệnh từ ESP32-CAM bằng cơ chế ngắt nhận (Interrupt Receive).
- Lập trình ESP32-CAM (Arduino IDE): Cấu hình thư viện máy ảnh ESP32 Camera, khởi tạo máy chủ webstream hình ảnh HTTP, cấu hình mạng Wi-Fi cục bộ qua thư viện EspTouch, thiết lập kết nối Firebase REST API/Websocket để đồng bộ dữ liệu biến điều khiển thời gian thực, truyền lệnh xuống STM32 qua ngắt UART.
- Phát triển ứng dụng Android (Android Studio): Xây dựng phần mềm
DATN_2024 trên nền Java/Android SDK. Ứng dụng cung cấp:
- Khung xem video luồng mượt (Video Streaming View) từ địa chỉ IP của ESP32-CAM.
- Chế độ điều khiển phím ảo (Tiến, Lùi, Trái, Phải, Dừng) gửi giá trị tương ứng lên trường dữ liệu Firebase Realtime Database.
- Chế độ điều khiển bằng cảm biến gia tốc trên điện thoại (Gravity Sensor Control): chuyển đổi góc nghiêng của điện thoại thành lệnh điều khiển tốc độ và hướng rẽ của xe.
- Thanh trượt điều khiển góc xoay động cơ Servo SG90 của cụm camera.
Quy trình thi công cơ khí và lắp ráp mô hình
Mô hình xe được thi công theo cấu trúc module 3 tầng chịu lực bằng vật liệu nhẹ:
- Tầng 1 (đáy): Gá lắp 2 động cơ DC Servo JGB37-520 cùng cặp bánh xe cao su bám đường, cố định khối 3 cell pin 18650 và mạch sạc/bảo vệ XR-121 nhằm hạ thấp trọng tâm của toàn hệ thống.
- Tầng 2 (giữa): Bố trí mạch cầu H L298N, vi điều khiển STM32F407VET6, module IMU MPU6050 đặt tại vị trí trung tâm đối xứng của trục bánh xe để giảm thiểu sai số đo gia tốc chuyển động.
- Tầng 3 (trên cùng): Gá lắp kit ESP32-CAM cùng cơ cấu xoay camera dùng servo SG90, ăng-ten Wi-Fi và công tắc nguồn chính.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Trình bày lý do chọn đề tài dựa trên nhu cầu phát triển phương tiện giao thông cá nhân thông minh và bài toán điều khiển cân bằng tự động. Tác giả khảo sát các công trình liên quan trước đó, chỉ ra tính ưu việt của việc áp dụng chip 32-bit STM32F407VET6 so với Arduino Mega 2560 về năng lực tính toán và xử lý đa tác vụ. Nêu rõ mục tiêu, 5 nội dung thực hiện cụ thể, các giới hạn kỹ thuật của mô hình và bố cục 6 chương của báo cáo.
Chương 2: Cơ sở lý thuyết
Xây dựng nền tảng lý thuyết hoàn chỉnh cho hệ thống:
- Phân tích nguyên lý cân bằng động và chuyển động của xe hai bánh tự cân bằng. Thiết lập hệ phương trình vi phân mô tả chuyển động của bánh xe và khung thân con lắc ngược theo định luật II Newton.
- Trình bày chi tiết toán học giải thuật lọc bổ sung (Complementary Filter), phân tích ma trận quay Euler trong không gian 3 chiều quanh các trục X, Y, Z ($\phi, \theta, \psi$) và công thức suy biến xác định góc pitch $\theta$.
- Khảo sát sâu về lý thuyết điều khiển PID: hàm truyền, biểu đồ Bode đặc tính tần số, tác động của từng khâu P, I, D và các bộ ghép PD, PI, PID đến chất lượng quá độ (độ vọt lố, thời gian xác lập, sai số xác lập). Trình bày phương pháp chỉnh định Ziegler-Nichols, phương pháp thử nghiệm thủ công và phương pháp phần mềm.
- Giới thiệu các chuẩn truyền thông UART, I2C, cơ chế băm xung PWM và nền tảng Google Firebase. Giới thiệu chi tiết thông số kỹ thuật các linh kiện: STM32F407VET6, ESP32-CAM, MPU6050, L298N, JGB37-520, SG90, pin 18650 và XR-121.
Chương 3: Tính toán và thiết kế
Xây dựng sơ đồ khối tổng thể hệ thống và tính toán thiết kế chi tiết cho từng khối chức năng:
- Thiết kế mạch nguyên lý khối vi điều khiển STM32F407VET6 và giao tiếp I2C với khối cảm biến MPU6050.
- Thiết kế mạch công suất L298N kết nối với hai động cơ DC JGB37-520 (333 RPM).
- Thiết kế giao tiếp UART giữa khối xử lý trung tâm STM32 và khối xử lý tín hiệu ESP32-CAM.
- Thiết kế khối xoay camera sử dụng servo SG90 và camera OV2640 200W Pixel.
- Thiết lập sơ đồ kiến trúc truyền nhận dữ liệu giữa ESP32-CAM, máy chủ cơ sở dữ liệu Firebase Realtime và ứng dụng điện thoại Android qua Internet/Wi-Fi.
- Tính toán phân tích dòng tiêu thụ toàn mạch và thiết kế khối nguồn sử dụng 3 cell pin Li-Ion 18650 qua mạch sạc XR-121.
Chương 4: Thi công hệ thống
Hiện thực hóa thiết kế thành mô hình phần cứng và hoàn thiện phần mềm:
- Mô tả chi tiết các bước lắp ráp cơ khí khung xe đa tầng (tầng 1 lắp pin và động cơ, tầng 2 lắp STM32 và L298N, tầng 3 lắp ESP32-CAM và servo).
- Xây dựng lưu đồ thuật toán chi tiết: chương trình chính trên STM32, chương trình con ngắt Timer lấy mẫu cảm biến, chương trình con tính toán góc nghiêng lọc bổ sung, chương trình con tính toán PID và gán độ rộng xung PWM cho động cơ, chương trình con ngắt UART.
- Xây dựng lưu đồ giải thuật cho ESP32-CAM (kết nối Wi-Fi, khởi tạo luồng video, giao tiếp Firebase và điều khiển servo SG90).
- Trình bày quy trình cấu hình trên STM32CubeMX, biên dịch trên Keil uVision5, nạp code trên Arduino IDE và lập trình giao diện app
DATN_2024 trên Android Studio.
- Cung cấp hướng dẫn sử dụng, các bước kết nối Wi-Fi thông qua ứng dụng EspTouch và quy trình vận hành hệ thống.
Chương 5: Kết quả - Nhận xét - Đánh giá
Tổng hợp các kết quả đạt được từ việc thi công và chạy thử nghiệm thực tế:
- Đánh giá phần cứng xe tự cân bằng: Xe duy trì thăng bằng ổn định ở vị trí đứng yên và trong quá trình di chuyển tiến/lùi, rẽ trái/phải; dập tắt dao động nhanh khi có ngoại lực tác động nhỏ.
- Đánh giá ứng dụng di động: Giao diện
DATN_2024 kết nối thành công với Firebase, hiển thị mượt mà hình ảnh video từ camera OV2640 với độ trễ thấp; thực thi chính xác các lệnh điều khiển từ phím bấm và từ cảm biến gia tốc điện thoại.
- Lập bảng đánh giá các tiêu chí hoạt động của xe điều khiển tự cân bằng so với yêu cầu thiết kế ban đầu.
Chương 6: Kết luận và hướng phát triển
Đánh giá mức độ hoàn thành nhiệm vụ đồ án theo các mục tiêu đề ra; tổng kết các ưu điểm và đóng góp của công trình; đồng thời chỉ ra các điểm hạn chế và đề xuất giải pháp phát triển, nâng cấp hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả kỹ thuật đạt được
- Hoàn thiện mô hình phần cứng cơ điện tử: Chế tạo thành công mô hình xe 2 bánh tự cân bằng 3 tầng kết cấu gọn gàng, tích hợp đồng bộ vi điều khiển STM32F407VET6, cảm biến MPU6050, mạch công suất L298N, động cơ DC Servo JGB37-520 và cụm camera quay quét ESP32-CAM.
- Hiện thực hóa giải thuật điều khiển thời gian thực:
- Ứng dụng thành công bộ lọc bổ sung kết hợp dữ liệu gia tốc kế và con quay hồi chuyển, loại bỏ nhiễu rung động và triệt tiêu sai số trôi góc nghiêng.
- Tinh chỉnh tham số PID giúp xe duy trì trạng thái thăng bằng nhanh chóng, ổn định khi đứng yên và phản ứng mượt mà với các lệnh di chuyển tiến/lùi/quay vòng.
- Xây dựng hệ sinh thái điều khiển và truyền thông IoT:
- Thiết lập luồng truyền dữ liệu hai chiều ổn định qua UART giữa STM32 và ESP32-CAM.
- Kết nối thành công ESP32-CAM với máy chủ Firebase Realtime Database và máy chủ Web Server phát video luồng trực tiếp từ camera OV2640.
- Hoàn thiện ứng dụng di động
DATN_2024 trên Android, cho phép điều khiển linh hoạt qua 2 chế độ: giao diện nút bấm ảo và cảm biến nghiêng gia tốc điện thoại, đồng thời cho phép điều chỉnh góc quay ngẩng/cúi của camera qua servo SG90.
Đóng góp so với các nghiên cứu trước
- Nâng cấp nền tảng tính toán từ các dòng vi điều khiển 8-bit tốc độ thấp (như Arduino Mega 2560 trong các nghiên cứu năm 2015, 2018) lên nền tảng ARM Cortex-M4 32-bit (STM32F407VET6 xung nhịp 168 MHz), giúp tăng tần số lấy mẫu cảm biến, tối ưu hóa thời gian thực thi thuật toán PID và nâng cao độ ổn định động học.
- Tích hợp thêm kênh truyền thông hình ảnh không dây (Camera Streaming) và đồng bộ dữ liệu đám mây qua Firebase, mở rộng khả năng giám sát từ xa mà các mô hình xe cân bằng cơ bản trước đây chưa trang bị.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế kỹ thuật
- Phạm vi truyền nhận hình ảnh và lệnh điều khiển bị giới hạn trong tầm phủ sóng của mạng Wi-Fi cục bộ (ESP32-CAM phát hoặc kết nối mạng nội bộ).
- Khung xe được thiết kế theo dạng mô hình thử nghiệm nghiên cứu, tải trọng chịu lực còn hạn chế, chưa tối ưu cho việc chở vật nặng hoặc vận hành ngoài môi trường địa hình gồ ghề.
- Độ trễ của lệnh điều khiển và luồng video phụ thuộc đáng kể vào chất lượng đường truyền mạng không dây và tốc độ phản hồi của cơ sở dữ liệu Firebase.
Hướng phát triển tiếp theo
- Nâng cấp giải thuật ước lượng trạng thái từ bộ lọc bổ sung sang bộ lọc Kalman mở rộng (Extended Kalman Filter - EKF) để tăng độ chính xác của góc nghiêng trong các điều kiện rung lắc mạnh.
- Tích hợp thêm các module định vị vệ tinh GPS và cảm biến đo khoảng cách (Ultrasonic / LiDAR) để xây dựng tính năng tự động tránh vật cản và điều hướng tự hành.
- Mở rộng phạm vi điều khiển không dây thông qua mạng di động băng rộng 4G/5G hoặc giao thức MQTT chuyên dụng cho IoT.
- Ứng dụng các giải thuật trí tuệ nhân tạo (Edge AI / Computer Vision) trực tiếp trên luồng ảnh của camera để nhận diện người, vật thể hoặc biển báo dẫn đường.
Giá trị tham khảo
Đồ án là tài liệu tham khảo có giá trị kỹ thuật và thực tiễn cao đối với sinh viên, giảng viên và kỹ sư thuộc các chuyên ngành: Kỹ thuật Điện tử - Viễn thông, Điện tử Công nghiệp, Kỹ thuật Điều khiển và Tự động hóa, Cơ điện tử, Kỹ thuật Robot và Hệ thống Nhúng/IoT.
Các nội dung có giá trị tham khảo chuyên sâu bao gồm:
- Lý thuyết mô hình hóa và lọc tín hiệu: Phương pháp phân tích động lực học con lắc ngược hai bánh và công thức chi tiết thực thi bộ lọc bổ sung kết hợp gia tốc kế - con quay hồi chuyển trên cảm biến IMU 6DOF.
- Thiết kế hệ thống nhúng với STM32: Hướng dẫn cấu hình ngoại vi (Timer PWM, I2C, UART Interrupt) trên phần mềm STM32CubeMX và viết code thực thi thuật toán điều khiển PID trên Keil uVision5.
- Tích hợp hệ thống IoT liên vi điều khiển: Kiến trúc kết nối kết hợp giữa vi điều khiển thời gian thực (STM32) và vi điều khiển truyền thông không dây (ESP32-CAM), cách thức đẩy dữ liệu lên Firebase Realtime Database và phát luồng video HTTP.
- Lập trình ứng dụng Android điều khiển thiết bị: Mã nguồn và lưu đồ xử lý trên Android Studio để đọc cảm biến gia tốc điện thoại gửi lệnh điều khiển phần cứng và hiển thị video streaming thời gian thực.
Câu hỏi thường gặp
1. Tại sao nhóm tác giả lựa chọn vi điều khiển STM32F407VET6 làm bộ xử lý trung tâm thay vì các kit vi điều khiển thông dụng như Arduino Mega 2560?
STM32F407VET6 sử dụng lõi ARM Cortex-M4 32-bit với xung nhịp lên tới 168 MHz và có khối xử lý dấu chấm động (FPU) phần cứng. Điều này mang lại năng lực tính toán vượt trội so với dòng vi điều khiển 8-bit AVR (16 MHz) trên Arduino Mega 2560, cho phép hệ thống đọc cảm biến I2C ở tốc độ cao, thực hiện các phép tính ma trận lượng giác trong giải thuật lọc bổ sung và tính toán vòng lặp PID với chu kỳ lấy mẫu nhỏ, giúp hệ thống phản ứng nhanh và giữ thăng bằng ổn định hơn.
2. Bộ lọc bổ sung (Complementary Filter) giải quyết nhược điểm của gia tốc kế và con quay hồi chuyển trên module MPU6050 như thế nào?
Gia tốc kế đo góc nghiêng dựa trên trường trọng lực nên cho giá trị chính xác ở trạng thái tĩnh, nhưng bị nhiễu loạn mạnh khi xe chuyển động hoặc rung lắc (nhiễu tần số cao). Ngược lại, con quay hồi chuyển đo vận tốc góc và tích phân theo thời gian nên đáp ứng rất nhanh với chuyển động động, nhưng bị trôi sai số tích lũy dần theo thời gian (drift tần số thấp). Bộ lọc bổ sung $\theta = \alpha \cdot \theta_{gyro} + (1 - \alpha) \cdot \theta_{accel}$ đóng vai trò lọc thông cao cho con quay hồi chuyển và lọc thông thấp cho gia tốc kế, loại bỏ hoàn toàn hiện tượng trôi điểm 0 đồng thời triệt tiêu nhiễu rung động cơ khí.
3. Hệ thống phân chia nhiệm vụ xử lý giữa kit STM32 và kit ESP32-CAM như thế nào?
Hệ thống áp dụng kiến trúc phân tán chuyên biệt:
- STM32F407VET6 đảm nhận các tác vụ thời gian thực có tính quyết định đến sự sống còn của hệ thống: liên tục đọc dữ liệu góc từ MPU6050 qua I2C, tính toán giải thuật cân bằng PID, đọc tín hiệu encoder từ động cơ và xuất xung PWM điều khiển mạch cầu H L298N.
- ESP32-CAM đảm nhận các tác vụ truyền thông nặng và đa phương tiện: thu nhận và nén hình ảnh từ camera OV2640 để phát luồng video qua Wi-Fi, duy trì kết nối mạng với Firebase Realtime Database, nhận lệnh từ ứng dụng Android, điều khiển động cơ servo SG90 và truyền mã lệnh điều hướng xuống STM32 thông qua chuẩn nối tiếp UART.
4. Ứng dụng di động DATN_2024 hỗ trợ những phương thức điều khiển xe nào?
Ứng dụng di động trên nền tảng Android hỗ trợ hai phương thức điều khiển chính:
- Điều khiển bằng phím bấm ảo: Người dùng chạm các nút điều hướng (Tiến, Lùi, Trái, Phải, Dừng) trên màn hình giao diện để gửi trạng thái tương ứng lên Firebase.
- Điều khiển bằng cảm biến gia tốc điện thoại (Gravity Sensor): Ứng dụng đọc góc nghiêng thực tế của chiếc điện thoại khi người dùng nghiêng sang trái, phải, trước hoặc sau, chuyển đổi góc nghiêng thành lệnh tốc độ và hướng rẽ gửi tới xe, mang lại trải nghiệm điều khiển trực quan.
5. Khối nguồn của xe được thiết kế và bảo vệ như thế nào để đảm bảo cấp điện ổn định cho cả vi điều khiển và động cơ?
Khối nguồn sử dụng 3 cell pin Li-Ion 18650 mắc nối tiếp (cấu hình 3S), cung cấp điện áp danh định $11.1\text{V}$ (khi sạc đầy đạt khoảng $12.6\text{V}$) trực tiếp cho khối công suất động cơ qua driver L298N. Nguồn được hạ áp thông qua các mạch ổn áp trên kit phát triển để cấp $5\text{V}$ và $3.3\text{V}$ sạch cho vi điều khiển STM32, ESP32-CAM và cảm biến MPU6050. Mạch sạc và bảo vệ pin XR-121 3S 20A được tích hợp để tự động ngắt khi xảy ra hiện tượng quá dòng, ngắn mạch, bảo vệ chống quá nạp (overcharge) và chống xả cạn pin (overdischarge), đảm bảo an toàn vận hành và tuổi thọ pin.
Kết luận
Đồ án tốt nghiệp "Thiết kế và thi công xe điều khiển tự cân bằng sử dụng STM32" của sinh viên Nguyễn Đức Quân và Phạm Đức Thắng đã hoàn thành toàn diện các mục tiêu đề ra từ nghiên cứu lý thuyết động học con lắc ngược đến chế tạo mô hình phần cứng thực tế. Bằng việc kết hợp vi điều khiển ARM Cortex-M4 STM32F407VET6 tốc độ cao với thuật toán lọc bổ sung và điều khiển PID, hệ thống đã kiểm soát thăng bằng động chính xác và ổn định. Đồng thời, việc tích hợp module ESP32-CAM cùng ứng dụng Android DATN_2024 qua nền tảng đám mây Firebase tạo nên một giải pháp hoàn chỉnh cho phương tiện di chuyển thông minh được giám sát và điều khiển từ xa qua mạng không dây.