DT7&DR162.4GHz遥控接收系统用户手册V1.02016.09免责声明感谢您购买DT7&DR162.4GHz遥控接收系统。在使用之前,请仔细阅读本声明,一旦使用,即被视为对本声明全部内容的认可和接受。请严格遵守手册安装和使用该产品。因用户不当使用、安装、改装(包括使用非指定的DJI零配件等)造成的任何损失,DJI将不承担法律责任。DJI是大疆创新所有的注册商标。本文出现的产品名称、品牌等,均为其所属公司的商标或注册商标。本产品及手册为大疆创新版权所有。未经许可,不得以任何形式复制翻印。关于不同语言版本的免责声明可能存在的语义差异,以英文版为准。盒内物品DT7遥控器×1,DR16接收机×1,3-Pin连接线×1,双端圆口教练线×1。产品简介DT7遥控器是一款工作于2.4GHz频段的无线电通信设备,该遥控器仅能与DR16接收机配合使用。本产品可用于控制RM战车以及DJI飞行产品。开阔室外中,该遥控器最大的控制范围可达到1000m,最长工作时间可达到12个小时。DR16接收机是一款工作频率为2.4GHz的16通道接收机,可配合DT7遥控器使用。遥控接收系统规格参数DJIDESSET2.4G遥控接收系统工作频率2.4GHzISM工作频率2.4GHzISM通信距离(开阔室外)1km通信距离(开阔室外)1kmDT7遥控器特性7通道特性7通道工作电流/电压120mA@3.7V工作电流/电压120mA@3.7V电池3.7V2000mAh锂电池电池3.7V2000mAh锂电池DR16接收机特性2.4GHzD-BUS协议特性2.4GHzD-BUS协议接收灵敏度(1%PER)-97dBm接收灵敏度(1%PER)-97dBm工作电流/电压145mA@5V工作电流/电压145mA@5V电源4-8.4V电源4-8.4V尺寸41mm×29mm×5mm尺寸41mm×29mm×5mm重量10g重量10g遥控器操作开启与关闭DT7遥控器内置容量为2000mAh的锂充电电池,可通过电池电量指示灯查看当前电量。按以下步骤开启/关闭遥控器:1.向右推电源开关,开启遥控器。2.遥控器电源指示灯绿灯常亮表示遥控器正常工作。3.通过遥控器面板上的电量指示灯了解当前电量。电量指示灯的详细信息如图所示。4.向左推电源开关,电源指示灯熄灭,遥控器关闭。遥控器充电用户可通过遥控器调参接口对遥控器进行充电,请注意在关机状态充电。充电时,电源指示灯为红灯常亮。充电完成后,电源指示灯为绿灯常亮。Robomaster战车控制协议DR16接收机输出的信号为标准的DBUS协议数据,当遥控器与接收机建立连接后,接收机每隔14ms通过DBUS发送一帧18字节数据.为了满足通过PC控制战车的需求,增加了额外的键盘鼠标控制信息,控制链路示意如图所示:键盘鼠标PC主机USB遥控器发射机(DT7)遥控器接收机(DR16)战车USB虚拟控制链路DBUSDBUS通信参数如下表所示:DBUS参数数值波特率100Kbps单元数据长度8奇偶校验位偶校验结束位1流控无注:DBUS信号控制电平符合TTL,却和普通UART信号是相反的,所以需要在MCU端需要增加三极管取反电路,MCU才能正常识别出UART信号18字节控制帧结构域通道0通道1通道2通道3S1S2偏移01122334446长度(bit)1111111122符号位无无无无无无范围最大值1684中间值1024最小值364最大值1684中间值1024最小值364最大值1684中间值1024最小值364最大值1684中间值1024最小值364最大值3最小值1最大值3最小值1功能无符号类型遥控器通道0无符号类型遥控器通道1无符号类型遥控器通道2无符号类型遥控器通道3遥控器发射机S1开关位遥控器发射机S2开关位置控制信息控制信息控制信息控制信息置1:上2:下3:中1:上2:下3:中域鼠标X轴鼠标Y轴鼠标Z轴鼠标左键鼠标右键按键偏移48648096104112长度1616168816符号位有有有无无无范围最大值32767最小值-32768静止值0最大值32767最小值-32768静止值0最大值32767最小值-32768静止值0最大值1最小值0最大值1最小值0位值标识功能鼠标在X轴的移动速度负值标识往左移动正值标识往右移动鼠标在Y轴的移动速度负值标识往左移动正值标识往右移动鼠标在Z轴的移动速度负值标识往左移动正值标识往右移动鼠标左键是否按下0--没按下1--按下鼠标右键是否按下0--没按下1--按下每个按键对应一个bit,如下所示Bit0--W键Bit1--S键Bit2--A键Bit3--D键Bit4--Q键Bit5--E键Bit6--Shift键Bit7--Ctrl键域保留字段偏移128长度16遥控器通道与控制开关如下图所示:0132左摇杆右摇杆S1S2协议解析示例代码见附件。附录(RM战车遥控器协议解析示例代码STM32F4平台)/*-----------------------RCChannelDefinition----------------------------*/#defineRC_CH_VALUE_MIN((uint16_t)364)#defineRC_CH_VALUE_OFFSET((uint16_t)1024)#defineRC_CH_VALUE_MAX((uint16_t)1684)/*-----------------------RCSwitchDefinition-----------------------------*/#defineRC_SW_UP((uint16_t)1)#defineRC_SW_MID((uint16_t)3)#defineRC_SW_DOWN((uint16_t)2)/*-----------------------PCKeyDefinition--------------------------------*/#defineKEY_PRESSED_OFFSET_W((uint16_t)0x010)#defineKEY_PRESSED_OFFSET_S((uint16_t)0x011)#defineKEY_PRESSED_OFFSET_A((uint16_t)0x012)#defineKEY_PRESSED_OFFSET_D((uint16_t)0x013)#defineKEY_PRESSED_OFFSET_Q((uint16_t)0x014)#defineKEY_PRESSED_OFFSET_E((uint16_t)0x015)#defineKEY_PRESSED_OFFSET_SHIFT((uint16_t)0x016)#defineKEY_PRESSED_OFFSET_CTRL((uint16_t)0x017)#defineRC_FRAME_LENGTH18u/*-----------------------DataStruct-------------------------------------*/Typedef__packedstruct{struct{uint16_tch0;uint16_tch1;uint16_tch2;uint16_tch3;uint8_ts1;uint8_ts2;}rc;struct{int16_tx;int16_ty;int16_tz;uint8_tpress_l;uint8_tpress_r;}mouse;struct{uint16_tv;}key;}RC_Ctl_t;/*-----------------------InternalData-----------------------------------*/volatileunsignedcharsbus_rx_buffer[2][RC_FRAME_LENGTH];//doublesbusrxbuffertosavedatastaticRC_Ctl_tRC_CtrlData;/*-----------------------FunctionImplements----------------------------*//*******************************************************************************@fnRC_Init**@briefconfigurestm32usart2port*-USARTParameters*-100Kbps*-8-N-1*-DMAMode**@returnNone.**@noteThiscodeisfullytestedonSTM32F405RGT6Platform,Youcanportit*totheotherplatform.Usingdoubebuffertoreceivedatapreventlosingdata.*/voidRC_Init(void){/*--------------EnableModuleClockSource----------------------------*/RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_DMA1,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);GPIO_PinAFConfig(GPIOA,GPIO_PinSource3,GPIO_AF_USART2);/*--------------ConfigureGPIO---------------------------------------*/{GPIO_InitTypeDefgpio;USART_InitTypeDefusart2;gpio.GPIO_Pin=GPIO_Pin_3;gpio.GPIO_Mode=GPIO_Mode_AF;gpio.GPIO_OType=GPIO_OType_PP;gpio.GPIO_Speed=GPIO_Speed_100MHz;gpio.GPIO_PuPd=GPIO_PuPd_NOPULL;GPIO_Init(GPIOA,&gpio);USART_DeInit(USART2);usart2.USART_BaudRate=100000;usart2.USART_WordLength=USART_WordLength_8b;usart2.USART_StopBits=USART_StopBits_1;usart2.USART_Parity=USART_Parity_Even;usart2.USART_Mode=USART_Mode_Rx;usart2.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_Init(USART2,&usart2);USART_Cmd(USART2,ENABLE);USART_DMACmd(USART2,USART_DMAReq_Rx,ENABLE);}/*--------------ConfigureNVIC---------------------------------------*/{NVIC_InitTypeDefnvic;nvic.NVIC_IRQChannel=DMA1_Stream5_IRQn;nvic.NVIC_IRQChannelPreemptionPriority=1;nvic.NVIC_IRQChannelSubPriority=1;nvic.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&nvic);}/*--------------ConfigureDMA-----------------------------------------*/{DMA_InitTypeDefdma;DMA_DeInit(DMA1_Stream5);dm