English | 简体中文
本项目是一个扑翼机(仿生鸟)蓝牙控制逆向工程项目。通过分析手机APP与扑翼机之间的蓝牙通信协议,实现了用电脑/手机远程控制扑翼机的完整方案。
X-FLY/
├── app/ # 封装好的控制程序(推荐使用)
│ ├── web/ # 🌐 Web 控制服务(最佳体验)
│ │ ├── server.py # FastAPI + WebSocket + BLE 后端
│ │ └── static/ # 玻璃拟态前端
│ │ ├── index.html
│ │ ├── style.css
│ │ └── app.js
│ ├── gui_control.py # 🎨 Tkinter GUI 控制面板
│ └── wasd.py # ⌨️ 命令行 WASD 控制
│
├── scripts/ # 研究/测试脚本(逆向开发过程)
│ ├── code字节测试.py # 单bit测试+组合指令测试
│ ├── verify_control.py # 连接验证脚本
│ ├── code.py ~ code5.py # 各阶段逆向测试
│
├── tools/ # 蓝牙抓包工具
│ ├── capture_windows.bat # Windows抓包脚本
│ ├── android_capture_tool-*.bat # Android抓包工具
│ └── BT_HCI_*.curf # 抓包数据文件
│
├── data/ # 抓包数据保存目录
├── font/ # 字体资源(MiSans)
├── docs/ / temp/ # 文档 / 临时
├── requirements.txt # Python 依赖
├── 启动Web控制.bat # Windows 一键启动
├── README.md # 项目说明
├── LICENSE # Apache 2.0
└── .cnb.yml # CNB配置
pip install -r requirements.txt
python app/web/server.py
或双击 启动Web控制.bat。
启动后终端会显示两个地址:
本机访问: http://localhost:8000
手机访问: http://192.168.x.x:8000 ← 手机浏览器打开即可当遥控器
特性:
python app/gui_control.py
python app/wasd.py
| 按键 | 功能 |
|---|---|
W / ↑ | 前进 |
A / ← | 左转 |
D / → | 右转 |
S / ↓ | 停止 |
Q / E | 强左/右转(Web版) |
空格 | 紧急停止(Web版) |
+ / - | 油门微调(Web版) |
| 特征UUID | 功能说明 |
|---|---|
00007771-8e22-4541-9d4c-21edae82ed19 | 设备初始化与模式控制 |
0000acc1-0000-1000-8000-00805f9b34fb | 飞行控制指令(方向+油门) |
00002a19-0000-1000-8000-00805f9b34fb | 电池电量读取(Web版使用) |
连接后必须发送初始化指令:
f9 04 51 01 56 5a 52 01 53 5a
格式:BB AA(十六进制)
第一字节(BB)- 方向控制:
00 - 停止01 - 左转08 - 强左转(Web版)20 - 居中(直飞)40 - 右转80 - 强右转第二字节(AA)- 油门控制:
00 - 无油门02 - 小油门03 - 中油门FF - 满油门# 启动+居中前进
2002 # 居中 + 小油门
# 左转+油门
0102 # 左转 + 小油门
# 右转+油门
4002 # 右转 + 小油门
# 停止
0000 # 完全停止
| 程序名 | 功能 | 特性 |
|---|---|---|
app/web/server.py | 🌐 Web 控制服务 | FastAPI + WebSocket、虚拟摇杆/键盘/手柄、HUD仪表、主题系统、手机遥控 |
app/gui_control.py | 🎨 Tkinter GUI 控制面板 | HUD动画、电量反馈、键盘/鼠标控制、紧急停止 |
app/wasd.py | ⌨️ 命令行 WASD 控制 | 轻量、快速启动 |
| 脚本名 | 测试内容 |
|---|---|
code字节测试.py | 系统化字节测试(单bit扫描+组合) |
verify_control.py | 连接验证 |
code.py | 基础控制功能 |
code2.py | 单方向测试 |
code3.py | 单油门测试 |
code4.py | 方向+油门组合 |
code5.py | 4位码交互控制 |
Windows系统:
cd tools
capture_windows.bat
Android系统:
使用 tools/android_capture_tool-*.bat 配合 Wireshark 分析
抓包数据保存在 data/ 目录,使用 Wireshark 打开 .curf 或 .log 文件分析蓝牙通信协议
欢迎提交Issue和Pull Request!
如果这个项目对你有帮助,请给个Star支持一下!