首页 > 解决方案 > Arduino Pro Mini + Xbox 360 USB 游戏手柄 + 蓝牙 – 我可以有多少个按钮?

问题描述

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

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

标签: bluetootharduinohidgamepad

解决方案


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

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


推荐阅读