毕业设计基于单片机的智能循迹小车.docx
- 文档编号:12913133
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:29
- 大小:1.12MB
毕业设计基于单片机的智能循迹小车.docx
《毕业设计基于单片机的智能循迹小车.docx》由会员分享,可在线阅读,更多相关《毕业设计基于单片机的智能循迹小车.docx(29页珍藏版)》请在冰豆网上搜索。
毕业设计基于单片机的智能循迹小车
第1章绪论
1.1课题背景
目前,在企业生产技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。
世界上许多国家都在积极进行智能车辆的研究和开发设计。
移动机器人是机器人学中的一个重要分支,出现于20世纪06年代。
当时斯坦福研究院(SRI)的NilsNilssen和charlesRosen等人,在1966年至1972年中研制出了取名shakey的自主式移动机器人,目的是将人工智能技术应用在复杂环境下,完成机器人系统的自主推理、规划和控制。
从此,移动机器人从无到有,数量不断增多,智能车辆作为移动机器人的一个重要分支也得到越来越多的关注。
智能小车,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航及白动控制等技术,是典型的高新技术综合体。
智能车辆也叫无人车辆,是一个集环境感知、规划决策和多等级辅助驾驶等功能于一体的综合系统。
它具有道路障碍自动识别、自动报警、自动制动、自动保持安全距离、车速和巡航控制等功能。
智能车辆的主要特点是在复杂的道路情况下,能自动地操纵和驾驶车辆绕开障碍物并沿着预定的道路(轨迹)行进。
智能车辆在原有车辆系统的基础上增加了一些智能化技术设备:
(1)计算机处理系统,主要完成对来自摄像机所获取的图像的预处理、增强、分析、识别等工作;
(2)摄像机,用来获得道路图像信息;
(3)传感器设备,车速传感器用来获得当前车速,障碍物传感器用来获得前方、侧方、后方障碍物等信息。
智能车辆技术按功能可分为三层,即智能感知/预警系统、车辆驾驶系统和全自动操作系统团。
上一层技术是下一层技术的基础。
三个层次具体如下:
(1)智能感知系统,利用各种传感器来获得车辆自身、车辆行驶的周围环境及
驾驶员本身的状态信息,必要时发出预警信息。
主要包括碰撞预警系统和驾驶员状态监控系统。
碰撞预警系统可以给出前方碰撞警告、盲点警告、车道偏离警告、换道/并道警告、十字路口警告、行人检测与警告、后方碰撞警告等.驾驶员状态监控系统包括驾驶员打吨警告系统、驾驶员位置占有状态监测系统等。
(2)辅助驾驶系统,利用智能感知系统的信息进行决策规划,给驾驶员提出驾驶建议或部分地代替驾驶员进行车辆控制操作。
主要包括:
巡航控制、车辆跟踪系统、准确泊车系统及精确机动系统。
(3)车辆自动驾驶系统,这是智能车辆技术的最高层次,它由车载计算机全部自动地实现车辆操作功能。
目前,主要发展用于拥挤交通时低速自动驾驶系统、近距离车辆排队驾驶系统等。
这种智能小车的主要应用领域包括以下几个方面:
(1)军事侦察与环境探测
现代战争对军事侦察提出了更高的要求,世界各国普遍重视对军事侦察的建设,采取各种有效措施预防敌方的突然袭击,并广泛应用先进科学技术,不断研制多用途的侦察器材和探测设备,在车上装备摄像机、安全激光测距仪、夜视装置和卫星全球定位仪等设备,通过光缆操纵,完成侦察和监视敌情、情报收集、目标搜索和自主巡逻等任务,进一步扩大侦察的范围,提高侦察的时效性和准确性。
(2)探测危险与排除险情
在战场上或工程中,常常会遇到各种各样的意外。
这时,智能化探测小车就会发挥很好的作用。
战场上,可以使用智能车辆扫除路边炸弹、寻找和销毁地雷。
民用方面,可以探测化学泄漏物质,可以进行地铁灭火,以及在强烈地震发生后到废墟中寻找被埋人员等。
(3)安全检测受损评估
在工程建设领域,可对高速公路自动巡迹,进行道路质量检测和破坏分析检测;对水库堤坝、海岸护岸堤、江河大坝进行质量和安全性检测。
在制造领域,可用于工业管道中机械损伤,裂纹等缺陷的探寻,对输油和输气管线的泄漏和破损点的查找和定位等。
(4)智能家居
在家庭中,可以用智能小车进行家具、远程控制家中的家用电器,控制室温等等。
对这种小车的研究,将为未来环境探测术上的有力支持。
1.2课题研究的目的和意义
目前,国内外的许多大学及研究机构都在积极投入人力、财力研制开发针对特殊条件下的安全监测系统。
其中包括研究使用远程、无人的方法来进行实现,如机器人、远程监控等。
无线传输的发展使得测量变得相对简单而且使得处理数据的速度变得很快甚至可以达到实时处理”。
该智能小车可以作为机器人的典型代表。
它可以分为三大组成部分:
传感器检测部分、执行部分、CPU。
机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。
可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。
通过构建智能小车系统,培养设计并实现自动控制系统的能力。
在实践过程中,熟悉以单片机为核心控制芯片,设计小车的检测、驱动和显示等外围电路,采用智能控制算法实现小车的智能循迹。
灵活应用机电等相关学科的理论知识,联系实际电路设计的具体实现方法,达到理论与实践的统一。
在此过程中,加深对控制理论的理解和认识。
1.3本设计的内容及意义
1.3.1设计的内容
(1)路面检测模块
(2)电源模块为5V;
(3)直流电机的驱动模块电路,及相应的驱动程序;
(4)控速模块
(5)循线功能电路及程序;
(6)复位电路模块
1.3.2本设计的意义
随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。
全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。
可见其研究意义很大。
本设计就是在这样的背景下提出的,本题目是结合科研项目而确定的设计类课题。
本设计就采用了比较先进的C51为控制核心,C51采用CHOMS工艺,功耗很低。
该设计具有实际意义,可以应用于考古、机器人、医疗器械等许多方面。
尤其是在足球机器人研究方面具有很好的发展前景;在考古方面也应用到了超声波传感器进行检测。
所以本设计与实际相结合,现实意义很强。
智能小车国内外研究现状:
世界各国在智能微型车领域进行了很多研究,己经应用于各个领域,在探测和军事领域使用特别多。
近年来,我国也开展了很多研究工作,以满足不同用途的需要。
世界各国开发、研制星球探测车系统己经有了多年的历史。
美国和前苏联是从20世纪60年代末期开始进行月球表面探测任务的。
美国曾在1966^-1968年间,向月球成功发射了两次无人巡游探测器。
1997年,由美国JPL(全称JetPropulsionLaboratory,美国太空总署喷气推进实验室)研制的Sojourner号探测车登上了火星。
它验证了小型火星车的性能,并完成了一系列技术试验。
2004年1月,美国的“勇气号”和“机遇号”火星探测车再度登陆火星。
前苏联在1959^-1976年间,总共成功发射了两个月球探测车。
单片机的应用领域越来越广泛,无论是在生活,生产上,单片机无处不在。
ATMEL公司的AT89S51单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。
AT89S51可以说是单片机领域的主流产品,其应用如此广泛,所以有必要去学习和应用该单片机,以满足实际产品开发的需要,也是适应社会智能化、自动化的趋势。
通过构建智能小车系统,培养设计并实现自动控制系统的能力。
在实践过程中,熟悉以单片机为核心控制芯片,设计小车的检测、驱动和显示等外围电路,采用智能控制算法实现小车的智能循迹。
灵活应用机电等相关学科的理论知识,联系实际电路设计的具体实现方法,达到理论与实践的统一。
在此过程中,加深对控制理论的理解和认识。
1.4论文各部分的主要内容
第一章对智能循迹小车的现状、研究意义和设计要求进行简单阐述。
第二章介绍了该智能循迹小车系设计方案比较和选择,分析了各模块的功能。
第三章阐述了智能小车系统的硬件电路的设计,其中包括单片机最小系统模块电路、电机驱动模块电路、以及附带的信号提示电路等。
第四章首先介绍了该系统程序调试过程中所用到的程序调试软件及其调试环境。
最后总结部分说明了本论的主要内容,举出了在系统测试过程中所发现的问题,并提出了可能的解决方案。
第2章智能循迹小车系统
2.1系统设计任务与设计要求
2.1.1系统设计任务
1.熟悉51单片机集成开发环境,运用C语言编写工程文件;
2.熟练应用所选用单片机的内部结构、资源,以及软硬件调试设备的基本方法;
3.自行构建基于单片机的最小系统,完成相关硬件电路的设计实现;
4.了解电机、路面检测的原理和实现方法。
2.1.2系统设计要求
1.完成单片机最小系统设计;
2.完成外围应用电路(包括系统供电单元、运动控制单元、循迹检测单元)的设计和实现;
3.完成软件对硬件检测和调试工作;
4.查阅国内外的研究动态和发展前沿信息,阅读相关外文文献。
2.2系统方案论证
2.2.1控制器方案论证
按照题目要求,控制器主要用于控制电机,通过相关传感器对路面的轨迹信息进行处理,并将处理信号传输给控制器,然后控制器做出相应的处理,实现电机的前进和后退,保证在允许范围类实现跷跷板的平衡。
方案一:
可以采用ARM为系统的控制器,优点是该系统功能强大,片上外设集成度搞密度高,提高了稳定性,系统的处理速度也很高,适合作为大规模实时系统的控制核心。
方案二:
采用AT89S52作为系统控制的方案。
AT89S52单片机算术运算功能强,软件编程灵活、自由度大,功耗低、体积小、技术成熟,成本也比ARM低。
考虑到性价比问题,本设计选择用AT89S52单片机做控制器。
2.2.2供电单元方案论证
方案一:
采用单电源供电,通过单电源同时对单片机和直流电机进行供电,此方案的优点是,减少机身的重量,操作简单,其缺点是,这样会使单片机的波动变大,影响单片机的性能,稳定性比较弱。
方案二:
采用双电源供电,通过两个独立的电源分别对单片机和直流电机进行供电,此方案的优点是,减少波动,稳定性比较好,可以让小车更好的运作起来,唯一的缺点就是会增加小车的重量。
综合以上的优缺点,本设计决定采用第二种方案。
2.2.3运动单元方案论证
方案一:
采用直流电机,配合LM293驱动芯片组合。
优点在于硬件电路的设计简单。
当外加额定直流电压时,转速几乎相等。
这类电机用于录音机、录相机、唱机或激光唱机等固定转速的机器或设备中。
也用于变速范围很宽的驱动装置。
容易受到外部因素干扰,影响稳定的转速和转矩输出。
电路如图2-1:
图2-1直流电机+LM293组合电路原理
方案二:
采用步进电机,配合LM298驱动芯片组合。
步进电机可以实现精确的转脚输出,只要施加合适的脉冲序列,电机可以按照人们的预定的速度或方向进行连续的转动,便于控速,但是软件程序的编写较直流电机稍显复杂。
但是LM298芯片的硬件电路比较复杂。
如图2-2:
图2-2步进电机+LM298组合电路原理
方案三:
采用直流电机配合由双极性管组成的H桥电路。
用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高;H桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术,其电路原理简图如图2-3所示。
图2-3电机驱动原理简图
综合3种方案的优缺点,鉴于本系统设计体积较小,自身重量较轻,对电机功率输出要求不高,决定选择方案3。
2.2.4循迹单元方案论证
方案一:
用光敏电阻组成光敏探测器
用光敏电阻组成光敏探测器,光敏电阻的阻值可以跟随周围环境光线的变化而变化。
当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。
因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。
将阻值的变化值经过比较器就可以输出高低电平。
但是这种方案受光照影响很大,不能够稳定的工作。
方案二:
采用RPR220型光电对管。
RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。
综上所述,我们采用方案二。
2.3系统总体方案
经过对方案的设计要求的分析和方案论证,采用51单片机控制平台,经过红外传感模块检测路面的信息,控制运动模块的电机运动方式,近而控制这个智能小车系统的运动。
系统框图如图2-4。
图2-4系统总体框图
第3章智能循迹小车硬件部分
3.1系统硬件电路介绍
智能小车采用AT89S51单片机进行智能控制,开始由手动启动小车,并复位。
当有红外遥控信号时,根据信号进入相应的行驶状态,在运动过程中由红外光电传感器检测,通过单片机控制小车进行循迹,系统的自动循迹功能通过红外线传感器正前方检测,由单片机控制实现在小车行驶过程中,通过接收的信号脉冲控制直流电机,以提高系统的静动态性能。
系统功能原理图如图3-1所示。
运动系统电路包括供电电路、电机驱动和控制电路两部分。
图3-1系统功能原理图
供电电路:
运动系统供电采用双电源分别对电机和控制器供电。
考虑到小车是个不断运动的实验设备,采用干电池供电。
总的供电系统是有9V的大功率电池储能,经过电压转换单元。
由一个9V转为5V对控制单元供电;另一个9V电池直接对电机的供电端连接。
供电部分的分析将在后面3.3节结合整个系统的供电电路进行详细介绍。
电机驱动和控制电路:
通过51单片机,控制端口对直流电机的转速和转向来对电机进行控制。
3.2单片机最小系统
单片机最小系统由复位电路、时钟振荡电路、数据采集接口和电机控制接口组成,单片机最小系统图如图3-2所示。
图3-2
图3-2单片机最小系统
3.2.1单片机使用资源规划
由于51单片机具有比较强大的系统资源,本系统在设计时充分利用了它的自身特性,并进行合理规划。
见表3-3。
表3-3单片机资源分配表
系统资源类型
用途
备注
看门狗
防止系统跑飞
定时器0
定时喂狗
P1端口
路面检测
输入
P3端口
电机控制
输出
3.2.2单片机功能模块介绍
单片机本电路的控制核心,它接收传感器测得的信号,并控制电机的转动与停止。
传感器的输入有两根信号线,接单片机的P3.6与P3.7引脚。
传入放入信号为高低电平,在小车没有走到黑线上时,输入都为低电平,此时单片机会驱动两个电机同时转动,不需要转弯,当某端输入高电平时,表明小车的相应一侧一走到黑线上,单片机便使改侧的电机停止转动,另一侧的继续转动,直到两侧都不走到黑线上,程序采用轮询的方式,可以及时的检测到是否走到黑线上。
3.3供电单元介绍
高性能的电源管理系统对于电子系统稳定运行是至关重要的。
作为智能车源,电源模块为系统的控制器,执行机构,传感器等各个模块提供可靠的工作电压。
设计中,除了需要考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪声、防止干扰和电路简单等方面进行优化,电源管理模块的功能是对电池进行分配和电压调节,为其他各个模块的正常工作提供可靠的工作电压。
3.3.1系统供电单元介绍
智能车控制系统中,不同电路模块需要的工作电压和电流容量各不相同。
芯片需要提供5V的工作电压,而电机所需的电压为9V,本设计中用到的是9V的电源供电,然后通过三端稳压器LM7805将电压变换为5V电压供给电路系统。
电源系统的电路图如图3-4所示。
图3-4稳压电源转换电路
3.3.2稳压芯片简介
三端稳压集成电路lm7805 电子产品中,常见的三端稳压集成电路有正电压输出的lm78××系列和负电压输出的lm79××系列。
顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。
它的样子象是普通的三极管,TO-220的标准封装,也有lm9013样子的TO-92封装。
图3-5lm7805样品
用lm78/lm79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
该系列集成稳压IC型号中的lm78或lm79后面的数字代表该三端集成稳压电路的输出电压,如lm7806表示输出电压为正6V,lm7909表示输出电压为负9V。
因为三端固定集成稳压电路的使用方便,电子制作中经常采用。
在实际应用中,应在三端集成稳压电路上安装足够大的散热器(当然小功率的条件下不用)。
当稳压管温度过高时,稳压性能将变差,甚至损坏。
当制作中需要一个能输出1.5A以上电流的稳压电源,通常采用几块三端稳压电路并联起来,使其最大输出电流为N个1.5A,但应用时需注意:
并联使用的集成稳压电路应采用同一厂家、同一批号的产品,以保证参数的一致。
另外在输出电流上留有一定的余量,以避免个别集成稳压电路失效时导致其他电路的连锁烧毁。
3.4运动单元介绍
本系统采用9V直流电动机作为智能玩具车的动力源。
用电机驱动专用芯片L298作为电机的驱动。
L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
电机驱动模块硬件电路图如图3-6所示。
图3-6电机驱动模块硬件电路图
3.5循迹单元介绍
3.5.1循迹单元工作原理
循迹是指小车在白色地板上循黑线行走通常采取的方法是红外探测法,红外探测法即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射反射光被装在小车上的接收管接收,如果遇到黑线则红外光被吸收小车上的接收管接收不到红外光,单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线,从而实现小车的循迹功能。
红外探测器探测距离有限一般最大不应超过3cm。
循迹功能如图3-7所示
图3-7循迹功能图
本设计需要检测小车的运行状态,沿着路面黑线运动。
采用反射取样式,单光束红外传感器接收信号,再分别用运放LM393比较电压信号进行放大。
图3-5的电路在5V电压下工作,根据该型号传感器红外发射管所需的工作压降(红外发射管的正向压降在1~1.3V)和工作电流(红外发射管的电流为2~10mA),选取负载电阻R1=2.2KΩ,红外发射管负载电阻R2=220Ω。
调节电位器使检测信号能被识别。
3.5.2LM393比较器简介
比较器是将一个模拟电压信号与一个基准电压相比较的电路。
比较器的两路输入为模拟信号,输出则为二进制信号,当输入电压的差值增大或减小时,其输出保持恒定。
因此,也可以将其当作一个1位模/数转换器(ADC)。
对路面检测的电路设计就是通过电位器设定一个阈值,以此确定是否有光反射。
并且以此阈值为标准,向单片机输入满足TTL电平的数字信号。
如图3-8所示。
图3-8LM393芯片示意图
第4章智能循迹小车软件部分
4.1软件调试平台
KeilforC51是美国KeilSoftware公司出品的C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilforC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilforC51开发系统各部分功能和使用。
C51开发中除必要的硬件外,同样离不开软件,我们写的源程序要变为C51可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
随着C51开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件除了致力于单片机的编程开发平台外,还针对目前最流行C51开发项目出品了Keilfor51软件平台以及支持在线调试的串口烧写。
从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision2)将这些部份组合在一起。
如图4-1所示。
图4-1Keilfor51开发平台截图
KEILforC51编译平台对51单片机的器件选型设置。
如图4-2所示。
图4-2MCU选型设置
4.2系统软件流程
系统软件流程图如图4-3所示。
图4-3系统流程图
4.3系统软件程序
#include
#include
//宏定义
#defineucharunsignedchar//无符号八位字符型数据
#defineuintunsignedint//无符号16位整形数据
#defineulongunsignedlong//无符号三十二位长整型
//状态定义
uchargo=0xFA;//1111_1010前进
ucharback=0xF5;//1111_0101后退
ucharleft=0xFE;//1111_1110左转
ucharright=0xFB;//1111_1011右转
//延时函数
voiddelay()
{
uinti,j;
for(i=0;i<500;i++)
for(j=0;j<800;j++);
}
//启动软件看门狗WDTRST防止程序跑飞增加系统的稳定性
sfrWDTRST=0xA6;//看门狗寄存器0xA6
//喂狗程序
voidFeedDog()
{
WDTRST=0x1e;//给寄存器装值
WDTRST=0xe1;
}
//定时器初始化程序
voidInitial()
{
TMOD=0x01;//定时器0工作在方式1
TH0=0xf0;//高八位装值1111——0000
TL0=0xf0;//第八位装值1111_0000
TR0=1;//启动定时器
ET0=1;//定时器中断允许
EA=1;//开放总中断
}
//主程序
//对传感器输入信号进行轮询并决定当前小车行驶方式
voidmain()
{
FeedDog();//刚入主程序喂一次狗
Initial();//定时器初始化
P1=0xFF;//端口初始化用于控制电机
P3=0xFF;//传感器状态接收
while
(1)//对传感器输入信号不断地进行查询
{
if(P3==0x7F)//0111_1111
P1=left;//执行左转指令
elseif(P3==0xBF)//1011_1111
P1=right;//执行右转指令
else
P1=go;//否则就向前行驶
}
}
//定时器中断函数执行喂狗定时器重装初值
voidtimer0()interrupt1//使用中断
{
TH0=0xf0;
TL0=0xf0;//定时器重载初值高八位第八位
FeedDog();//每过一定时间喂下狗,不然程序会自动复位
4.4循迹处理软件流程
在白色背景中有一条黑色的线,小车就是要沿着这条黑线行走,通过判断反射式光电传感器所接收到的反射光来判
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 单片机 智能 小车