蓝牙遥控器采用 BLE 技术连接 Tbot-I 主控,可以方便的遥控雷霆,大大提升了雷霆的可玩性和竞技性。
    Tbot I 功能库提供了方便应用的API,获取按键的事件和数据。在用户程序中,主控的蓝牙遥控默认是打开,用户编程时可以通过 Turnon_Remote 打开/关闭蓝牙遥控服务。
    使用 Check_Key 获取按键状态,Check_Key_Action 检测按键动作,可以获取按键事件的按键标识为KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT, KEY_SELECT, KEY_BACK, KEY_A, KEY_B, KEY_X, KEY_Y, KEY_L1, KEY_L2, KEY_R1, KEY_R2, KEY_ROCKER_L, KEY_ROCKER_R
    使用 Get_Control_Value 获得摇杆的模拟数值(按键数据),可以获取按键数据的按键标识为 KEY_ROCKER_L_X, KEY_ROCKER_L_Y, KEY_ROCKER_R_X, KEY_ROCKER_R_Y, KEY_L2_ANALOG, KEY_R2_ANALOG
    常用的 API

    1. /**
    2. * @brief 打开/关闭蓝牙遥控器功能,默认是打开蓝牙遥控器功能的,但是蓝牙遥控器功能会占用
    3. * 系统资源,如果不需要蓝牙遥控器功能,可以使用此函数关闭
    4. *
    5. * @param enable: true打开蓝牙遥控器功能, false关闭蓝牙遥控器功能
    6. */
    7. void SENSOR_REMOTER::Turnon_Remote(bool enable)
    8. /**
    9. * @brief 判断按键状态
    10. *
    11. * @param key_index 按键标识,参照枚举变量 enum_Remoter_Key
    12. * @return true 按键状态为按下
    13. * @return false 按键状态为释放
    14. */
    15. bool SENSOR_REMOTER::Check_Key(int key_index)
    16. /**
    17. * @brief 检测是否发生了按下动作(每次按下只能读到一次true)或释放动作(每次释放只能读到一次true)
    18. *
    19. * @param key_index 按键标识,参照枚举变量 enum_Remoter_Key
    20. * @param key_action 检测的动作,0为释放按键,1为按下按键
    21. * @return true 检测的动作有发生
    22. * @return false 检测的动作没有发生
    23. */
    24. bool SENSOR_REMOTER::Check_Key_Action(int key_index, int key_action)
    25. /**
    26. * @brief 获取摇杆或按键的数值
    27. *
    28. * @param key_index 摇杆、按键标识,参照枚举变量 enum_Remoter_Value
    29. * @return int 摇杆、按键的模拟数值
    30. */
    31. int SENSOR_REMOTER::Get_Control_Value(int key_index)

    Tbot I 系统编程示范

    if (BLE_Remoter.Check_Key_Action(KEY_Y, KEY_PRESSING))
        {
            Speaker_Thunder.Set_Sound_Volume(100);
            Speaker_Thunder.Play_Song(SPEAKER_THUNDER::SOUND_MUSIC_C5);
        }
        Motor_Thunder.Set_Target(1, (BLE_Remoter.Get_Control_Value(KEY_ROCKER_L_Y) + BLE_Remoter.Get_Control_Value(KEY_ROCKER_L_X)) * 0.4);
        Motor_Thunder.Set_Target(2, (BLE_Remoter.Get_Control_Value(KEY_ROCKER_L_Y) - BLE_Remoter.Get_Control_Value(KEY_ROCKER_L_X)) * 0.4);
    

    示例程序: BleRemoter.ino