基于DSP的自动避障小车
扫描二维码
随时随地手机看文章
1 自动避障小车总体设计
该系统主要由DSP控制、电机驱动、电源、测速以及视觉等模块组成,其结构如图1所示。
小车为3轮结构,前面2个轮分别由2个电机独立驱动控制,后面1个万向轮作为支撑轮。小车安装有3个红外传感器,分别位于车头的左、中、右部位,用于采集环境信息。车体规格为:车身板距地7.5 cm,车长25 cm,车宽12 cm,车轮半径5.5 cm。速度控制采用定频调宽的PWM调速,并应用速度反馈和闭环PID控制,从而实现小车精确的速度和位置控制。
2 自动避障小车的硬件设计
该系统以DSP TMS320LF2407A为核心,该DSP片内资源丰富,具有电机控制的独特资源,12路脉宽调制(PWM)输出。视觉模块采用E3FDS3-0P1型红外传感器,有效探测距离为30 cm,探测角度30°。将3个红外传感器分别接至I/OPE接口的I/OPE4、I/OPE5和I/OPE6。由于光电开关正常状态时信号高电平为5 V,而DSP标准高电平为3.3 V,所以应在光电开关与DSP之间串联分压电阻。电源采用12 V蓄电池供电。DSP是以+3.3 V电压供电,因此必须将+12 V标准电压转换成+3.3 V。该系统采用LM7805与MAX604作为电源转换器。12 V电源首先经LM7805调压到5 V,先将5 V电压送入红外传感器,再送入MAX604降压为3.3 V,如图2所示。
采用L298驱动电机,0UTl,0UT2分别与小车的一个电机的正负极相连;OUT3,OUT4分别与小车的另一个电机的正负极相连;L298的INl和IN2引脚分别与DSP的IOPE0(方向4)、IOPE1(方向3)引脚连接,用于接收主控器件输出的转向电机的动作指令,并通过0UTl和OUT2控制左电机的正转与反转,L298的IN3,IN4引脚分别与DSP的IOPE2(方向2)、IOPE3(方向1)引脚连接,用于接收主控器件输出的驱动电机的动作指令,并通过0U113,OUT4控制前方右电机的正转与反转,而ENA和ENB引脚分别连接到DSP的IOPE0(PWM3)、IOPEl(PWM4)引脚,用于控制电机的速度,
其电路原理图如图3所示。
L298分别控制并调整前面2个电机的旋转方向,控制小车的前进、后退、向左、向右、停止。由于小车采用三轮结构,前面2个轮既是动力轮又是方向轮,当INl、IN2、ENA分别为l、0、1,同时IN3、IN4、ENB分别为0、l、l时,小车前进;当INl、IN2、ENA分别为1、O、l,同时IN3、IN4、ENB分别为l、0、l时,小车右转;当INl、IN2、ENA分别为0、1,1,同时IN3、IN4、ENB分别为1、0、1时,小车左转。
采用测速电机测量电机转速,以此判断速度。电机转速转换为电脉冲信号,其输出经过HD74HCl4P(HD74HCl4P内部有若干反相器电路,可完成寄存器复位),送至DSP的PA3(CAPl)和PA4(CAP2)引脚,根据软件设置使计数器对脉冲信号上升沿进行递增计数。如图4所示。[!--empirenews.page--]
3 自动避障小车的软件设计
DSP每隔一段时间对I/OPE4,I/OPE5,I/OPE6这3个端口进行查询,没有障碍物时这3个端口为高电平。即111,左边有障碍物时为011,右边有障碍物时为110。前方有障碍物时则为010。小车根据红外传感器接收的信号判断前方障碍物的分布并做出相应的动作,如表1所示。
小车在普通情况下(无障碍物)处于前进状态,当T3定时器发生周期中断时,进入程序开始检测光电开关的信号线端口,如果有障碍物则从避障程序中选择一个执行(左转、右转、后转),进行避障动作,如果没有障碍物则小车继续前进并且等待定时器的下一次中断,其程序流程如图5所示。
调节PID参数不仅可实现系统稳定。还能兼顾系统的带载能力和抗扰能力。首先应找出小车的理想速度,这是PID调节的前提,也是加入测速的原因。由于测速电机测得的是小车右轮实际速度。先给小车右轮电机一个初始速度,让小车以给定的初始速度运转起来。然后利用PID算法调速:在给定速度不变的情况下,每扫描一次程序。小车的实际反馈速度便与理想速度相比较,利用PID算法便可更新给定值。这样,不断更新给定值,直到实际速度与理想速度保持一致或者到下一次赋值则停止更新(ek=O)。程序流程如图6所示,图6中,设右轮给定速度v对应的理想速度为V,仅限右轮电机,b’为给定速度b对应的实际速度。
4 试验
避障小车安装调试完成后,对小车性能进行测试:
1)小车的避障能力试验测试 错落摆放障碍物,让小车向障碍物方向前进,当距障碍物约25 cm时,小车左转,然后再向前(左方没有障碍物)。试验发现小车的传感器对亮色反映比较明显,比如遇到白色障碍物,小车会在30 cm外就发现障碍物并产生动作;当小车遇到黑色障碍物时,一般约在15 cm时才能感应到障碍物。
2)PID算法和PWM方法测试 分3次对小车进行测试,每次要求避开10个黑色障碍物。采用不加入PID程序和PWM程序的小车进行测试,小车3次分别避开6、7、7个障碍物;而采用加入PID程序和PWM程序的小车进行测试,小车3次分别避开9、10、9个障碍物。试验表明加入PID算法和PWM方法的小车在调速方面明显优于不加入程序的,并在遇到障碍物时和避开障碍物后都能够快速调速,使小车避障能力大大提高。
5 结论
本文对避障小车的设计进行分析后,提出了在DSPTMS320LF2407技术平台上实现小车自动检测前方障碍物,并给出躲避动作方法。避障车最终实现了从无障碍地区启动前进,利用车体前端传感器感应前进路线上的障碍物后,并且根据障碍物的位置选择下一步行进方向,避开障碍物。由于红外传感器探测信息有限(只能探测障碍物的有无,无法得到距离信息),不能够判断障碍物的距离、大小及形状等。如果使用摄像头作为视觉探测系统,则可使避障小车性能更好,应用范围更广泛。这也是后续研究方向。