本文讲述如何通过树莓派的硬件PWM控制好盈电调来驱动RC车子的前进后退,以及如何驱动伺服电机来控制车子转向。
1. 好盈电调简介
车子上的电调型号为:WP-10BLS-A-RTR,在好盈官网并没有搜到对应手册,但找到一份通用RC竞速车的电调使用说明,不过说明书中并没有提及信号调制方式,继续寻找,看到一份电调的通用驱动说明。
总结来说,对于PWM格式要求如下:
1. 电调接收50Hz的PWM信号,即一个周期为20ms.
2. 油门对PWM高电平的响应范围为1ms~2ms,即高电平的占空比为1/20~2/20
3. 默认RC竞速车只有前进控制,则1ms为最低速度,2ms为最高速度;若配置RC竞速车为前进/后退模式,则1.5ms为油门中点,2ms为正向最高油门,1ms为反向最高油门。
对于第三点,则需要配置电调的相关模式以识别PWM的意图。
油门校准配置
备注:
1. 由于此处并无遥控器,因此图中文档的步骤1 就只需要拔插电池电源即可
2. 高、中、低档的PWM输出则需要自己对树莓派编程进行控制
运行模式配置
备注:
1. 不是所有的电调都有这三种运行模式,恰好本文所驱动的WP-10BLS-A-RTR电调只能选择“正转带刹车”或“正反转带刹车”,此处选择红灯闪两次,配置为“正反转带刹车”。
2. 油门驱动设计
调试过程中,树莓派安装在车上,PC通过SSH局域网访问树莓派。因此使用PC键盘的W/S/SPACE键来模拟遥控器的前进/后退/刹车;同时,考虑到键盘只能提供0/1状态输入,故选用R/F键来模拟“档位”--限制当前档位下的W/S的最高油门,以达到换挡加减速的效果。语言表述繁琐,用流程图来表达,大概就是如下效果:
备注:计算速度输出时,可配置相关参数使得油门直接升到最高或经过若干次循环加速后达到当前档位的最大速度。
3. 方向控制设计
伺服电机的工作原理可参考此文,描述十分详尽,此处不再赘述。
此处使用A/D键来控制转向,由于无法获知电机当前的转向角度,因此很难通过逐步增大/减小PWM占空比的方式来控制电机的转向。为简化控制,每次按下按键时触发电机偏转一定的角度,角度值受KEEP_TICK_LIMIT控制,若按住按键不松开,便左或右转向打到底。
逻辑较为简单,直接看代码:
工程源码请参考 github 仓 rc_car.