自动导引小车的优化设计与实现

2021-01-29 03:00程望斌杨路思李至东周玉嵘
关键词:导带蜂鸣器小车

程望斌,陈 久,杨路思,李至东,周玉嵘

(1.湖南理工学院 南湖学院,湖南 岳阳 414006;2.湖南理工学院 信息科学与工程学院,湖南 岳阳 414006)

0 引言

自动导引车(AGV)集成化程度较高,其中起关键作用的是导航技术[1].目前采用的导引方式包括激光(超声波)导引、磁导引、视觉导引、红外导引与惯性导引等.激光导引方式定位准确,路线灵活多变,受天气因素影响较小,但成本高昂,导引方式复杂,不太适合用于成本敏感和简洁的场合.视觉导引方式路线设置简单,灵活多变,但图像识别的可靠性有待提高,易被环境影响.惯性导引方式准确性很高,灵活多变,但对陀螺仪精度和地面平整度要求较高.磁带导引方式定位准确,线路比较容易改变,成本较低,使用简单,但此种方式容易受到外部磁场干扰,不适用于有较高磁场的环境[2].

本文以STM32系列中的F103R8T6芯片为核心器件[3],进行自动导引小车优化设计.主要设计要求为:(1)使用前驱模式来实现小车的运动;(2)使用SS41F磁敏传感器来检测磁导带;(3)使用电机驱动模块来控制电机的运动状态;(4)具有电源按键、复位按键和红黄绿三个LED灯和蜂鸣器.

1 系统总体设计

以STM32F103R8T6 为核心控制器设计自动导引小车控制系统[4],包括电机驱动、磁敏传感器和电源等相关电路.系统总体设计如图1所示.

在图1 中,由软件部分根据实际情况来控制LED的亮暗和蜂鸣器的响灭,电机的运转也是按照实际情况来判断.当小车开始上电或复位时,其初始化顺序为:LED 初始化、蜂鸣器初始化、电机初始化和磁敏传感器初始化.在运行时先有3 秒的停留准备时间,然后各系统开始工作.

图1 系统总体设计

2 系统硬件设计

硬件部分主要包括R8T6 控制器主控核心板、LED 指示灯模块、按键模块、磁敏传感器模块、蜂鸣器模块和电机驱动模块等.核心板模块设计如图2所示.

图2 核心板模块设计

R8T6 控制器是自动导引小车能正确沿轨道运行的基础和关键.控制器通过判断磁敏开关传感器采集到的信号来确定车辆所处的位置,根据车辆位置进而控制声光提示模块和电机驱动模块.在整个系统中,外围设备主要包含蜂鸣器模块、LED 模块、SS41F 磁敏开关传感器模块和L298N 电机驱动模块等.在这些硬件模块中,需要配合合理的电路才能驱动[5].

3 系统软件设计

程序部分采用模块化的编写方式,将每一个功能模块写成相对应的文件.此方式可以通过分工尽快地实现各个模块的功能,并根据实际情况来对各个功能模块进行控制.首先对各个模块进行初始化,然后控制相应的模块实现特定的功能,并在Keil uVision5的环境下编译运行系统仿真,以实现相关功能.AGV运行主体程序如图3所示.

图3 AGV 运行主体程序流程

3.1 程序主体设计流程

软件程序主要分为四个模块:电机控制模块、LED 控制模块、蜂鸣器控制模块和磁敏传感器控制模块.其主体流程如图4所示.

图4 系统主体流程

这四个模块中,除L298N 电机模块用循环来控制,其余三个模块全部都是在定时器中完成.包括SS41F 磁敏传感器电压值的获取,控制LED 灯的状态以及蜂鸣器的响灭(最终的响灭在定时器3 中完成).

3.2 子程序模块设计

在子程序中,电机控制与磁敏传感器ADC值的获取是重中之重,关系到小车是否能够精确地跟随导带的前进或后退等操作.在电机控制模块中,由于采用的是L298N电桥方案,只需给L298N的IN端与EN端发送相应的控制信号,就可以实现控制电机的诸多操作.在四路磁敏传感器ADC模块中,采用定时器来完成.此方式可最大程度利用芯片资源,提高响应效率.在定时器2的服务程序中,可通过全局变量来识别此时检测到的小车状态.

4 作品设计与功能测试

4.1 硬件作品制作

先将蜂鸣器、LED 灯和磁敏传感器等模块都焊接好,然后正确地连接每一根杜邦线.硬件作品如图5所示.

在图5 中,小车采用前轮两驱的方式来驱动,其设计方式更符合现实情况中小车的运行状态.将四路磁敏传感器放置于小车底盘下来检测磁导带的位置信息,小车在每种状态下都有相应的提示信息(如LED 灯与蜂鸣器的各种状态),以便于即时观测与调试.

图5 硬件作品实物

4.2 系统功能测试

确保周围除了磁导带之外无其他强磁场干扰,如实验环境本身就是处于强磁场中或者有大量磁性物质.当然在磁导带周边也不放置障碍物.铺设磁导带作为此次实验的预设路径,要求磁导带的N 极朝上,也就是无胶的一面保留在外,而有胶的一面(S 极)贴于平整地面,将小车头部朝向正对磁导带.

此时小车的两个驱动轮在前方,磁敏传感器也处于前方.在设置好这些环境之后,打开电源开关.系统测试效果如图6所示.

图6 系统测试效果

在给整个系统通电后,开发板中的电源指示灯(红色)将会一直亮起,同时核心板中的绿灯也会亮起.3秒后核心板中的绿灯将会熄灭,处理器芯片将会以20 Hz的速度开始读取四个磁敏传感器的输出电平值.若某一个磁敏传感器的数字量不大于2048,则说明此磁敏传感器检测到了磁导带,通过处理这四个传感器,可得知小车相对于磁导带所处的位置.此时LED 灯模块的状态为全灭,蜂鸣器不发出警报.

5 系统功能实现与分析

5.1 系统功能实现

采用类似上述方法,还能实现以下功能:

(1)位置自检功能

四个磁敏传感器离磁导带都有一定的距离,SS41F 无法在此条件下检测到N 极磁场,故其输出电平值为输入电压值,其数字量大于2048(一般为4095).按照程序设计的思想,L298N 模块中ENA 与ENB的输入信号占空比为100%,此时为全速前进状态,LED 灯模块中的红灯亮起,蜂鸣器打开,蜂鸣器声响的频率为4500 Hz,占空比为50%,声音听起来比较清脆.

(2)直行功能

在直行前进的过程中,中间的两个磁敏传感器检测到了磁导带,此时芯片检测到的电压值数字量低于2048(一般为0).实验表明,中间的两个磁敏传感器检测到了磁导带,说明此时小车并没有偏离预设的磁导带路径,LED 灯模块中的绿灯将会亮起,蜂鸣器不发声,小车做全速前进直行运动,占空比为100%.还有一种特殊的情况也是这种运行方式,即当最左边或者最右边的三个磁敏传感器都检测到了磁导带,也认为小车没有偏离路径.

(3)转向运动功能

左转的情况是在确定了直行运行之后,当最左边的磁敏传感器检测到了磁导带,小车的右电机运行速度快于左电机(右转同理).当最左边的两个磁敏传感器检测到了磁导带,说明此时小车的行进路线已经往右边偏移了,小车应当为左转前进状态,L298N 模块中的ENA 输入波形的占空比为40%,ENB 为100%;若最右边的两个磁敏传感器检测到了磁导带,小车需要右转前进运动,故L298N 模块中的ENA 输入波形的占空比为100%,ENB 为40%.

(4)后退功能

若磁敏传感器之前已经检测到了磁导带,但此时却没有检测到磁导带,则小车会作后退操作,其目的是返回之前位置,修正自身运动路径.当小车运动到磁导带的终点或者偏离了磁导带时,L298N中的IN 端同时取反改变输入状态,小车将会作直行后退操作,ENA 与ENB的占空比为100%,即全速后退.小车亮红灯,蜂鸣器发出警报,其发声频率为1125 Hz,占空比为50%,声音比较低沉.此时小车的运动状态为向后运转状态,用于返回前一次检测到的磁导带的位置,再次修正自身运动路径,此方式可在保持速度较快的情况下解决路线弯度过大问题.

5.2 系统功能分析

(1)按下复位键,程序将重新开始从头运行,核心板亮绿灯,蜂鸣器不发声,小车处于静止状态.

(2)在程序刚开始时,运行过了三秒没有检测到磁导带,小车亮红灯,蜂鸣器发出频率为4500 Hz 占空比为50%的警报声,小车直行前进运动.

(3)当中间的两个磁敏传感器检测到了磁导带,绿灯亮起,小车直行,蜂鸣器不发声.

(4)除去上述情况(3)之后,当两边的磁敏传感器检测到磁导带,小车向检测到的磁带的反方向运行,LED 灯模块中的黄灯亮起,蜂鸣器不发声.

(5)若运行一段时间后,没有检测到磁导带,小车将会向后运动,红灯亮,蜂鸣器发出频率为1125 Hz占空比为50%的警报声,小车做直行后退运动.

通过小车的运行测试来看,此次设计基本达到了系统设计目标,运行效果良好.

6 总结

使用磁敏传感器来检测磁带铺设的路线状况[6],并将检测后的电压值返回给单片机进行处理,处理后的结果用于反馈调节此时的运行状态,并通过不同颜色的LED 灯来显示当前偏离导轨的程度,在适当的情况下可以使用蜂鸣器来进行报警操作.本文设计的小车具有可靠性较强和操作简单便捷等优点,因此具有较好的应用价值.

猜你喜欢
导带蜂鸣器小车
电动自行车产品车速提示音检测现状和整改技术研究(2)
关于某型系列产品“上下导带二次收紧”合并的工艺技术
炮射弹药滑动导带环结构设计
大车拉小车
自制小车来比赛
掌控板制作简易钢琴
本尼丢了蜂鸣器
导带式数码喷射印花机运行过程中常见疵病
刘老师想开小车
两轮自平衡小车的设计与实现