基于单片机的智能小车设计.doc
摘要随着计算机、微电子、材料、机械、通信等技术的快速发展,智能化的小车和机器人的发展速度也越来越快,作为21世纪自动化领域内非常伟大的成就它已经和人们的生产生活紧密的联系在了一起。根据题目的要求,本设计的智能遥控小车主要由两大部分构成:一个红外遥控部分,一个智能小车部分。其中红外遥控部分采用专用编码芯片HT6221作为发射端,一体化红外接收头作为接收端;智能小车部分采用微控制器AT89C52单片机作为其控制核心,用红外反射式光电传感器进行障碍物和路线的检测,用步进电机控制小车的启停、速度快慢以及转向,用直射式光电检测器、施密特触发器等元件组成的电路来检测小车车轮转速,用LCD1602液晶显示屏来实时显示小车运行的速度、时间和路程。经过硬件和软件的综合设计,本设计的智能遥控小车基本上实现了遥控控制、自动躲避障碍、自动沿着特定的路线行驶、实时显示速度、路程等功能。关键词:AT89C52单片机;红外遥控;步进电机;LCD1602 42 / 47ABSTRACTAlong with the development of computer microelectronic materials mechanical and communication ,the smart cars and robots are also mov-ing faster,as a great achivement in the field of automation in the 21st century,they have closely contacted with people,s living and manufactur-ing.According to the topic,my designation of sm- art car mainly contain two parts,a infrared remote contral portion and a small car portion.The infrared remote contral portion is use the special coded chip HT6221 as the transmitter and use the integrated infrared receiving header as the receiver;we use the MCU(AT89C52 singal chip machine)as its control core, the infrared reflective ph- otoelectric sensor for detection of obstal and routes, the stepping motor to control its start-stop speed and steering,the circuits made of direct optical detectors schmitt tr- igger and other electronic components to detect the car,s wheel speed,1602 LCD sc- reen to display its real-time speed distance and time.Through the integrated design of hardware and software,the small car has the function of remote contral, avoiding obstal automatically,moving along specific route automatically, displaying real-time speed and distace.Keywords: AT89C52MCU; IR remote control; stepmotor; LCD1602 目录第一章 绪论11.1 课题背景和意义11.2 课题研究现状和发展趋势11.2.1 研究现状11.2.2 发展趋势21.3 课题内容和要求2第二章 总体方案设计与论证42.1 遥控控制模块设计与论证42.2 电机驱动模块设计与论证52.3 避障循迹模块设计与论证62.4 数据显示模块设计与论证62.5 转速测量模块设计与论证72.6 电源模块设计与论证7第三章 各模块硬件电路设计93.1 红外遥控发射器模块93.1.1 红外遥控模块的工作原理93.1.2 HT6221编码芯片简介103.1.3 红外遥控发射器113.2 单片机控制模块123.2.1 单片机模块电路123.2.2 复位电路133.2.3 振荡电路143.3 红外接收器及解码143.4 电机驱动模块163.4.1 步进电机的工作原理163.4.2 ULN2003芯片简介173.4.3 步进电机驱动电路设计183.5 避障循迹模块193.6 转速检测模块213.7 数据显示模块223.8 电源模块23第四章 系统软件设计244.1 系统总体程序流程图244.2 避障循迹模块程序设计254.2.1 避障程序流程图254.2.2 循迹程序流程图264.3 数据显示模块程序设计27第五章 总结与展望285.1 总结285.2 改进与展望28参考文献29致谢30附录A 各模块电路图31附录B 程序39第一章 绪论1.1 课题背景和意义随着计算机、微电子、信息技术的快速发展,智能化技术的发展速度越来越快,智能化与人们生活的联系也越来越紧密,智能化是未来社会发展的必然趋势。智能小车实际上就是一个可以自由移动的智能机器人,比较适合在人们无法工作的地方工作,也可取代人们完成一些复杂、危险性质的工作。作为现代自动控制领域内十分伟大的一项发明智能小车、机器人已经和人们的生产生活紧密的联系在了一起。智能小车,是一个包含周围环境探测、识别反应、自动控制等功能于一体的综合系统,它综合地运用了微控制器、传感、遥控、机械结构、电子基础、自动控制等多学科的知识。智能小车是一个复杂而又庞大的系统,其内部有许多块控制芯片作为其控制核心,多种传感器来采集外部环境信息并将接收到的信息传给主控制器,然后由控制器来控制其各个模块执行相应的动作。智能小车由于成本较低,甚至还能够胜任一些人们都无法胜任的工作,它已逐步深入到工业、农业以及社会生活的各个方面。本课题设计的智能小车中用到的遥控技术、显示技术、单片机控制系统、传感技术、自动避障技术已广泛应用于工农业生产、国防军事、医疗卫生、宇宙探测等诸多领域,特别是其在军事侦察、反恐、防暴、防核化及污染等危险和恶劣环境中有着广阔的应用前景,由此可见其有着及其重要的研究意义。1.2 课题研究现状和发展趋势 1.2.1 研究现状智能小车、机器人的发展研究从上世纪60年代至今已有几十年的历史,自从上世纪60年代末期,第一台能够自主移动机器人问世以后,经过几十年的发展智能机器人已经从最初的示教模仿机器人发展到现在的具有感知功能的智能机器人,在技术上取得了很大的进步许多国家都对智能机器人进行了大量的研究。由于各国的科研实力不同,其水平也有高低,其中美国和日本在该项技术的研究处于领先地位。法国提出了让智能机器人具有自动认知功能的一项科技计划,使其能够在复杂的环境中通过自主感知判断来自动执行各种动作。美国发明的智能机器人,可以帮助人们送信件、食品等生活用品,还可以牵引吸尘器来打扫卫生。日本目前已经研制成功的人形机器人,其可以模仿人们的各种面部表情而且非常逼真。近年来发明的的手术机器人已经广泛的应用在实际医疗手术中而且稳定性好,安全性高。我国的智能小车、机器人的研究已经有三十多年的历史,特别是在军事领域的应用方面已经取得了较大的成果,已经相继研制出了复杂的智能机器人,危险作业机器人、仿人机器人、复合结构移动机器人等。国内的许多高校也都在不停的进行着这方面的研究而且也有了层出不穷的成果,例如中科院研制的能够和人对话的机器人、上海交大研制的具有较强越障能力的仿人关节结构的机器人等。与此同时,我国也开展了智能移动机器人基础理论研究,在某些方面取得了世界领先的成果,正在逐渐缩小与发达国家的差距。 1.2.2 发展趋势随着各方面技术的不断进步与完善,各个国家对于智能小车、机器人的科研能力都再逐步的加强,未来的智能机器人可能会朝着以下几个方面发展:使用高强度的轻质材料让机器人的结构越来越灵巧动作执行也更加灵活;应用网络化技术来远距离操作控制机器人群体为人们工作;通过复杂生物机电系统和人机耦合系统来研究出具有仿生感知、生物神经的仿人机器人。相信未来会有具有更高智能化的、更加生动有趣的智能机器人出现在我们的周围,而且会极大的改变和方便人们的生产生活。1.3 课题内容和要求本设计的智能小车用微处理器(即单片机)作为整个系统的控制核心部分,主要包括单片机控制模块、遥控模块、避障模块、循迹模块、数据显示模块等模块。要求能够实现以下几种功能:(1)遥控功能,即通过遥控器来控制小车的启动、停止、左转、右转、后退等动作。(2)自动避障功能,即小车在前方遇到障碍时可以立即做出反应,自动左转或右转躲避障碍。(3)自动循迹功能,即小车可以自动沿着规定的路线行驶。(4)能够实时显示小车行驶的速度、路程等数据。要求通过此次的实际动手设计掌握以下基本技能:(1)学会电子产品的设计开发过程;(2)掌握单片机原理、遥控原理、显示原理等;(3)能够熟练进行系统的硬件电路设计以及软件设计;(4)熟练使用相关的电子设计和仿真软件;(5)查阅国内外相关文献,掌握智能小车的最新研究动态和未来发展趋势。第二章 总体方案设计与论证本设计方案采用微处理器(AT89C52单片机)作为整个系统控制的中心,主要由两个部分构成,红外遥控发射部分和智能小车部分。其中智能小车部分主要由以下子模块构成:单片机控制模块、电源模块、电机驱动模块、循迹避障模块、转速检测模块、红外接收器和数据显示模块组成;红外遥控发射部分主要由遥控按键、编码芯片、红外发射三个部分构成。其总体设计框图包括两个部分,如图2.1所示: a 遥控部分框图 b 小车部分框图 图2.1 系统总体设计框图2.1 遥控控制模块设计与论证目前比较常用的遥控控制方式有两种,红外遥控控制系统和无线遥控控制系统。方案一:选择红外遥控装置作为小车的遥控控制器。红外遥控是通过遥控发射器内的编码芯片将按键信息调制成一串0和1的二进制代码,然后通过红外线发出,最后被红外接收装置接收进行解码,再运用单片机对解码后的码信息进行识别,然后再根据不同的码信息进行不同的控制操作9。方案二:选择无线电遥控装置作为小车的遥控控制器。无线电遥控是利用不同频率的无线电波对远方的各种机构进行控制的遥控设备。这些信号被远方的接收设备接收后,可以驱动其他各种相应的机械或者电子设备去完成各种操作6。红外遥控和无线遥控是对不同的载波来说的,红外遥控器是用红外线来传送控制信号的,它的特点是有方向性中间不能被阻挡,在室内使用时大概在7m的范围内有效;无线遥控器是用无线电波来传送控制的信号的,它的特点是无方向性,可以不面对面控制,距离远,有效距离可达数十米甚至数公里。以上两种方案均可作为本设计的遥控控制器,虽然无线遥控控制的距离更远也更加灵敏,但对于本设计来说使用红外遥控已经足够了,而且红外遥控的原理更加简单易懂,所以本设计采用方案一即红外遥控作为小车的遥控控制系统。2.2 电机驱动模块设计与论证目前比较常用的小车驱动电机主要有两种选择:方案一:选择直流电机作为小车的动力驱动。直流电机是将直流电能转换为机械能的一种装置,因其转动力矩大、体积较小、重量很轻、使用方便,所以其在一些小型的电动装置中的应用较多。直流电机的运行方式是这样的:在它里面有圆形的磁体会产生磁场,当给它转子上的绕组通电时,通电线圈在磁场中便会产生洛伦兹力带着线圈即转子转动,当转子转动时通电线圈内的磁场方向将会改变,所以绕组上的电流也要变换流向,在方向一直不变的洛伦兹力控制下电机将向顺时针或逆时针持续转动。由H型桥式电路直接驱动直流电机控制电机的正反转,通过软件编程使单片机输出不同占空比的PWM(脉宽调制信号)来控制直流电机的转速进而控制小车的行驶速度6。方案二:选择步进电机作为小车的动力驱动。步进电机是将输入端输入的电脉冲信号转变为转子的角位移的可以实现精确定位的电机。电机转动的快慢取决于脉冲信号的频率、转动的圈数取决于脉冲的个数,在不超载的情况下其转动速度不受负载的影响,即给步进电机输入一个脉冲信号,电机的转子则转过一个角度,给其加上连接不断的脉冲波形则步进电机就能持续转动下去5。相比直流电机,步进电机转过的角度是由脉冲信号控制的其可以实现小车的精确定位停车,步进电机调速也更加容易,只要输入不同频率的脉冲信号就能控制小车的行驶速度,而且它还有很好的止动能力。所以在本设计中我们选用了步进电机作为小车的驱动电机。2.3 避障循迹模块设计与论证目前主要有两种方案来实现小车的自动避障功能:方案一:采用红外反射式光电传感器、电压比较器及一些电阻构成的障碍物检测电路来检测小车前方的障碍。障碍物检测电路安装在小车前部的中间及左右两边,来检测小车前方的障碍物。其障碍检测过程如下:红外发光二极管发出红外光,如果遇到小车前面的障碍物,红外线就会被物体反射回来,被光敏三极管吸收此时光敏三极管导通,并在输出端输出低电平信号至单片机,然后单片机调用寻迹避障子程序控制小车做出相应的避障反应,当左边遇到障碍物时单片机会自动调用右转子程序控制其右转,当右边遇到障碍物时单片机会自动调用左转子程序控制其左转。当无障碍物时,发出的红外线不被反射,光敏三极管截止,输出高电平信号,小车继续向前行驶8。方案二:采用超声波原理来检测小车前方的障碍。其检测障碍的原理如下:先由超声波发射器向小车前方发射超声波,超声波在向前传播过程中,若遇到障碍物则会被反射回去,反射波被超声波回收装置接收后会产生一个电信号然后被转化为高低电平信号反馈给单片机,若为高电平则说明前方遇到障碍,然后由单片机调用避障子程来控制小车做出相应的躲避障碍的动作7。在本设计我们采用了第一种方案实现小车的自动避障功能。2.4 数据显示模块设计与论证根据题目的要求小车可以实时显示其运动的速度、距离等数据。主要有两种方案来实现:方案一:用共阳极数码管和可编程的键盘接口芯片组成数据显示电路,接口芯片直接与单片机的I/O口相连,由单片机精确控制实现LED动态显示。方案二:用LCD液晶显示屏直接与单片机相连组成数据显示电路。LCD液晶显示屏是一种专门用来显示字符和数字的点阵型液晶模块,它是由若干个5X7或5X11点阵字符位组成的,一个字符占据一个点阵字符位,每位之间有一个点距的间隔将字符隔开,行与行之间也有间隔8。由于本设计需要显示的数据较多,若用LED数码管来显示需多个数码管才能满足要求,这样电路设计过于复杂,相反只用一个LCD液晶显示屏即可显示要求数据,所以本设计我们采用方案二即LCD显示屏来显示实时数据。2.5 转速测量模块设计与论证方案一:选择霍尔开关型传感器测量小车车轮转速。具体做法是:在非磁性材料制作的转子上,固定好一片钢性磁体,将霍尔开关型传感器的感知接收面和磁体的磁极相对, 并在安装架上安装好(注意磁场方向不要弄错),轮子转动时磁体会跟着转动,在磁体转到和传感器的接收面相对时, 霍尔传感器便输出一个脉冲信号, 由两个脉冲间的时间间隔,便可算出转速,然后再根据车轮半径编程便可算出小汽车运行的速度10。方案二:选择直射式光电检测器测量小车车轮转速。具体做法是: 在小车的驱动轮的主轴上安装一个开有十个透光槽的圆形叶片,保持叶片和驱动轮能够同步转动,然后在驱动轮旁安装好直射式光电检测器,叶片随着车轮的转动不断切割红外发射管与红外接受管之间的红外线通路,当叶片转动至透光槽与红外线通路重合时,检测器导通,红外接受管通过电流,当叶片转动至使透光槽遮住时,光通路断开。随着车轮不断的转动,便会输出连续的脉冲序列,测出脉冲的个数便可知叶片转过的孔数,从而可计算出车轮转动的转角和转速,然后再根据车轮半径由软件编程便可算出小车运行的速度11。以上两种方案都能够测出小车车轮的转速。但是在本设计中,对于方案一来说,要想在很小的小车车轮上密集安装磁片比较困难,而且彼此之间也容易产生干扰。因此本设计拟采用方案二测量小车的转速。2.6 电源模块设计与论证电源是整个小车系统运行的基本条件,它的性能的好坏直接决定整个系统运行的稳定性和性能。小车的供电电源包含两部分,单片机控制模块电源和电机驱动模块电源,我们将单片机及其外围电路和步进电机分开供电,两者互相不影响,实现稳定供电。由于步进电机需较高的供电电压而单片机和其逻辑单元最大供电电压不能超过5V,因此需设计稳压电路。方案一:采用8节1.5V干电池串联共12V直接给步进电机供电,然后经过由LM7805稳压芯片构成的稳压电路将电压降至5V后给电片机及其外围逻辑电路供电。但是本方案由于电池电量有限,而且数量较多的干电池重量较大会给驱动电机带来太大负担,也占用了太大的空间在体积较小的小车上使用太不方便,所以放弃了该方案。方案二:采用12V蓄电池直接给步进电机供电,将电压降至5V后给单片机及其外围电路供电。蓄电池具有较长的续航能力以及电压输出的值基本不怎么变化,但是因为蓄电池的体积和质量过大,并不适合本设计的使用,所以我们并没有使用蓄电池来供电。方案三:采用3节4.2V锂电池串联的方式共直接给步进电机供电,然后经过由稳压芯片构成的稳压电路将电压降至5V后给单片机及其外围逻辑电路供电。本方案锂电池的电量较足并且可以充电重复利用,3节锂电池重量和占用的空间都较小,因此该方案比较可行,最终我们选择了该方案作为小车的驱动电源14。第三章 各模块硬件电路设计本设计的遥控智能小车的硬件部分共分为两大模块:红外遥控发射器硬件模块和智能小车部分硬件模块。其中红外遥控发射硬件模块包含遥控按键、编码芯片、红外发射三个子模块;智能小车部分硬件模块包含单片机控制模块、电机驱动模块、避障循迹模块、显示模块、红外接收器模块、电源模块6个子模块。首先介绍红外遥控发射器部分即遥控按键、编码芯片、红外发射三个子模块的硬件设计。3.1 红外遥控发射器模块 3.1.1 红外遥控模块的工作原理红外线遥控是比较常见的一种遥控设备,它是利用波长为0.761.5m之间的红外线来传送控制信号的遥控设备。其占据空间小、价格便宜、使用方便,在我们常用的家用电器比如电视、DVD,录音机、空凋等和一些小型电动玩具装置上均已应用了红外线遥控设备。但是红外遥控也有缺点比如容易受到空间和距离的限制,一般在7m的范围内有效且发射和接收之间不能被物体隔挡,但对于本设计的智能小车来说已经能够满足要求。红外遥控系统一般由两大部分组成:一个红外发射部分,一个红外接收部分。其中发射部分主要由按键键盘、编码调制、LED红外发送器构成,它最重要的部分就是应用编码芯片对按键信息进行编码和发送;接收部分由光电转换放大器、解调、解码电路构成,其最重要的部分是对接收到的编码进行解调。其原理如图3.1所示: 图3.1 红外遥控系统原理框图按下遥控器的一个按键,遥控器的编码芯片会对按键信息进行编码,然后通过LED红外发射器发出脉冲编码,被红外接收头接收后将编码解出并输入到单片机的外部中断,对接收到的脉冲编码进行位“0”和位“1”的识别,再根据不同的码信息调用相应的子程序来对小车进行不同的控制操作。 3.1.2 HT6221编码芯片简介HT6221是合泰公司生产的多功能遥控编码芯片,工作电压在1. 8V-3.5V,其采用PPM(Pulse Position Modulation)进行编码,周期能编码16位地址码和8位数据码,最多能同时支持32个活动键。其引脚结构如图3.2所示: 图3.2 HT6221引脚图其各引脚说明如下表3-1所示:表3-1 HT6221芯片引脚说明引脚号引脚名称 描述0 AIN低8位地址码输入1-8 C1-C8键盘列控制9 LED按键指示灯10-13 R1-R4键盘行控制, 高电平有效14 DOUT串行数据输出引脚, 38KHz发射频率15 VDD1.8V- 3.5V16 DT最重要数据位(DT)代码设置17、18 X2、X1455KHz振荡器输出,455KHz振荡器输入19 VSS接地 遥控编码有两种:位0和位1,其低电平脉宽相同但高电平脉宽不一样。采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的脉冲表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的脉冲表示二进制的“1”。其波形如图3.3所示: 图3.3 遥控码的“0”和“1”(注:接收端的波形与发射断相反) 3.1.3 红外遥控发射器遥控发射器专用芯片很多,在本设计中我们运用了HT6221芯片来实现红外编码的发射。其电路如图3.4所示: 图3.4 遥控发射器电路原理图图3.4中当有任意一个按键按下后,按键指示灯(D1)发光,HT6221编码芯片能够产生脉冲编码,该脉冲编码会被调制成38KHz的脉冲信号然后通过图中的红外发射二极管(D2)发射出去8。所按的按键不同其发出的编码脉冲也不同,按键所代表的功能也就不同,其各按键的功能分配如下表3-2所示: 表3-2 按键功能分配表 按键 功能 K1 控制小车的启动 K2 控制小车的停止 K3 控制小车的加速 K4 控制小车的左转 K5 控制小车的右转 K6 控制小车的倒退下面是智能小车部分即单片机控制模块、红外接收器模块、电机驱动模块、避障循迹模块、显示模块、电源模块6个子模块的硬件设计介绍。3.2 单片机控制模块 3.2.1 单片机模块电路本设计我们采用AT89C52单片机作为智能小车部分的控制核心,AT89C52单片机是AT89系列的标准型8位单片机,其与标准MCS-51指令系统和8052产品引脚兼容,功耗低、性能强大、价格便宜适用于许多较为复杂控制的场合。AT89C52单片机的内部结构如下:一个以ALU为中心的8位中央处理器,256字节内部数据存储器(RAM),8K字节用来存储程序的Flash内部程序存储器即片内ROM(可反复擦写1000次),4个8位可编程I/O口(P0、P1、P2、P3),3个16位定时/计数器,8个中断源,两个中断优先级的中断控制系统,一个全双工串行通信口,一个片内振荡器和时钟电路1。AT89C52单片机最小应用系统主要由单片机、复位电路、振荡电路等部分组成。本设计的单片机控制模块原理图如图3.5所示: 图3.5 单片机控制模块本设计中我们使用了AT89C52单片机的大部分引脚,其具体的引脚功能分配如下表3-3所示:表3-3 单片机引功能分配表 引脚 功能分配 P0.0-P0.7接LCD1602的D0-D7引脚,作为数据信息的输出引脚 P1.0-P1.2接LCD1602的RS、RW、E引脚,作为数据信息的控制端 P1.3-P1.5、P1.7连接避障循迹电路的输出端 P1.6连接转速测量电路的脉冲输出端 P2.4-P2.7连接电机驱动芯片的脉冲信号输入端 P3.2外部中断,连接红外接收器的输出端VCC接+5V电源GND接地 3.2.2 复位电路单片机的复位,是为了初始化单片机的工作状态,有时当程序运行出错或因操作错误而使系统处于锁死状态,为了摆脱困境,也可按复位键重新初始化单片机。RST引脚是复位信号的输入端,要实现复位操作必须使RST引脚上至少保持两个机器周期的高电平,再从高电平变为低电平完成复位。复位电路由按键复位和上电复位两种方式,本设计采用按键复位实现复位操作。单片机按键复位电路如图3.6所示: 图3.6 复位电路按键复位是通过按键使复位引脚经电阻R0与VCC电源接通来实现的,按下复位键时,RST引脚为高电平;松开复位按键后,RST引脚逐渐将为低电平,复位结束。 3.2.3 振荡电路AT89C52单片机内有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为芯片引脚XTAL2。只要在片外通过XTAL1和XTAL2引脚跨接振荡元件(如晶体振荡器),则可构成一个稳定的自激振荡器,单片机通电后即可工作。其外部振荡电路如图3.7所示: 图3.7振荡电路 AT89C52单片机内部RAM容量很小,当单片机需要存放大量数据时就必须扩展外部数据存储器。此外AT89C52单片机的I/O口数量和功能很有限,也常常要扩展外部接口芯片。由于本设计不需要太多的I/O口,内部程序存储器也够用,所以不用扩展外部数据存储器和外部接口芯片。3.3 红外接收器及解码红外接收器也叫做一体化红外接收头,其内部是由红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等构成的。红外监测二极管接收到红外信号后,会把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平。交流信号进入带通滤波器,带通滤波器只允许30khz到60khz的负载波通过,然后脉冲信号再通过解调电路和积分电路进入比较器,由比较器输出高低电平信号,还原出发射端的信号波形。但为了提高接收的灵敏度输出的高低电平和发射端是反相的。红外接收头有很多的种类,一般都有电源引脚、信号输出引脚和接地引脚。根据发射端调制载波的不同应选用相应解调频率的接收头,本设计我们采用一体化红外接收头1838来解调HT6221编码芯片的编码。其实物图如图3.8所示: 图3.8 1838红外接收头由于红外接收头内部放大器也很大的增益,这样很会容易引起干扰,因此在接收头的电源引脚上须加上大小在22uf以上的滤波电容。本设计的红外接收电路如图3.9所示: 图3.9 红外接收电路图其中U6为1838红外接收头,电容C4为滤波电容,DOUT 是解调信号的输出端,直接与单片机的P3.2引脚即INT0中断相连8。 解码的重点是怎样识别位0和位1,由于位0和位1的低电平脉宽相同但高电平脉宽不一样。所以需要根据高电平的宽度区别位0和位1,如果从0.56ms低电平信号过后延时了0.56ms以后如果能读到低电平信号说明该位为0反之则为1,为了可靠起见延时必须介于0.56ms和1.12ms之间,否则如果该位为0读到的已是下一位的高电平,因此我们取其中间值即(1.12ms+0.56ms)/2=0.84ms。当按下遥控器的按键后,便有红外脉冲编码信号发出,经红外接收头接收解码后在其输出端输出检波整形后的方波信号,然后直接输入至单片机外部中断进行码信息的识别,单片机再调用相应子程序执行对应的操作。具体解码操作流程图如图3.10所示: 图3.10 红外接收解码流程图3.4 电机驱动模块 3.4.1 步进电机的工作原理步进电机是一种将电脉冲信号转变为角位移或线位移的电机。电机转动的快慢取决于脉冲信号的频率、转动的圈数取决于脉冲的个数,在不超载的情况下其转动速度不受负载的影响,即给步进电机输入一个脉冲信号,电机的转子就转过一个固定角度(步距角),给其输入连续的脉冲信号步进电机就能连续转动5。在本设计中我们采用步距角为1.8度的四相步进电机作为小车的驱动电机,其内部结构及元件图如图3.11所示: 图3.11 步进电机结构和元件图四相步进电机有着比较小的体积和转矩,该电机共有5根引出线,分别是内部四组绕组线圈A、B、C、D的四根引出线,一根电源引出线,其采用单极性直流电源供电,使A、B、C、D四相绕组轮流供电,转子就会沿着A、B、C、D方向转动。其旋转角度与脉冲数成正比,旋转频率与脉冲频率成正比。本设计的步进电机采用四相八拍的工作方式,即A-AB-B-BC-C-CD-D-DA-A的通电顺序工作。当通电顺序为A-AB-B-BC-C-CD-D-DA时电机正转,当通电顺序为DA-D-CD-C-BC-B-AB-A时电机反转。步进电机工作时的时序波形图如图3.12所示: 图3.12 步进电机工作时序波形图 3.4.2 ULN2003芯片简介ULN2003驱动芯片可以直接用来驱动电流小于0.5A的步进电机。ULN2003芯片是美国TI公司和Sprague公司开发的高压大电流达林顿晶体管阵列电路具有较高的电流增益和工作电压、较宽的温度范围、较强的驱动负载能力等特点,适和应用于各种高速大功率的驱动系统中。其内部结构及引脚如图3.13所示: 图3.13 ULN2003芯片引脚图其引脚说明如表3-4所示:表3-4 ULN2003芯片引脚说明 引脚 功能说明 IN1-IN7 脉冲信号输入端(接单片机) GND 接地 OUT1-OUT7 驱动信号输出端(接步进电机) COM 接+5V电源ULN2003驱动芯片的输出结构是集电极开路的,所以要在输出端接一个上拉电阻,通常单片机驱动ULN2003时,上拉2K的电阻较为合适。 3.4.3 步进电机驱动电路设计由于单片机的输出电流太小,而步进电机需要较大的驱动电流,所以需要驱动电路来连接单片机和步进电机。本设计中我们采用四相步进电机作为小车的驱动电机,用单极性直流电源供电。采用ULN2003芯片直接驱动步进电机,步进电机驱动电路如图3.14所示:图3.14 步进电机驱动电路ULN2003的输入端直接与单片机的P2.4-P2.7引脚相连,单片机输出不同的脉冲信号,这些脉冲信号经ULN2003驱动芯片放大后分别控制步进电机的启动、停止、正转、反转、加速和减速。本设计中只要对步进电机的各相绕组按合适的时序通电,就能使步进电机转动。正、反转可由输入不同顺序的脉冲信号来控制以实现小车的前进和后退;我们使用两个步进电机分别控制小车的左轮和右轮,通过单片机输出不同频率的脉冲使左右两个车轮具备不同的转速,由转速差实现小车的转向,当左侧车轮转速大于右侧车轮时小车右转,当右侧车轮转速大于左侧时小车左转。3.5 避障循迹模块本设计我们采用了红外反射式光电传感器、电压比较器及一些电阻来构成障碍物检测电路,并直接与单片机的P1.4引脚相连,其可将检测到的模拟信号转化为高低电平信号然后输入到单片机,单片机根据输入的高低电平信号来判断是否有障碍物,若有则调用自动避障子程序控制小车做出相应的避障动作。障碍物检测电路如图3.15所示:图3.15 障碍物检测电路图中U3红外反射式光电传感器是由红外发光二级管和光敏三极管组成的,红外发光二级管用来发射红外线,光敏三极管用来接收被反射回来的红外线。红外接收/检测器有一个内置的只允许红外光线通过的光滤波器和一个只允许38.5 kHz左右电信号通过的电子滤波器,这样就防止了外来光源对红外接收器的干涉。U4是电压比较器,它能够将输入的模拟电压信号转化为高低电平信号,当3脚电平大于4脚时,输出端1脚输出为高电平,反之输出为低电平。障碍物检测电路安装在小车前部的中间及左右两边,来检测小车前方的障碍物。其障碍检测过程如下:红外二极管发出红外光,如果遇到小车前面的障碍物,红外线就会被物体反射回来并被光敏三极管吸收,此时光敏三极管导通并在输出端输出低电平信号至单片机,然后单片机调用寻迹避障子程序控制步进电机做出相应的避障反应,当左边遇到障碍物时小车右转,当右边遇到障碍物时小车左转。当无障碍物时,发出的红外线不被反射,光敏三极管截止,输出高电平信号,小车继续向前行驶9。循迹的原理和避障的原理是相同的,循迹电路安装在小车底部,循迹是通过辨别黑白色来行走。工作过程如下:红外发光二极管发出红外光,当遇到黑色,不反射红外光,比较器输出为高电平;当遇到白线,红外光被反射回来,比较器输出为低电平。单片机根据输入电平的变化判断小车的行驶路线是否偏离,然后调用自动避障子程序实现小车的自动循迹,当左边检测到白色时小车右转,当右边检测到白色时小车左转;当两边检测到的都是黑色时小车前进,当两边检测到的都是白色时小车停止。3.6 转速检测模块施密特触发器是具有特殊功能的非门,当它的输入端的电压上升到某个值时,输出端会立即从高电平跳变为低电平,而当输入端的电压下降到某一个值时,输出端会立即从低电平跳变为高电平。本设计采用直射式光电检测器、施密特触发器、三极管和若干电阻构成的电路与单片机的P1.6引脚相连来测量小车车轮的转速,其实物图和电路图如图3.16所示: