我正在创建一个带有arduino leonardo和RN 42 HID模块的蓝牙HID游戏手柄。
我实际上可以使用该模块迭代键盘或鼠标,但我不明白如何
发送正确的扫描码以迭代游戏手柄或操纵杆。 p>
在该模块的用户指南中,他们说原始报告必须像这样发送:
0xFD,0x06,Buttons 0-7,Buttons 8-15,X1,Y1,X2,Y2
有关如何设置报告的想法吗?
答案 0 :(得分:2)
首先,您必须初始化SoftwareSerial
实例。
然后你必须输入 $$$ 序列的RN-42模块的命令模式,设置HID操纵杆模式(SH,0240)和命名设备(SN,...),设置波特率(SU,...)等。
成功初始化模块后,您可以按如下方式发送HID操纵杆报告:
SoftwareSerial bluetooth(bluetoothRX, bluetoothTX);
//...
// Command Mode
// --------------
bluetooth.begin(9600);
delay(50);
bluetooth.print("$$$");
delay(50);
bluetooth.print("SN,HIDJoystick\r\n");
delay(50);
bluetooth.print(" SU,57\r\n");
delay(50);
bluetooth.print("S~,6\r\n");
delay(600);
bluetooth.print("SH,0240\r\n");
delay(200);
bluetooth.print("R,1\r\n");
delay(400);
// HID Joystick Report
// --------------
bluetooth.write((byte)0xFD); //Start HID Report
bluetooth.write((byte)0x6); //Length byte
// 1. X/Y-Axis
bluetooth.write(45); //First X coordinate
bluetooth.write(-33); //First Y coordinate
// 2. X/Y-Axis
bluetooth.write(45); //Second X coordinate
bluetooth.write(-33); //Second Y coordinate
// Buttons
bluetooth.write(B10000001); // Second Byte (Buttons 1-8)
bluetooth.write(B10000000); // Second Byte (Buttons 9-16)
请注意,按钮是通过二进制值控制的。