通过串口通讯协议、拖拽积木、Python、C+STM32多种编程方式实现遥控器控制。

遥控器模块在开发板的位置图

通过位置图,你可以快速找到遥控器模块在开发板的位置,支持USART、SBUS遥控器,其中USART1为遥控器专用接口。

遥控器模块的串口通讯协议

通过串口调试工具发送串口通讯协议实现遥控器的控制。

参数数据类型可用值参数说明
rateint100000、115200波特率,可参考遥控器手册
modeint遥控器模式,1=大疆DT7遥控器、2=PS3遥控器
dataarray/map/list参照下方的遥控器通道数据对照表读取到的遥控器数据
// 示例:设置遥控器为大疆DT7遥控器
{"type":"remote-control-init","rate":100000,"mode":1}
// 示例:读取遥控器数据
{"type":"remote-control-read"}
// 读取后会通过开发板USB虚拟串口输出,格式如下:
{"type":"remote-control-read","mode":1,"data":[channel]}

遥控器模块的拖拽积木

通过拖拽积木调用Python API函数接口实现遥控器的控制。

遥控器模块的Python API函数接口

通过Python语言调用Python API函数接口实现遥控器的控制。

参数数据类型可用值参数说明
modeint遥控器模式,1=大疆DT7遥控器、2=PS3遥控器
dataarray/map/list参照下方的遥控器通道数据对照表读取到的遥控器数据
// Python API函数 设置遥控器模式
robot.board.module.remote_control.set_init(mode).send()
// 示例:设置遥控器为大疆DT7遥控器
robot.board.module.remote_control.set_init(1).send()
// Python API函数 读取遥控器数据
robot.board.module.remote_control.get_data().send()
// 示例:读取遥控器数据
robot.board.module.remote_control.get_data().send()
// 读取后可以通过下面的方法取出读取到的数据:
robot.board.module.remote_control.read_data[channel]
// 示例:监听遥控器事件
def remote_control_index_{index}_value_{value}_event(robot):
    // 当{index}、{value}条件满足触发内部程序

遥控器模块的C+STM32函数接口

通过C语言调用开发板SDK函数接口实现遥控器的控制。

参数数据类型可用值参数说明
rateint100000、115200波特率,可参考遥控器手册
modeint遥控器模式,1=大疆DT7遥控器、2=PS3遥控器
// C API函数 设置遥控器模式
Remote_Control_Init(int rate, int mode)
// 示例:设置遥控器为大疆DT7遥控器
Remote_Control_Init(100000, 1);
// C API函数 遥控器数据存储结构体
Control_Read_Data
// 示例:读取大疆DT7遥控器ch0通道数据
Control_Read_Data.dji_dt7.ch0;
// 示例:读取PS3遥控器ch0通道数据
Control_Read_Data.ps3.ch0;

遥控器通道数据对照表

大疆DJI7遥控器提供7个通道数据

channel通道名称通道说明
0ch0右侧摇杆左右
1ch1右侧摇杆上下
2ch2左侧摇杆左右
3ch3左侧摇杆左右
4ch4侧面滑轮
5s1左侧拨杆
6s2右侧拨杆

PS3遥控器提供20个通道数据

channel通道名称通道说明
0ch0右侧摇杆左右
1ch1右侧摇杆上下
2ch2左侧摇杆左右
3ch3左侧摇杆左右
4l1参照PS3手册图示说明对照
5l2参照PS3手册图示说明对照
6lu参照PS3手册图示说明对照
7ll参照PS3手册图示说明对照
8ld参照PS3手册图示说明对照
9lr参照PS3手册图示说明对照
10se参照PS3手册图示说明对照
11st参照PS3手册图示说明对照
12rl参照PS3手册图示说明对照
13rd参照PS3手册图示说明对照
14rr参照PS3手册图示说明对照
15ru参照PS3手册图示说明对照
16r1参照PS3手册图示说明对照
17r2参照PS3手册图示说明对照
18rk参照PS3手册图示说明对照
19lk参照PS3手册图示说明对照