资源描述
基于51单片机的循迹小车系统设计摘 要80C51单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。在生活中但凡涉及到自动控制的地方都会出现单片机的身影,单片机的应用有利于产品的小型化、智能化,并且能够提高生产效率。这里介绍的是如何用AT89C52单片机来实现小车的循迹功能,该设计是结合科研项目而确定的设计类课题。本系统以设计题目的要求为目的,采用AT89C52单片机为控制核心,利用红外传感器检测道路上的黑线,控制电动小汽车的自动循迹,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,和寻光功能。整个系统的电路结构非常简单,可靠性能很高。实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。关键词:80C51单片机;电动小车;pwm调速;光电检测;自动调速系统Car tracking system based on microcontrollerAbstract80C51 is a 8 bit single chip computer. Its easily using and multi-function suffer large users. In life, whenever it comes to automatic control of the local microcontroller will appear figure, microcontroller applications in favor of product miniaturization, intelligent, and can improve productivity. Here is how to use AT89C52 microcontroller to achieve the car tracking feature, which is designed to determine the combination of scientific research and design class topic. This system design requirements of the subject for the purpose of using AT89C52 microcontroller core, the use of infrared sensors to detect the black line on the road, the automatic tracking control of electric cars, fast low traffic speeds, as well as automatic parking, and can automatically record time , mileage and speed, and look for the light function. The circuit structure of the entire system is very simple, very high reliability. The test results meet the requirements, the paper focuses on the hardware design and test results of the system analysis.Keywords: 80C51 microcontroller; Electric car Pwm speed; A photodetector; Automatic Speed Control System.III目 录中文摘要I外文摘要1 绪论11.1 课题背景及意义11.2 智能小车研究前景及功能31.3 国内外的研究情况6 1.3.1 智能小车国外研究现状. 1.3.2 智能小车国内研究现状.1.4 本课题具体应用方面及场合2 智能循迹小车的方案设计2.1 智能小车的运行环境及行走路线7 2.1.1 智能小车的运行环境2.1.2 智能小车的运行路线 2.2 主控芯片的选择与原理8 2.2.1 51单片机引脚与功能说明2.3 调速系统的设计8 2.3.1 PWM逆变电路及其控制方法 2.3.1.1 计算法 2.3.1.2 调制法 2.3.2 PWM调速的优点3 硬件电路的选择与搭建 3.1 单片机的辅助电路 3.1.1 时钟电路 3.1.2 复位电路 3.2 单片机控制模块的设计 3.3 驱动模块的设计 3.3.1 电机驱动芯片 3.3.2 电机驱动模块 3.4 循迹模块的制作与设计 3.4.1 循迹传感器工作原理 3.4.2 寻光电路分析 3.4.3 循迹电路分析 3.4.3.1 红外对管TCRT500 3.4.3.2 电压比较器 LM324 3.5 各模块的组装与连接4 循迹小车的软件设计4.1 软件设计开发平台154.2 小车运动状态分析及三路算法的设计164.2.1 小车运动状态分析164.2.2 三路循迹算法设计174.3 软件设计流程图204.4 软件的调试244.4.1 设置和删除断点244.4.2 查看和修改寄存器的内容264.4.3 观察和修改变量284.4.4 查看存储器区域结 论44参考文献45致 谢46附录1 智能循迹小车原理图50附录2 循迹程序附录3 外文参考文献(译文)50附录4 外文参考文献(原文)51 绪论1.1 课题背景及意义随着汽车工业的发展,关于汽车的研究也就越来越受到人们的关注。在全国电子大赛以及省内的电子大赛上,我们几乎每次都能看到智能小车这方面的题目,在全国各的高校中也都很重视该类型题目的研究。由此可见其研究意义很大,故本设计中就是在这样的背景下提出来的。本题目是结合科研类项目而确定的设计类课题。本设计的智能电动小车应该具有自动循迹的功能,并且可以扩展实时显示时间、速度、里程、寻光、避障功能,可程控行驶速度、准确定位停车等功能。近几十年来,移动机器人从无到有,数量不断增多,智能车辆作为移动机器人的一个重要分支也得到越来越多的关注。1.2 智能小车研究前景及功能智能车辆也叫做无人车辆,是一个集环境感知、规划决策和多等级辅助驾驶等功能于一体的综合系统。它具有道路障碍自动识别、自动的报警、自动制动、自动保持安全距离、车速和巡航控制等功能。智能车辆的主要特点是在复杂的道路情况下,能够自动地操纵和驾驶车辆绕开障碍物并沿着预定的道路(轨迹)前进。智能车辆在原有的车辆系统中,增加了一些智能化的技术设备: (1)在计算机处理系统,智能车主要来获取图像,并预处理、增强、分析、识别等工作; (2)摄像机,用来获得道路图像信息; (3)传感器设备,车速传感器可以用来获得当前车速,障碍物传感器可以用来获得前方、侧方、后方障碍物等信息。 智能车辆技术按照其功能可划分为三层,即智能感知/预警系统、车辆驾驶系统和全自动操作系统团。且上一层技术是下一层技术的基础。可以利用各种传感器来获得车辆自身、车辆行驶的周围环境及驾驶员自身的状态信息,必要时发出预警信息。主要包括碰撞预警系统和驾驶员状态监控系统。碰撞预警系统可以给出前方碰撞警告、十字路口警告、车道偏离警告、盲点警告、换道/并道警告、后方碰撞警告、行人检测与警告等.驾驶员状态监控系统。1.3 国内外的研究情况智能小车技术在国内外的研究现状 。智能小车技术是一个体现国家高技术实力的一个重要标准,它涉及到多个学科,机械、电工、数学、自动控制、计算机测量、人工智能、传感技术等等,是众多领域的高科技。而智能小车比赛就是机器人技术的一个重要研究方向,目前许多国家己经开始把移动机器人比赛作为创新教育的一个战略性手段。 移动机器人比赛是一种高科技的对抗性的活动,各国的专家和学者来通过移动机器人竞赛,推进了在竞赛型移动机器人方面的研究,不改进机器人寻址速度和算法研究,并试图让机器人更加的接近智能化,它集高科技、娱乐和比赛于一体,引起了各国的广泛关注和极大兴趣,从而推动了移动机器人研究热潮. 据统计部门的数据,至2006年中国汽车保有量已达3500万辆(其中轿车占80%,约2500万辆),每年仍以30%的速度递增。我国成为了继美国之后的第二大汽车生产和消费国。汽车行业的发展也带动了相关服务业的发展。而将功能强大的智能车载信息系统车载电脑加载到汽车上已经成为欧美、日本等国汽车市场的首选新装备。车载电脑给汽车带来了一场信息化的革命,让每辆汽车构都建成一个完美的车载信息与娱乐系统终端,我们坐在汽车里面听广播或者音乐已经习以为常。让你在开车的时候听音乐,在休息的时候欣赏好莱坞大片或是收看电视,甚至玩各种游戏。车载通讯与导航系统主要指 GPRS和GPS,可以让你“轻车熟路”,而且可以轻松的打电话。智能小车,就是在关键得基础理论模型研究的前提下,把先进的信息技术、数据通信技术及计算机处理技术等技术有效地综合运用于汽车交通体系,从而可以大范围、全方位的发挥准确、实时、高效的功能,是很好的交通工具。它可以利用无线通讯的专网低频段并以其低成本实现了智能小车的实时控制、快速传输,并自行开发研制出了无线通讯系统的车载智能终端设备及控制系统,使智能小车能够完全利用无线通讯系统来采集和传输路面状况数据,并进行小车速度和方向的控制,具有载人和自动控制的双重功能。小车信息响应速度快、全自动方向控制自动化、信息发布智能化、设备自维护智能化的特点。1.3.1 智能小车国外研究现状国外的智能车辆研究历史比较长,开始于上个世纪的50年代,其发展历程大致可以分为三个阶段 。第一阶段:20世纪50年代是智能车辆研究的初始阶段。1954年美国的Barrett Electronic公司研究出了世界上的第一台自主引导车系统,该系统是一个可以运行在固定路线上的拖车式的运货平台,但是它却具有了智能车辆所具有的最基本的的特征。第二阶段:开始于80年代中后期,西方发达国家对智能车辆的开展具有卓有成效的研究,在欧洲,普罗米修斯项目于1986年开始在这个领域内探索,在北美,美国于1995年成立了国家自动高速公路系统联盟,他的目标之一就是来研究发展智能车辆的可行性,并促进智能车辆技术进入实用化,来为人类谋福利。 第三个阶段:从90年代开始,智能车辆进入了更加深入、系统、大规模的研究阶段。其中最为突出的是,美国卡内基-梅陇大学的机器人研究所完成的Navlab系列的自主车的研究,取得了非常显著的成就。目前无人驾驶技术越来越成熟,谷歌的无人驾驶汽车内置的计算机系统可以被认定为合法的“驾驶员”,而这一政策在未来将会对无人驾驶的汽车在美国公路上能够顺畅行驶起到积极的促进作用。目前,像谷歌和福特等都正在积极的进行无人驾驶汽车的测试,而特斯拉甚至已经开始为旗下车型升级了一些辅助驾驶功能1.3.2 智能小车国内研究现状我国的智能车辆研究开始于上世纪80年代末。当时国家的863计划自动化领域智能机器人主题确定立项进行遥控驾驶的智能移动平台的研制;几乎同时国家部委也开始在规划“八五”预研项目中的地面智能机器人技术进行研究,并确定研制成功了我国第一辆样车ATB-1(AutonmousTestBed-1)。该车是由国内的多所重点大学联合研制,在1996年的演示中,该车自主行驶的最高速度可达74.5km/h,正常行驶速度为30.6km/h,在越野环境下,白天行驶的最高速度为24km/h,夜间行驶最高速度为15km/h。目前,开展这方面研究工作的单位主要包括一些大学和科研院所,比如国防科技大学、清华大学、吉林大学、西安交通大学、重庆大学等。近几年来,具有代表性的典型系统包括:由国内多家大学参与的“十五”期间的第三代自主地面车辆ATB-3;国防科技大学研制的新一代地面无人驾驶车辆CITAVT-IV及其与中国一汽合作研制的“红旗”自主轿车;清华大学研制的THMR-V型智能车辆;吉林大学的Cybercar智能车辆;重庆大学的CQAC-I型智能车辆等。这一时期国内研究工作的主要方向是智能车辆的应用环境由简单场景向非结构化、复杂场景的转变,以及全天候条件下的实用化技术,基于多源信息融合的系统鲁棒性研究等。1.4 本课题具体应用方面及场合目前,人工智能技术取得了诸多的突破。一方面,计算机在数据搜集、存储和管理等能力上有了很大的进步;另一方面,云技术的迅猛发展也使得云计算基础能力也有所提升。人工智能的发展势必会对智能小车产生至关重要的影响。从2014年的车联网,到2015年自动驾驶的初露端倪,智能汽车已经连续两届成为CES的主题,2016年CES无人驾驶与智能汽车吸引了全球的瞩目。如今,汽车智能化、共享化趋势愈加明显。随着汽车电子技术的发展,汽车智能化技术正在逐步得到应用,这种技术使汽车的操纵越来越简单,动力性和经济性也会越来越高,行驶安全性越来越好。目前,汽车已进入“智能机”时代,将催生智能汽车投资机会。汽车共享化,即车联网、无人驾驶,将依托于汽车制造商、经销商与运营商,汽车电子化与智能化实现“人-车”互动,车联网实现“人-车-网络”的互动,而智能交通将实现“人-车-网络-路”的互动,共享化亦是未来汽车发展的趋势。在智能汽车主战场,汽车智能化步伐加速。从谷歌低成本的LIDAR感官系统和英伟达的DrivePX无人驾驶处理平台,到丰田的低成本高精地图绘制,再到宝马i8Spyder、微软、谷歌等企业的人机交互,无论是互联网巨头、汽车零部件供应商,还是传统车企,都把智能化摆在了极为重要的战略位置。我们认为感官系统和处理判断系统技术是未来决战汽车智能化的关键所在,而低成本可靠的智能技术将加快汽车智能化步伐。互联网巨头自身的无人驾驶技术与传统车企的汽车制造经验结合碰撞会加快无人驾驶汽车的商业化。与此同时,德尔福、大陆与博世三大零部件供应商将纷纷推出全新的汽车共享解决方案。智能化、共享化,智能网联汽车,汽车智能革命到来。智能化就是智能汽车,共享化就是无人驾驶、车联网,智能网联汽车将是未来发展方向。2 智能循迹小车的方案设计2.1 智能小车的运行环境及行走路线根据题目的要求,可以确定如下方案:在玩具电动车的基础上,加装光电、红外线、超声波传感器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。2.1.1 智能小车的运行环境循迹是指小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时就会发生漫反射,反射光可以被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接就收不到红外光。单片机就是否收到反射回来的红外光为依据,来确定黑线的位置和小车的行走路线。但是,红外探测器探测距离有限。小车在进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信号,便进入判断处理程序(switch),可以先确定4个探测器中的哪一个探测到了黑线,如果左面第一级传感器或者左面第二级传感器探测到黑线,即小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;如果是右面第一级传感器或是右面第二级传感器探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。 利用LED来显示小车运行的状态,并且利用倒计时模块来启动小车。2.1.2 智能小车的运行路线本设计中小车的循迹路线大致可分三种:“7”字型路线、“T”字型路线、“十”字型路线。具体路线如下图所示。2.2 主控芯片的选择与原理51系列单片机除了Intel公司的MCS-51系列外,还有美国Atmel公司生产的AT系列、硅存储技术公司的SST系列、深圳宏晶公司生产的STC系列等公司的兼容产品,这些公司的51单片机封装、引脚与Intel公司的MCS-51系列单片机完全兼容。51系列单片机有不同封装形式,外观各不相同。本设计选用宏晶公司生产的STC89C52型号的单片机。2.2.1 51单片机引脚与功能说明如左图2-2所示为40脚双列直插式封装8051单片机引脚图。按照其引脚功能来分,可以分为四组。下面分别说明这些引脚的名称和功能。1. 电源与地引脚Vcc:电源引脚,用于接+5V电源。Vss:接地引脚,连接时接公共地端2. 时钟电路引脚X1:接外部石英晶体和补偿电容一端;如果使用外部时钟源,则该引脚应该接地。实际上该引脚为片内振荡电路放大器部分的输入端。X2:接外部石英晶体和补偿电容的图2-2 18051的引脚排列 另一端;在使用外部时钟源时,该引脚作为外部时钟源的输入端。在片内该引脚为振荡电路放大器的输出端。3. I/O端口引脚51系列单片机I/O端口的个数依据封装、引脚不同也不相同,40脚封装的芯片共有4个8位端口,分别是P0、P1、P2、P3,这些端口大都为复用功能,分别说明如下。P0口:端口P0共有8根引脚,分别表示为P0.0,P0.1,P0.7。P0口是一个漏极开路的8位准双向I/O端口,作为漏极开路的输出端口,每位可以驱动8个LS型TTL负载。P0口有两种使用方式:一种是作为普通并口使用,可以直接连外部设备或外设接口,如连接LED驱动电路,作为普通并口时的端口地址为80H;第二种使用方式是单片机需要外部片外存储器时,P0口作为总线使用。作总线使用时,P0口采用分时工作,用于低8位地址或8位数据复用总线。P1口:P1口也有8根引脚,记为P1.0,P1.1,P1.7.P1口是一个带内部上拉电阻的8位准双向I/O端口,P1口的每味能驱动4个LS型TTL负载。在P1口用作输入口时,应先向口锁存器(地址90H写入全1),此时,端口引脚由内部上拉电阻上拉成高电平。P2口:P2口的8根引脚记为P2.0,P2.1,P2.7。P2口也是一个带内部上拉电阻的8位准双向I/O端口。P2口的每位也可以驱动4个LS型TTL负载。P2口也有两种使用方式:一种是作为普通并口使用,作为普通并口时的端口地址为A0H;二是单片机需要外接片外存储器时,P2口要作为地址总线使用,做地址总线使用时,P2口用于高8位地址总线。P3口:P3口也是8根引脚,记为P3.0,P3.1,P3.7。P3口也是一个带内部上拉电阻的8位准双向I/O端口,P3口的每位能驱动4个LS型TTL负载,端口地址为B0H。P3口与其他I/O端口最大的区别在于它除作为一般准双向I/O端口外,P3口的每个引脚还具有专门的第二功能,也就是说,P3口也有两种应用方式。其一是作为普通并口使用,其二适用于特殊功能引脚(也称为第二功能),其特殊功能规定与说明如表2-1所示。表2-1 P3口的特殊功能规定P3口引脚P3口引脚特殊功能说明P3.0RXD(串行口输入)P3.1TXD(串行口输出)P3.2INT0(外部中断0输入)P3.3INT1(外部中断1输入)P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6WR(片外数据存储器写选通控制输出)P3.7RD(片外数据存储器读选通控制输出)4. 控制信号引脚PSEN:程序存储器选通信号引脚。CPU在访问片外程序存储器时,该引脚输出负脉冲作为存储器读选通信号。8051的PSEN引脚可以直接驱动8个LS型TTL负载。当负载过大而超过该引脚驱动能力时,可以在引脚后面先加上驱动芯片,经驱动芯片再对负载实现驱动。ALE/PROG:该引脚有两个功能,其一是地址锁存允许(ALE)信号引脚。当CPU访问外部数据存储器RAM或程序存储器ROM,由于地址信号低8位与数据总线都是P0提供,为分时复用总线,所以当单片机先给出地址信号后,由于地址信号低8位与数据总线都是P0提供,为分时复用总线,所以当单片机先给出地址信号后,由ALE信号作为输出地址低8位的地址锁存使能信号,把地址低8位锁存到锁存器中。该引脚的第个功能就是片内存储器编程脉冲输入引脚。EA/Vpp :EA是访问外部存储器的控制信号。如果EA端接高电平,程序存储器地址值小于0FFFFH(4KB程序地址)时,8051CPU会到片内程序存储器中取指令。当地址值超出0FFFFH时,单片机将自动寻址片外程序存储器的程序。如果EA为低电平,CPU仅访问片外程序存储器,不会访问片内存储器。另外Vpp为编程电源功能,当对51单片机内部EPROM编程时,Vpp引脚接编程电源(12.5V)。RST/VPD:RST引脚是复位信号输入端,高电平有效。当此输入端保持2个机器周期(24个时钟振荡周期的高电平)时就可以完成对单片机的复位操作。该引脚的第二功能VPD即备用电源的输入端,当主电源Vcc发生故障或降低到低电平规定值时,将+5V电源自动接入VPD端,为片内数据存储器RAM提供备用电源,以保证存储在RAM中的信息不丢失,以使复电后能继续正常工作。控制线除以上4根线以外,还有P3口的P3.6和P3.7第二功能也可以作为控制线,主要用作对片外存储器读写控制。WR(P3.6):用于片外存储器写控制,低电平有效。该信号接在片外存储器的写信号端上,当WR信号到来时,完成对外部存储器写入操作。RD(P3.7):用于片外存储器读控制,低电平有效。该信号接在片外存储器的读信号端上,当RD信号到来时,完成对外部存储器读取操作。2.3 调速系统的设计本设计采用PWM调速系统。PWM控制就是对脉冲的宽度进行调制的技术。即通过对一系列脉冲的宽度进行调制,来等效地获得所需要的波形(含形状和幅值)。PWM控制技术在逆变电路中的应用最为广泛,对逆变电路的影响也最为深刻,现在大量应用的逆变电路中,绝大部分都是PWM型逆变电路。2.3.1 PWM逆变电路及其控制方法2.3.1.1 计算法 根据逆变电路的正弦波输出频率、幅值和半个周期内的脉冲数,将PWM波形中各脉冲的宽度和间隔准确计算出来,按照计算结果控制逆变电路中各开关器件的通断,就可以得到所需要的PWM波形,这种方法称之为计算法。 2.3.1.2 调制法 把希望输出的波形作为调制信号,把接受调制的信号作为载波,通过信号波的调制得到所期望的PWM波形。 2.3.2 PWM调速的优点由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可以获得脉动很小的直流电流,电枢电流容易连续,系统的低速运行平稳,调速范围较宽,可达1:10000左右。由于电流波形比V-M系统好,在相同的平均电流下,电动机的损耗和发热都比较小。由于电力电子器件只工作在开关状态,主电路损耗较小,装置效率较高。3 硬件电路的选择与搭建本设计中的硬件部分包括传感器的选择、单片机控制电路的设计、驱动电路的设计、循迹模块的设计以及小车的运动状态分析等。小车的核心控制部件采用宏晶公司生产的8位单片机STC89C52,小车可通过识别黑色线条来控制方向和转速。3.1 单片机的辅助电路单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路.如下图3-1所示为51单片机的最小系统电路图.3.1.1 时钟电路单片机芯片内部有一个放大倍数很高的反向放大器,其输入端为引脚XTAL1,输出端为引脚XTAL2,单片机的时钟电路有两种构成方式。本设计采用内部时钟方式,这种方式采用在XTAL1与XTAL2间外接石英晶体振荡器和补偿电容。晶振和补偿电容均外接电路,反向放大器电路在单片机内部,由外部晶振与内部反向放大器共同构成振荡电路。在内部时钟源方式下,时钟信号的频率主要由晶振的固有谐振频率决定电 3-1 51单片机最小系统 容主要起信号补偿作用。3.1.2 复位电路所谓的系统复位,就是使CPU和单片机系统中各相关部件都处于一个确定初始状态的过程。单片机系统的运行是从一个确定的初始状态开始的,这个初始状态只有通过对单片机系统复位才能达到。3.2 单片机控制模块的设计智能循迹小车主要由STC89C52单片机电路、TCRT5000循迹模块、L298N驱动模块、直流电机、小车底板、电源模块等组成。电动机调速控制方式有4种:开环调速、单闭环调速、双闭环调速和三闭环调速。在本设计中采用单闭环调速系统。下图3-2为循迹小车的系统控制框图。图3-2 循迹小车控制框图引导线是小车跟踪的目标,检测系统检测车的相对路径,然后将此信息输入到单片机,单片机处理此信息后,将控制命令输出到驱动模块,以控制小车的直流电机,保证小车快速平稳地沿预先设定好的路线行驶。采用4个1.5V的可充电池组作为主电源。STC89C52单片机作为主控制器。采用电机驱动芯片L293D控制直流电机,而不使用步进电机。L293D是利用TTL电平进行控制,通过改变芯片控制端的输入电平,即可以对电机进行正转、反转和停止操作,亦能满足直流减速电机的要求,用该芯片作为电机驱动具有的操作方便、稳定性好等优点。用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。这样单片机和循迹传感器组成了一个带有反馈信号的系统。单片机控制模块实物图如下图3-3所示。图3-3循迹小车控电路主板3.3 驱动模块的设计对于驱动力不足和转向问题,设计一般会采用两种方法,一是设计由分离原件组成的驱动电路实现,另一种方法则是采用专用的驱动芯片来实现。由于专用的驱动芯片结构简单、价格便宜、可靠性高等特点,因而被广泛的应用实现电机的驱动。L298N 驱动模块,采用 ST 公司原装全新的 L298N 芯片, SMT 工艺稳定性高,采用高质量铝电解电容,使电路稳定工作。可以直接驱动两路 3-35V 直流电机,并提供了 5V 输出接口(输入最低只要6V),可以给 5V 单片机电路系统供电(低纹波系数),支持 3.3V MCU和ARM 控制,可以方便的控制直流电机速度和方向,也可以控制 2相步进电机,5 线 4 相步进电机,是智能小车必备利器。驱动电路板如下图3-4所示。图3-4 驱动电路板3.3.1 电机驱动芯片L298N 为双 H 桥直流电机驱动芯片,其驱动部分端子供电范围 Vs:5V16V ;如果需要在板内取电,则供电范围为Vs:+6V+16V。驱动部分峰值电流 Io为2A。逻辑部分端子供电范围 Vss:5V7V(可板内取电5V);逻辑部分工作电流范围为036mA;控制信号输入电压范围(IN1 IN2 IN3 IN4)为低电平时是0.3VVin1.5V,若为高电平则为2.3VVinVss。对于使能信号输入电压范围(ENA ENB),低电平时为0.3Vin1.5V(控制信号无效);高电平时为2.3VVinVss(控制信号有效)。最大功耗为20W(温度 T75时),存储温度为25130。H桥电路可以用下图3-5表示其原理。从图中可以看出,假设开关A、D接通,电机正向转动,而开关B、C接通时,直流电机将反向转动,从而实现了电机的正向控制。当然实际应用中我们还可以得到其他两种状态。当刹车时,将A、C或B、D接通,则电机惯性转动产生的电动势将被短路,形成阻碍运动的感应电流,开成“刹车”作用。当惰行时,4个开关全部断开,则电机惯性所产生的电动势将无法开成电路,从而也就不会产生阻碍运动的感应 电流,电机将惯性转动较长时间。图3-5 H桥电路3.3.2 电机驱动模块本设计中电机驱动采用L298N为电机驱动芯片,该芯片驱动方式比较简单,直接驱动两个直流电机。具体电路图如下图3-5所示。图3-6 电机驱动模块电路图3.4 循迹模块的制作与设计循迹光电传感器的原理,就是利用黑线对红外线不同的反射能力通过光敏二极管或光敏三极管,接收反射回的不同光强信号,把不同光强转换为电流信号,最后通过电阻,转换为单片机可识别的高低电平。光电传感器的循迹模块如下图中3-7所示。图3-7 智能小车循迹模块在装配循迹传感器时需注意:循迹传感器上面的电位器默认位置是“103”字样的位置和板子是垂直的,此时的循迹灵敏度比较高,对黑色线的识别灵敏度不高,会误认为是白色的,会导致循迹效果不好,所以做循迹使用的时候务必将电位器位置调节到如上图所示的地方。其原理是降低循迹传感器的灵敏度,注意:电位器顺时针转动时降低传感器的灵敏度,逆时针转动时增加传感器的灵敏度,如果作为避障传感器使用时可以适当加大传感器的灵敏度,则可以往逆时针转一定的角度。切记一点,不管是逆时针转还是顺时针转都不能转到底,要留出一点空间。3.4.1 循迹传感器工作原理循迹传感器工作原理:TC端是传感器工作控制端,为高电平时,发光二极管不工作,传感器休眠,为低电平时,传感器启动。Signal端为检测信号输出,当遇到黑线,黑线吸收大量的红外线,反射的红外线很弱,光敏三极管不导通,Signal输出高电平;当遇到白线,与黑线相反,反射的红外线很强,使光敏三极管导通,Signal输出低电平。下图3-8为循迹传感器的电路图。图3-8 循迹传感器原理图这种探测方法,即利用红外线在不同颜色的表面特征,具有不同的反射性能,汽车行驶过程中接收地面的红外光。当红外光遇到白色路线,地板发生漫反射,安装在小型车的反射光接收器接收;如果是遇到黑色路线,红外光将被黑线吸收,安装在小车上的接收管没有收到红外光。控制器会根据是否收到反射的红外光为判断依据来确定的黑线的位置和小车的路线。红外探测器距离通常是不应超过15厘米的。红外发射和接收红外线感应器,可以使自己或直接使用集成红外探头。调整左右传感器之间的距离,两探头距离约等于黑线宽度最合适,选择宽度为3 5厘米的黑线。该传感器的灵敏度是可调的,传感器有时遇到黑线却不能送出相应的信号,通过调节传感器上的可调电阻,适当的增大或减小可改变灵敏度。另外,循迹传感器的放置也是有讲究的,有两种方法,一种是两个都是放置在黑线内侧紧贴黑线边缘,第二种是都放置在黑线的外侧,同样紧贴黑线边缘。本设计采用第二种方法。单片机烧录程序后,就可以执行循迹指令了。如果小车向前行驶时向左偏离了黑线,那么右边传感器会产生一个高电平,单片机判断这个信号,然后向右拐回到黑线。两传感器输出信号为低电平时,小车前进。如果小车向右偏离黑线,左边传感器产生一个高电平,单片机判断这个信号,然后向左拐。这样,小车一定不会偏离黑线。若两个光电传感器同时输出的信号为高电平,即单片机判断的都为高电平时,小车向前直走。3.4.2 寻光电路分析如下图3-9所示为寻光电路图3-9 寻光电路原理图V2的电压计算公式为:电阻R6为固定值不变有光照时R1变小,此时V2变大。当无光照时R1变大,则V2变小。有光照情况时光敏电阻R1变小,V2变大。 假设V2=4.6VT,V3电压为 4V,则V2V3 反向端大于同向端,运放作为比较器部分 ,则OUT5输出低电平为低0给单片机识别,单片机通过if来扫描out5给的引脚。3.4.3 循迹电路分析该智能小车在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射系数不 同,可根据接收到的反射光的强弱来判断“道路”黑线。笔者在该模块中利用了简单、 应用也比较普遍的检测方法红外探测法。 红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在 小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射 光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。3.4.3.1 红外对管TCRT500TCRT5000红外对管工作原理:工作时由蓝色发射管发射红外线,红外线由遮挡物反射回来被接收管接收。接收反射光线后的接收管呈导通状态,与一电阻串联即可构成一个由发射管控制的分压电路,由此可实现对遮挡物反射光线强度的检测。我们经常利用这一特性去实现颜色识别。其原理图如下图3-10所示。图3-10 TCRT5000原理图在小车行驶过程中发射管不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。如图 3-10 轨迹识别电路所示,发射管(1、2 端)与阻值为 330 欧姆的电阻串联发射红外线。接收管(3、4)与阻值为 47K 欧姆的电阻串联。在没有接收到反射光线时接收管截止呈高阻态,TX 输出高电平。当接收管接收到反射光线时,接收管被导通,并且电阻远小于47K,TX 输出低电平。对于光电传感器没有检测到黑线时,则H4发光到白纸光反射到H4接收端,H4接收端导通,导通则T1接地=0。若有检测到黑线,则H4发光到黑线光全部被吸收,H4接收端,没有收到任何信号,因为H4不导通(截止),则T1=VCC。3.4.3.2 电压比较器 LM324LM324电压比较器工作原理:该芯片内部有四组比较器,原理就是反向输入端与同向输入端的电压进行比较,若同向输入端电压大于反向输入端电压,则比较器的输出端输出高电平+5V;若同向输入端的电压小于反向输入端的电压,则比较器的输出端输出低电平0V。下图3-11为LM324的原理图。图3-11 电压比较器LM324电路图即当传感器检测到白纸有接收到反射光时,LM324的2脚比较器反向端T1=0V,3脚比较器同向端=3V;同向端大于反向端则OUT1输出高电平。检测到黑线没接收到反射光了,LM324的2脚比较器反向端T1=5V,3脚比较器同向端=3V,反向端大于同向端则OUT1输出低电平。LM324的调试方法为:看黑色物体遮挡传感器检测T1脚电压变化是否正常,调节电位器R13,使得3脚电压介于(2脚)T1电压的最大和最小值之间。3.5 各模块的组装与连接这里应该把电机驱动输入端接到单片机的 P0 上,因为 P0 口我们外接有上拉电阻,其他 I/O 口虽然集成上拉电阻但驱动能力太弱,很不稳定。如果把驱动输入端接到 P0 口仍不太受控,可以尝试将上拉电阻改为 1K 或更小的。)循迹模块输出端分别接单片机的 P1.0、P1.1、P1.2。注意分别对应右边的光电管输出端(从循迹板对应的右边光电管信号输出端接至单片机 P1.0)、左边的光电管输出端(从循迹板对应的左边光电管信号输出端接至单片机 P1.1)、前边的光电管输出端(从循迹板对应的前边光电管信号输出端接至单片机 P1.2)。连接好的事物图如下图所示。图3-12 小车事物图4 循迹小车的软件设计4.1 软件设计开发平台本设计采用Keil C51单片机软件开发平台,Keil Vision系列是德国Keil Software公司出品的51系列单片机C语言集成开发系统。该平台可用于编辑C或汇编源文件。它提供了丰富的库函数和功能强大的集成开发调试工具,是目前使用最广泛的C51集成开发环境。4.2 小车运动状态分析及三路算法的设计4.2.1 小车运动状态分析小车在运行过程中可以前进,可以后退,也可以转弯。只需控制电机的转速与转向即可。下图4-1为小车结构图。该结构是由2个轮胎,减速箱+电机2套2个后轮,黄色底盘 以及PCB敷铜板和亚克力板等组成。从左图我们可以看出控制小车的核心方法就是通过单片机来控制电机的转速及转向。 图4-1小车结构图我们可用如下表4-1所示内容来表明电机的运动状态。表4-1电机运动状态左电机右电机P1.3(LA)P1.2(LB)电机状态P1.1(RA)P1.0(RB)电机状态00不转00不转01前转01前转10后转10后转11不转11不转下表所示为小车在跑道上的运动状态,可前进后退,也可转弯,具体事由单片机P1口各I/O口的电平高低决定的。表4-2小车运动状态P1.3P1.2P1.1P1.0小车运动状态0101前进1010后退1101左转弯0111右转弯4.2.2 三路循迹算法设计 如左图4-2所示,如果中间探测头P0.1右测到黑线,则小车前进。可用如下程序表示。if(P0=0x05)P1=0X05如果右边探测头P0.2测到黑线,则小车偏了,小车左转弯。则可用如下程序表示。图4-2小车结构图if(P0=0x03)P1=0X0D如果左边探测头P0.0测到黑线,则小车偏了,小车右转弯。if(P0=0x06)P1=0X07由上述分析可写出如下所示循迹核心程序X=P0&0XFF;switch(X)case 0x00:P1=0x0f; break;case 0x01:P1=0x0d; break;case 0x02:; break;case 0x03:P1=0x0d; break;case 0x04:P1=0x07; break;case 0x05:P1=0x05; break;case 0x06:P1=0x07; break;case 0x07:; break; default: break;4.3 软件设计流程图 单片机初始化程序后,小车通过传感器判定路况并设定状态,通过光电传感器检测到的光电信号,来控制小车运行状态,具体程序如下所示。4.4 软件的调试 程序写好后一般都会有各种错误,有些错误是语法错误,编译器在编译时会给出提示,按照提示进行修改即可。还可能有不容易发现的逻辑错误、算法的不完善等问题,这些问题只能通过反复调试来解决。Keil Vision提供了多种调试方法帮助我们对程序进行调试。4.4.1 设置和删除断点在软件开发过程中,设置断点+单步运行是最常用的程序调试方法。在程序可能出现问题的地方加上断点,当程序运行到断点处会停止,这时再采用单步方式来运行。这种做法能够有效地缩小出错范围,帮助我们更快地找到出现问题的程序块。当程序编译之后,通过Debug菜单下的Start/Stop Debug Session命令启动Keil Vision的调试界面,这时我们在源程序窗口待添加断点的行号前双击鼠标,就可以在该行添加一个断点。也可以通过View菜单下的Disassemblely Window选项查看源程序反汇编以后的汇编代码窗口(这里的汇编代码与项目中的C51源程序是对应的,在这两个窗口添加断点是等效的),并在该窗口中双击待添加断点。在其中一个窗口添加断点后另一个窗口也会自动在相应位置加上断点。再次双击断点可以取消该断点。4.4.2 查看和修改寄存器的内容在调试过程中,可以通过View菜单下的Registers Windows来查看各寄存器的内容,由于它们都是通过软件仿真来模拟的,并非真正运行在MCS-51单片机上,所以我们不仅可以观察程序运行过程中各寄存器的值,还可以在需要时,在程序运行过程中进行修改,只要双击该数值,修改完毕后按回车键即可。4.4.3 观察和修改变量通过View菜单下的Watch Windows/Watch1或Watch2子菜单可以打开一个查看窗口,如图4-3所示。在查看窗口中双击或按下F2可以添加想要查看的变量或寄存器值,包括程序中定义的变量、定时器/计数器的计数值、I/O接口状态等,双击变量的当前值可以改变它。图4-3 调试界面窗口4.4.4 查看存储器区域Keil Vision允许区域性的观察和修改所有的存储器数据,这些数据是由软件模拟得到的。由于MCS-51单片机的存储器资源可以被划分成4个区域:内部可直接寻址RAM区data、内部间接寻址RAM区idata、外部RAM区xdata、程序存储器ROM区code。为了区分这些区域,Keil Vision将它们分别表示为D、I、X、C。例如,D:0x00表示内部直接可寻址RAM区从0x00处开始的存储单元。通过这种表示方法,可以准确描述我们想要观察或修改的存储区域。结 论本设计循迹小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,根据接收到的反射光的强弱来判断“道路”。本设计中采用红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。智能小车应用前景广阔,它可以按照预先设定的模块在一个特定的环境里自动的运行,可运用于科学勘探等用途,无需人为的管理,便可以完成预期所要达到的或更高的目标。智能机器人正在代替人们完成这些任务,凡不宜有人直接承担的任务,均可由智能机器人代替,可以适应不同环境,不受温度、湿度等条件的影响,完成危险地段,人类无法介入等特殊情况下的任务,智能小车就是其中的一个体现。智能车辆又称为轮式移动机器人,是移动机器人的一种,是一个集环境感知、规划决策、自动驾驶等多种功能于一体的综合体统。如果将以上技术引用到现实生活中,可以使我们的未来生活变得更加智能。除了潜在的军用价值外,还可以应用于科学研究、地质勘探、危险搜索、智能救援等,其在交通运输中的应用前景也受到西方国家的普遍关注。参考文献1 邓兴成,姜宝钧.单片机原理与实践指导M. 成都:电子科技大学出版社,2004.2 吕敏. 基于51单片机电动智能小车设计D.成都电子机械高等专科学校成教院毕业论文.2012年3月.3 田玉,周维华. 单片机应用智能循迹小车设计J. 数字技术与应用,学术论坛:152.4 朱涛. 基于STC89C52单片机的智能循迹小车设计J. 电脑知识与技术.2011年11月第7卷第31期.5 黄春平,万其明等. 基于51单片机的智能循迹小车的设计J.仪表技术,2006年2月.6 牛闯,王翰章等. 基于STC89C52单片机的循迹智能车控制系统设计J电脑知识与技术.2013年4月第9卷第10期.7 张岩,裴晓敏. 基于单片机的智能循迹小车设计J研究与开发,2014年3月第33卷第3期.8 顾群,蒲双雷等. 基于单片机的智能小车避障循迹系统设计J.数字技术与应用,数控技术,23期.9 钱柏霆,李娟. 基于单片机的循迹避障智能小车系统的设计J.电子科技,第015期.10 求是科技单片机典型外围器件及应用实例M北京:人民邮电出版社,200611 全国大学生电子设计设计竞赛组委员会.全国大学生电子设计竞赛训练教程M.北京: 电子工业出版社, 2005.致 谢时光匆匆而过,大学四年即将划上句号。回首四年时间,有太多的不舍。在论文完成之际,我要特别感谢我的指导老师蔡晓燕老师的热情关怀和悉心指导。在我撰写论文的过程中,蔡老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了蔡老师悉心细致的教诲和无私的帮助,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。本论文从选题到完成,每一步都是在导师的指导下完成的,倾注了导师大量的心血。在此,谨向导师表示崇高的敬意和衷心的感谢!在论文的写作过程中,也得到了许多同学的宝贵建议,在此一并致以诚挚的谢意。 感谢所有关心、支持、帮助过我的良师益友。 最后,向在百忙中抽出时间对本文进行评审并提出宝贵意见的各位老师们表示衷心地感谢!附录1 智能循迹小车原理图 附录2 循迹程序#include /包含51单片机相关的头文件sbit LeftLed=P20; /定义前方左侧指示灯端口sbit RightLed=P07; /定义前方右侧指示灯端口sbit FontLled=P10;sbit LeftIR=P35; /定义前方左侧红外探头端口sbit RightIR=P36; /定义前方右侧红外探头端口sbit FontIR=P37; /定义前方正前方红外探头端口sbit M1A=P00; /定义左侧电机驱动A端sbit M1B=P01; /定义左侧电机驱动B端sbit M2A=P02; /定义右侧电机驱动A端sbit M2B=P03; /定义右侧电机驱动B端sbit B1=P04;
展开阅读全文