第1章 绪 论
1.1课题背景
目前 ,在企业生产技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。世界上许多国家都在积极进行智能车辆的研究和开发设计。移动机器人是机器人学中的一个重要分支,出现于20世纪06年代。当时斯坦福研究院(SRI)的Nils Nilssen和charles Rosen等人,在1966年至1972年中研制出了取名shakey的自主式移动机器人,目的是将人工智能技术应用在复杂环境下,完成机器人系统的自主推理、规划和控制。从此,移动机器人从无到有,数量不断增多,智能车辆作为移动机器人的一个重要分支也得到越来越多的关注。
智能小车,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航及白动控制等技术,是典型的高新技术综合体。
智能车辆也叫无人车辆,是一个集环境感知、规划决策和多等级辅助驾驶等功能于一体的综合系统。它具有道路障碍自动识别、自动报警、自动制动、自动保持安全距离、车速和巡航控制等功能。智能车辆的主要特点是在复杂的道路情况下,能自动地操纵和驾驶车辆绕开障碍物并沿着预定的道路(轨迹)行进。智能车辆在原有车辆系统的基础上增加了一些智能化技术设备:
(1)计算机处理系统,主要完成对来自摄像机所获取的图像的预处理、增强、分析、识别等工作;
(2)摄像机,用来获得道路图像信息;
(3)传感器设备,车速传感器用来获得当前车速,障碍物传感器用来获得前方、侧方、后方障碍物等信息。
智能车辆技术按功能可分为三层,即智能感知/预警系统、车辆驾驶系统和全自动操作系统团。上一层技术是下一层技术的基础。三个层次具体如下:
(1)智能感知系统,利用各种传感器来获得车辆自身、车辆行驶的周围环境及 驾驶员本身的状态信息,必要时发出预警信息。主要包括碰撞预警系统和驾驶员状态监控系统。碰撞预警系统可以给出前方碰撞警告、盲点警告、车道偏离警告、换道/
1
并道警告、十字路口警告、行人检测与警告、后方碰撞警告等.驾驶员状态监控系统包括驾驶员打吨警告系统、驾驶员位置占有状态监测系统等。
(2)辅助驾驶系统,利用智能感知系统的信息进行决策规划,给驾驶员提出驾驶建议或部分地代替驾驶员进行车辆控制操作。主要包括:巡航控制、车辆跟踪系统、准确泊车系统及精确机动系统。
(3)车辆自动驾驶系统,这是智能车辆技术的最高层次,它由车载计算机全部自动地实现车辆操作功能。目前,主要发展用于拥挤交通时低速自动驾驶系统、近距离车辆排队驾驶系统等。
这种智能小车的主要应用领域包括以下几个方面: (1)军事侦察与环境探测
现代战争对军事侦察提出了更高的要求,世界各国普遍重视对军事侦察的建设,采取各种有效措施预防敌方的突然袭击,并广泛应用先进科学技术,不断研制多用途的侦察器材和探测设备,在车上装备摄像机、安全激光测距仪、夜视装置和卫星全球定位仪等设备,通过光缆操纵,完成侦察和监视敌情、情报收集、目标搜索和自主巡逻等任务,进一步扩大侦察的范围,提高侦察的时效性和准确性。
(2)探测危险与排除险情
在战场上或工程中,常常会遇到各种各样的意外。这时,智能化探测小车就会发挥很好的作用。战场上,可以使用智能车辆扫除路边炸弹、寻找和销毁地雷。民用方面,可以探测化学泄漏物质,可以进行地铁灭火,以及在强烈地震发生后到废墟中寻找被埋人员等。
(3)安全检测受损评估
在工程建设领域,可对高速公路自动巡迹,进行道路质量检测和破坏分析检测;对水库堤坝、海岸护岸堤、江河大坝进行质量和安全性检测。在制造领域,可用于工业管道中机械损伤,裂纹等缺陷的探寻,对输油和输气管线的泄漏和破损点的查找和定位等。
(4)智能家居
在家庭中,可以用智能小车进行家具、远程控制家中的家用电器,控制室温等等。对这种小车的研究,将为未来环境探测术上的有力支持。
2
1.2课题研究的目的和意义
目前,国内外的许多大学及研究机构都在积极投入人力、财力研制开发针对特殊
条件下的安全监测系统。其中包括研究使用远程、无人的方法来进行实现,如机器人、远程监控等。无线传输的发展使得测量变得相对简单而且使得处理数据的速度变得很快甚至可以达到实时处理”。
该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、CPU。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。
通过构建智能小车系统,培养设计并实现自动控制系统的能力。在实践过程中,熟悉以单片机为核心控制芯片,设计小车的检测、驱动和显示等外围电路,采用智能控制算法实现小车的智能循迹。灵活应用机电等相关学科的理论知识,联系实际电路设计的具体实现方法,达到理论与实践的统一。在此过程中,加深对控制理论的理解和认识。
1.3 本设计的内容及意义
1.3.1 设计的内容 (1)路面检测模块 (2)电源模块为5V;
(3)直流电机的驱动模块电路,及相应的驱动程序; (4)控速模块
(5)循线功能电路及程序; (6)复位电路模块 1.3.2 本设计的意义
随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。本设计就是在这样的背景下提出的,本题目是结合科研项目而确定的设计类课题。本设计就采用了比较先进的C51为控制核心, C51采用CHOMS工艺,功耗很低。该设计具有实际意义,可以应用于考古、机器人、医疗器械等许多方面。尤其是在足球机器人研究方面具有很好的发展前景;在考古方面也应
3
用到了超声波传感器进行检测。所以本设计与实际相结合,现实意义很强。智能小车国内外研究现状:
世界各国在智能微型车领域进行了很多研究,己经应用于各个领域,在探测和军事领域使用特别多。近年来,我国也开展了很多研究工作,以满足不同用途的需要。 世界各国开发、研制星球探测车系统己经有了多年的历史。美国和前苏联是从20世纪60年代末期开始进行月球表面探测任务的。美国曾在1966^-1968年间,向月球成功发射了两次无人巡游探测器。1997年,由美国JPL(全称JetPropulsion
Laboratory,美国太空总署喷气推进实验室)研制的Sojourner号探测车登上了火星。它验证了小型火星车的性能,并完成了一系列技术试验。2004年1月,美国的“勇气号”和“机遇号”火星探测车再度登陆火星。前苏联在1959^-1976年间,总共成功发射了两个月球探测车。
单片机的应用领域越来越广泛,无论是在生活,生产上,单片机无处不在。ATMEL公司的AT89S51单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。AT89S51可以说是单片机领域的主流产品 ,其应用如此广泛,所以有必要去学习和应用该单片机,以满足实际产品开发的需要,也是适应社会智能化、自动化的趋势。
通过构建智能小车系统,培养设计并实现自动控制系统的能力。在实践过程中,熟悉以单片机为核心控制芯片,设计小车的检测、驱动和显示等外围电路,采用智能控制算法实现小车的智能循迹。灵活应用机电等相关学科的理论知识,联系实际电路设计的具体实现方法,达到理论与实践的统一。在此过程中,加深对控制理论的理解和认识。
1.4 论文各部分的主要内容
第一章对智能循迹小车的现状、研究意义和设计要求进行简单阐述。
第二章介绍了该智能循迹小车系设计方案比较和选择,分析了各模块的功能。 第三章阐述了智能小车系统的硬件电路的设计,其中包括单片机最小系统模块电路、电机驱动模块电路、以及附带的信号提示电路等。
第四章首先介绍了该系统程序调试过程中所用到的程序调试软件及其调试环境。 最后总结部分说明了本论的主要内容,举出了在系统测试过程中所发现的问题,并提出了可能的解决方案。
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 供电单元方案论证
方案一:采用单电源供电,通过单电源同时对单片机和直流电机进行供电,此方案的优点是,减少机身的重量,操作简单,其缺点是,这样会使单片机的波动变大,
5
影响单片机的性能,稳定性比较弱。
方案二:采用双电源供电,通过两个独立的电源分别对单片机和直流电机进行供电,此方案的优点是,减少波动,稳定性比较好,可以让小车更好的运作起来,唯一的缺点就是会增加小车的重量。
综合以上的优缺点,本设计决定采用第二种方案。 2.2.3 运动单元方案论证
方案一:采用直流电机,配合LM293驱动芯片组合。优点在于硬件电路的设计简单。当外加额定直流电压时,转速几乎相等。这类电机用于录音机、录相机、唱机或激光唱机等固定转速的机器或设备中。也用于变速范围很宽的驱动装置。容易受到外部因素干扰,影响稳定的转速和转矩输出。电路如图2-1:
图2-1 直流电机+LM293组合电路原理
方案二:采用步进电机,配合LM298驱动芯片组合。步进电机可以实现精确的转脚输出,只要施加合适的脉冲序列,电机可以按照人们的预定的速度或方向进行连续的转动,便于控速,但是软件程序的编写较直流电机稍显复杂。但是LM298芯片的硬件电路比较复杂。如图2-2:
图2-2 步进电机+LM298组合电路原理
6
方案三:采用直流电机配合由双极性管组成的H桥电路。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H桥电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术,其电路原理简图如图2-3所示。
图2-3电机驱动原理简图
综合3种方案的优缺点,鉴于本系统设计体积较小,自身重量较轻,对电机功率输出要求不高,决定选择方案3。 2.2.4 循迹单元方案论证
方案一:用光敏电阻组成光敏探测器
用光敏电阻组成光敏探测器,光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。
方案二:采用RPR220型光电对管。
RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。
综上所述,我们采用方案二。
2.3 系统总体方案
经过对方案的设计要求的分析和方案论证,采用51单片机控制平台,经过红外传感模块检测路面的信息,控制运动模块的电机运动方式,近而控制这个智能小车系
7
统的运动。系统框图如图2-4。
H桥电机驱动模块 左电机 右电机 车体
AT89S51最小系统 时钟振荡电路 路面检测电路 图2-4 系统总体框图
8
第3章 智能循迹小车硬件部分
3.1 系统硬件电路介绍
智能小车采用AT89S51单片机进行智能控制, 开始由手动启动小车, 并复位。当有红外遥控信号时,根据信号进入相应的行驶状态,在运动过程中由红外光电传感器检测,通过单片机控制小车进行循迹,系统的自动循迹功能通过红外线传感器正前方检测,由单片机控制实现 在小车行驶过程中,通过接收的信号脉冲控制直流电机,以提高系统的静动态性能。系统功能原理图如图3-1所示。
运动系统电路包括供电电路、电机驱动和控制电路两部分。
图3-1 系统功能原理图
供电电路:运动系统供电采用双电源分别对电机和控制器供电。考虑到小车是个不断运动的实验设备,采用干电池供电。总的供电系统是有9V的大功率电池储能,经过电压转换单元。由一个9V转为5V对控制单元供电;另一个9V电池直接对电机的供电端连接。供电部分的分析将在后面3.3节结合整个系统的供电电路进行详细介绍。
电机驱动和控制电路:通过51单片机,控制端口对直流电机的转速和转向来对电机进行控制。
9
3.2 单片机最小系统
单片机最小系统由复位电路、时钟振荡电路、数据采集接口和电机控制接口组成,单片机最小系统图如图3-2所示。
图
图3-2 单片机最小系统
3-2
3.2.1 单片机使用资源规划
由于51单片机具有比较强大的系统资源,本系统在设计时充分利用了它的自身特性,并进行合理规划。见表3-3。
表3-3 单片机资源分配表
系统资源类型 用途 看门狗 定时器0 P1端口 P3端口
防止系统跑飞 定时喂狗 路面检测 电机控制 备注 输入 输出 10
3.2.2 单片机功能模块介绍
单片机本电路的控制核心,它接收传感器测得的信号,并控制电机的转动与停止。传感器的输入有两根信号线,接单片机的P3.6与P3.7引脚。传入放入信号为高低电平,在小车没有走到黑线上时,输入都为低电平,此时单片机会驱动两个电机同时转动,不需要转弯,当某端输入高电平时,表明小车的相应一侧一走到黑线上,单片机便使改侧的电机停止转动,另一侧的继续转动,直到两侧都不走到黑线上,程序采用轮询的方式,可以及时的检测到是否走到黑线上。
3.3 供电单元介绍
高性能的电源管理系统对于电子系统稳定运行是至关重要的。作为智能车源,电源模块为系统的控制器,执行机构,传感器等各个模块提供可靠的工作电压。设计中,除了需要考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪声、防止干扰和电路简单等方面进行优化,电源管理模块的功能是对电池进行分配和电压调节,为其他各个模块的正常工作提供可靠的工作电压。 3.3.1系统供电单元介绍
智能车控制系统中,不同电路模块需要的工作电压和电流容量各不相同。芯片需要提供5V的工作电压,而电机所需的电压为9V,本设计中用到的是9V的电源供电,然后通过三端稳压器LM7805将电压变换为5V电压供给电路系统。电源系统的电路图如图3-4所示。
图3-4稳压电源转换电路
11
3.3.2稳压芯片简介
三端稳压集成电路lm7805 电子产品中,常见的三端稳压集成电路有正电压输出的lm78 ×× 系列和负电压输出的lm79××系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。它的样子象是普通的三极管,TO- 220 的标准封装,也有lm9013样子的TO-92封装。
图3-5 lm7805样品
用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所示。
12
图3-6 电机驱动模块硬件电路图
3.5 循迹单元介绍
3.5.1 循迹单元工作原理
循迹是指小车在白色地板上循黑线行走通常采取的方法是红外探测法,红外探测法即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射反射光被装在小车上的接收管接收,如果遇到黑线则红外光被吸收小车上的接收管接收不到红外光 ,单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线 ,从而实现小车的循迹功能。红外探测器探测距离有限一般最大不应超过3cm。循迹功能如图3-7所示
图3-7 循迹功能图
13
本设计需要检测小车的运行状态,沿着路面黑线运动。采用反射取样式,单光束红外传感器接收信号,再分别用运放LM393比较电压信号进行放大。图3-5的电路在5V电压下工作,根据该型号传感器红外发射管所需的工作压降(红外发射管的正向压降在1~1.3V)和工作电流(红外发射管的电流为2~10mA),选取负载电阻R1=2.2KΩ,红外发射管负载电阻R2=220Ω。调节电位器使检测信号能被识别。 3.5.2 LM393比较器简介
比较器是将一个模拟电压信号与一个基准电压相比较的电路。比较器的两路输入为模拟信号,输出则为二进制信号,当输入电压的差值增大或减小时,其输出保持恒定。因此,也可以将其当作一个1位模/数转换器(ADC)。对路面检测的电路设计就是通过电位器设定一个阈值,以此确定是否有光反射。并且以此阈值为标准,向单片机输入满足TTL电平的数字信号。如图3-8所示。
图3-8 LM393芯片示意图
14
第4章 智能循迹小车软件部分
4.1 软件调试平台
Keil for C51是美国Keil Software公司出品的C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil for C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil for C51开发系统各部分功能和使用。
C51开发中除必要的硬件外,同样离不开软件,我们写的源程序要变为C51可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。随着C51开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件除了致力于单片机的编程开发平台外,还针对目前最流行C51开发项目出品了Keil for 51软件平台以及支持在线调试的串口烧写。
从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision2)将这些部份组合在一起。如图4-1所示。
15
图4-1 Keil for 51 开发平台截图
KEIL for C51 编译平台对51单片机的器件选型设置。如图4-2所示。
图4-2 MCU选型设置
4.2 系统软件流程
系统软件流程图如图4-3所示。
16
图4-3 系统流程图
4.3 系统软件程序
#include //宏定义 #define uchar unsigned char //无符号八位字符型数据 #define uint unsigned int //无符号16位整形数据 #define ulong unsigned long //无符号三十二位长整型 //状态定义 uchar go=0xFA; //1111_1010 前进 uchar back=0xF5; //1111_0101 后退 uchar left=0xFE; //1111_1110 左转 uchar right=0xFB; //1111_1011 右转 //延时函数 void delay() { uint i,j; for(i=0;i<500;i++) for(j=0;j<800;j++); } 17 //启动软件看门狗WDTRST 防止程序跑飞增加系统的稳定性 sfr WDTRST=0xA6; //看门狗寄存器0xA6 //喂狗程序 void FeedDog() { WDTRST=0x1e; //给寄存器装值 WDTRST=0xe1; } //定时器初始化程序 void Initial() { TMOD=0x01; //定时器0工作在方式1 TH0=0xf0; //高八位装值1111——0000 TL0=0xf0; //第八位装值1111_0000 TR0=1; //启动定时器 ET0=1; // 定时器中断允许 EA=1 ; //开放总中断 } //主程序 //对传感器输入信号进行轮询并决定当前小车行驶方式 18 void main() { FeedDog(); //刚入主程序喂一次狗 Initial(); //定时器初始化 P1=0xFF; //端口初始化用于控制电机 P3=0xFF; //传感器状态接收 while(1) //对传感器输入信号不断地进行查询 { if(P3 == 0x7F)//0111_1111 P1=left; //执行左转指令 else if(P3 == 0xBF)//1011_1111 P1=right; //执行右转指令 else P1=go; //否则就向前行驶 } } //定时器中断函数执行喂狗定时器重装初值 void timer0() interrupt 1 //使用中断 { TH0=0xf0; TL0=0xf0; //定时器重载初值高八位第八位 19 FeedDog();//每过一定时间喂下狗,不然程序会自动复位 4.4 循迹处理软件流程 在白色背景中有一条黑色的线,小车就是要沿着这条黑线行走,通过判断反射式光电传感器所接收到的反射光来判断小车所应行走的方向。以三个反射式光电传感器为例进行说明循线的原理。光电传感器与黑线位置关系示意图如图4-4所示。 图4-4 光电传感器与黑线位置关系示意图 检测环节中一共有6个这样的传感的红外检测单元,实现组合式的控制方向的检测。6个光敏传感电路组合功能见表4-1。 表4-1 光敏传感器状态真值表 小 车 传 感 左X 器 号 右Y 2号 1 1 0 0 状 1号 1 0 1 0 态 正常行驶 右转 左转 脱离引导线 通过循环检测输入端口的检测值,判断目前巡线所处的位置,并且通过控制电机输出来实现左转、右转、直行运动。检测部分函数说明 while(1) //对传感器输入信号不断地进行查询 { if(P3 == 0x7F)//0111_1111 P1=left; //执行左转指令 20 else if(P3 == 0xBF)//1011_1111 P1=right; //执行右转指令 else P1=go; //否则就向前行驶 } 21 第5章 系统测试 为了测试智能小车系统的正常运动情况,设计场景,对智能循迹小车系统进行测试。 5.1 测试场景介绍 设计采用环形的黑色轨道,对小车进行实际测试。设计测试图如图5-1所示。 B起点 A起点 C起点 D起点 E起点 图5-1测试场景及参数 5.2 实际测试结果 系统测试过程中,采取顺时针和逆时针两个方向的测试方法,以此来检测智能小车左右转的效果。经过顺时针、逆时针各5次,每次2圈的实际测试,测试数据结果如表5-1。(其中—表示为无效数据) 表5-1智能循迹小车测试结果 测试编号 1 2 3 4 5 6 7 8 9 运动方向 顺时针 逆时针 顺时针 逆时针 顺时针 逆时针 顺时针 逆时针 顺时针 完成效果 完成2圈 完成2圈 完成2圈 完成2圈 完成2圈 完成2圈 完成2圈 完成2圈 完成2圈 执行时间 5分48秒 6分01秒 6分33秒 7分11秒 7分40秒 7分33秒 6分21秒 6分40秒 5分37秒 起点位置 直道处A 直道处A 弯道起点D 弯道起点B 弯道中段C 弯道中段C 弯道末端B 弯道末端D 直道处E 22 10 逆时针 完成2圈 5分50秒 直道处E 5.3测试结果分析 由表5-1可以发现,系统在顺时针运动时,主要执行右转和直行这两种运动控制;在逆时针运动时,主要执行左转和直行这两种运动控制。在每组测试过程中,逆时针的运动时间相对顺时针的运动时间较长,则可大致得出结论:左转控制的响应时间慢于右转控制。 另外,起点位于弯道的运行时间要长于起点位于直道的运行时间。导致这个现象出现的原因是由于弯道的曲率变化给小车的循迹调整带来了比较大的影响,对应消耗的调整时间也比起于直道的测试过程要长些。 23 结 论 加入了高新技术的智能循迹小车产品越来越多,使得智能循迹小车的发展呈现多循迹小车作为现代玩具产业的核心的一部分,更需要不断应用现代先进的技术开发出更新颖的产品。 本设计主要是把传统智能循迹小车系统和可编程电子器件结合起来设计智能循迹小车系统,并通过人工智能算法实现一定的智能化的方法。论文介绍了该设计的总体思想和一些用到的基本的原理及系统的硬件、软件设计。现将本文主要工作总结如下: (1)本设计使用模块化的设计方法。各个功能在硬件和软件的设计上都实现了模块化。各个功能部件同时存在,小车在运行的过程中只有一个功能模块发挥作用,其余功能处屏敝状态;在各个功能之间可通过人工切换。 (2)本设计的创新之处在于把一个人工智能算法(A*算法)引入小车的设计中,实现控制小车的作用。这只是一个简单的智能算法,但有这样的基础之后,就可以把更多的智能算法用于玩具的开发,这也是小车智能化的一个重要方法。 (3)系统经过测试,虽然存在着一定的问题,但能够实现小车的循迹功能、寻光功能,基本上能实现小车的路径规划功能。 该智能玩具小车系统还存在一些不完善和需要改进的地方,可以有以下几处需要改进和完善: (1)在小车寻找最短路径的功能中,虽然通过A星算法能够找到并标示出最短路径中的一条,但小车在根据这条路径从起点到终点的过程中,由于路面磨擦不同等因素的影响,小车不能按预定的角度旋转。在这种情况下可以增加舵机,控制舵机来达到智能玩具车按照预定角度转向的功能。 (2)小车所行走的区域有可能并不是一个表格,但在程序中已经将该区域简为了一张表格并固定地存放在了程序中,这样如果想改变区域中障碍物的位置必须改在程序中改变存放的表格,即一个二维数组。可以改进为:用一个摄象头把小车所要行走的区域拍摄下来然后经过图像的处理,把区域变成一张表格,再用一个二维数组来表示这张表格,这就可以使小车在行走之前自动改变程序中的“地图”,而不需要每一次都人为改变。用这种方法改进,也使A星算法的应用范围变广了。 24 (3)可以在该智能循迹小车中添加更多的有趣的功能。在小车系统中加上光电传感器让小车可以实现避障功能,还可以在玩具小车上安装喇叭让小车播放音乐等,这样小车更具有智能的特点,而且有更多的娱乐和学习的特性。 (4)该智能循迹小车系统具有循线、追光和路径判断的功能。但这些功能都是用单独的程序实现的,每运行一个功能就需要重新下载程序。对于这个问题,可以用多路开关与单片机的I/O口相连,通过检测开关信号进行智能循迹小车功能的选择。 微控制器(如本设计中用到的51单片机)运于智能循的开发中,通过各种传感器的应用和程序的设计将有许多更具智能化、更加多样的玩具面世。 25 致 谢 本论文是在张华老师的指导下完成的。在智能小车系统的设计、调试及论文的写作过程中,他给予了无数的指导和大力的支持。他不仅教了我知识还教了我治学的态度,那就是严谨,把知识变为己有,弃其糟粕留其精华,用自己的方式去解决问题,而不是人云亦云。由于对硬件这方面比较感兴趣,尤其对单片机这块。张老师可谓我的启蒙老师,他那套独特的编程分析理念对我的影响颇为深刻,那就是软件与硬件分离、功能独立、功能分层、分时处理与实时处理、充分利用C语言的宏定义。这改变了我以前编程时想到哪编到哪没有一点思绪的编程方式,编程前理出框架这一理念对我经后的学习必有很大帮助。由于刚接触单片机,问题特别多,从硬件的认识到软件的理解,都碰到了不少的问题。每次张老师和院凯学长总是悉心的指导并提出了很多宝贵的意见和建议,张老师还通过授课的方式教会了我们很多知识,在他循循善诱的悉心教诲、无微不至的关怀和指导下,我对基于单片机智能循迹小车的设置理念和运作过程都了解得非常清楚。对我论文的完成也提供了不小的帮助。在此再次向张老师和院凯学长表示忠心的感谢。 在毕业设计中,我学会了对本专业所学的一些理论知识的应用,学会了在应用中发现问题和解决问题的方法,加深了对专业知识的撑握和理解,所取得的这些进步都与老师们的仔细、耐心指导分不开。他们的严谨、细心、勤奋的工作态度也给我留下了深刻印象,对我以后的学习工作有很好的指导作用。在此,对老师表示衷心的感谢。 在系统设计、调试阶段,得到了陈文湘同学、蔡汝斌同学等一些同学的帮助,在这里也表示感谢。在毕业设计的过程中和同学们的讨论也使我受益匪浅。 也感谢学院及工程技术中心的老师和领导为我提供的良好的毕业设计环境使我完成毕业设计。在毕业之际也感谢辅导员朱爱荣老师四年来在生活中给予的关心和帮助。 最后,感谢所有帮助过我的老师和同学们,感谢给我论文进行评阅和指导老师们。 26 参考文献 [1] 段颖康,基于光电传感器自动寻迹智能小车位置信息采集模块设计论文. 新特器件应用,2004.12. [2] Richard Barnett(著)、周俊杰(译).嵌入式C编程与ATMEL AVR[M].北京: 清华大学出版社,2003.9. [3]黄迪明.软件技术基础[M].成都:高等教育出版社,电子科技大学出版社,2006.12. [4] 孔令淑,刘涛,基于MC9S12XS128单片机的智能循迹小车的硬件设计论文.技术研发,2005.7. [5] 安岩,自动循迹智能小车的设计论文. 苏州科技学院学报,2004.1. [6]马忠梅,李月香.单片机内部资源的C语言编程[J].微计算应用,1997,(03). [7] 郭亮,谭立伟,基于单片机的新型智能小车研制设计论文.西南交通大学,2003.9. [8]谭浩强.C程序设计(第三版)[M].北京:清华大学出版社,2005,7. [9] 董 涛 , 刘进英 , 蒋 苏基于单片机的智能小车的设计与制作论文. 计算机测量与控制. 2009. 2. 2. [10]董涛, 刘进英, 蒋苏.基于单片机的智能小车的设计与制作[J].计算机测量与控制,2009,(2)380页—382页. [11]王娟娟,曹凯.基于栅格法的机器人路径规划[J].农业装备与车辆工程,2009,(4),14—17页. [12]杨兵,刘伟杰.一种基于可视图的机器人避障路径规划[J].电脑知识与技术,2009,(2)434页—435页. [13]张兆惠.基于微控制器的智能车系统的开发研[DB/OL]. 计算机测量与控制. 2006.3. http://dlib.edu.cnki.net/kns50/Navigator.aspx?ID=245,2008-12. [14]Pnic.A*路径规划初探[J].农业装备与车辆工程,2008,(4),39页-43页. [15] 游雨云,丁志勇,智能小车单片机控制直流电机方案与设计论文.技术研发,2006.3. [16] 王应军,赵晨萍,刘文闯,基于AT80C51单片机的智能小车设计论文. 福建电脑,2009.12. [17] Věnceslav F.Direct digital frequency synthesizers[M].USA:Wiley,1999. [18] Dmitri Dolgov.AI for Automonos Robotic Cars[J].2008,(3). [19] E.Horowitz,Pitman.Fundamentals of Data structures[M].1997. 27 附录1 该最小系统的电路原理图板图以及其他的外部扩展电路原理图。如附图1。 附图1 系统电路原理图 28 附录2 最终PCB板图: 该最小系统的最终PCB板图以及其他的外部扩展电路部分,考虑到最小系统的简洁以及容易看懂,外部扩展电路不在最小系统图上显示。如附图2。 附图2 附图2 PCB板图 29 因篇幅问题不能全部显示,请点此查看更多更全内容