我写了一个arduino库silverball,它支持键盘和鼠标的RN42和HID协议。我有一个示例应用程序,显示如何通过BT模块发送HID原始报告。我的设计是用来从自定义控制器玩游戏。
正如之前所述,您需要将您的BT模块设置为HID模式(从串行连接发送命令S~,6
或在启动模块时将GPIO11
设置为高)。默认情况下,应该将模块设置为出厂时的键盘HID,但要将其设置为键盘,请将命令SH,0200
发送到BT模块,并将其设置为键盘模式。
之后,你将需要简单的发送RAW报告给BT,他们将被格式化是这样的:
RN42 HID原始报表格式:
|start(1 byte)|length(1 byte)|descriptor(1 byte)|data(length - 1 [for the descriptor])
键盘的实例:
|0xFD|9|1|modifier|0x00|code 1|code 2|code 3|code 4|code 5|code 6
键盘修饰符位(作为一个字节发送)
bit 7 |bit 6 |bit 5 |bit 4 |bit 3 |bit 2 |bit 1 |bit 0
rt GUI |rt alt |rt shift |rt ctrl|lt GUI |lt alt |lt shift |lt ctrl
我的代码可以在github上找到 - 用它来做任何你喜欢的!
感谢您的意见,但不幸的是,这并不适用于所有的Arduinos。 “键盘”功能仅适用于莱昂纳多。 – user2238127 2013-04-28 15:24:08
莱昂纳多(或Micro或Due)的键盘库适用于HID over USB。据我所知,它不适用于RN-42。 – efunneko 2014-08-04 00:24:41