-
-
-
Tổng tiền thanh toán:
-
Thương hiệu: (Đang cập nhật ...) Loại: (Đang cập nhật ...)
Sau khi hoàn thành Bài 9 – Hướng dẫn nạp chương trình ESP32, học viên đã biết cách thiết lập Arduino IDE, nạp chương trình và kiểm tra ESP32.
Trong bài này, chúng ta bắt đầu đi vào phần quan trọng nhất của hệ thống điều khiển Drone: hiệu chỉnh và ổn định chuyển động.
Một Drone muốn bay ổn định phải đồng thời xử lý chính xác dữ liệu cảm biến, chiều quay motor, vị trí motor, Motor Mixing và thuật toán PID.
Sau bài học, học viên có thể:
Drone có ba chuyển động góc chính.
Nghiêng Drone sang trái hoặc phải.
ROLL
←──── Drone ────→
Nghiêng Drone về phía trước hoặc phía sau.
PITCH
Trước ↔ Sau
Xoay Drone quanh trục thẳng đứng.
YAW
↻
Drone
Ba đại lượng này là cơ sở để bộ điều khiển xác định Drone đang ở trạng thái nào.
MPU6050 gồm:
Dữ liệu cảm biến được ESP32 sử dụng để xác định chuyển động của Drone.
Mô hình cơ bản:
MPU6050
↓
ESP32
↓
Tính trạng thái
↓
PID
↓
Motor Mixing
↓
4 Motor
Khi Drone nằm trên mặt phẳng, lý tưởng:
Roll ≈ 0°
Pitch ≈ 0°
Tuy nhiên cảm biến thực tế có thể xuất hiện sai số.
Ví dụ:
Roll = +1.5°
Pitch = -2.0°
Do đó cần thực hiện calibration.
Có thể hiểu đơn giản:
Giá trị đo
-
Offset
=
Giá trị đã hiệu chỉnh
Đây là bước rất quan trọng.
Khi nghiêng Drone sang phải, dữ liệu Roll phải thay đổi đúng theo quy ước của chương trình.
Khi nghiêng về trước, dữ liệu Pitch phải thay đổi đúng hướng.
Nếu dữ liệu bị đảo dấu:
Nghiêng phải
↓
Firmware hiểu là nghiêng trái
thì bộ điều khiển có thể tạo phản hồi ngược.
Khi đó không được vội chỉnh PID.
Phải kiểm tra:
Một Quadrotor có bốn motor:
FRONT
M1 M2
M3 M4
REAR
Đây chỉ là một cách quy ước minh họa.
Trong Drone thực tế, giáo viên phải thống nhất:
Vị trí motor + số thứ tự motor + GPIO + chiều quay + Motor Mixing.
Nếu sai một trong các thành phần này, Drone có thể phản ứng sai.
Drone sử dụng các motor quay theo hai chiều ngược nhau.
Ví dụ:
M1 → CW
M2 → CCW
M3 → CCW
M4 → CW
Cấu hình cụ thể phụ thuộc thiết kế frame và firmware.
Mục đích là tạo sự cân bằng moment xoắn.
Nếu một motor quay sai chiều:
Motor Mixing là thuật toán chuyển các lệnh:
Throttle
Roll
Pitch
Yaw
thành tín hiệu điều khiển:
M1
M2
M3
M4
Có thể hình dung:
Throttle
│
Roll ────────────┤
Pitch ───────────┤
Yaw ─────────────┤
↓
MOTOR MIXING
┌──┬──┬──┬──┐
↓ ↓ ↓ ↓
M1 M2 M3 M4
Một cấu trúc minh họa:
M1 = T + R + P - Y
M2 = T - R + P + Y
M3 = T - R - P - Y
M4 = T + R - P + Y
Trong đó:
T = Throttle
R = Roll
P = Pitch
Y = Yaw
Lưu ý: dấu +/- không giống nhau cho mọi thiết kế Drone.
Nó phụ thuộc:
Vì vậy học viên phải xây dựng Motor Mixing dựa trên chính Drone đang sử dụng.
PID là thuật toán điều khiển phản hồi gồm:
P – Proportional
I – Integral
D – Derivative
Bộ điều khiển so sánh:
Góc mong muốn
↓
Sai số
↑
Góc thực tế
Ví dụ:
Setpoint = 0°
Actual = 10°
Error = 0 - 10
= -10°
PID sử dụng sai số này để tạo tín hiệu hiệu chỉnh.
P phản ứng theo sai số hiện tại.
P = Kp × Error
Nếu Drone lệch càng nhiều:
→ tín hiệu P càng lớn.
Drone:
Drone có thể:
I tích lũy sai số theo thời gian.
I = Ki × Σ(Error × dt)
I giúp xử lý tình trạng Drone có sai số kéo dài.
Ví dụ:
+1°
+1°
+1°
+1°
+1°
...
Sai số nhỏ nhưng tồn tại liên tục.
Thành phần I sẽ tích lũy sai số để tạo thêm tín hiệu hiệu chỉnh.
Nếu I quá lớn có thể gây:
Do đó cần giới hạn giá trị Integral.
D phản ứng theo tốc độ thay đổi của sai số.
D = Kd × d(Error)/dt
D giúp hệ thống giảm xu hướng vượt quá giá trị mong muốn.
Có thể hiểu:
P → Sai số hiện tại
I → Sai số tích lũy
D → Tốc độ thay đổi sai số
D quá lớn có thể làm hệ thống nhạy với nhiễu cảm biến.
Hệ thống hoạt động theo vòng kín:
Góc mong muốn
↓
SETPOINT
↓
ERROR
↓
PID
↓
MOTOR MIXING
↓
M1 M2 M3 M4
↓
DRONE
↓
MPU6050
↓
Dữ liệu mới
↓
ERROR
Đây là nguyên lý Feedback Control.
Giả sử:
Roll mong muốn = 0°
Roll thực tế = +8°
Sai số:
Error = 0 - 8
= -8°
PID tạo correction.
Motor Mixing phân bổ correction cho bốn motor.
Drone bắt đầu tạo moment đưa Roll trở về gần:
0°
Khi sai số giảm:
PID Output ↓
Drone dần ổn định.
Nên bắt đầu với hệ thống ổn định cơ khí trước.
Sau đó:
Không nên thay đổi quá nhiều thông số cùng lúc.
Sau khi P đã có phản hồi phù hợp, mới xem xét I.
Mục tiêu của I là xử lý:
sai số tồn tại lâu dài.
Nếu I quá lớn:
Drone tích lũy correction
↓
Overshoot
↓
Dao động
Do đó cần đặt giới hạn Integral.
D được sử dụng để cải thiện phản ứng động của hệ thống.
Tuy nhiên D nhạy với nhiễu.
Nếu MPU6050 bị rung:
Rung cơ khí
↓
Dữ liệu Gyro nhiễu
↓
D phản ứng mạnh
↓
Motor thay đổi liên tục
Vì vậy trước khi tăng D cần kiểm tra:
Đây là nguyên tắc quan trọng.
Nếu Drone:
thì không nên cố giải quyết bằng PID.
Quy trình đúng:
Cơ khí
↓
Motor
↓
Cánh
↓
Cảm biến
↓
Motor Mixing
↓
PID
Phải kiểm tra từ nguyên nhân nền tảng trước.
☐ Khung chắc chắn
☐ Motor chắc chắn
☐ Cánh đúng vị trí
☐ Không có cánh nứt
☐ Trọng tâm hợp lý
☐ MPU6050 cố định
☐ Calibration hoàn tất
☐ Roll/Pitch đúng hướng
☐ Đúng M1–M4
☐ Đúng chiều quay
☐ Đúng Motor Mixing
☐ Đúng ESP32
☐ Đúng GPIO
☐ Đúng PID
☐ Đúng giới hạn output
☐ Có xử lý failsafe
Khi kiểm tra motor trên bàn phải tháo cánh quạt.
Không thực hiện thử nghiệm với cánh quạt đang quay gần người.
Quy trình kiểm tra:
THÁO CÁNH
↓
Kiểm tra motor
↓
Kiểm tra chiều quay
↓
Kiểm tra Motor Mixing
↓
Kiểm tra cảm biến
↓
Kiểm tra điều khiển
↓
Sau đó mới thử bay
Học viên:
Tháo cánh quạt.
Kiểm tra:
M1 → đúng vị trí?
M2 → đúng vị trí?
M3 → đúng vị trí?
M4 → đúng vị trí?
Sau đó kiểm tra:
CW / CCW
Thay đổi lần lượt:
Throttle
Roll
Pitch
Yaw
và quan sát:
M1
M2
M3
M4
Học viên phải giải thích được tại sao mỗi motor tăng hoặc giảm.
Lập bảng:
| Lần | Kp | Ki | Kd | Hiện tượng |
|---|---|---|---|---|
| 1 | ||||
| 2 | ||||
| 3 | ||||
| 4 |
Các hiện tượng cần ghi:
Sau khi hoàn thành Bài 10, học viên phải hiểu được chuỗi:
MPU6050 → Đo trạng thái → Tính sai số → PID → Motor Mixing → Motor → Drone → MPU6050
và có thể giải thích:
Tại sao Drone biết mình đang nghiêng, tại sao motor phải thay đổi tốc độ và bằng cách nào hệ thống đưa Drone trở lại trạng thái mong muốn.
Đây là nền tảng để chuyển sang Bài 11: Lập trình bay tự động A → B, trong đó hệ thống sẽ không chỉ giữ cân bằng mà còn bắt đầu xử lý vị trí, hướng, khoảng cách và quỹ đạo bay.
Lưu ý: Các giá trị PID cụ thể không nên sao chép từ một Drone khác. Bộ thông số phù hợp phụ thuộc vào khung, motor, cánh, khối lượng, nguồn, cảm biến, tần số vòng điều khiển và cách triển khai firmware của từng hệ thống.