霍春光,张嘉怡,刘 影
(1.辽宁工程技术大学电子与信息工程学院,辽宁葫芦岛 125000;2.西安电子科技大学通信工程学院,陕西 西安 710000)
随着科技的进步,智能控制技术发展不断加快,各种应用层次的机器人等大量出现,智能循迹小车在工业生产和搬运中得到了大量应用[1-2]。智能循迹小车[3-4](AGV)是指通过光学、电磁等自动导引模块装置,能够按照要求沿着预先设定的路径自动行驶的小车。关于智能小车循迹问题,受到许多学者关注,为此提出众多设计方案和控制算法。胡徐胜[5]等人提出一种多路选择的智能循迹小车,对转向舵机进行优化控制,提高了控制效果;李全民[6]等人提出了一种比较理想的电感传感器布置方案;杜云[7]等人实现了一种可以分别遥控和按键控制的智能小车系统;高振新[8]等人设计了一种可通过遥控或者红外反射式传感器巡线的运料小车;方正川[9]等人提出一种可识别双边引导线以及自主避开行驶路径上障碍物的智能车系统。目前智能循迹小车主要关注巡线精准性,却忽略了多种光线条件以及极小角度转弯情况的影响。因此,为了提高循迹的稳定性和可靠性,提出一种在复杂环境下的自适应调速智能循迹小车系统设计。
该系统利用多组红外避障传感器实现精确计算巡线[10-11],在行驶过程中系统根据两轮差速进行转弯[12],通过转弯角度自适应地调整车速,还加入了停止线功能,在启动或停止都会有语音提示,并且通过按键调整初始速度,利用LCD 液晶屏显示速度参数,通过E2PROM 存储数据实现断电记忆,最终达到可调速巡线的目的。
智能循迹小车系统的结构如图1 所示,该系统将MSP430F149 单片机作为主控[13-14],利用红外避障模块检测路径,根据弯度情况自适应调节两轮的转向和速度进行转弯;系统可通过按键调整、PWM 占空比LCD 显示,以直观调整小车两轮转速[15-18],并将其存储在E2PROM 中,实现断电记忆功能,在轨道上垂直放置一条长度大于4 cm、宽度大于1 cm 的黑线,巡线系统检测后,小车即刻停止。
图1 系统总体结构框图
该系统采用了两个规格完全相同的1∶90 直流减速电机,主要负责小车的动力,其最大转矩可达1.0 N·m,使小车可以在较大斜坡上行驶;电机通过L298N 电机驱动模块进行驱动,L298N 是专用驱动集成电路,属于H 桥集成电路,其电路如图2 所示。利用12 V 锂电池为模块供电,其VSS 角可以输出5 V恒定直流电压,共地后,配合开发板稳压模块,可作为5 V 直流电源直接为单片机进行供电。
图2 L298N模块驱动电路图
L298N 可驱动两个电动机,输出B 端的OUT1、OUT2和输出A端的OUT3、OUT4之间可分别接电机。逻辑输入端IN1~IN4:其中IN1、IN2 控制一个电机;IN3、IN4 控制另一个电机。该驱动芯片驱动直流电机小车的逻辑表如表1 所示。
表1 L298N驱动逻辑表
巡线系统是利用一种输出TTL 电平信号的反射式红外光电传感器,原理图如图3 所示。红外避障的原理都是基于三角测距的方法,发射管会以一定的角度发射红外线,遇到物体后会发生反射,接收管接收的光强随反射物体距离的变化而变化。因为巡线系统采用的是黑线,黑色会吸收光,从而导致接收管接收光强变小,用该方法即可检测出小车是否脱离预设轨迹。
图3 红外避障模块原理图
针对小车在转小角度弯的情况,在布局小车时,将4个传感器在小车前面进行一字型排布,左边两组,右边两组,中间为巡线区域;为了防止相邻两个传感器之间相互干扰,采用了轮流扫描传感器的方法,这样既避免了相邻传感器之间的干扰又有利于调试。巡线系统的红外传感器位置参数如图4所示。
图4 红外传感器排布
由图4 可知传感器检测的最大角度为:
将4 个传感器从左到右依次记为左侧2、左侧1、右侧1、右侧2,设i=1,2,则每个传感器到中轴线的距离为:
经计算可得到各个红外循迹模块摆放位置如表2 所示。
表2 红外循迹模块摆放位置表
主控芯片是以MSP430F149 单片机为主控核心,它实时接收传感器数据,并进行逻辑运算,从而对各个模块进行操控。最重要的是MSP430F149 具有4 路PWM 输出,工作稳定,极其适用于电池供电的智能小车。其中微控制器的I/O口具体分配:P6.0~P6.3,引脚连接4 个红外避障传感器信号输出端;P1.6、P1.7 连接L298N 电机驱动的ENA、ENB 端,向电机驱动输出PWM 信号;P5.0~P5.3 设置为输出模式连接L298N 的IN1、IN2、IN3、IN4,给电机驱动发出电平信号指令控制两个电机的停转;P2.0~P2.4 输出模式接入语音模块A4、A5、A6、A7、A8,负责驱动语音模块;P2.5~P2.6 分别连接E2PROM 的SCL、SDA;P1.0~P1.4负责驱动4 个按键,外部电路已接上拉电阻,连接4个按键,负责调控左右电机占空比;LCD 液晶显示屏,P4.0~P4.7 设置为输出模式接入D0~D7,P3.0~3.2接入使能管脚RS、RW、E。
为了显示小车的速度,该系统采用了LCD液晶显示屏对两个电机的PWM 值进行显示(接线图如图5所示)。其工作电压为4.5~5 V,工作电流为2.0 mA。它可以同时显示16×2 个字符,并且可以根据电压和需求调节对比度及屏幕亮度。
图5 1602液晶屏接线图
为了使该系统变得更人性化,选择在起始和停止设置语音提示。语音模块主要采用了ISD2560 为核心的器件,用户可以录制好语音,储存在ISD2560的储存单元中,单片机可对其进行分段寻址,然后发送语音地址和语音指令,通过储存在ISD2560 内的地址数据进行匹配,然后语音信号经过电路放大从扬声器中发出。其中需要把模块的地址码接口A4、A5、A6、A7、A8 接在单片机的引脚上。
为了让系统操作简便,避免频繁调节小车初始速度,该系统加入了断电记忆功能。系统采用了IIC总线协议的EEPROM 存储器24C02 芯片,其具有接口方便、体积小、数据断电不丢失的特点。当小车使用完毕后,断电后下次重启,会重新读取数据,恢复设置值。其中需要把单片机引脚的P2.5、P2.6 接入芯片的SCL、SDA 引脚。
系统的开发环境为IAR Embedded Workbench,可以直接仿真调试,然后通过MSP430F14x 系列专用烧录软件进行烧录。
针对在多种弯路上行驶时所出现的拐弯角度过小会冲出轨道,以及在停止线却停不住车的问题,程序专门设置了自适应的校正方法,使小车在不同大小的弯度下进行自适应调整速度的转弯策略。如表3 所示,从左到右为OUT1、OUT2、OUT3、OUT44 个避障传感器,为了避免小车在停止线处由于惯性冲出的情况,该系统设计了4 种状态让其停车;在左转问题上,当左侧第一个传感器和第二个传感器OUT1和OUT2 同时检测黑线或者最左侧OUT1 检测到黑线就会缩小转弯半径,从而转弯过程速度减慢,大幅度调整转向,使小车回归正轨,实现弯度自适应调速功能;右转也是同理。
表3 小车运行逻辑图表
其在转弯时,小转弯外侧轮转向转速不变,以内侧轮不动进行旋转,大转弯两轮转向相反,两轮PWM 值恒定相差为20%。
在巡线时,随着语音模块的指令发出,小车开始走动,单片机通过扫描红外避障传感器的返回信号,产生不同策略,从而进行精准圆滑的转弯寻迹。该系统还加入了停止线功能,当在轨道上垂直放一条停止线,中间两个或3 个以上传感器检测到了黑线,会给单片机发信号,单片机会发出停止指令使其停止,并且语音模块会发出测试结束指令。智能巡线小车程序流程如图6 所示。
针对在复杂光源下传感器灵敏度不佳的问题,系统在不同光照环境、相同传感器灵敏度下,分别在不同轨道对巡线系统的巡线偏离误差进行测试(测试次数大于50次),测试采用Devcheck 调用手机的环境光传感器,结果如表4 所示。
表4 光照强度与巡线系统误差的关系表
为了增强系统在复杂环境下的适应性,需要在巡线系统上方安装遮光装置。根据小车的运行路况不同,在上下坡巡线时都需要对巡线系统遮光,为此选择了一些材质较软的材料进行遮光,其中,具有代表性的有黑色的塑料、绸子、海绵。对其遮光效果进行对比研究,结果如表5 所示。
表5 不同遮光装置下巡线系统偏差
结果表明,在巡线系统的传感器加入遮光装置可以大幅度提高巡线的精准度,尤其是海绵的遮光性能最佳,而且可以根据小车传感器形状自由弯曲变化,满足条件需求。
为了最终测试小车的性能,该系统设计了一条轨道(如图7 所示)。在相同环境条件下,该小车需要按照规定在轨道完整跑完,在预设的轨道上,设计了直线区域、小右转区域、大角度右转区域以及一个停止线,小车最终应该停止在停止线区域。
图7 测试轨道图
为了让小车在设定路径下行驶,路径为A→B→C→D→E→F,分别有不同大小的曲率部分和直线部分,为了测试巡线精准度,测试次数大于50 次。在各段路径上的巡线误差如表6 所示。
根据表6 测试表明,安装遮光装置后的小车,其精准度都控制在±4 mm 内,并且都能精准到达目的地停下来,大大提高了抗复杂光线干扰性能,并且在不同坡度下也能准确巡线。
表6 不同路径下的巡线误差
为了验证大小转弯设计与小车速度的关系,在采用了遮光装置后,该系统在同一室内环境下进行测试。根据电机的性质,频率过高同时占空比较低时,转子会震动发出高频噪声。为此,程序采用了该芯片最低频率时钟LFXT1CLK,即使这样设计,由于占空比在20%之前属于较低状态,电机转速过慢甚至停转,所以从实用意义上出发,该系统最低PWM占空比从40%开始测试,每增加5%,测试一次平均速度,测试次数大于20 次,取平均值,占空比从40%到100%,所对应走完全程的平均速率如图8 所示。
图8 小车全程平均速率随占空比变化趋势图
根据图8 所示,随着高电平占空比的增加,走完全程时间也变短,在75%后曲线明显变缓,这与电机自身的参数有一定关系。为证明自适应调速调度策略,测试了小车在正常负载状态下两轮的转速。在测定好直线距离,关闭巡线传感器,让小车径直走,根据测出平均速率,电机的负载转速也就近似于直线行驶的平均速率(每增加5%占空比,测一次速度,测试次数大于20 次,取平均值),其随占空比变化趋势如图9 所示。
图9 小车电机负载时转速随占空比变化趋势图
因为该系统在转弯时必须保障两轮的差速,因此设计程序时,遇到小弯度,以前轮距为半径,小车内侧轮不动,外侧轮继续行驶,保持差速转弯;遇到大弯度时,为使转弯半径缩小,进行大幅度转弯,该系统两电机进行反转,两轮转差速占空比固定为20%。设在转弯时,以小车轮距划分,设小车轮距为L,小车外侧半径为R1,需要走的弧长为S1,小车外轮转速为v1,内侧半径为R2,需要走的弧长为S2,速度为v2。
则:
由弧长公式、速度公式可知:
已知L不变,当n不变时,由式(2)、(3)可得到:当R1=R2时小车运动属于原地转弯,当R1>R2时小车才会相对前进,只有当R2≪R1时才会使速度明显变快。根据图9 可知,电机的性质是导致全程平均速度曲线变缓的原因之一;另外,因为在大转弯过程中,两电机反转,导致R2与R1的差值缩小,因此,图9 相对于图8 总体平均速度更慢,占空比越高,差距越明显,当占空比达到80%时,转弯中外轮达到速度上限,反而速度提升变得不明显;又经多次调整转弯角度进行测试,结果表示该小车转弯角度最小可达25°,在大于90°的角度中,几乎不触发边缘传感器。最终得出结论:该系统会根据转弯角度的大小自适应调整速度,转弯角度大也是导致全程平均速度减慢的重要原因之一,因此只要小车不频繁通过较大角度转弯部分,对小车的循迹速度影响不会太大。
文中设计的智能循迹小车以MSP430F149 为核心,利用PWM 调速控制电机,可通过按键调整小车的初速度,且在角度不同的转弯处自适应调整车速,保障了小车顺利圆滑的转弯;速度信息通过LCD 屏显示,可方便检查、操作;系统还加入了断电记忆功能,避免了频繁设置、调试小车初速度;为了适应复杂环境条件,该系统对多种材料测试后,创新地加入了遮光装置,无需频繁调节传感器灵敏度,得出在多种光照复杂环境下系统仍然稳定运行。多方面测试表明,该系统可以在不同角度的上、下坡以及不同光照环境下稳定行驶。该系统采取了多种抗干扰方案,具有很强的实用性,可广泛应用于循迹搬运车、智能机器人等系统中。