Cách hoạt động
Tay điều khiển gốc gửi lệnh cho drone qua sóng 2,4 GHz. Khi đã biết gói lệnh gồm những gì và phát ở kênh nào, một module nRF24L01+ phát lại được y như vậy. App tạo gói 13 byte, bo AK Base Kit phát gói đó đi.
Ai làm việc gì
Dự án được làm cùng Claude Code. Người làm phần cứng lo hàn dây, cắm thiết bị và quan sát. Claude Code viết firmware, chạy các phép đo, phân tích số liệu và viết tài liệu. Nó tự đo được vì các dụng cụ trên bàn đều nhận lệnh qua cổng USB.
Người làm phần cứng
- Mở vỏ, chụp ảnh bo mạch
- Hàn ba sợi dây vào chip radio SOP-8
- Cắm thiết bị, bật nguồn, cố định drone
- Chọn hướng làm, cho phép mỗi lần quay motor
- Bay thử
Claude Code
- Viết firmware cho kit: bắt SPI, thu phát nRF24, menu trên màn OLED
- Build và nạp firmware, chạy phép đo, đọc kết quả
- Tìm bảng xáo trộn và công thức CRC từ gói thô
- Dùng nguồn, camera, micro và máy thu SDR để kiểm tra
- Viết hai app điều khiển và tài liệu
| Trên bàn | Để làm gì |
|---|---|
| (1) AK Base Kit 2.1 | Phát lệnh tới drone |
| (2) ESP32-S3 chạy ESP-SDR | Nghe gói thật trên sóng |
| (3) Nguồn lập trình | Cấp điện, đo dòng theo từng lệnh |
| (4) Tay điều khiển gốc | Mẫu để so |
| (5) Drone | Dán cố định |
| (6) Micro USB | Nghe tiếng motor, suy ra tốc độ quay |
| (7) Camera USB | Nhìn đèn và từng cánh quạt |
AK Base Kit là bo phát triển mã nguồn mở của AK Foundation. Bo có sẵn shell trên UART, nên muốn thêm một lệnh đo chỉ cần viết vài chục dòng, và nạp firmware cũng qua cổng UART đó.
Các bước đã làm
- Bắt SPI, rồi thu sóng. Hàn ba dây vào chip radio của drone để đọc đường SPI. Từ đó biết địa chỉ, kênh và nội dung từng gói drone nhận. Sau đó dùng nRF24L01+ thu gói thô trên sóng. So hai bên với nhau thì tìm ra bảng xáo trộn và cách tính CRC.
- Dùng kit làm tay điều khiển. Viết một menu 44 mục trên màn OLED. Mỗi mục đổi một byte hoặc một bit trong gói, để thử từng chức năng trên drone thật.
- Làm bàn thử. Máy tính gửi lệnh, đọc dòng điện từ bộ nguồn, xem đèn qua camera, nghe tiếng motor qua micro. Qua đó biết mức ga nào thì motor chạy, bit nào làm drone tắt nguồn, và lý do drone tự tắt khi dùng nguồn bàn.
- Kiểm tra bằng máy thu khác. Dùng ESP32-S3 thu sóng thô rồi giải mã. Gói kit phát ra đủ 13 byte, CRC đúng, giống gói của tay điều khiển gốc. Xong bước này mới gỡ drone khỏi bàn thử để bay.
Những lần đoán sai
Trong lúc làm có nhiều lần đoán sai. Bảng dưới ghi lại vài lần, kèm phép đo cho thấy chỗ sai.
| Lúc đầu nghĩ | Đo lại thì thấy |
|---|---|
| Kênh ghép cặp là 5 | Bắt SPI lúc ghép cặp: kênh 75 |
| Phát gói dày hơn thì drone bắt tốt hơn | Phát 8 ms một gói thì drone nhận 98%. Xuống 7 ms còn 75%, 6 ms còn 25% |
| Drone tự tắt trên bàn là do tự bảo vệ | Do nguồn bàn bị sụt áp. Mắc thêm pin song song thì hết |
| Drone không nghe cần điều khiển vì gói còn thiếu gì đó | Khi bay thật drone vẫn làm theo cần. Trên bàn nó bị dán chặt nên giữ nguyên tốc độ motor |
Tự làm lại
| Cần có | Ghi chú |
|---|---|
| Drone VTY15 | Loại khác chưa thử |
| AK Base Kit 2.1 | Có sẵn nRF24L01+ và màn OLED |
| Cáp USB-C | Nối kit với máy tính hoặc điện thoại |
| Máy tính có Python, hoặc điện thoại Android 8 trở lên có OTG | Chạy app điều khiển |
Trong repo có sẵn file firmware cho kit, app máy tính và file APK cho điện thoại. Nạp firmware cho kit, mở app, bật drone rồi bấm LINK ON.
00 làm motor dừng ngay, nếu đang bay thì drone rơi. Chỉ thử với drone của bạn. Địa chỉ và bảng kênh trong repo đo từ một bộ tay điều khiển, bộ khác có thể khác.Những gì chưa biết
| Byte 5–9 và vài bit cờ | Chưa rõ nghĩa |
| Tên chip radio và MCU | Chưa biết. Định dạng sóng giống chip HS6200 |
| Xoay (yaw), nút STOP, bộ canh lúc đang bay | Chưa kiểm tra lúc bay thật |
| Gói trả lời của drone | Chưa thu được |