【问题标题】:HID reports/scan codes for RN 42 HID's gamepad profileRN 42 HID 游戏手柄配置文件的 HID 报告/扫描代码
【发布时间】:2015-05-04 22:46:38
【问题描述】:

我正在创建一个带有 arduino leonardo 和 RN 42 HID 模块的蓝牙 HID 游戏手柄。

我实际上可以使用该模块来迭代键盘或鼠标,但我不明白如何

发送正确的扫描码以迭代游戏手柄或操纵杆。​​p>

在模块的用户指南中,他们说原始报告必须这样发送:

0xFD,0x06,Buttons 0-7,Buttons 8-15,X1,Y1,X2,Y2

知道如何设置报告吗?

【问题讨论】:

    标签: bluetooth


    【解决方案1】:

    首先,您必须初始化一个SoftwareSerial 实例。 然后你必须进入 RN-42 模块的 Command Mode 序列 $$$,设置 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)
    

    请注意,按钮是通过二进制值控制的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-21
      • 2013-07-11
      • 1970-01-01
      • 2021-10-06
      • 2018-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多