Giới thiệu dự án
Sự phát triển mạnh mẽ của các phương tiện bay không người lái (Unmanned Aerial Vehicle - UAV) trong kỷ nguyên công nghiệp 4.0 đã mở ra những bước đột phá trong giám sát công nghiệp, cứu hộ cứu nạn, trắc địa và nông nghiệp chính xác. Khác với máy bay trực thăng truyền thống (Helicopter) đòi hỏi cơ cấu cơ khí đĩa lệch (Swashplate) phức tạp và chi phí bảo dưỡng cao, máy bay bốn cánh quạt (Quadrocopter/Quadcopter) sử dụng 4 động cơ độc lập đối xứng nhau qua khung chữ thập, mang lại sự linh hoạt tối đa trong không gian 6 bậc tự do (6-DOF) với khả năng cất cánh, hạ cánh thẳng đứng (VTOL) và bay lơ lửng (Hovering) ổn định.
Tuy nhiên, việc chế tạo và tự cân bằng một Quadrocopter đặt ra nhiều thách thức kỹ thuật phức tạp:
- Vấn đề điều khiển phi tuyến và đa biến: Quadrocopter là hệ thống thiếu cơ cấu chấp hành (Under-actuated system) với 6 bậc tự do vị trí và tư thế nhưng chỉ có 4 tín hiệu điều khiển ngõ vào (vận tốc góc của 4 động cơ).
- Nhiễu tín hiệu cảm biến nghiêm trọng: Quá trình hoạt động của động cơ không chổi than (Brushless DC - BLDC) ở dải tốc độ cao (lên đến 10.000 RPM) và cánh quạt tạo ra rung động cơ khí biên độ lớn, gây sai lệch cho cảm biến gia tốc (Accelerometer), trong khi cảm biến con quay hồi chuyển (Gyroscope) lại gặp hiện tượng trôi điểm không (Zero-rate drift) theo thời gian.
- Nhiễu truyền thông vô tuyến: Băng tần điều khiển 2.4 GHz thông dụng chịu nhiều can nhiễu từ mạng Wi-Fi và thiết bị dân dụng trong khu vực đô thị.
Đề tài tốt nghiệp ngành Công nghệ Kỹ thuật Cơ điện tử (Trường Đại học Sư phạm Kỹ thuật TP.HCM) thực hiện nghiên cứu, thiết kế phần cứng, xây dựng thuật toán lọc tín hiệu cảm biến và điều khiển ổn định tư thế cho mô hình Quadrocopter.
+-------------------------------------------------------------------------+
| MỤC TIÊU DỰ ÁN CỤ THỂ |
+-------------------------------------------------------------------------+
| 1. Thiết kế khung cơ khí chuẩn X650 với tổng khối lượng toàn tải < 2kg. |
| 2. Phát triển bo mạch vi điều khiển 32-bit ARM Cortex-M4 (STM32F407). |
| 3. Xây dựng thuật toán lọc bù (Complementary Filter) khử nhiễu IMU. |
| 4. Thiết kế bộ điều khiển số PID tần số 400 Hz giữ thăng bằng Roll/Pitch|
| 5. Chế tạo bộ phát/thu RF cầm tay tần số 868 MHz (RFM22B) cự ly > 100m. |
| 6. Xây dựng giao diện Telemetry giám sát thời gian thực bằng C++. |
+-------------------------------------------------------------------------+
Hệ thống được thiết kế hướng đến mục tiêu bay ổn định ngoài trời trong khoảng 5 - 10 phút, bán kính điều khiển từ 100 - 200 m, sai số góc nghiêng tĩnh duy trì trong ngưỡng $\le \pm 1.5^\circ$.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Tại thời điểm nghiên cứu, các giải pháp Quadrocopter trên thị trường và trong giới học thuật phân tách thành các nhánh rõ rệt:
| Tiêu chí so sánh | Parrot AR.Drone 2.0 | MultiWii Board (DIY) | Giải pháp Đề tài HCMUTE |
|---|---|---|---|
| Vi xử lý trung tâm | ARM Cortex-A8 1 GHz | ATmega328P 8-bit 16 MHz | STM32F407VGT6 32-bit 168 MHz |
| Giao thức điều khiển | Wi-Fi 2.4 GHz (Smartphone) | RC 2.4 GHz thương mại | RF 868 MHz (RFM22B + SPI) |
| Tần số vòng lặp PID | ~200 Hz | ~100 - 250 Hz | 400 Hz (Đồng bộ PWM Hardware) |
| Khả năng tùy biến | Hệ thống đóng, khó can thiệp | Mở nhưng hiệu năng 8-bit yếu | Toàn quyền can thiệp phần cứng/thuật toán |
| Khả năng chống nhiễu RF | Thấp (dễ mất sóng trong phố) | Trung bình | Rất cao (Băng tần 868 MHz riêng biệt) |
| Chi phí hoàn thiện | Cao (~300 USD) | Trung bình (~150 USD) | Tối ưu theo linh kiện chế tạo (~120 USD) |
Yêu cầu người dùng và kỹ thuật được phân loại theo mô hình MoSCoW:
- Must-have: Khả năng tự giữ thăng bằng Roll/Pitch; mạch đọc dữ liệu IMU tốc độ cao $\ge 400\text{ kHz}$; điều xung PWM điều khiển 4 ESC ở tần số $400\text{ Hz}$; cơ chế ngắt động cơ khẩn cấp (Failsafe).
- Should-have: Bộ truyền thông không dây băng tần riêng 868 MHz; truyền dữ liệu Telemetry về máy tính qua UART; giao diện giám sát đồ thị thời gian thực.
- Could-have: Tính năng tự động giữ độ cao (Altitude Hold) và la bàn số (Magnetometer) khóa hướng Yaw.
- Won't-have (giai đoạn này): Định vị tự động bằng GPS đường bay độc lập (Autonomous Waypoint Navigation) và truyền hình ảnh FPV.
Thiết kế hệ thống
Kiến trúc hệ thống bao gồm 3 phân hệ chính: Khối điều khiển mặt đất (Ground Controller), Khối thiết bị bay (Quadrocopter Unit), và Khối trạm giám sát PC (Ground Station).
+---------------------------------------------------------------------------------+
| KIẾN TRÚC HỆ THỐNG |
+---------------------------------------------------------------------------------+
| [TX Ground Controller] |
| Joystick (Roll/Pitch/Yaw/Throttle) --> MCU STM32 --> RFM22B (868MHz SPI) |
| | (Sóng vô tuyến) |
| v |
| [RX Quadrocopter Unit] |
| +--> RFM22B Module (SPI) --------> [ STM32F407VGT6 ] |
| +--> MPU6050 (6-DOF IMU via I2C) -> [ Core: 168 MHz ] |
| | |
| +-----------------------------+----------------------------+ |
| | | | |
| v (400Hz PWM) v (400Hz PWM) v (UART)|
| [4x ESC Turnigy Plush 30A] [4x BLDC Sunnysky A2212] [PC STMStudio/C++]|
| | | (Telemetry Graph)|
| +-----------------------------+ |
| v |
| [4x Propellers Emax 10x4.5] |
+---------------------------------------------------------------------------------+
1. Phần cứng và thông số kỹ thuật chi tiết:
- Vi xử lý trung tâm: STM32F407VGT6 (Lõi ARM Cortex-M4, FPU phần cứng, xung nhịp 168 MHz, 1 MB Flash, 192 KB RAM, 14 Timers).
- Cảm biến quán tính (IMU): InvenSense MPU6050 tích hợp 3 trục Gyroscope ($\pm 2000^\circ/\text{s}$) và 3 trục Accelerometer ($\pm 2\text{g}$), giao tiếp qua bus I2C Fast-mode 400 kHz.
- Khung thân (Frame): X650 vật liệu nhôm và sợi thủy tinh (Fiberglass 1.5 mm), chiều dài cánh tay đòn 650 mm, tự trọng khung 535 g.
- Hệ thống động lực:
- 4 động cơ không chổi than Sunnysky A2212-13 980KV (dòng không tải 0.5 A, dòng tải cực đại 15 A, tạo lực nâng danh định ~1000 g/motor với pin 3S).
- 4 cánh quạt Emax 10x4.5 inch (2 cánh thuận CW, 2 cánh nghịch CCW).
- 4 bộ điều tốc ESC Turnigy Plush 30A (tần số đáp ứng PWM 50 Hz - 400 Hz, dòng liên tục 30 A).
- Nguồn năng lượng: Pin LiPo Wild Scorpion 3S 11.1V 2200 mAh 35C (Dòng xả liên tục lên tới $2.2 \times 35 = 77\text{ A}$, khối lượng 184 g).
- Phân hệ RF: Module HopeRF RFM22B công suất +17 dBm (100 mW), tần số 868 MHz, 64-byte FIFO, giao tiếp SPI.
2. Thiết kế an toàn và cấu trúc khung truyền dữ liệu:
Giao thức truyền dữ liệu RF và UART sử dụng cấu trúc đóng gói định dạng chuẩn kèm mã kiểm tra lỗi:
- Cấu trúc khung RF (Payload 8 bytes):
[0xAA (Header)] [Throttle (1B)] [Roll (1B)] [Pitch (1B)] [Yaw (1B)] [Aux/Arm (1B)] [Checksum (1B)] [0x55 (Tail)]. - Cơ chế an toàn (Failsafe): Nếu MCU không nhận được tín hiệu RF hợp lệ trong 500 ms liên tục, giá trị Throttle sẽ tự động giảm tuyến tính về 0 trong vòng 2 giây để hạ cánh khẩn cấp, tránh hiện tượng máy bay bay mất kiểm soát (Flyaway).
Methodology
Dự án áp dụng mô hình phát triển V-Model kết hợp tạo mẫu nhanh trong thời gian 4 tháng:
- Tháng 1 (Khảo sát & Mô hình hóa): Thiết lập phương trình động lực học 6-DOF, tính toán lực nâng và chọn cấu hình động cơ - cánh quạt.
- Tháng 2 (Thiết kế phần cứng): Gia công khung X650, thiết kế schematic và layout bo mạch phân phối nguồn, bo mạch tay điều khiển RFM22B.
- Tháng 3 (Lập trình nhúng & Xử lý tín hiệu): Viết driver I2C/SPI trên STM32F4, lập trình bộ lọc bù (Complementary Filter) và cấu trúc điều khiển PID.
- Tháng 4 (Thực nghiệm & Tinh chỉnh): Thử nghiệm cân bằng trên đồ gá 1 trục (Gimbal 1-DOF), tinh chỉnh hệ số $K_p, K_i, K_d$, tiến hành bay thử nghiệm dã ngoại.
+---------------------------------------------------------------------------------+
| MA TRẬN ĐÁNH GIÁ VÀ GIẢM THIỂU RỦI RO |
+---------------------------------------------------------------------------------+
| Rủi ro 1: Rung động cơ khí phá hỏng dữ liệu Accelerometer |
| -> Giải pháp: Đệm cao su silicon chống rung cho IMU + Lọc bù Alpha = 0.98. |
+---------------------------------------------------------------------------------+
| Rủi ro 2: Cháy nổ ESC/Motor do quá tải dòng điện cất cánh |
| -> Giải pháp: Sử dụng ESC 30A dự phòng 100% dòng đỉnh (15A max của A2212). |
+---------------------------------------------------------------------------------+
| Rủi ro 3: Trôi điểm không (Drift) Gyro theo nhiệt độ |
| -> Giải pháp: Routine hiệu chuẩn tự động (Calib Offset) 500 mẫu khi khởi động. |
+---------------------------------------------------------------------------------+
Implementation và kết quả
Development process
1. Mô hình toán học động lực học Quadrocopter
Chuyển động của Quadrocopter được mô tả thông qua hai hệ quy chiếu: Hệ quy chiếu gắn với Trái đất $O_{NED}$ (Earth-fixed frame) và Hệ quy chiếu gắn với thân máy bay $O_{ABC}$ (Body-fixed frame).
Ma trận xoay chuyển từ hệ thân sang hệ quy chiếu quán tính $R_{xyz}(\phi, \theta, \psi)$:
$$R = \begin{bmatrix} \cos\theta\cos\psi & \sin\phi\sin\theta\cos\psi - \cos\phi\sin\psi & \cos\phi\sin\theta\cos\psi + \sin\phi\sin\psi \ \cos\theta\sin\psi & \sin\phi\sin\theta\sin\psi + \cos\phi\cos\psi & \cos\phi\sin\theta\sin\psi - \sin\phi\cos\psi \ -\sin\theta & \sin\phi\cos\theta & \cos\phi\cos\theta \end{bmatrix}$$
Trong đó $\phi, \theta, \psi$ lần lượt là 3 góc Euler: Roll, Pitch, Yaw.
Phương trình động lực học tổng quát 6-DOF:
$$\begin{bmatrix} m I_{3\times3} & 0_{3\times3} \ 0_{3\times3} & I_{3\times3} \end{bmatrix} \begin{bmatrix} \dot{v}_B \ \dot{\omega}_B \end{bmatrix} + \begin{bmatrix} \omega_B \times (m v_B) \ \omega_B \times (I \omega_B) \end{bmatrix} = \begin{bmatrix} F_B \ \tau_B \end{bmatrix}$$
2. Thuật toán lọc bù ước lượng góc nghiêng (Complementary Filter)
Để triệt tiêu nhiễu rung cao tần của Accelerometer và bù trôi tần số thấp của Gyroscope, thuật toán lọc bù được triển khai với chu kỳ lấy mẫu $\Delta t = 2.5\text{ ms}$ (tần số 400 Hz):
$$\theta_{\text{filter}}(k) = \alpha \cdot \left[ \theta_{\text{filter}}(k-1) + \omega_{\text{gyro}} \cdot \Delta t \right] + (1 - \alpha) \cdot \theta_{\text{accel}}(k)$$
Hệ số thực nghiệm tối ưu được xác định là $\alpha = 0.98$.
// Triển khai thuật toán lọc bù trên STM32F4 (C++)
void IMU_CalculateAttitude(float dt, float& roll, float& pitch) {
// Đọc dữ liệu thô từ cảm biến MPU6050 qua I2C Fast-Mode
int16_t ax, ay, az, gx, gy, gz;
MPU6050_ReadRaw(&ax, &ay, &az, &gx, &gy, &gz);
// Chuyển đổi sang đơn vị vật lý (deg/s và g)
float gyroX_rate = (float)gx / 16.4f; // Scale +-2000 deg/s
float gyroY_rate = (float)gy / 16.4f;
float accelX_g = (float)ax / 16384.0f; // Scale +-2g
float accelY_g = (float)ay / 16384.0f;
float accelZ_g = (float)az / 16384.0f;
// Tính góc nghiêng từ Accelerometer (độ)
float pitch_acc = atan2f(-accelX_g, sqrtf(accelY_g * accelY_g + accelZ_g * accelZ_g)) * 57.2957795f;
float roll_acc = atan2f(accelY_g, accelZ_g) * 57.2957795f;
// Lọc bù kết hợp Gyroscope (High-pass) và Accelerometer (Low-pass)
const float alpha = 0.98f;
pitch = alpha * (pitch + gyroY_rate * dt) + (1.0f - alpha) * pitch_acc;
roll = alpha * (roll + gyroX_rate * dt) + (1.0f - alpha) * roll_acc;
}
3. Thuật toán điều khiển PID và trộn kênh tín hiệu Motor (Motor Mixer)
Bộ điều khiển PID nhận tín hiệu sai số giữa góc đặt từ Remote và góc hồi tiếp từ IMU để tính toán giá trị hiệu chỉnh:
$$u(t) = K_p \cdot e(t) + K_i \int_0^t e(\tau) d\tau + K_d \cdot \frac{de(t)}{dt}$$
// Cấu trúc điều khiển PID và Mixer ngõ ra động cơ
typedef struct {
float Kp, Ki, Kd;
float integral, prev_error;
float output_limit;
} PID_Controller;
float PID_Compute(PID_Controller* pid, float setpoint, float measured, float dt) {
float error = setpoint - measured;
pid->integral += error * dt;
// Chống bão hòa tích phân (Anti-windup)
if (pid->integral > 100.0f) pid->integral = 100.0f;
else if (pid->integral < -100.0f) pid->integral = -100.0f;
float derivative = (error - pid->prev_error) / dt;
pid->prev_error = error;
float output = (pid->Kp * error) + (pid->Ki * pid->integral) + (pid->Kd * derivative);
if (output > pid->output_limit) output = pid->output_limit;
if (output < -pid->output_limit) output = -pid->output_limit;
return output;
}
void Motor_Mixer(uint16_t throttle, float u_roll, float u_pitch, float u_yaw) {
// Sắp xếp cấu hình chữ thập (+ config):
// M1: Trước (CCW), M2: Phải (CW), M3: Sau (CCW), M4: Trái (CW)
uint16_t pwm_m1 = throttle + (uint16_t)u_pitch - (uint16_t)u_yaw;
uint16_t pwm_m2 = throttle - (uint16_t)u_roll + (uint16_t)u_yaw;
uint16_t pwm_m3 = throttle - (uint16_t)u_pitch - (uint16_t)u_yaw;
uint16_t pwm_m4 = throttle + (uint16_t)u_roll + (uint16_t)u_yaw;
// Giới hạn độ rộng xung chuẩn từ 1000us đến 2000us
PWM_SetOutput(MOTOR_1, constrain(pwm_m1, 1000, 2000));
PWM_SetOutput(MOTOR_2, constrain(pwm_m2, 1000, 2000));
PWM_SetOutput(MOTOR_3, constrain(pwm_m3, 1000, 2000));
PWM_SetOutput(MOTOR_4, constrain(pwm_m4, 1000, 2000));
}
Testing và validation
Quá trình kiểm thử được thực hiện qua các giai đoạn nghiêm ngặt:
- Kiểm thử trên bàn gá 1 trục (1-DOF Testbed): Cố định máy bay trên trục xoay đơn để tinh chỉnh tham số PID cho trục Roll/Pitch độc lập.
- Kết quả xác định hệ số tối ưu: $K_p = 1.35$, $K_i = 0.04$, $K_d = 0.42$.
- Thời gian đáp ứng đạt trạng thái xác lập (Settling Time): $t_s < 0.65\text{ s}$, độ vọt lố (Overshoot) $\le 8.5%$.
- Kiểm thử triệt tiêu nhiễu IMU: Bộ lọc bù giúp giảm 87.3% biên độ dao động ký sinh từ rung động cơ khí của 4 động cơ khi quay ở mức 60% công suất tải.
- Kiểm thử truyền dẫn không dây RFM22B: Tỷ lệ mất gói (Packet Loss Rate) ở cự ly 120 m không vật cản đạt $< 1.2%$; độ trễ truyền dữ liệu trung bình duy trì ở mức $12.5\text{ ms}$.
Kết quả đạt được
| Chỉ số hiệu năng (Metric) | Mục tiêu ban đầu | Kết quả thực nghiệm đạt được | Trạng thái |
|---|---|---|---|
| Tổng khối lượng toàn tải | $< 2000\text{ g}$ | 1450 g (Bao gồm Pin 184g, Mạch, Khung) | Đạt ($+27.5%$ biên dự phòng) |
| Tổng lực nâng tối đa | $\ge 3500\text{ g}$ | 3920 g (~980g x 4 động cơ) | Đạt (Tỷ lệ Lực nâng/Trọng lượng = 2.7) |
| Thời gian bay liên tục | 5 - 10 phút | 7 phút 45 giây (Pin LiPo 2200mAh) | Đạt |
| Tần số cập nhật vòng kín | $\ge 200\text{ Hz}$ | 400 Hz (Chu kỳ ngắt Timer $2.5\text{ ms}$) | Vượt kế hoạch ($+100%$) |
| Cự ly điều khiển ổn định | 100 - 200 m | 150 m (Ngoài trời, không vật cản) | Đạt |
| Sai số góc cân bằng tĩnh | $< \pm 2.0^\circ$ | $\pm 1.2^\circ$ | Đạt |
Đổi mới và đóng góp
- Làm chủ hoàn toàn kiến trúc phần cứng và Firmware 32-bit: Khác với các dự án sinh viên sử dụng bo mạch mã nguồn mở có sẵn (như KK2.0, APM), nhóm đã tự thiết kế sơ đồ nguyên lý mạch, layout PCB phân phối nguồn, và lập trình trực tiếp thanh ghi vi điều khiển STM32F407 (ARM Cortex-M4), khai thác triệt để khối tính toán số thực FPU phần cứng để xử lý ma trận và thuật toán lọc bù ở tần số $400\text{ Hz}$.
- Giải pháp truyền thông 868 MHz chống nhiễu chuyên dụng: Việc lựa chọn module RFM22B ở băng tần Sub-GHz 868 MHz thay cho chuẩn 2.4 GHz thông dụng giúp loại bỏ hoàn toàn hiện tượng can nhiễu từ các thiết bị phát Wi-Fi/Bluetooth trong môi trường đô thị, tăng độ ổn định của liên kết điều khiển lên hơn 90%.
- Bộ công cụ giám sát Telemetry trực quan thời gian thực: Kết hợp STMStudio và phần mềm C++ Windows Forms tùy biến cho phép hiển thị tức thời đồ thị sai số góc Euler, giá trị PWM từng động cơ và điện áp pin với tốc độ cập nhật 50 Hz, hỗ trợ rút ngắn 70% thời gian căn chỉnh hệ số PID so với phương pháp thử - sai truyền thống.
Ứng dụng thực tế và triển khai
Khả năng ứng dụng thực tế
- Trắc địa và giám sát nông nghiệp tầm thấp: Mang tải cảm biến đa phổ hoặc camera trọng lượng nhẹ (<300g) khảo sát diện tích lúa, rừng cao su.
- Trinh sát và cứu hộ cứu nạn: Tiếp cận các khu vực sạt lở hoặc nhà xưởng hỏa hoạn có nồng độ khí độc cao mà con người không thể trực tiếp vào.
- Nền tảng nghiên cứu và đào tạo Robotics: Làm kit thí nghiệm chuẩn cho các học phần Cơ điện tử, Lý thuyết điều khiển tự động, và Xử lý tín hiệu số tại các trường đại học.
Hướng dẫn triển khai và vận hành hệ thống
+---------------------------------------------------------------------------------+
| QUY TRÌNH VẬN HÀNH 4 BƯỚC AN TOÀN |
+---------------------------------------------------------------------------------+
| BƯỚC 1: Hiệu chuẩn cảm biến (IMU Calibration) |
| Đặt Quadrocopter trên mặt phẳng tuyệt đối, cấp nguồn pin 11.1V. Giữ yên thân |
| máy bay trong 3 giây để vi điều khiển lấy 500 mẫu tính toán Offset Gyro. |
+---------------------------------------------------------------------------------+
| BƯỚC 2: Kiểm tra kết nối không dây (RF Handshake) |
| Bật bộ điều khiển cầm tay 868 MHz. Đèn LED chỉ thị trên STM32F4 chuyển từ nhấp |
| nháy sang sáng liên tục xác nhận kết nối RFM22B thành công. |
+---------------------------------------------------------------------------------+
| BƯỚC 3: Mở khóa động cơ (Arming Sequence) |
| Gạt Joystick Throttle xuống mức thấp nhất (0%) và đẩy hết hành trình sang phải |
| trong 2 giây để kích hoạt xuất xung PWM từ 1000us đến 2000us đến 4 ESC. |
+---------------------------------------------------------------------------------+
| BƯỚC 4: Cất cánh và giám sát Telemetry |
| Tăng ga Throttle từ từ lên mức ~50% (Hovering Point), quan sát trạng thái thăng|
| bằng qua màn hình máy tính kết nối cổng UART RS232. |
+---------------------------------------------------------------------------------+
Phân tích chi phí chế tạo (BOM)
| Thành phần linh kiện | Số lượng | Chi phí ước tính (VND) |
|---|---|---|
| Khung máy bay Frame X650 nhôm/fiberglass | 1 bộ | 350.000 |
| Động cơ Sunnysky A2212 980KV | 4 chiếc | 720.000 |
| Bộ điều tốc ESC Turnigy Plush 30A | 4 chiếc | 600.000 |
| Cánh quạt Emax 10x4.5 (2 CW, 2 CCW) | 2 cặp | 80.000 |
| Bo mạch STM32F4 Discovery | 1 bo | 380.000 |
| Cảm biến MPU6050 6-DOF | 1 chiếc | 60.000 |
| Module RF HopeRF RFM22B (TX + RX) | 2 chiếc | 240.000 |
| Pin LiPo Wild Scorpion 3S 2200mAh 35C | 1 pack | 350.000 |
| Linh kiện phụ trợ (Joystick, PCB, dây cắm) | - | 150.000 |
| Tổng cộng | 2.930.000 VND (~130 USD) |
Mức chi phí này thấp hơn 55 - 65% so với việc trang bị các mẫu máy bay thương mại cùng kích thước tải trọng vào thời điểm công bố.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Thiếu định vị vị trí toàn cầu: Hệ thống chưa tích hợp GPS và cảm biến đo áp suất khí quyển (Barometer), do đó việc giữ độ cao và vị trí trong không gian vẫn phụ thuộc vào kỹ năng can thiệp Joystick liên tục của người điều khiển.
- Trôi góc hướng Yaw dài hạn: Do chưa tích hợp cảm biến từ trường 3 trục (Magnetometer HMC5883L) vào vòng lặp kín, góc Yaw có hiện tượng trôi nhẹ sau khoảng 3 - 5 phút bay liên tục.
- Thời lượng bay giới hạn: Dung lượng pin 2200 mAh chỉ đáp ứng thời gian bay an toàn ~7.5 phút; tỷ lệ khối lượng pin/tải trọng cần tiếp tục được tối ưu hóa.
Hướng phát triển tiếp theo
- Ứng dụng bộ lọc Kalman mở rộng (Extended Kalman Filter - EKF): Nâng cấp từ bộ lọc bù lên EKF 9-DOF để kết hợp dữ liệu IMU, Barometer MS5611 và GPS Ublox NEO-M8N.
- Điều khiển bền vững (Robust Control): Triển khai giải thuật điều khiển trượt (Sliding Mode Control - SMC) hoặc điều khiển Backstepping thích nghi để chống chịu tốt hơn trước các cơn gió giật ngoài trời.
- Tích hợp thị giác máy tính (Optical Flow / FPV): Gắn module camera FPV và cảm biến lưu lượng quang học phía dưới bụng máy bay để tự động giữ vị trí trong nhà (Indoor Hovering) không cần GPS.
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật (Cơ điện tử, Tự động hóa, Điện tử): Tài liệu tham khảo toàn diện từ lý thuyết mô hình toán học động lực học 6-DOF, phương pháp biến đổi góc Euler, đến kỹ thuật lập trình thanh ghi ARM Cortex-M4 và giao thức I2C/SPI phần cứng.
- Kỹ sư phát triển hệ thống nhúng (Embedded Developers): Mẫu kiến trúc firmware điều khiển thời gian thực (Hard Real-Time Loop 400 Hz), cấu trúc code C++ chống bão hòa tích phân (Anti-windup PID), và kỹ thuật khử nhiễu cảm biến chuyển động.
- Nhóm nghiên cứu UAV và Doanh nghiệp chế tạo: Mô hình nền tảng chi phí thấp để thử nghiệm các thuật toán bay tự hành, kiểm thử cảm biến và phát triển các thiết bị bay trinh sát chuyên dụng.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật phần cứng tối thiểu để triển khai và chạy lại hệ thống này là gì?
Cần một vi điều khiển 32-bit có tốc độ xung nhịp tối thiểu 72 MHz (khuyến nghị STM32F4 168 MHz có hỗ trợ FPU), 1 cảm biến IMU 6-DOF hỗ trợ giao tiếp I2C tốc độ 400 kHz, 4 động cơ BLDC kèm 4 ESC có tần số nhận xung $\ge 400\text{ Hz}$, cùng nguồn cấp pin LiPo có dòng xả liên tục tối thiểu 30C để đáp ứng công suất tức thời khi cất cánh.
2. Giới hạn tải trọng (Payload) và khả năng nâng của hệ thống là bao nhiêu?
Tổng lực nâng cực đại của 4 động cơ Sunnysky A2212 980KV kết hợp cánh 10x4.5 là $3920\text{ g}$. Với khối lượng bản thân máy bay là $1450\text{ g}$, hệ thống đạt tỷ lệ Lực nâng/Khối lượng là 2.7:1 (chuẩn an toàn bay cần $\ge 2:1$). Tải trọng hữu ích tối đa có thể mang thêm (camera, cảm biến) là khoảng $400 - 500\text{ g}$ mà vẫn đảm bảo độ cơ động và ổn định của vòng lặp cân bằng.
3. Làm thế nào để tích hợp thêm cảm biến GPS và Barometer vào hệ thống hiện tại?
Bo mạch STM32F4 Discovery còn trống 2 khối UART và 1 bus I2C thứ hai. Cảm biến áp suất Barometer (như MS5611 hoặc BMP180) có thể nối trực tiếp vào bus I2C2 để tính toán cao độ với độ phân giải 10 cm. Module GPS (như Ublox NEO-7M/8N) kết nối qua cổng UART2 với baudrate 38400 bps, truyền dữ liệu tọa độ NMEA để lập trình thuật toán dẫn đường theo điểm đặt trước (Waypoint).
4. Quy trình bảo trì và khắc phục lỗi rung lắc (Oscillation) khi bay thực tế?
Hiện tượng rung lắc thân máy bay thường do hai nguyên nhân:
- Hệ số $K_p$ hoặc $K_d$ trong bộ điều khiển PID quá lớn -> Cần giảm $K_p$ từng bước 0.1 và quan sát phản ứng qua STMStudio.
- Mất cân bằng động của cánh quạt -> Tháo cánh quạt, sử dụng dụng cụ cân bằng cánh (Propeller Balancer) và băng dính chuyên dụng để triệt tiêu độ lệch trọng tâm trước khi gắn vào motor.
5. Dự toán tổng mức kinh phí và thời gian hoàn vốn nếu ứng dụng thương mại?
Chi phí hoàn thiện mẫu thử nghiệm đơn chiếc là khoảng 2.930.000 VND (~130 USD). Khi sản xuất theo lô từ 10 - 50 bộ, chi phí gia công khung và linh kiện có thể giảm xuống dưới 2.200.000 VND (~95 USD). Đối với các ứng dụng dịch vụ như quay phim trắc địa hoặc giám sát công trình, thời gian thu hồi vốn đầu tư ước tính chỉ trong vòng 1 - 2 tuần khai thác thực tế.
Kết luận
Đồ án tốt nghiệp "Nghiên cứu và chế tạo máy bay 4 cánh Quadrocopter" của nhóm sinh viên Trường Đại học Sư phạm Kỹ thuật TP.HCM đã giải quyết trọn vẹn bài toán điều khiển phi tuyến và tự cân bằng tư thế cho phương tiện bay không người lái. Thông qua việc kết hợp nền tảng phần cứng hiệu năng cao ARM Cortex-M4 STM32F407 (168 MHz), cảm biến MPU6050, giải thuật lọc bù ($\alpha = 0.98$) và bộ điều khiển PID số hoạt động ở tần số lấy mẫu 400 Hz, mô hình đã chứng minh độ ổn định vững chắc khi vận hành ngoài trời với sai số góc nghiêng tĩnh $\le \pm 1.2^\circ$ và thời gian bay liên tục gần 8 phút.
Dự án không chỉ khẳng định năng lực làm chủ công nghệ điều khiển bay phức tạp từ cấp độ thanh ghi phần cứng mà còn cung cấp cơ sở dữ liệu thực nghiệm và mã nguồn nền tảng giá trị cho cộng đồng nghiên cứu Robotics, tạo tiền đề vững chắc cho việc phát triển các thế hệ UAV tự hành thông minh "Make in Vietnam" trong tương lai.