Arduino Pro Mini + Xbox 360 USB 游戏手柄 + 蓝牙——我可以有多少个按钮?

Arduino Pro Mini + Xbox 360 usb gamepad + Bluetooth – how many buttons can I have?

我查看了 RN-42 模块手册,蓝牙 HID 真的将手柄和游戏手柄模式限制为最多 16 个按钮吗?所有 gamepad/joystick 报告都需要 6 个字节长,其中两个是当前按钮状态的按位掩码。据我所知,这最多给我们留下了 16 个按钮。

我正在尝试向我的 xbox-360 游戏手柄添加额外的按钮并将其蓝牙化,但它已经有 16 个按钮(如果将触发器算作 z 轴则为 14 个,顺便说一句我也没有真的知道如何适应 RN-42 报告,除非我只是将它们作为数字值而不是模拟值发送)。我知道 USB HID 协议本身允许更多的游戏手柄按钮,而 RN-42 在处理具有更多键的键盘时没有问题,所以如果蓝牙 HID 协议出于某种原因将游戏手柄限制为 16 个,那将很奇怪。

HID 报告描述符限制了您可以发送的按钮和轴的数量。如果您提供自己的描述符,Bluetooth HID 将让您发送任何您想要发送的内容,但 RN-42 的内置游戏手柄模式配置为 16 个按钮和 4 个轴。

我认为 RN-42 不允许您指定自定义报告描述符,但也许至少可以添加一些按钮。该手册描述了用于发送键盘和鼠标代码的 "combo" 模式,还提到您可以在组合和键盘模式下发送 16 个额外的 HID 消费者键码。也许您也可以在游戏手柄模式下发送这些代码?在 RN-42 的每个 HID 模式中转储 HID 描述符以查看可以发送哪些报告会很有趣。