智能循迹避障小车的设计与制作.docx
《智能循迹避障小车的设计与制作.docx》由会员分享,可在线阅读,更多相关《智能循迹避障小车的设计与制作.docx(26页珍藏版)》请在冰豆网上搜索。
智能循迹避障小车的设计与制作
选题
智能避障小车的设计与制作
院系
电子系
专业
电子信息科学与技术
学生姓名
指导教师
张贺东
本选题的意义:
避障寻迹小车可以通过自动感知引导线以及躲避障碍物在工作当中取代人力运输,节省人力以及成本。
智能车辆是一个运用计算机、传感、信息、通信、导航、人工智能及自动控制等技术来实现环境感知、规划决策和自动行驶为一体的高新技术综合体。
它在军事、民用和科学研究等方面已获得了应用,对解决道路交通安全提供了一种新的途径。
随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。
电子设计涉及到多个学科,机械电子、传感器技术、自动控制技术、人工智能控制、计算机与通信技术等等,是众多领域的高科技。
电子设计技术,它是一个国家高科技实例的一个重要标准,可见其研究意义很大。
工作原理:
避障寻迹小车是通过红外探头以及寻迹模块感知外围状况,将所感知到的数据以1、0的信号形式返回给单片机,然后再通过单片机针对不同的情况进行控制,从而实现避障寻迹的功能。
研究内容:
在现有电动车框架的基础上,加装红外探头以及寻迹模块,实现对电动车的运行状况,运行路线的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制,即自动避障、自动寻迹等功能。
在有轨迹的地方小车能够沿轨道行驶,当遇到障碍的时候就自动转入避障模块。
这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。
研究方法、手段及步骤:
1、循迹控制模块
采用AT89C52R作为控制核心。
STC89C52RC单片机成本低、性能高,超强抗干扰(电源、复位电路都经过特殊处理,每个I/O口接有二极管钳位保护),超低功耗,无法解密,低EMI(电磁干扰),而且与传统805l单片机程序兼容,硬件无需改动,支持ISP(在系统编程)及IAP(在应用编程)技术。
2、避障模块
采用三个红外探头,分别置于车的前、左、右放向。
当检测到前方有障碍物的时候将信息反馈到单片机,单片机再通过返回信息进行控制。
3、电机模块
采用直流电机。
直流电机的控制方法比较简单,只需给电机的两根控制线加上适当的电压即可使电机转动起来,电压越高则电机转速越高。
对于直流电机的速度调节,可以采用调节电压的方法,也可采用PWM调速方法。
PWM调速就是使加在直流电机两端的电压为方形波形,通过改变方形的占空比实现对电机转速的调节。
4、电机驱动模块
采用专用芯片L298N作为电机驱动芯片。
L298N是一个具有高电压大电流的全桥驱动芯片,它响应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。
用该芯片作为电机驱动,驱动能力大,操作方便,稳定性好,性能优良。
参考文献
[1]《新编MCS-51单片机应用设计(第3版)》张毅刚编著哈尔滨工业大学出版社
2008年04月
[2]《C语言程序设计(第三版)》谭浩强编著清华大学出版社2005年07月
[3]学位论文:
佚名《智能小车设计毕业论文》
[4]《单片机C语言编程与实例》赵亮、侯国锐编著人民邮电出版社2003年9月
[5]YamatoI,etal1NewconversionsystemforUPSusinghighfre2
quencylink[J]1IEEEPESC,1988:
210-320.
摘要
本设计是一种基于单片机控制的简易自动寻迹小车系统,包括小车系统构成软硬件设计方法。
小车以AT89C52为控制核心,利用车前三个红外探头检测周围信息,以及循迹模块对路面黑色轨迹进行检测,并将路面检测信号反馈给单片机。
单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,从而使小车能够自动避障和沿着黑色轨迹自动行驶,实现小车自动避障寻迹的目的。
关键词:
AT89C51;直流电机;红外探头;循迹模块
Abstract
Thedesignisbasedonsinglechipmicrocomputercontrolautomatictracingsystem,includingsystemhardwareandsoftwaredesignmethodofcar.ThecartakesAT89C52asthecontrolcore,usingthefrontthreeinfraredprobedetectionofperipheralinformation,andtrackingmoduleonpavementblacklocusweredetected,andthepavementdetectionsignalfeedbacktothemicrocontroller.Singlechipsignalgivestheanalysisjudgment,tocontrolthedrivemotortoadjustthecarsteering,sothatthecarcanautomaticallyavoidobstaclesandalongtheblackpathautomaticdriving,realizeautomaticobstacleavoidancetracingpurposes.
Keywords:
AT89C51;infraredsensor;trackingmodule
第一章前言
1.1本选题的意义
自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。
近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。
人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。
随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。
视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。
视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。
但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。
机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。
避障控制系统是基于自动导引小车(AVG—auto-guidevehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。
使用传感器感知路线和障碍并作出判断和相应的执行动作。
该智能小车可以作为机器人的典型代表。
它可以分为三大组成部分:
传感器检测部分、执行部分、CPU。
机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。
可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。
基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。
智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。
单片机驱动直流电机一般有两种方案:
第一,勿需占用单片机资源,直接选择有PWM功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。
考虑到实际情况,本文选择第二种方案。
CPU使用STC89C52单片机,配合软件编程实现。
1.2智能小车的发展现状及未来趋势
现智能小车发展很快,从智能玩具到其它各行业都有实质成果。
其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几节的电子设计大赛智能小车又在向声控系统发展。
比较出名的飞思卡尔智能小车更是走在前列。
我此次的设计主要实现循迹避障这两个功能。
1.3智能小车的研究意义
随着我国科学技术的进步,智能化和自动化技术越来越普及,各种高科技也广泛应用于智能小车和机器人玩具制造领域,使智能机器人越来越多样化。
智能小车是一个多种高新技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,涉及到当今许多前沿领域的技术。
而智能电动车正是智能机器人的一种,具有不可估量的实际意义。
其避障寻迹技术的研究可以带来交通运输的巨大改革,也为车辆的自主导航能力的实现和无人自动驾驶车辆的实现提供了重要技术。
第二章寻迹避障小车工作原理
2.1壁障寻迹小车工作原理
工作原理:
避障寻迹小车是通过红外探头以及寻迹模块感知外围状况,将所感知到的数据以1、0的信号形式返回给单片机,然后再通过单片机针对不同的情况进行控制,从而实现避障寻迹的功能。
2.2控制系统总体设计
图2-1主控系统结构图
1、主控制电路模块:
用AT89C52单片机
2、红外检测模块:
红外探头传感器
3、寻迹模块:
红外对管传感器
4、电源模块:
双路开关电源
5、电机及驱动模块:
电机驱动芯片L298N、两个直流电机
2.2.1AT98C52单片机
图2-2AT89C52电路图
采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。
充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。
这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。
因此,这种方案是一种较为理想的方案。
2.2.2红外探头避障模块
采用三只红外探头分别置于小车的前端两侧以及正前端放向,对小车与障碍物相对距离和方位能作出较为准确的判别和及时反应,再向没有检测都障碍物的一方行走。
图2-3加调制的发射管
图3-4红外避障原理
2.2.3寻迹模块
采用五只红外对管,一只置于轨道中间,四只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道),若外面两只红外对管检测到黑线,则向反方向转弯,再恢复正向行驶。
图2-5红外避障原理
红外对管
2.2.4电源模块
采用8支1.5V电池双电源分别给单片机与电机供电可解决方案二的问题且能让小车完成其功能。
2.2.5电机及驱动模块
采用功率三极管作为功率放大器的输出控制直流电机。
线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路(如图2.1)。
用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。
现市面上有很多此种芯片,我选用了L298N(如图2.2)。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。
因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。
图2-6H桥式电路
图2-7L298N
第三章硬件设计
3.1总体设计
智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,后轮是万象轮,起支撑的作用。
将循迹对管装在车体下的前端,一开始小车自动开始寻迹功能,当搜索不到黑线的时候就自动进入壁障模式,知道再次搜索到黑线。
图3-1主板设计框图
3.2驱动电路
电机驱动一般采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而可以采用L298N电路来驱动电机。
通过单片机给予L298N电路PWM信号来控制小车的速度,起停。
其引脚、驱动原理图如下图:
图3-2L298N引脚图
图3-3电机驱动电路图
3.3信号检测模块
小车循迹原理是小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。
笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。
红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。
在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号,再通过LM324作比较器来采集高低电平,从而实现信号的检测。
避障亦是此原理。
图3-4循迹原理图
3.4主控电路
本模块主要是对采集信号进行分析,同时给出PWM波控制电机速度,起停。
以及再检测到障碍报警等作用。
其电路图如图。
图3-5主控电路
第四章软件设计
4.1主程序框图:
图4-1主程序程序框图
4.2寻迹模块程序设计
4.2.1寻迹程序框图及其真值表
图4-2寻迹程序框图
表4-1寻迹真值表
Q1
Q2
Q3
Q4
Q5
状态
修正
0
1
1
1
1
左偏
左转
1
0
1
1
1
左偏
左转
1
1
0
1
1
正常
直走
1
1
1
0
1
右偏
右转
1
1
1
1
0
右偏
右转
0
0
1
1
1
左偏
左转
1
0
0
1
1
左偏
左转
1
1
0
0
1
右偏
右转
1
1
1
0
0
右偏
右转
0
0
0
1
1
左偏
左转
Q1
Q2
Q3
Q4
Q5
状态
修正
1
1
0
0
0
右偏
右转
1
0
0
0
1
正常
直走
0
0
0
0
0
终点
停止
注:
Q1、Q2、Q3、Q4、Q5分别代表小车寻迹模块上的5个红外感应器,Q1到Q5从左到右排列。
4.4避障模块程序设计
4.4.1避障框图及其真值表
4-3避障程序框图
表4-2
Mid
Left
Right
动作
1
1
1
直走
1
0
0
直走
0
1
1
左转
0
0
1
右转
0
0
1
左转
0
0
0
左转
结束语
整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。
本系统能实现如下功能:
(1)自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。
若有偏离,能够自动纠正,返回到预设轨道上来。
(2)当小车探测到前进前方的障碍物时,躲避障碍物,从无障碍区通过。
小车通过障碍区后,能够自动循迹
从运行情况来看循迹的效果比较好,避障的效果不是很好,我认为是由于红外探头数量不够导致检测过程中会产生检测不到的死角。
通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我在人生上又进了一步。
也认识到很多的不足。
致谢
本设计能够顺利完成,还承蒙张老师以及身边的很多同学的指导和帮助。
在设计过程中,张老师给予了悉心的指导,最重要的是给了我解决问题的思路和方法,并且在设计环境和器材方面给予了大力的帮助和支持,在此,我对张老师表示最真挚的感谢!
同时感谢所有帮助过我的同学!
感些评阅老师百忙之中抽出时间对本论文进行了评阅!
附录一硬件原理图
附图一智能小车硬件电路
附图二单片机中其它元件单路图
附录二程序清单
#include
/************定义引脚************/
sbitb2=P1^0;//电机右轮
sbitb1=P1^1;
sbita2=P1^4;//电机左轮
sbita1=P1^5;
sbitmid=P0^0;//前感应器
sbitleft=P0^1;//左感应器
sbitright=P0^2;//右感应器
sbitq1=P0^3;//对应循迹模块的Q1、Q2、Q3、Q4
sbitq2=P0^4;
sbitq3=P0^5;
sbitq4=P0^6;
sbitq5=P0^7;
/************直走************/
voidahead()
{
a1=0;
a2=1;
b1=0;
b2=1;
}
/************左转************/
voidturnleft()
{
a1=1;
a2=0;
b1=0;
b2=1;
}
/************右转************/
voidturnright()
{
a1=0;
a2=1;
b1=1;
b2=0;
}
/************停止************/
voidstop()
{
a1=1;
a2=1;
b1=1;
b2=1;
}
/************循迹子程序************/
voidxunji()
{
if(q1==1&&q2==1&&q3==0&&q4==1&&q5==1)
ahead();
if(q1==1&&q2==0&&q3==0&&q4==0&&q5==1)
ahead();
if(q1==0&&q2==1&&q3==1&&q4==1&&q5==1)
turnleft();
if(q1==1&&q2==0&&q3==1&&q4==1&&q5==1)
turnleft();
if(q1==0&&q2==0&&q3==1&&q4==1&&q5==1)
turnleft();
if(q1==1&&q2==0&&q3==0&&q4==1&&q5==1)
turnleft();
if(q1==0&&q2==0&&q3==0&&q4==1&&q5==1)
turnleft();
if(q1==1&&q2==1&&q3==1&&q4==0&&q5==1)
turnright();
if(q1==1&&q2==1&&q3==1&&q4==1&&q5==0)
turnright();
if(q1==1&&q2==1&&q3==1&&q4==0&&q5==0)
turnright();
if(q1==1&&q2==1&&q3==0&&q4==0&&q5==1)
turnright();
if(q1==1&&q2==1&&q3==0&&q4==0&&q5==0)
turnright();
if(q1==0&&q2==0&&q3==0&&q4==0&&q5==0)
stop();
}
/************壁障子程序************/
voidbizhang()
{
while
(1)
{
if(mid==1&&left==1&&right==1)
ahead();
if(mid==1&&left==0&&right==0)
ahead();
if(mid==0&&left==1&&right==1)
turnleft();
if(mid==0&&left==0&&right==1)
turnright();
if(mid==0&&right==0&&left==1)
turnleft();
if(mid==0&&left==0&&right==0)
turnleft();
if(mid==0&&left==1&&right==1)
turnleft();
if(q1||q2||q3||q4||q5==1)
break;
}
}
voidmain()
{
while
(1)
{
xunji();
if(q1==1&&q2==1&&q3==1&&q4==1&&q5==1)
bizhang();
}
}
参考文献
[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.