智能循迹避障小车方案设计书Word格式.docx
《智能循迹避障小车方案设计书Word格式.docx》由会员分享,可在线阅读,更多相关《智能循迹避障小车方案设计书Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
实际应用中,具有智能化的机器人在人们无法触及的工作场合下更是大显身手,如各种
军事机器人、勘探机器人等。
和我们日常生活更为接近的有各种医疗机器人、汽车自动
泊位系统、自动驾驶系统等等。
轨迹跟踪系统的设计在机器人领域有着重要的地位,可以说是机器人实现智能化的
一个重要指标。
任何一个机器人想要实现智能化就必须能够实现对外部环境的自我感知
判断并作出相应反应,最终完成人们布置的任务。
本设计通过对轨迹跟踪问题的分析,制作了一辆能够自动跟踪地面上的黑色轨迹的
小车。
2.方案设计与论证
根据要求,确定如下方案:
在现有玩具电动车的基础上,加装光电检测器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。
这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
2.1主控系统
根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。
据此,拟定了以下两种方案并进行了综合的比较论证,具体如下:
方案一:
选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。
CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。
但CPLD在控制上较单片机有较大的劣势。
同时,CPLD的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。
若采用该方案,必将在控制上遇到许许多多不必要增加的难题。
为此,我们不采用该种方案,进而提出了第二种设想。
方案二:
采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。
充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。
这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。
因此,这种方案是一种较为理想的方案。
针对本设计特点——多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。
根据这些分析,我选定了P89C51RA单片机作为本设计的主控装置,51单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。
在综合考虑了传感器、两部电机的驱动等诸多因素后,我们决定采用一片单片机,充分利用STC89C52单片机的资源。
2.2电机驱动模块
采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。
采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。
但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。
更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。
方案三:
采用功率三极管作为功率放大器的输出控制直流电机。
线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路(如图2.1)。
用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。
现市面上有很多此种芯片,我选用了L298N(如图2.2)。
这种调速方式有调速特性优良、调整平滑、调速X围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。
因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。
图2.1H桥式电路
图2.2L298N
2.3循迹模块
采用简易光电传感器结合外围电路探测,但实际效果并不理想,对行驶过程中的稳定性要求很高,且误测几率较大、易受光线环境和路面介质影响。
在使用过程极易出现问题,而且容易因为该部件造成整个系统的不稳定。
故最终未采用该方案。
采用两只红外对管(如图2.3),分别置于小车车身前轨道的两侧,根据两只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,测试表明,只要合理安装好两只光电开关的位置就可以很好的实现循迹的功能。
(参考文献[3])
采用三只红外对管,一只置于轨道中间,两只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。
现场实测表明,小车在寻迹过程中有一定的左右摇摆不定,虽然可以正确的循迹但其成本与稳定性都次与第二种方案。
通过比较,我选取第二种方案来实现循迹。
图2.3红外对管
2.4避障模块
采用一只红外对管置于小车中央。
其安装简易,也可以检测到障碍物的存在,但难以确定小车在水平方向上是否会与障碍物相撞,也不易让小车做出精确的转向反应。
采用二只红外对管分别置于小车的前端两侧,方向与小车前进方向平行,对小车与障碍物相对距离和方位能作出较为准确的判别和及时反应。
但此方案过于依赖硬件、成本较高、缺乏创造性,而且置于小车左方的红外对管用到的几率很小,所以最终未采用。
采用一只红外对管置于小车右侧。
通过测试此种方案就能很好的实现小车避开障碍物,且充分的利用资源而不浪费。
通过比较我采用方案三。
2.5机械系统
本题目要求小车的机械系统稳定、灵活、简单,而三轮运动系统具备以上特点。
驱动部分:
由于玩具汽车的直流电机功率较小,而小车上装有电池、电机、电子器件等,使得电机负担较重。
为使小车能够顺利启动,且运动平稳,在直流电机和轮车轴之间加装了三级减速齿轮。
电池的安装:
将电池放置在车体的电机前后位置,降低车体重心,提高稳定性,同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。
简单,而三轮运动系统具备以上特点。
2.6电源模块
采用实验室有线电源通过稳压芯片供电,其优点是可稳定的提供5V电压,但占用资源过大。
采用4支1.5V电池单电源供电,但6V的电压太小不能同时给单片机与与电机供电。
采用8支1.5V电池双电源分别给单片机与电机供电可解决方案二的问题且能让小车完成其功能。
所以,我选择了方案三来实现供电。
3.硬件设计
3.1总体设计
智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,后轮是万象轮,起支撑的作用。
将循迹光电对管分别装在车体下的左右。
当车身下左边的传感器检测到黑线时,主控芯片控制左轮电机停止,车向左修正,当车身下右边传感器检测到黑线时,主控芯片控制右轮电机停止,车向右修正。
避障的原理和循线一样,在车身右边装一个光电对管,当其检测到障碍物时,主控芯片给出信号报警并控制车子倒退,转向,从而避开障碍物。
3.1.1主板设计框图如图3.1,所需原件清单如表3.1。
图3.1主板设计框图
表3.1元件清单
元件
数量
直流电机
2只
电阻
若干
集成电路芯片
单片机
1块
二极管
电容
3只
蜂鸣器
1只
电位器
12M晶振
杜邦线
玩具小车
1个
排针
3.2驱动电路(参考文献[4])
电机驱动一般采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而可以采用L298N电路来驱动电机。
通过单片机给予L298N电路PWM信号来控制小车的速度,起停。
其引脚图如3.2,驱动原理图如图3.3。
图3.2L298N引脚图
图3.3电机驱动电路
3.3信号检测模块
小车循迹原理是小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。
笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。
红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。
在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;
如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号,再通过LM324作比较器来采集高低电平,从而实现信号的检测。
避障亦是此原理。
电路图如图3.4。
市面上有很多红外传感器,在这里我选用TCRT5000型光电对管。
图3.4循迹原理图
3.4主控电路
本模块主要是对采集信号进行分析,同时给出PWM波控制电机速度,起停。
以及再检测到障碍报警等作用。
其电路图如图5。
图3.5主控电路
4.软件设计
4.1主程序框图:
图4.1主程序框图
4.2电机驱动程序
voidgoahead()
{
s1=1;
s2=0;
s3=1;
s4=0;
}
voidgoback()
s1=0;
s2=1;
s3=0;
s4=1;
voidturnleft()
voidturnright()
voidstop()
en1=0;
en2=0;
4.3循迹模块
循迹框图:
循迹程序:
voidxunji()
if((left_red==1)&
(right_red==1))
en1=1;
en2=1;
goahead();
delay(150);
delay(50);
elseif((left_red==0)&
P0_0=!
P0_0;
turnleft();
elseif((left_red==1)&
(right_red==0))
P0_1=!
P0_1;
turnright();
else
stop();
}
4.4避障模块
避障框图:
图4.3避障框图
避障程序:
voidbizhang()
goback();
mid_red=0;
baojing();
for(i=0;
i<
8;
i++)
delay(10);
11;
delay(130);
22;
18;
xun:
if((left_red==1)&
loop:
turnleft();
delay(30);
;
else
gotoloop;
delay(80);
gotoxun;
5.制作安装与调试
5.1PCB的设计制作与安装
采用DXP2004绘制原理图与PCB板,布线的过程中必须注意焊盘的大小与铜线的宽度。
我选取的焊盘内径为0.8mm,外径2mm;
铜线宽1mm。
从做板的情况来看基本达到制作得要求。
采用螺丝将循迹板安装在车头,主板与电机驱动安装在车尾。
5.2小车调试
通过改变循迹板滑动变阻器器的大小来调试红外对管的灵敏度,通过改变延时程序来改变速度的大小。
下表为小车运行的情况:
表5.1小车调试情况
小车运行次数
成功循迹次数
成功避障次数
1
2
3
4
5
结束语
整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。
本系统能实现如下功能:
(1)自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。
若有偏离,能够自动纠正,返回到预设轨道上来。
(2)当小车探测到前进前方的障碍物时,可以自动报警调整,躲避障碍物,从无障碍区通过。
小车通过障碍区后,能够自动循迹
(3)自动检测停车线并自动停车。
从运行情况来看循迹的效果比较好,避障的效果不是很好,我认为是由于电源不能稳定而是的小车的速度不好控制,这也是我这次设计最大的误区,没有选取稳定的电源。
我相信如果实验条件和时间的允许下我肯定能解决这一问题。
通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我在人生上又进了一步。
也认识到很多的不足。
致谢
本设计能够顺利完成,还承蒙X老师以及身边的很多同学的指导和帮助。
在设计过程中,X老师给予了悉心的指导,最重要的是给了我解决问题的思路和方法,并且在设计环境和器材方面给予了大力的帮助和支持,在此,我对X老师表示最真挚的感谢!
同时感谢所有帮助过我的同学!
感些评阅老师百忙之中抽出时间对本论文进行了评阅!
参考文献
[1]郭惠,吴迅.单片机C语言程序设计完全自学手册[M].电子工业,2008.10:
1-200.
[2]王东锋,王会良,董冠强.单片机C语言应用100例[M].电子工业,2009.3:
145-300.
[3]韩毅,杨天.基于HCS12单片机的智能寻迹模型车的设计与实现[J].学术期刊,2008,29(18):
1535-1955.
[4]王晓明.电动机的单片机控制[J].学术期刊,2002,13(15):
1322-1755.
[5]YamatoI,etal1NewconversionsystemforUPSusinghighfre2
quencylink[J]1IEEEPESC,1988:
210-320.
[6]YamatoI,etal1HighfrequencylinkDC/ACconverterforUPS
withanewvoltageclamper[J]1IEEEPESC,1990:
52-105.