恕鄙人能力有限,无法通过乐高编程实现HUB本身对HID设备的模拟。
单单是技术研究就研究了整整一个月,几乎所有时间都在研究micropython BLE HID协议实现,期间甚至还刷了2版不同版本的固件,最终都没有达成想要的效果。所以不得不通过ESP中转。
此版本无需PC端代码。
乐高HUB运行代码,启动蓝牙,广播自身状态数据。
ESP实现蓝牙双连:连接乐高并获取乐高数据,映射为HID协议数据格式;同时模拟成HID设备(如鼠标)连接主机(PC、手机等),并实现转发乐高数据到主机。
~~ HUB.py
、ESP32.py
Python代码分别为乐高代码、ESP32代码,请将代码上传至对应设备中 ~~
- 在SPIKE PRIME HUB中执行
HUB.py
代码 - ESP32目录中所有文件放到ESP32中,入口程序为
lego_repeater.py
boot.py
中所有注释打开,则为ESP32开机自启动- 游戏按键映射在
game_map.py
,可自行调整 lego_repeater.py
实现蓝牙双连接、内部协议数据翻译等。simulate_hid_device.py
实现模拟鼠标和手柄设备。
启动顺序:
- 乐高先启动,启动后自动进行蓝牙广播,等待被搜索连接
- ESP32启动,将自动连接乐高,双方建立连接后,乐高上的图标将发生变化
- 在主机(Windows、Linux、安卓等)搜索蓝牙设备,与
天空之傲
配对
- 乐高直接用电池供电。ESP32使用线缆供电即可。运行时所有设备都不用有线连接到电脑。
- 鼠标模拟功能:乐高上下左右晃动映射鼠标指针移动,左右键点击,外接电机映射滚轮。
- 手柄等更多功能看代码就行,并且代码非常灵活,可以自己扩充。