基于模块化控制的多功能智能小车设计
0 引言 智能小车形式多样,控制方法多变,创新性强,因此在电子竞赛和科技创新方面一直受到热捧。每年的“飞思卡尔”智能小车比赛中就分有电磁组,光电组,摄像头组,分别通过电磁传感器,光电传感器,摄像头来采集信号,检测小车的循迹能力和运行速度;遥控小车也是在小车上装上无线模块来接收遥控端发来的信号,从而实现小车的智能化控制;灭火机器人则是在避障小车的基础上加入趋光模块和温度传感器,使小车趋向火源灭火。 鉴于目前基于智能小车的设计,大多都是功能单一的寻迹小车,避障小车或遥控小车,在此将设计一种将红外对管寻迹、金属检测、超声波避障、硅光电池趋光和距离测量集成在同一个系统中的多功能智能小车,实现其多任务处理功能。同时,本系统针对各模块采用优化控制方案,以期望得到更精准控制。整个智能小车系统具有高效率、高准确度、低成本等特点。 当前对智能小车系统的控制方法也是多种多样,常见的有路径记忆法,模糊控制法,图像识别法等。 这些方法对于单任务的小车控制都能达到理想的效果。在本文所设计的智能小车系统中,将充分考虑小车的多任务性,采取模块化控制方法来实现小车的多功能控制,并在模块化的基础上嵌套模糊控制的方法,使小车既满足多功能要求,又能实现各控制模块独立、稳定运行。 1 系统结构设计 系统设计一般包括硬件设计和软件设计。本系统中硬件设计由电源模块、驱动模块、寻迹模块、金属检测模块、超声波避障模块、硅光电池趋光模块和显示模块构成,系统的整体结构如图1所示。
1.1 驱动模块 由单片机产生两路PWM 波,通过L298N 电机驱动芯片控制两个直流电机,分别驱动动左轮和右轮。直走时两路PWM 波频率相位相同,当需要转弯时,改变PWM 波控制相应的电机反转,另一电机正转。两边形成差速即可实现转弯。调整反转的的时间,可以控制转弯的大小和快慢,改变PWM 波的占空比可以控制小车的速度。 1.2 寻迹模块 该模块主要利用光电对管来检测小车赛道上的黑线。当光电对管内的发光二极管位于黑线上时,发光二极管发出的光被黑色吸收,不能被反射回来,此时,接收端上的光电三级管基极电压为零,三极管不能导通,输出低电平,与之相连的比较器同相端的也为低电平,最终输入单片机对应引脚一个低电平。单片机检测到输入的低电平就会对电机进行相应的处理,驱动小车转弯,使得这个光电对管偏离黑线。一旦离开黑线,光电三级光就能够接受到光照,三极管导通输出高电平,给单片机引脚输入一个高电平,单片机检测到该高电平后给相应电机正转命令,小车恢复直线行驶。依此循环,最终小车就能沿着黑线所设定的的轨迹行驶。 设计寻迹模块时,为了减小环境光的干扰,可以在放大器的反向端接入一个滑线变阻器,通过调节电阻的大小,改变比较器的阈值电压,从而改变传感器的灵敏度。当较弱的环境光进入到光电三极管的基极,三极管的集电极会有电压,但只要调大滑线变阻器接入的阻值,使得环境光照射时,集电极电压低于阈值电压,此时光电对管仍然输出低电平,这样就达到了消除环境光的目的。该电路接入的阻值越大,阈值越高,就越不容易受环境光的影响,但灵敏度也就越低,反应越慢。相反,就越容易受环境光影响,灵敏度越高,反应越快。 同时,为了使小车能适应不同弧度的路线,在循迹模块中嵌入了模糊控制算法。首先建立一个模糊集合X={左偏,左较偏,左很偏,右偏,右较偏,右很偏},定义模糊规则:当左侧第一个光电对管位于黑线上时,定义小车右偏,小车左轮停转,右轮正常转动;当左侧第二个光电对管位于黑线上时,定义小车右较偏,小车左轮小幅度反转,右轮正常转动;当左侧第三个光电对管位于黑线上时,定义小车右很偏,小车左轮大幅度反转,右轮正常转动。同理,对右侧光电对管定义模糊规则。通过模糊控制小车就能适应多变的路线。 1.3 金属检测模块 把金属传感器固定在小车底部,当小车经过金属片时,金属传感器的输出端会产生一次电频跳变,将跳变信号输入到单片机的外部中断,每一次跳变,触发一次中断,单片机就会控制蜂鸣器发声报警。将中断次数记录下来送到液晶显示,就能得到检测的金属片个数。 1.4 超声波避障模块 用单片机给超声波发生器输入端输入一列脉冲触发信号,超声波发生器的发射端就会产生一列对应频率的超声波,当声波遇到障碍物(3 m以内)时就会反射回来,被接收端接受,其输出端输出一系列PWM波。记录这列PWM 波的高电平持续时间,并忽略小车在此段时间内的位移,就可计算出小车到障碍物的距离,当距离达到某一设定值时,控制电机使小车转弯,绕过障碍物。 本系统中充分利用Mega128 单片机的中断捕捉功能,将超声波发生器产生的输出回响信号输入到单片机,首先设置下降沿触发捕捉中断,定时器计时开始,当中断触发时马上更改触发方式为上升沿触发,再次响应中断时记录此时定时器的值T1同时原计数值清零,此时记录的高电平时间T1即为声波在空中传播的时间。再次更改触发方式为下降沿触发,实现动态实时测量。与传统的中断响应测量相比,中断捕捉具有快速、精准的优点假设单片机晶振为M,分频系数为N,声音的传播速度为V.声波传播的时间为(单位:s):
因此,可以按照下式计算出距离障碍物的距离L1:
1.5 硅光电池趋光模块 为了使小车具有更理想的趋光效果,本系统采用硅光电池作为传感器。当光源照射到硅光电池的表面,硅光电池的电阻值会发生变化,光照强度越大,电阻值越小。在小车前端的左中右分别装上一个硅光电池,将光管电池接在相同的参考电压源上,将其两端的电压送入单片机的采样通道转化成数字量,通过比较三路采样值的大小就能判断出哪个方向上的光照强度大,从而控制小车直走或转弯,进而趋向光源。 由于使用了硅光电池采样方案,系统的灵敏度可以被有效调节。程序设定只有当采样电压达到了某一规定值时,才来比较三路采样电压。调整这一规定电压值就可以改变系统的趋光灵敏度了,根据环境设定合适的规定值就能较好的避开环境光的干扰。 1.6 测距模块 在电机的转轴上安装两块小磁铁,并将霍尔传感器固定在转轴正上方的车身上,当电机转动,磁铁经过霍尔元件时,霍尔传感器的输出端就会产生电频跳变,通过记录电频跳变的次数N,即可根据行驶距离公式L2=(N × 2πR)/ 2 测量出小车行驶的距离。其中R表示车轮半径。所测距离可通过液晶屏显示出来。 2 软件设计 在硬件设计基础上,通过在单片机中烧写程序来控制小车功能的实现。本系统中采用模块化控制方法,将各个独立的功能作为一个独立的子程序,在主程序中按照逻辑顺序来调用各子程序。这样使得程序条理清晰,提高了程序的执行效率,也便于程序修改和调试,主程序设计流程如图2所示。
如循迹模块中所述,在程序1 中,采用模糊控制算法,控制小车沿着轨道行驶,不至于失控。子程序2判断小车与障碍物间的距离,控制小车转弯避障。子程序3 根据硅光电池采集的光照强度,控制小车左右轮转动,确保小车进库成功。程序采用动态扫描,实时监测,使得小车一直处于动态调整中。 3 实物测试及结果分析 为了测试小车的性能,按照比赛要求为小车设计了如图3所示的小车赛道。测试地点选择在四周较开阔、自然光较弱的地方,小车从起点沿着黑色的牵引线行走,离开牵引线后避开障碍物,开始趋光进库。在牵引线下方放有若干枚用于检测的硬币,小车经过时检测到硬币并报警,将记录的硬币个数显示到液晶屏上。
由于在寻迹模块的硬件设计中加入了灵敏度调节,并在软件设计中采取了模糊控制算法,因此,小车寻迹测试结果比较理想,能按照设计路线行驶。测试结果如表1所示。
在避障模块中,由于超声波模块对反射物体的形状和表面积都有要求,当放置的障碍物不满足要求时,就会接收不到反射信号,造成避障失败。同时在测试时周围还站有人,也能形成反射源,对测试造成干扰。测试结果如表2所示。表3所示为趋光模块测试结果。
趋光模块采用硅光电池采样,具有连续可变的无极比较,比目前广泛使用的光敏电阻只比较高低电平更灵敏精确,从而提高了系统的准确性。但同光敏电阻一样自然光的影响不能完全避免,因此仍然不能达到100%的准确。 4 结语 本系统使用一片8位单片机,采用模块化设计思想,实现了智能小车多功能的设计。设计时将多种传感器综合到一个系统中,并把采集到的多路信号送入单片机进行分析处理、作出判断。 同时,系统还设计了友好的人机交换界面,可方便地读出检测到的金属片数量、行驶路程和行驶时间。由于运用模块化控制方法,各模块相互影响较小,因此还可对系统进行二次开发,在本系统上增加更多模块,实现其他扩展功能,例如在系统上增加语音芯片,可实现语音播报功能;加上摄像头和无线模块可实现智能小车的探测功能等。 |