基于模块化控制的多功能智能小车设计
数记录下来送到液晶显示,就能得到检测的金属片个数。 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 位单片机,采用模块化设计思想,实现了智能小车多功能的设计。设计时将多种传感器综合到一个系统中,并把采集到的多路信号送入单片机进行分析处理、作出判断。 同时,系统还设计了友好的人机交换界面,可方便地读出检测到的金属片数量、行驶路程和行驶时间。由于运用模块化控制方法,各模块相互影响较小,因此还可对系统进行二次开发,在本系统上增加更多模块,实现其他扩展功能,例如在系统上增加语音芯片,可实现语音播报功
- 十个中文例程教会你轻松上手制作Arduino智能小车(06-04)
- 经典款嵌入式智能小车的设计技巧,提供硬件选型(06-03)
- 智能小车循迹记时测速程序(12-02)
- 智能小车的PWM键盘控制电机程序(12-02)
- XS128单片机程序:智能小车舵机的控制(12-01)
- 基于51单片机的遥控智能小车实作心得(12-01)