前几天逛阿莫电子论坛,看到用航模遥控器控制基于Arduino的四轴飞行器的帖子后,萌生了用航模遥控器遥控RobotCar的想法。于是就研究了一下航模遥控器的收发设备和输出信号。 Google了一个晚上之后的结果:航模遥控器有4、5、6……等等等通道之分,但是,都包括两个部分,一个是发射器,俗称:控;一个是接收器。发射器就是如下这个样子的了:
接收器很小,下图是已经装在RobotCar上的接收器。
接收器的输入信号又是怎样的呢? 又Google之,在概世: 黑客空间找到了答案,输出形式为PWM,高电平时长大约为1000us~2000us之间。同样我还用了他的方法测试出了了天地飞WFT06II的大致输出范围。接着我又从我爱模型论坛得到所有航模接收器输出的更详细的资料:输出信号帧周期20毫秒,脉冲宽度1.5正负0.5毫秒,不过,这个对我完成RC RobotCar没什么用了。 下面就是接线了: 天地飞接收器WFR06S总共有6个通道,每个通道的电源和地都可以作为电源输入,而且输入电压为4.8~6V,正好可以使用Arduino 的5V输出供电。于是我就用改制的数字信号连接线直接连接到DFRduino Xbee传感器扩展板V5上的数字信号PIN7(我把原来RobotCar接PIN7的一个寻线传感器给拔了)和PIN4位置。PIN7接通道3,对应天地飞WFT06II的油门;PIN4接通道1,对应天地飞的副翼。其他连线和上篇完全一样。 接线完成后就是编程了。程序我写了2个小时,中间调试的各种问题弄得很纠结。比如开始用PID控制速度,结果震荡得很厉害,于是放弃,直接输出PWM值;又比如:原以为天地飞WFT06II的输出信号可以是完美的1000~2000us,结果不是,于是就只能测试(测试用了概世: 黑客空间的测试方法);再比如各种逻辑错误,抓狂了。看来编程不是我的强项啊-_-!!
视频及程序请移步我的博客(赚点点击率{:soso_e112:}): http://jahg.me/rc-robotcar/
|