已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要本设计是一种基于单片机控制的简易自动寻迹小车系统,其研究意义涵盖了工业、生活、勘探以及人类关注的探月工程。设计旨在设计出一款可以自主按照人类预设的轨迹行走(或者完全自主行走)并完成指定任务的小车。从设计的功能要求出发,设计包括小车机械构成设计和控制系统的软硬件设计。为了适应复杂的地形我采用稳定性比较高的四轮构架式,用后轮驱动前轮换向的控制模式。控制系统以STC89C52为控制核心, 用单片机产生PWM波,控制小车速度。利用红外光电传感器对路面黑色轨迹进行检测,并确定小车当前的位置状态,再将路面检测信号反馈给单片机。单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,从而使小车能够沿着黑色轨迹自动行驶,实现小车自动寻迹的目的。关键词 : 循迹小车,单片机,红外传感器ABSTRACT The design is a simple microcontroller-based control automatically tracing the car system, and its significance covers the industry, life, exploration, and human concern lunar exploration. The design aims to design a can of independent walking in accordance with the trajectory of human default (or completely autonomous walking) and to complete the tasks assigned to the car. The design includes the functional requirements from the design of car mechanical design and control system hardware and software design. Relatively high stability of the four trusses in order to adapt to the complex terrain, before the rotation of the rear-wheel drive control mode. Control system to control the core to STC89C52 microcontroller PWM wave to control the car speed. Using infrared photoelectric sensor to detect the black track on the road and to determine the current status of the car, and then the road detection signal is fed to the microcontroller. Microcontroller to be collected signal analysis and judgment, and timely control of the drive motor to adjust the steering of the car, so that the car is traveling along the black track to achieve the purpose of the car automatically tracing.Keywords: car tracking;microcontroller;Infrared sensors目录1绪论11.1智能小车的意义和作用22方案设计与论证32.1 主控系统42.2 电机驱动模块42.3 循迹模块52.4 机械系统63 主要器件介绍73.1 STC89C52的介绍73.2 L298N的介绍103.2.1 L298的引脚功能103.2.2 L298的运行参数113.2.3 L298的逻辑控制113.3 TCRT5000的介绍123.4 LM324的介绍124 硬件设计144.1总体设计144.2TCRT5000黑色轨迹识别电路144.3LM324电压比较电路154.4 STC89C52单片机控制电路164.4.1 时钟电路174.4.2 复位电路174.4.3 EA/VPP(31 脚)的功能和接法184.4.4 P0 口外接上拉电阻184.5 L298N马达驱动电路195程序设计215.1主程序215.2TCRT5000扫描程序23结束语25参考文献26附 录281绪论1.1智能小车的意义和作用 本课题研究的背景和意义 随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。而近几十年来中国在航天领域的发展越来越快,世界各国也从没停止过探索外星的脚步。在外星球恶劣的环境下探索全由人去完成是不可能的。那么可以自动驾驶的小车就发挥了它的作用了。用带有摄像头的小车就可以让我们在地球上看到外星球的地貌。如何让小车自动的准确的按照人预设的路线去进行工作成了人们开始研究的课题,现在也有很多的相关成果。寻迹小车要实现自动导引功能就必须要感知导引线,感知导引线相当给机器人一个视觉功能。避障控制系统是基于自动导引小车(AGVauto-guide vehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。使用传感器感知路线和障碍并做出判断和相应的执行动作。本设计就采用了比较先进的 80C51 为控制核心,80C51 采用 CHOMS 工艺,功耗很低。该设计具有实际意义,可以应用于考古、机器人、医疗器械等许多方面。尤其是 在足球机器人研究方面具有很好的发展前景;在考古方面也应用到了超声波传感器进行检测。所以本设计与实际相结合,现实意义很强。该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、CPU。实现小车自动识别路线,选择正确的行进路线。传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向。实现了小车根据路线自动转向也就可以让小车去完成人预设的任务。例如智能运输系统。公共交通是城市发展的必然产物,也是城市赖以生存的重要基础设施之一。它作为城市动态大系统中一个重要组成部分,是城市整体发展中不可缺少的物质条件和基础产业,也是联系社会生产、流通和人民生活的纽带。公交系统具有运载量大、运送效率高、能源消耗低、相对污染少、运输成本低等项优点。随着我国改革开放的深入和经济建设的持续快速发展,城市规模不断扩大,交通需求也不断增加。有关资料表明,1996年全国城市机动车保有量为884.5万辆,比1977年增长近9倍,年均增长33.8%,全国城市自行车超过1.8亿辆,占全国总量的40%,城镇每百户拥有率达198辆。道路建设虽突飞猛进,从1980年至1994年,全国城市道路总长从2.95万公里增至11.1万公里,年平均增长率为9.9%,人均道路面积从2.8m2增至6.6m2,道路面积增长率为年均11.6%,这样的速度仍然赶不上车辆的增长速度。同时,由于多种原因致使公交车辆运营速度由每小时12-14公里下降至5-10公里,新增的运力被运输效率下降抵消,公交承担运量不断减退,居民出行方式逐年由公交向自行车等个体交通方式转移,这无疑加剧了交通的拥挤程度。如何解决城市居民出行交通需求的不断增加与公共交通发展相对滞后的矛盾成为摆在我们面前的一项迫切任务。智能运输系统(Intelligent Transportation Systems,ITS)。它是在关键基础理论模型研究的前提下,把先进的信息技术、数据通信技术、电子控制技术及计算机处理技术等有效地综合运用于地面交通管理体系,从而建立起一种大范围、全方位发挥作用、实时、准确、高效的交通运输管理系统。它利用无线通讯专网低频段以低成本实现了公交企业运营数据的实时采集、快速传输,自行开发研制了无线通讯系统车载智能终端设备及控制系统,使公交企业能够充分利用无线通讯系统采集和传输的车辆运营数据进行车辆调度和车辆运营管理,且具有数据和话音双重传输功能。具有用户容量大、网络范围覆盖广、调度信息响应速度快、全自动语音报站自动化、信息发布广泛、出行者信息服务智能化、设备自动维护智能化的特点。智能公交系统的提出,必将大大改善公交管理水平,提高公交系统经济效益,减少政府财政补贴。由于采用公交出行的居民增加,相对减少了其它车辆出行,这势必会缓解城市交通压力,减少环境污染,降低交通事故发生率,改善交通环境,带来巨大的社会效益。 2方案设计与论证根据要求,确定如下方案:在现有玩具电动车的基础上,加装光电检测器,实现对电动车的位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。2.1 主控系统根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。据此,拟定了以下两种方案并进行了综合的比较论证,具体如下:方案一:选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较大的劣势。同时,CPLD的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案,进而提出了第二种设想。方案二:采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。针对本设计特点多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。根据这些分析,我选定了STC89C52RA单片机作为本设计的主控装置,51单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。在综合考虑了传感器、两部电机的驱动等诸多因素后,我们决定采用一片单片机,充分利用STC89C52单片机的资源。2.2 电机驱动模块方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的方向进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。方案二:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅会降低效率,而且实现很困难。方案三:采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 H型桥式电路(如图3.1)。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM调速技术。现市面上有很多此种芯片,我选用了L298N。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。图1 H桥式电路2.3 循迹模块方案一:采用简易光电传感器结合外围电路探测,但实际效果并不理想,对行驶过程中的稳定性要求很高,且误测几率较大、易受光线环境和路面介质影响。在使用过程极易出现问题,而且容易因为 该部件造成整个系统的不稳定。故最终未采用该方案。方案二:采用三只红外对管,平均置于小车车头前端,根据三只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,测试表明,只要合理安装好三只光电开关的位置就可以很好的实现循迹的功能。(参考文献3)通过比较,我选取第二种方案来实现循迹。2.4 机械系统本题目要求小车的机械系统稳定、灵活、简单,可选用三轮和四轮式,考虑到现在的汽车多采用四轮式我选用四轮式的设计,使设计更贴近生活需求。驱动和转向方式和现在的汽车一样。驱动部分:采用玩具小车原有的驱动电机,由L298N双通道马达驱动模块驱动前后两个马达,其力矩完全可以达到模拟效果。电池的安装:将电池放置在车体的下面,降低车体重心,提高稳定性,同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。电源模块:采用6支1.5V电池给电机供电,再用稳压芯片对电池电压进行降压给单片机。采用一套电源可减少小车的负重。电压转换电路如图2所示。整体组装效果如图3所示。图2 5V稳压电路图3 小车组装效果3 主要器件介绍3.1 STC89C52的介绍该单片机是宏晶公司生产的STC89C52,其片内带有8K字节闪速可编程、可擦除寿命1000次程序存储器。该产品与工业标准8051中单片机完全兼容,并且还可支持两种软件可选的省电模式,工作时钟最高可达到24MHz。使实时控制、实时处理的功能更加完善,简化了硬件配置。与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、全静态操作:0Hz33Hz 、三级加密程序存储器 、 32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针、掉电标识符 。STC89C52实物如图4。图4 STC89C52引脚示意图STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K字节在系统可编程 FlashP0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在线系统编程用)P1.6 MISO(在线系统编程用)P1.7 SCK(在线系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚 第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。3.2 L298N的介绍L298是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片的主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;采用标准TTL逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作;有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。3.2.1 L298的引脚功能L298芯片的引脚图如下图5,其引脚功能见表1。 图5 L298引脚图 表1 L298引脚功能表引脚符号 功能1SENSING A 与地连接电流检测电阻,并向驱动芯片反馈检测到的信号15SENSING B 与地连接电流检测电阻,并向驱动芯片反馈检测到的信号2OUT1 此脚是全桥式驱动器A的两个输出端,用来连接负载3OUT2 此脚是全桥式驱动器A的两个输出端,用来连接负载4Vs 电机驱动电源输入端5IN1 输入标准的TTL逻辑电平信号,控制全桥式驱动器A的开关7IN2 输入标准的TTL逻辑电平信号,控制全桥式驱动器A的开关611 8 910121314ENABLE A 使能控制端.输入标准TTL逻辑电平信号;低电平时全桥式驱动器禁 工作。 ENABLE B 使能控制端.输入标准TTL逻辑电平信号;低电平时全桥式驱动器禁止工作。GND 接地端,芯片本身的散热片与8脚相通Vss 逻辑控制部分的电源输人端口IN3 输入标准的TTL逻辑电平信号,控制全桥式驱动器B的开关IN4 输入标准的TTL逻辑电平信号,控制全桥式驱动器B的开关OUT3 此脚是全桥式驱动器B的两个输出端,用来连接负载OUT4 此脚是全桥式驱动器B的两个输出端,用来连接负载3.2.2 L298的运行参数L298的运行参数见如下表3表2 L198的运行参数参数测试环境最小值最大值驱动电源电压 Vs逻辑电源电压Vss输入低电平电压ViL输入高电平电压ViH使能端低电平电压Ven=L使能端高电平电压Ven=H全桥式驱动电压Vce(sat)持续工作时-IL=1A IL=2A2.5V4.5V0.3V2.3V0.3V2.3V1.8V46V7V1.5VVss1.5VVss4.9V3.2.3 L298的逻辑控制L298的逻辑控制见如下表3。其中C、D分别为IN1、IN2或IN3、IN4;L为低电平,H为高电平,为不管是低电平还是高电平。表3 L298对直流电机控制的逻辑真值表输入输出Ven=HC=H;D=L正转C=L;D=H反转C=D制动Ven=LC=;D=没有输出,电机不工作3.3 TCRT5000的介绍TCRT5000具有结构紧凑建设发光光源和探测器排列在同一方向,以感知对象的存在从对象使用反射红外线光束。工作波长为950毫米。该探测器光电晶体管组成。工作时由蓝色发射管发射红外线,红外线由遮挡物反射回来被接收管接收。接收反射光线后的接收管呈导通状态,与一电阻串联即可主城一个由发射管控制的分压电路,由此可实现对遮挡物反射光线强度的检测。我们经常利用这一特性去实现颜色识别。其实物图如图6,引脚图如图7所示。 图6 TCRT5000实物图 图7 TCRT5000引脚定义3.4 LM324的介绍M324是四运放集成电路,它采用14脚双列直插塑料封装。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。每一组运算放大器可用图8所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。LM324的引脚排列见图9。图8 单个运放符号 图9 LM324引脚图下面介绍LM324在电压比较电路中的应用。当去掉运放的反馈电阻时,或者说反馈电阻趋于无穷大时(即开环状态),理论上认为运放的开环放大倍数也为无穷大(实际上是很大,如LM324运放开环放大倍数为100dB,既10万倍)。此时运放便形成一个电压比较器,其输出如不是高电平(V+),就是低电平(V-或接地)。当正输入端电压高于负输入端电压时,运放输出低电平。图10 LM324电压比较电路如图10中使用两个运放组成一个电压上下限比较器,电阻R1、R1组成分压电路,为运放A1设定比较电平U1;电阻R2、R2组成分压电路,为运放A2设定比较电平U2。输入电压U1同时加到A1的正输入端和A2的负输入端之间,当Ui U1时,运放A1输出高电平;当Ui U2,则当输入电压Ui越出U2,U1区间范围时,LED点亮,这便是一个电压双限指示器。若选择U2 U1,则当输入电压在U2,U1区间范围时,LED点亮,这是一个“窗口”电压指示器。此电路与各类传感器配合使用,稍加变通,便可用于各种物理量的双限检测、短路、断路报警等。4 硬件设计4.1总体设计从智能循迹小车的设计要求出发,经过前面的方案论证我决定用原有的玩具小车作为设计模型。再在小车身上加上轨迹识别和马达驱动装置来完成整个功能。智能小车采用后轮驱动,前轮转换方向。循迹红外发射与接收管分别装在车头下的左中右。当车身下左边的传感器检测到超出黑线时,前轮右转,当车身下右边传感器检测到超出黑线时,车轮左转。直到小车完全回到黑线。如果转向过程中中间传感器也检测到超出黑线则说明小车以这个转向角度不能回到黑线,则改变前轮方向并后退。同样可以起到转向的作用,避免小车离线太远最终回不到黑线上。当小车完全回到黑线再继续向前,在检测到下一次出线后再进行同样的调整。信号流程如图11所示。红外轨迹识别 马达驱动模块 单片机控制系统电压比较 黑线识别模块图11 整体设计框图4.2TCRT5000黑色轨迹识别电路小车循迹原理是小车在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”黑线。本次设计规定正常行驶时三个红外探头都在黑色轨迹之内,如果有探头检测到车体开始偏离轨道则由控制系统做出相应响应使车体回到轨道上。此电路模块就是用于检测车体是否超出轨道并反馈给下一级电路。这一方法经常被叫做红外探测法。红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。如图12轨迹识别电路所示,发射管(1、2端)与阻值为330欧姆的电阻串联发射红外线。接收管(3、4)与阻值为47K欧姆的电阻串联。在没有接收到反射光线时接收管截止呈高阻态,TX输出高电平。当接收管接收到反射光线时,接收管被导通,并且电阻远小于47K,TX输出低电平。图12 黑色轨迹设别电路4.3LM324电压比较电路电压比较器式在运放的基础上去掉反馈电阻使放大倍数趋于无穷大。此时形成了一个电压比较器。当同相端电压大于反相端电压时比较器输出高电平,当反相端电压高于同相端电压时输出端输出度电平。如图13电压比较电路,用了LM324内部3个单独的运放外接一个可调电阻输入基准电压。基准电压加在反相输入端上,上一级电路反馈过来的电压从电压比较器的同相端输入。当TCRT5000反馈的电压高于基准电压时,比较器输出高电平。当TCRT5000反馈的电压低于基准电压时,比较器输出低电平。这样就使探头把地面的反射光线的程度只分成了两种情况,易于单片机识别。考虑到地面的粗超程度不一样我们可以用可调电位器去调节基准电压,经过轨道实际测量后确定基准电压的值。图13电压比较电路4.4 STC89C52单片机控制电路单片机控制电路由但单片机最小系统组成,主要作用是接受探头传来的电压信号,再通过程序设定的逻辑算法给出下一级马达驱动电路的指令。单片机最小系统包括主控IC,外部时钟电路,复位电路和电源组成。本设计采用如图14所示的单片机最先系统。在此就图14为参照解释一下51单片机最小系统各子电路的特点。图14单片机主控电路4.4.1 时钟电路XTAL1 和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。图14 中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。一般来说晶振可以在1.2 12MHz 之间任选,甚至可以达到24MHz 或者更高,但是频率越高功耗也就越大。在本实验套件中采用的11.0592M 的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在20 40pF 之间选择(本实验套件使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30 50pF 之间。通常选取33pF 的陶瓷电容就可以了。另外值得一提的是如果在设计单片机系统的印刷电路板(PCB) 时,晶体和电容应尽可能与单片机芯片靠近,以减少引线的寄生电容,保证振荡器可靠工作。检测晶振是否起振的方法可以用示波器可以观察到XTAL2 输出的十分漂亮的正弦波,也可以使用万用表测量( 把挡位打到直流挡,这个时候测得的是有效值)XTAL2 和地之间的电压时,可以看到2V 左右一点的电压。4.4.2 复位电路在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。MCS-5l 系列单片机的复位引脚RST( 第9 管脚) 出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST 持续为高电平,单片机就处于循环复位状态。复位操作通常有两种基本形式:上电自动复位和开关复位。图14 中所示的复位电路就包括了这两种复位方式。上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。一般来说,只要RST 管脚上保持10ms 以上的高电平,就能使单片机有效的复位。图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。4.4.3 EA/VPP(31 脚)的功能和接法51 单片机的EA/VPP(31 脚) 是内部和外部程序存储器的选择管脚。当EA 保持高电平时,单片机访问内部程序存储器;当EA 保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。在本实验套件中,EA 管脚接到了VCC 上,只使用内部的程序存储器。4.4.4 P0 口外接上拉电阻51 单片机的P0 端口为开漏输出,内部无上拉电阻(见图15)。所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。图15 P0端口的1位结构另外,避免输入时读取数据出错,也需外接上拉电阻。在这里简要的说下其原因:在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。例如,当从内部总线输出低电平后,锁存器Q 0, Q 1,场效应管V1 开通,端口线呈低电平状态。此时无论端口线上外接的信号是低电平还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从内部总线输出高电平后,锁存器Q 1, Q 0,场效应管V1 截止。如外接引脚信号为低电平, 从引脚上读入的信号就与从锁存器读入的信号不同。所以当P0 口作为通用I/O 接口输入使用时,在输入数据前,应先向P0 口写“1”,此时锁存器的Q 端为“0”,使输出级的两个场效应管V1、V2 均截止,引脚处于悬浮状态,才可作高阻输入。总结来说:为了能使P0 口在输出时能驱动NMOS 电路和避免输入时读取数据出错,需外接上拉电阻。在设计中采用的是外加一个10K 排阻。此外,51 单片机在对端口P0P3 的输入操作上,为避免读错,应先向电路中的锁存器写入“1”,使场效应管截止,以避免锁存器为“0”状态时对引脚读入的干扰。4.5 L298N马达驱动电路电机驱动一般采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而可以采用L298N电路来驱动电机。通过单片机给予L298N电路PWM信号来控制小车的速度,起停。为了设计方便我采用了市面上已有的L298N电机驱动模块,其特点便宜稳定性高。为了是设计达到更加好的效果我选用了L298N马达驱动模块。其原理图如图16所示。实物图如图17所示。图16 L298N引脚图 图17 电机驱动模块5程序设计5.1主程序主程序流程图如图18所示。YESNO状态有变化?探头信号扫描程序与定时器初始化开始程序初始化做出逻辑判断 输出驱动指令储存当前状态图18 主程序流程图程序扫描后到的小车位置状态与对应输出的驱动指令对应关系如图21。黑色表示黑色轨迹。图21小车位置与响应动作对照主程序源程序如下:/* 函 数:main();* 功 能: 主函数 */void main (void)TMOD=0x01; /定时器初始化TH0=0xd8;TL0=0xf0;EA=1;ET0=1;P3=0;TR0=1; while(1) /主循环col=collect(); /探头扫描if(col!=sto)switch(col)case 0: P3=0;P3=1;break; /采样无出线,执行向前 case 1: if(P3=10); else P3=0;P3=5;break; /采样为右出线,执行左转case 4: if(P3=6) ; else P3=0;P3=9; break; /采样为左出线,执行右转case 3: P3=0;P3=10;break; /采样车头向右出线一半,执行左倒车case 6: P3=0;P3=6;break; /采样车头向左出线一半,执行右倒车case 7: P3=0;P3=2;break; /采样全出线,执行向后default:break;sto=col;5.2TCRT5000扫描程序TCRT500扫描程序流程图如图19所示。P1口程序拉高开始退出返回屏蔽后的值屏蔽平P1后五位读回P1口状态TCRT500扫描程序如下:/* 函 数:collect(); * 功 能: 采集红外探头信息,返回一个值 */char collect()uchar a,b;P1=255;a=P1;b=a&7;/屏蔽后5位return(b);结束语 整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。本系统能实现如下功能:自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。若有偏离,能够自动纠正,返回到预设轨道上来。从运行情况来看循迹的效果比较好,避障的效果不是很好,我认为是由于电源不能稳定而是的小车的速度不好控制,这也是我这次设计最大的误区,没有选取稳定的电源。我相信如果实验条件和时间的允许下我肯定能解决这一问题。 通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我在人生上又进了一步。也认识到很多的不足。参考文献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.5Yamato I ,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园教学总结10篇
- 最美中学生主题演讲稿(11篇)
- 金融员工试用期工作总结(34篇)
- 幼儿园自检自查报告
- 考试作弊的批评通报(3篇)
- 新教材高考地理二轮复习二7类选择题技法专项训练技法1排除法含答案
- 江西省上饶市广丰横山中学2024-2025学年度八年级上学期十一月物理测试卷
- 甘肃省永昌县第一高级中学2024-2025学年高一上学期期中考试化学试卷(含解析)
- 2023年高考语文二轮复习试题:压缩语段与扩展语句(新高考专用)含解析
- 2024年河北省公务员考试《行测》真题及答案解析
- 静配中心差错预防
- 高考模拟作文“‘情以物迁’与‘不以物喜不以己悲’”导写+
- 20222023学年浙江省宁波市鄞州实验中学八年级(上)期中语文试卷(解析)
- 人教版数学二年级下册德育渗透教案《统计》例2教学设计
- 超越指标:存量时代降本增效的利器
- 高夫品牌市场分析报告
- 国家临床重点专科建设项目申报书
- 成语故事一叶障目
- 美术培训幼儿园课件
- 《中小学书法教育指导纲要》解读
- 住院医师规范化培训临床技能核课件
评论
0/150
提交评论