< >
Home » ROS与RaceCar教程 » ROS与RACECAR教程-电调控制

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

电调校准:

  • 对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/

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与racecar教程