智能壁障小车控制系统设计 2_第1页
智能壁障小车控制系统设计 2_第2页
智能壁障小车控制系统设计 2_第3页
智能壁障小车控制系统设计 2_第4页
智能壁障小车控制系统设计 2_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第一章绪论 11.1智能小车的意义和作用 11.2智能小车的现状 1第二章方案设计与论证 22.1主控系统 22.2循迹模块 22.3避障模块 32.4电机驱动模块 42.5总体设计框图 4第三章硬件设计 53.1单片机控制模块 53.1.1时序电路 83.1.2复位及复位电路 93.1.3烧写接口电路 103.2寻迹模块 113.3避障模块 123.4电机驱动模块 143.5LCD显示模块 163.6电源模块 183.7蜂鸣报警电路 20第四章控制算法 21第五章软件设计 225.1主程序流程图 225.2电机驱动程序 235.3红外循迹程序流程图 24第六章硬件调试 266.1单元模块的测试 266.2软件调试 26第七章结论 27致谢 28参考文献 29第一章绪论1.1智能小车的意义和作用自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。[1]机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。避障控制系统是基于自动导引小车(AVG—auto-guidevehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。使用传感器感知路线和障碍并作出判断和相应的执行动作。[2]该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、CPU。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源,直接选择有PWM功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到实际情况,本文选择第二种方案。CPU使用STC89C52单片机,配合软件编程实现。1.2智能小车的现状现智能小车发展很快,从智能玩具到其它各行业都有实质成果。其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几届的电子设计大赛智能小车又在向声控系统发展。比较出名的飞思卡尔智能小车更是走在前列。[3]第二章方案设计与论证本设计主要是制作一款能进行智能判断并能做出正确反应的小车。小车主要具有以下几个功能:自动避障功能;寻迹功能(按路面的黑色轨道行驶);显示当前运行状态功能。2.1主控系统根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。据此,拟定了以下两种方案并进行了综合的比较论证,具体如下:方案一:选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较大的劣势。同时,CPLD的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案,进而提出了第二种设想。方案二:采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。采用STC89C52单片机来作为整机的控制单元。红外线探头采用市面上通用的发射管与接收头,经过比较芯片调制处理后由控制系统接收。此系统比较灵活,采用软件来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,能很好的满足题目的要求。比较以上两种方案的优缺点,方案二简洁灵活可扩展性好,更能达到题目的要求,因此采用方案二来实现。2.2循迹模块方案一:采用简易光电传感器结合外围电路探测,但实际效果并不理想,对行驶过程中的稳定性要求很高,且误测几率较大、易受光线环境和路面介质影响。在使用过程极易出现问题,而且容易因为该部件造成整个系统的不稳定。故最终未采用该方案。方案二:采用两只红外对管,分别置于小车车身前轨道的两侧,根据两只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,测试表明,只要合理安装好两只光电开关的位置就可以很好的实现循迹的功能。方案三:采用三只红外对管,一只置于轨道中间,两只置于轨道外侧,当小车脱离轨道时,即当置于中间的一只光电开关脱离轨道时,等待外面任一只检测到黑线后,做出相应的转向调整,直到中间的光电开关重新检测到黑线(即回到轨道)再恢复正向行驶。现场实测表明,小车在寻迹过程中有一定的左右摇摆不定,虽然可以正确的循迹但其成本与稳定性都次与第二种方案。通过比较,选取第二种方案来实现循迹。图2.1红外对管2.3避障模块方案一:采用超声波避障,超声波受环境影响较大,电路复杂,而且地面对超声波的反射,会影响系统对壁障的判断。方案二:采用红外线壁障,利用单片机来产生38KHz信号对红外线发射管进行调至发射,发射出去的红外线遇到避障物的时候反射回来,红外线接收管对反射回来信号进行调制,输出比较电平。外界对红外信号的干扰比较小,且易于实现,价格也比较便宜综合比较采用方案二2.4电机驱动模块方案一:采用继电器对电动机的开和关进行控制,通过开关的切换对电机的速度进行调整。这个方案的优点是电路较为简单,实现容易;缺点是继电器的响应速度慢、机械结构易损坏、寿命较短。方案二:采用DSP芯片,配以电机控制所需要的外围功能电路,通过数控电压源调节电机运行速度,实现控制物体的运动轨迹。该方案优点是体积小、结构紧凑、使用便捷、可靠性提高。但系统软硬件复杂、成本高。方案三:采用专用芯片L298N。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。基于上述理论分析和实际情况,拟定选择方案三2.5总体设计框图此系统是以单片机为控制核心,处理执行各个外部传感器检测得到的电平信号,最后把处理结果传递给小车电机,使其得到相应效果。SStc89c52循迹红外对管时钟电路复位电路报警电路电机驱动避障红外对管LCD1602图2.2总体设计框图第三章硬件设计3.1单片机控制模块 本模块采用52系列单片机作为核心处理器。单片机控制系统基本由最小系统和外围信号I/O口组成,其中最小系统包括电源,CPU时序(一般使用11.0592M或者12M和30P电容组成),复位电路。有了以上三块,单片机就能够正常工作了。STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。[5]主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。功能特性描述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字节在系统可编程Flash。P0口: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.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在线系统编程用)P1.6MISO(在线系统编程用)P1.7SCK(在线系统编程用)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口也接收一些控制信号。[7]图3.1单片机最小系统STC89C52具体介绍如下:①主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线②外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端③控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。④可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7STC89C52主要功能如表一所示。表3.1STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写FlashROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能3.1.1时序电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图3.2(a)所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。[10]外部方式的时钟电路如图3.2(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。(a)内部方式时钟电路(b)外部方式时钟电路图3.2时钟电路3.1.2复位及复位电路(1)复位操作复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表一所示。表3.2一些寄存器的复位状态寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H(2)复位信号及其产生RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的。这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。[11]

3.1.3烧写接口电路 MAX232该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口RS电平是-10V+10V,而一般的单片机应用系统的信号电压是TTL电平0+5V。MAX232就是用来进行电平转换的,该器件包含2个驱动器2个接收器和一个电压发生器电路提供TLA/EIA-232-F电平。[12]主要特点单5V电源工作LinBiCMOSTM技术两个驱动器及两个接收器±30V输入电平低电源电流:典型值是8mA符合甚至优于ANSI标准TLA/EIA-232-F及ITU推荐标准V.28ESD保护大于MIL-STD-883标准的2000V STC89C52支持串口下载,故本系统采用串口烧写程序,利用MAX232芯片进行电平转换。图3.3烧写接口电路

3.2寻迹模块寻迹是指小车在白色地板上循黑线行走,本系统采用的方法是红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车的接收管接收;如果遇到黑线则红外光被吸收,小车生的接收管接收不到红外光。由此过程来改变接收管的输出电压,单片机以电压的变化为依据来执行小车电机确定行走路线。[13]图3.4红外寻迹安装图图3.5寻迹模块原理图3.3避障模块光谱位于红色光之外,波长为0.76~1.5μm,比红色光的波长还长,这样的光被称为红外线。红外遥控是利用红外线进行传递信息的一种控制系统,红外遥控具有抗干扰,电路简单,编码及解码容易,功耗小,成本低的优点,目前几乎所有的视频和音频设备都支持这种控制方式。[14]发射系统目前有很多种芯片可以实现红外发射,可以根据选择发出不同种类的编码。由于发射系统一般用电池供电,这就要求芯片的功耗要很低,芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗芯片所用的晶振应该有足够的耐物理撞击能力,不能选用普通的石英晶体,一般是选用陶瓷共鸣器,陶瓷共鸣器准确性没有石英晶体高,但通常一点误差可以忽略不计。红外线通过红外发光二极管(LED)发射出去,红外发光二极管内部材料和普通发光二极管不同,在其两端施加一定电压时,它发出的是红外线而不是可见光。[15]红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。内部电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。一体化红外接收头,如图3.8所示图3.6红外接收头本系统采用红外线壁障,利用一管发射一管接收,接受管对外界红外线的接收有无来判断障碍物,这种方式干扰小,而且易于实现。由于红外线受到外界可见光的影响较大,因此用38KHz调制信号,红外发射二极管发射红外线,在没有遇到障碍物时会输出一个高电平信号,送至单片机中I/O口,如果遇到障碍物后,光线反射回来,接收的光电二极管就会导通,这时候就会输出一个低电平,送至单片机I/O口。图3.7红外避障检测电路

3.4电机驱动模块步进电动机是将电脉冲激励信号转换成相应的角位移或线位移的离散值控制电动机,这种电动机每当输入一个电脉冲就动一步,所以又称脉冲电动机。步进电动机(steppingmotor)把电脉冲信号变换成角位移以控制转子转动的微特电机。在自动控制装置中作为执行元件。每输入一个脉冲信号,步进电动机前进一步,故又称脉冲电动机。步进电动机多用于数字式计算机的外部设备,以及打印机、绘图机和磁盘等装置。[16]二相电机工作方式有二相四拍和二相八拍二种,具体分配如下:二相四拍为A,B,A-,B-.或者AB,BA-,A-B-,B-A.步距角为1.8度;二相八拍为A,AB,B,BA-,A-,A-B-,B-,B-A.步距角为0.9度,反过来就反转了。图3.8步进电机驱动电路

L298N为SGS-THOMSONMicroelectronics所出产的双全桥步进电机专用芯片,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压,大电流双全桥驱动器,接收标准TTL逻辑准位信号,可驱动46V2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号。[18]图3.9L298引脚图

3.5LCD显示模块本系统采用采用型号为LCD1602的液晶显示器进行小车行车时间和行程的显示,其电路如图所示。图3.10液晶显示图3.111602实物图1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。[19]因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。1602通过D0~D7的8位数据端传输数据和指令。显示模式设置:(初始化)00110000[0x38]设置16×2显示,5×7点阵,8位数据接口;显示开关及光标设置:(初始化)00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)000001NSN=1(读或写一个字符后地址指针加1&光标加1),N=0(读或写一个字符后地址指针减1&光标减1),S=1且N=1(当写一个字符后,整屏显示左移)s=0当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。[19]

3.6电源模块 由于系统中采用了5v和12v两种电压,所以需要将12v转换为5v电压。本设计利用LM2576进行电压的转换。 LM2576系列的稳压管是单片集成电路,能够提供降压开关稳压器的各种功能,能驱动3A的负载,有优异的线性和负载能力,这些器件的固定输出电压有3.3v5v12v,还有可调整输出的型号。[16]LM2576的特性如下:1)有3.3V、5V、12V、15V和可调电压输出多种系列;2)输出电压可调的范围为1.23V~37V(HV型号的可达57V),负载电压的输出容差最大为±4%;3)最少只需要4个外围元件,可达3A的输出电流4)宽的输入电压范围,HV型号甚至可达40V~60V;5)内部振荡器产生52KHz的固定频率;6)可用TTL电平关闭输出,低功耗待机模式,典型待机电流为50μA;7)BUCK式降压器,较高的转换效率;8)过热和过流保护;9)可实现Buck-Boost式正-负电压转换器。2、LM2576的管脚1)VIN—输入电压端,为减小输入瞬态电压和给调节器提供开关电流,此管脚应接旁路电容CIN;2)OUTPUT—稳压输出端,输出高电压为(VIN-VSAT),输出低电压为-0.5V。3)GND—电路地;4)FEEDBACK—反馈端;5)ON/OFF—控制端,高电平有效,待机静态电流仅为75μA。3、外围元件的选择:1)输入电容CIN:要选低ESR的铝或钽电容作为旁路电容,防止在输入端出现大的瞬态电压。还有,当你的输入电压波动较大,输出电流有较高,容量一定要选用大些,470μF--10000μF都是可行的选择;电容的电流均方根值至少要为直流负载电流的1/2;基于安全考虑,电容的额定耐压值要为最大输入电压的1.5倍。千万不要选用瓷片电容,会造成严重的噪声干扰!Nichicon的铝电解电容不错。[20]2)续流二极管:首选肖特基二极管,因为此类二极管开关速度快、正向压降低、反向恢复时间短,千万不要选用1N4000/1N5400之类的普通整流管!3)储能电感:建议好好看看datasheet中的电感选择曲线,要求有高的通流量和对应的电感值,也就是说,电感的直流通流量直接影响输出电流。为什么呢?LM2576既可工作于连续型也可非连续型,流过电感的电流若是连续的为连续型,电感电流在一个开关周期内降到零为非连续型。4)输出端电容COUT:推荐使用1μF--470μF之间的低ESR的钽电容。若电容值太大,反而会在某些情况(负载开路、输入端断开)对器件造成损害。COUT用来输出滤波以及提高环路的稳定性。如果电容的ESR太小,就有可能使反馈环路不稳定,导致输出端振荡。这几乎是稳压器的共性,包括LDO等也有这一现象。图3.12电源电路3.7蜂鸣报警电路本设计采用电磁式蜂鸣器作为出错报警提示。单片机的P2.5口通过NPN型三极管驱动蜂鸣器。当P2.5输出高电平时,三极管导通,蜂鸣器发出报警声。图3.13蜂鸣报警器电路

第四章控制算法比例,积分,微分(PID)是建立在经典控制理论基础上的一种控制策略。PID控制器作为最早实用化的控制器,已经有五十多年的历史,现在仍然是最广泛的工业控制器。PID控制器最大的特点是简单易懂,使用中不需要精确的系统模型等先决条件,因而成为最广泛的控制器。比例比例积分微分被控对象r(t)e(t)u(t)y(t)-+图4.1典型PID控制结构采用PID控制算法,如果某时刻检测到黑线偏左就要向左转弯;如果检测到黑线偏右就要向右转,偏得越多就要向黑线方向打越大的转角,这就是比例控制(P)。遗憾的是因为小车有惯性。假设黑线偏左,说明小车偏右了,需要左转,等到小车回到中心的时候,停止转舵,可是小车的惯性会使车身继续左转直到冲过黑线,黑线又偏右,然后控制过程反复,车身是在左右摇摆中向前行走的,这种摇摆叫做“超调”,超调越大,控制越不稳定,容易出轨。为了克服惯性,我们除了位置信息之外,还需要知道轨迹的变化趋势。我们可以用黑线位置的微分值来提前得到变化的趋势,用本次位置减去前次位置来求出差值,就大致知道偏移的变化趋势,将该差值和比例相加后一起作为控制量,即可实现提前控制,这就叫做比例微分控制。

第五章软件设计5.1主程序流程图本设计的主设计流程图如图4.1所示,当接通电源后小车运动,在行驶过程中,结合查询方式查询小车是否偏离黑线,并根据偏离方向执行执行对应的报警程序;当检测到障碍物时,会产生中断,执行对应的避障程序。开始开始小车运动是否遇到黑线是否遇障碍路线程序循迹子程序壁障子程序NNYY图5.1系统软件主流程图

5.2电机驱动程序voidgoahead(){s1=1;s2=0;s3=1;s4=0;}voidgoback(){s1=0;s2=1;s3=0;s4=1;}voidturnleft(){s3=1;s4=0;}voidturnright(){s1=1;s2=0;}voidstop(){en1=0;en2=0;}

5.3红外循迹程序流程图红外循迹检测机控制子程序流程图如图4.2所示。可以在小车车头的左右各装一个红外检测循迹电路,单片机的P2.0和P2.1在收到接收到的红外检测电路输出信号后,利用单片机控制电机在遇到障碍物时使小车转弯。YYNYN红外循迹子程序读取红外传感器值左边检测到黑线?右转右边检测到黑线?左转图5.2红外循迹流程图循迹程序:voidxunji(){if((left_red==1)&(right_red==1)){en1=1;en2=1;goahead();delay(150);en1=0;en2=0;delay(50);}elseif((left_red==0)&(right_red==1)){en1=0;en2=1; P0_0=!P0_0;turnleft();delay(150);en1=1;en2=0;delay(50);}elseif((left_red==1)&(right_red==0)){en1=1;en2=0;P0_1=!P0_1;turnright();delay(150);en1=0;en2=1;delay(50);}else{stop();} }

第六章硬件调试6.1单元模块的测试(1)电源电路测试:设计并搭好电源电路,并用万用表进行检测电路连接情况,在确定电路没问题后,同电源端通上电源,按下开关,观察发光二极管是否发生变化。(2)寻迹模块测试:在以连接好的光电寻迹电路中,通电后,在反射式光电传感器上面放一张白纸,用电压表测量LM393的输出端1号引脚是不是为高电平;在放一张贴有黑胶布的纸张或者是黑色的物品放在反射式光电传感器的感应部分,看电压表的的电压是否为低电平;来回移动带有黑胶布的纸张或黑色物品,看电压表的电压值是否高低电平的变化。(3)红外避障电路测试:首先在搭接好的电路中用万用表测量可调电阻的阻值将其调到10K欧姆;再用万用表在输出端测量未碰到障碍物时电压值是否为高电平,当碰到障碍物时,观察电压值是否为变为低电平。6.2软件调试当保证硬件电路正常工作的前提下,对软件开始进行调试。通过keill软件将主流程框图的步骤一步一步的将各个部分程序写好,通过仿真软件proteus在线下载调试,观察仿真情况是否和预计的要求一致。慢慢的完善了整个系统程序,在确定无误时,用编程将正确的程序写入STC89C52中,然后将芯片放入电路中使用,完成了软件的调试。第七章结论整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。本系统能实现如下功能:(1)自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道,实现直道和弧形轨道的前进。若有偏离,能够自动纠正,返回到预设轨道上来。(2)当小车探测到前进前方的障碍物时,可以自动报警调整,躲避障碍物,从无障碍区通过。小车通过障碍区后,能够自动循迹(3)自动检测停车线并自动停车。从运行情况来看循迹的效果比较好,避障的效果不是很好,我认为是由于电源不能稳定而是的小车的速度不好控制,这也是我这次设计最大的误区,没有选取稳定的电源。我相信如果实验条件和时间的允许下我肯定能解决这一问题。通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我在人生上又进了一步。也认识到很多的不足。

致谢在这里首先要感谢邹稷老师对我毕业设计的指导和帮助。老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论