ROS与RACECAR教程-电调控制
ROS与RACECAR教程-电调控制
说明
- 介绍如何通过pwn控制电调,从而控制电机转速
原理:
- 为了控制伺服或ESC,PWM信号作为可变宽度的重复脉冲发送到器件。
- 这些设备通过标准的三线连接,两条直流电源线和一个用于控制的电缆连接,该电缆携带脉冲。
- 脉冲由帧大小定义,帧大小是脉冲的频率和作为信号的ON与OFF时间的PWM占空比。
- 这是一个单一的信号框架:
- 对于伺服或ESC,器件预计每20毫秒会看到一个帧,但这可能因设备而异。
- 对于这个讨论,我们将坚持50Hz(每秒50个周期),这是20ms帧(1秒= 1000毫秒,然后除以50)。
- 该器件预计在1.0和2.0 ms之间的脉冲。
- 对于伺服,脉冲宽度表示伺服电机的位置,1.0ms表示-90度,1.5ms表示0度(中心),2.0ms表示+90度。
- 对于ESC,脉冲宽度表示节气门位置,1.0 ms表示全反向(或最低节气门设置,取决于ESC的解释),1.5ms为中性,2.0表示全油门。
注意:
- 使用像Jetson这样的SoC时,与专用PWM驱动器或其他微控制器硬件接口可简化生成正确定时的PWM帧和脉冲。
- 部分原因是因为大多数SoC不运行实时操作系统,也不会为任务生成合适的时钟。
- 结果是定时信号可以在没有专用硬件的情况下漂移。
PWM Driver
- PCA9685 PWM/Servo Driver/伺服驱动器连接到TRAXXAS Rally的电调从而控制电机
- Traxxas ESC是Velineon VXL-3s,是一款无刷电机控制器,可从车载直流电池产生三相交流电源。
- ESC包含一个微控制器,用于解释所提供的PWM信号,并使用内置固件适当地控制汽车电机。
- ESC有三种表演方式:常规,比赛和训练。
- 为了Jetson RACECAR的目的,ESC被置于训练模式,将电机功率限制在50%。
- PCA9685是一个12位设备,这意味着您可以将每个帧分解为2 ^ 12个插槽(4096)。
- 计算油门脉冲:
1.0ms/20ms*4096 = 204 full reverse
1.5ms/20ms*4096 = 307 neutral
2.0ms/20ms*4096 = 409 full forward
连线:
- PCA9685-> I2C -> TX1 ,具体参考上一篇文章
- 转向伺服应连接到PCA9685的第一个PWM插槽。
- 接线前,确保Jetson已关闭电源。
- 为了将ESC连接到PCA9685,请从接收器中取出ESC连接器,并使用2.54mm m/f跳线将连接器黑线(GND)连接到PCA9685的第二个PWM插槽的GND。红线未连接。
注意:
- 红线为接收器供电(6V)。
- 由于PCA9685已经由辅助电源供电,所以不应使用额外的电源线。
- 看这里:
软件:
(1)安装i2c-tools:
- 安装驱动
$ sudo apt-get install libi2c-dev i2c-tools
- 使用:
$ sudo i2cdetect -y -r 1
- PCA9685默认地址0x40
- 为了试验控制TRAXXAS Rally车的转向和ESC,已经编写了几个小型应用程序进行测试。
- 应用程序的来源位于Github上的JetsonHacks jetsonRACECAR github。
- 下载编译:
$ git clone https://github.com/jetsonhacks/jetsonRACECAR.git
$ cd jetsonRACECAR/research
- 通过Qt creator打开setThrottle和throttleControl目录下的 .pro文件并编译程序
- 参考tk1安装Qt creator
电调校准:
- 对ESC进行校准,以便配合所提供的无线电发射机。
- 在我们将自己的信号替换为ESC的情况下,我们需要使用新的信号进行校准。
- 为此,打开终端并导航到构建的“setThrottle”应用程序的文件夹:
$ sudo ./setThrottle
- 这应该在启动时通过PWM发出“Neutral Throttle”信号。
- 连接小车的电池,并通过“TRULLXAS Rally快速启动指南”中的“校准速度控制”指令
- 使用屏幕“‘Full Reverse”,“Neutral”和“Full Throttle”按钮代替无线发射器。
- 一旦速度控制器被校准,断开汽车的电源。
- 在终端中,切换到“throttleControl”应用程序的构建目录,并执行:
$ sudo ./throttleControl
- 运行程序输出“Neutral”PWM信号。
- 接着接上电源并将其置于“Training”模式。
- 按住ESC的EZ-Set按钮,直到LED闪烁三次,然后释放。
- 然后LED将变为红色,表示汽车已装备并准备就绪。
- 有一个项目选择器选择ESC或转向伺服来控制。默认情况下,它是ESC。
- 确保车轮没有接触任何东西,并增加值直到电机启动。
- 在视频测试中以317的控制值开始启动电机。
- 应用程序中有一个“Neutral”按钮,将控制值设置为307.
- 您可以尝试这些值以查看电机的控制方式,以及用伺服控制器进行实验,找出最佳最大值,最小值和中心值。
参考:
- http://www.jetsonhacks.com/2016/01/26/jetson-racecar-part-3-esc-motor-control/
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号