Dự án DIY · làm với Claude Code và AK Base Kit

Điều khiển một drone đồ chơi từ điện thoại và máy tính

Đây là chiếc drone đồ chơi Vecto Flying Angel VTY15 mua ở cửa hàng. Nó không có tài liệu kỹ thuật, chip trên bo không ghi tên. Sau năm ngày tìm hiểu, drone bay được theo lệnh từ app tự viết, sóng phát qua module nRF24L01+. Drone để nguyên, không sửa firmware.

0DDcờ
180roll
280pitch
383ga
480yaw
520?
620?
720?
820?
970?
1004tốc độ
1100nút
1200đèn
Gói điều khiển 13 byte lúc hai cần ở giữa. Tay điều khiển phát gói này 8 ms một lần. Ô ? là byte chưa rõ nghĩa.
Bốn motor của drone quay trên bàn thử
Drone dán trên bàn thử, bốn motor đang quay theo lệnh gửi từ máy tính. Ảnh do camera USB của bàn thử chụp.
5 ngàytừ lúc mở hộp tới lần bay đầu tiên (04–08/10/2026)
13 bytemỗi gói điều khiển, gồm ga, roll, pitch, yaw và các nút
98%số gói drone nhận được khi phát 8 ms một gói
2 appcho máy tính và điện thoại Android, cả hai đã bay thật

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.

App điều khiểnChạy trên máy tính hoặc điện thoại. Có hai cần ảo, gửi gói 13 byte xuống kit 20 lần mỗi giây.
USB115200
AK Base Kit 2.1 + nRF24L01+Ghép cặp với drone, đổi qua 5 kênh, phát 8 ms một gói. Nếu app ngừng gửi quá 0,5 giây, kit tự hạ ga về 0.
2,4 GHzGFSK 1 Mbps
Drone VTY15Để nguyên như lúc mua, không sửa gì.
App Toy Drone Remote trên máy tính
App trên máy tính, điều khiển bằng chuột hoặc bàn phím. Bay thật lần đầu ngày 08/10/2026.
Điện thoại Android nối AK Base Kit 2.1 qua cáp USB
App Android, điện thoại nối kit bằng cáp USB-C. Đã bay một chuyến ngày 09/10/2026.

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
Toàn cảnh bàn thử có đánh số
Trên bànĐể làm gì
(1) AK Base Kit 2.1Phát lệnh tới drone
(2) ESP32-S3 chạy ESP-SDRNghe gói thật trên sóng
(3) Nguồn lập trìnhCấp điện, đo dòng theo từng lệnh
(4) Tay điều khiển gốcMẫu để so
(5) DroneDán cố định
(6) Micro USBNghe tiếng motor, suy ra tốc độ quay
(7) Camera USBNhì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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
Một gói điều khiển trên sóng, chụp bằng ESP-SDR
Một gói điều khiển thu bằng ESP32-S3, ở kênh 72. Sóng mang bật lên khoảng 40 µs rồi mới tới dữ liệu 1 Mbps.

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à 5Bắ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ơnPhá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 VTY15Loại khác chưa thử
AK Base Kit 2.1Có sẵn nRF24L01+ và màn OLED
Cáp USB-CNố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ó OTGChạ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.

Drone Vecto Flying Angel VTY15 và tay điều khiển gốc
Drone và tay điều khiển gốc.
An toàn. Lần đầu thử nên tháo cánh hoặc cố định drone. Ga 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à MCUChưa biết. Định dạng sóng giống chip HS6200
Xoay (yaw), nút STOP, bộ canh lúc đang bayChưa kiểm tra lúc bay thật
Gói trả lời của droneChưa thu được