智能巡线小车的设计方案.doc_第1页
智能巡线小车的设计方案.doc_第2页
智能巡线小车的设计方案.doc_第3页
智能巡线小车的设计方案.doc_第4页
智能巡线小车的设计方案.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

智能巡线小车的设计方案1.1 智能小车的意义和作用自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。避障控制系统是基于自动导引小车(AVGauto-guide vehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。使用传感器感知路线和障碍并作出判断和相应的执行动作。该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、CPU。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源,直接选择有PWM功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到实际情况,本文选择第二种方案。CPU使用STC89C52单片机,配合软件编程实现。1.2 智能小车的现状现智能小车发展很快,从智能玩具到其它各行业都有实质成果。其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几届的电子设计大赛智能小车又在向声控系统发展。比较出名的飞思卡尔智能小车更是走在前列。我此次的设计主要实现循迹、检测铁片、显示小车行走时间这三个功能。1.3 论文各部分的主要内容第1章对智能循迹小车意义和作用,现状进行简单阐述。第2章介绍了该智能循迹小车系设计方案比较和选择,分析了各模块的功能。第3章阐述了智能小车系统的硬件电路的设计,其中包括电源模块、路面检测模块、单片机最小系统、电机驱动模块,以及一些辅助电路。第4章首先介绍了该系统的软件编程,以及程序调试过程中所用到的程序调试软件及其调试环境。最后总结部分说明了本论的主要内容,举出了在系统测试过程中所发现的问题,并提出了可能的解决方案。2 方案论证与选择2.1 任务设计一个基于单片机控制的自动寻迹小车,使小车能够自动检测地面黑色轨迹,并沿着黑色车轨迹行驶。系统方案方框图如图2.1所示检测黑线软件控制驱动电机控制小车图2.1 小车工作原理框图设计要求:基本要求:实现小车的自动循迹,能前进、左转弯、右转弯、后退,检测沿途的铁片并显示铁片数目跟小车行走时间。(按照程序预设);扩展部分:实现小车的避障功能(如时间充足);主要的设计内容:1:电源模块的设计。2:路面检测模块的设计。3:单片机最小系统的设计。4:电机驱动模块的设计。2.2 电源模块的设计方案1:采用单电源供电,通过单电源同时对单片机和直流电机进行供电,此方案的优点是,减少机身的重量,操作简单,其缺点是,这样会使单片机的波动变大,影响单片机的性能,稳定性比较弱。方案2:采用双电源供电,通过两个独立的电源分别对单片机和直流电机进行供电,此方案的优点是,减少波动,稳定性比较好,可以让小车更好的运作起来,唯一的缺点就是会增加小车的重量。综合以上的优缺点,本设计决定采用第二种方案。2.3 路面检测模块的设计2.3.1 传感器类型选择循迹模块对于智能巡线小车来说就像来说有如人的眼睛对于人,是提供给小车的“眼睛”,此类光电传感器可以分为:可见光传感器、红外传感器、紫外线传感器等(此处不考虑光电耦合器件和位置敏感器件,由于它们占用太多的MCU资源,用起来不方便)。方案1:可见光传感器是基于可见光源的传感器,它结构简单、设计成熟,但是它工作在可见光波段,容易被外界干扰。方案2:红外光传感器。红外线是波长为 830nm950nm 的电磁波,自然环境物理在该波段的辐射量是很微弱的,所以红外反射式传感器受外界干扰较小,可靠性高。设计技术成熟,应用广泛。方案3:紫外线传感器。在自然环境下该类传感器很难受干扰,可靠性高,但是它价格昂贵。所以我们最终选择方案二,即红外光传感器作为传感器检测模块的基本器件。2.3.2 红外传感器方案循迹主要是检测路面情况,利用光的反射原理,当光线照射在白在线,反射量比较大,反之,照在黑在线,由于黑色对光的吸收,反射回来的量比较少,这样就可以判断黑带轨道的走向。为此我们产生以下三种方案。方案1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。因此我们考虑其它更加稳定的方案。方案2:用红外发射管和接收管自己制作光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我们放弃了这个方案。方案3:采用TCRT50000光电传感器,该传感器模块是基于TCRT5000红外光电传感器设计的一款红外反射式光电开关,传感器采用高发射功率红外光电二极管和高灵敏度光电晶体管组成,输出的信号经施密特电路整形,稳定可靠。2.3.3 电压比较器选择市场上可以做电压比较器的运放,实在是太多,根据实验室现有条件以及器件选择经济并且能满足使用要求的原则,本次电压比较器选择实验室现有的LM324,此器件价格便宜,并且带有真差动输入的四运算放大器。2.4 控制电机方案比较方案1:采用步进电机作为该系统的驱动电机。由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降,且在较高转速时会急剧下降,其转速较低,不适用于小车等有一定速度要求的系统。经综合比较考虑,我们放弃了此方案。方案2:采用小型直流减速电机。直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。为了能够较好的满足系统的要求,我们选择了方案2。2.5 电机驱动方案的比较方案1:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。方案2:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。方案3:采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 H型桥式电路(如图2.1a)。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的 PWM调速技术。现市面上有很多此种芯片,我选用了L298N(如图2.1b)。这种调速方式有调速特性优良、调整平滑、调速范围广、超载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。a H型桥式电路 b L298N实物图图2.12.6 主控制芯片选择方案1:可以采用ARM为系统的控制器,优点是该系统功能强大,片上外设集成度搞密度高,提高了稳定性,系统的处理速度也很高,适合作为大规模实时系统的控制核心。方案2:选用51系列的单片机,AT89S52单片机算术运算功能强,软件编程灵活、自由度大,功耗低、体积小、技术成熟,成本也比ARM低。根据自己的知识能力,实验室现有条件,选用STC89C52RC单片机作为本次毕业设计的主控芯片,而且此芯片烧程序也不需要专用的下载器,另一方面节省了成本,只要安装USB转串口驱动,在普通的计算机上就可以烧写程序,很方便。2.7 本章小结经过积极论证,最后采用以STC89C52单片机为控制核心,黑白线信号经过TCRT5000输出高低电压信号,再经过LM324电压比较器输出给单片机标准TTL电平信号,而单片机根据输入口高低电平的变化来执行相对应指令,使小车达到稳定的行驶。503 硬件电路的设计3.1 总体设计智能小车采用前轮驱动,后轮左右两边各用一个直流电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,前轮是万象轮,起支撑的作用。将循迹光电对管分别装在车体下的左中右,分别检测来自路面的信息,比如当只有左边的传感器检测到黑线的时候(即对应的输出是高电平的时候),通过主控制器控制左边的电机速度慢一点,同时右边的速度快一点,就可以完成小车的转弯,为了使小车平稳的过渡弯道,可以将相应的电机的占空比调节范围小一点,这样可以避免急转弯,对小车的稳定行驶也有作用的。STC89C52路面检测电路时钟电路复位电路电机驱动电路图3.1 硬件总体电路框图3.2 单片机最小系统此次设计所用的STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失内存制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。图3.2 STC89C52单片机3.2.1 时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图3.3(a) 所示,在XTAL1和XTAL2引脚上外接定时组件,内部振荡器就产生自激振荡。定时组件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.212MHz之间选择,电容值在530pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图33(b)所示,XTAL1接地,XTAL2接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。(a)内部方式时钟电路 (b)外部方式时钟电路图3.3 时钟电路本次采用的是内部方式。C1,C2为30PF的瓷片电容。3.2.2. 复位及复位电路(1)复位操作复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其它一些寄存器有影响,它们的复位状态如表一所示。表3.1 一些寄存器的复位状态寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H(2)复位信号及其产生RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为12MHz的晶振,则复位信号持续时间应超过2us才能完成复位操作。产生复位信号的电路逻辑如图3.4所示:图3.4 复位信号的电路逻辑图整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图3.5(a)所示。这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图3.5(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图3.5(c)所示:(a)上电复位 (b)按键电平复位 (c)按键脉冲复位图3.5复位电路上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。本系统的复位电路采用图3.5(a)上电复位方式。STC89C52具体引脚介绍如下: 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复图3.6 STC89C52引脚图位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部内存读选通信号EA/VPP(Pin31):程序内存的内外部选通,接低电平从外部程序内存读指令,如果接高电平则从内部程序内存读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。PO口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.7STC89C52主要内部资源如表二所示。表3.2 STC89C52内部资源主要功能特性兼容MCS51指令系统32个双向I/O口3个16位可编程定时/计数器中断2个串行中断2个外部中断源2个读写中断口线低功耗空闲和掉电模式8K可反复擦写Flash ROM256x8bit内部RAM时钟频率0-24MHz可编程UART串行通道共6个中断源3级加密位软件设置睡眠和唤醒功能3.3 路面检测模块3.3.1 传感器TCRT5000介绍TCRT5000红外光电传感器是一款红外反射式光电开关。传感器采用高发射功率红外光电二极管和高灵敏度光敏三极管组成,其输出信号经过施密特电路整形,稳定可靠。图3.7 红外光电传感器TCRT5000传感器的红外发射二极管不断的发射红外线,当发射出的红外线照射在黑色的物体上,由于黑颜色的物体反射基数低,没有反射回来或者反射回来的强度不够大时,光敏三极管一直处于关断状态,此时图3.6中4跟5之间的压降就比较大,经过稳定测试之后的压降大约在4.62V左右,当发射到白颜色的物体上的时候,由于白颜色反射基数大,足以是光敏三极管饱和,所以此时的上图中4跟6之间的压降比较低,经过稳定测试之后的压降在0.56V左右,变化较为明显。图3.8红外光电传感器的模型3.3.2比较器LM324LM324为四运放集成电路,采用14脚双列直插塑料封装。内部有四个运算放大器,有相位补偿电路。电路功耗很小,工作电压范围宽,可用正电源332V,或正负双电源15V15V工作。在黑线检测电路中用来确定红外接收信号电平的高低,以电平高低判定黑线有无。在电路中,LM324的一个输入端需接滑动变阻器,通过改变滑动变阻器的阻值来提供合适的比较电压。图3.9 LM324引脚图3.3.3具体电路通过TCRT5000检测黑线,输出接收到的信号给LM324,接收电压与比较电压比较后,输出信号变为标准TTL高低电平,再输入到单片机中,用以判定是否检测到黑线。图3.10 路面检测模块具体电路图参数解说:1:前面说到TCRT5000是由一个红外线发光二极管和一个光敏三极管组成,图3.11TCRT5000的红外发光二极管的伏安曲线(20摄氏度时) 如图所示,当红外发光管的电压达到1.3V左右的时候,流经红外发光管的电流是最大的,即此时的红外发光管的发射功率最大。传感器安装在小车的地盘,距离路面距离很短,再者对于小车的续航能力来说,功耗低的话续航能力好一点,鉴于此两方面的考虑,我们选择红外发射管压降在1.1V左右,也经过反复测试,此时的发射功率检测1cm左右距离的黑白线,效果较为明显,如果电源电压为5V,则分流电阻R=(5-1.2)/0.01=380奥姆,考虑到发光二极管发热以及二极管的阻抗,对于限流电阻R1,我们选择150奥姆,经过测试,TCRT5000也工作很稳定。2:对于分压电阻R2的选择,由于R2跟光敏三极管串联,所以R2的大小和接收管的电压变化有关系。初步选择R2=20k,经过测试,我们得出下面一组资料,当发光二极管的发射的红外光照射到黑线的时候,黑线将光线吸收,导致光敏三极管截止,此时加在图中的4、5点的压降为4.69V,当为白线时,4、5两点的压降在0.76V,那么输出给电压比较器异相端的电压就是在黑白两种状态下此分压电阻的压降,即黑线时为(5-4.69)=0.31V,白线时为(5-0.76)=4.24V,经过现场测试两者的电压出入不大,基本符合预想。3:参考电压的选择,从上面的测试,我们得出R1,R2为150,20k时TCRT5000检测黑线的时候输入给电压比较器的电压为0.27V,白线的时候是4.38V,所以我们将参考电压定为2V,即检测到白线的时候,参考电压小于异相端电压,所以输出为低电平,反之则为高电平。对于参考电压,我们选择10k电位器输出,要输出2V电压给电压比较器同相端,那么电位器的阻值分配为6k和4k,经过测试,为3.6k,分析原因,一是因为10k的电位器的全部阻值并不是很标准的10k,我拿到的为9.6k左右,还有此时加在电位器上的电压也并不是很准确的5V电压,所以才出现这样的情况。3.3.4传感器安装在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走,需要再车底盘安置三个传感器,装置位置如图3.6所示, 三个传感器,那就意味着八种1,0组合的状态,为了使小车平稳的转弯,设置“大拐”“小拐”,意思有左大拐,左小拐,右大拐,右小拐,直线前进,后退,还有两种无效的状态(101,111),下来有必要说下传感器的安装距离,为了检测的方便我们使小车的两个传感器之间的距离刚好大于黑线的距离,这样的目的就是,当一个传感器检测不到的时候,它旁边的传感器就要检测到黑线呢,这样就使传感器无盲区。左电机右电机后万向轮左传感器中传感器右传感器图3.12 传感器安装布局图3.3.5TTL电平TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑“1”,0V等价于逻辑“0”,这被称做TTL信号系统。TTL电平VCC是5V。当光电对管检测到黑线时,输出高电平,高于电压比较器的“+”输入端设定比较电压,相当于5V,等价于逻辑“1”; 当光电对管检测到白线时,输出低电平,低于电压比较器的“+”输入端设定比较电压,相当于0V,等价于逻辑“0”。TTL电路是电流控制器件,一般提供25毫安的驱动能力。TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。TTL输出低电平2.4V。在室温下,一般输出高电平是3.5V,输出低电平是0.2V。 TTL输入低电平 2.0V。所以,TTL器件输出的低电平要小于0.8V,高电平要大于2.4V。输入时,低于1.2V就认为是0,高于2.0V就认为是1。 3.4电源模块电源对于一个系统来说作用是巨大的,它是系统工作稳定的前提。下表是整个方案中需要的电源及电源值。表3.3本系统供电项目及数值电源供电专案 电源数值电机驱动芯片L298N +4.5V-+7VSTC单片机 +3.3V-+5.5V电压比较器LM324 +3V+32V直流减速电机 +6V-+24V对于电压比较器,我们希望比较出来的电平是TTL电平,这个输出电平高电平的电压值跟LM324的供电电压有关,如果供电电压为5V,由于比较器内部晶体管压降,则它输出高电平的电压值应该小于5V,大约保持在4.5V左右,所以我们选择给LM324+5V电压供电,此电压可以供给STC89C52、L298也很合适.对于电机,我们选择+12V电压。一路供给直流减速电机,一路经过稳压芯片LM2576输出+5V电压给LM324、L298、单片机(考虑到散热,我们选择LM2576,而放弃LM7805)下图就是电源原理图,输入是12V,输出是+5V。图3.13 12V电源转5V电源电路原理图3.5电机驱动模块3.5.1电机驱动芯片L298N电机驱动芯片L298N是SGS公司的产品,内部包含4信道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。其引脚排列如图3.14所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调节。图3.14 L298N引脚图通过单片机的I/O口输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,输入引脚与输出引脚的逻辑关系图为下表表3.4L298N输入输出也逻辑表使能端ENAIn1In2运转状态0停止110正转101反转111刹停100停止用一个L298N驱动左右两个电机,In1、In2控制左电机,In3、In4控制右电机,而使能端一直为高电平,采用In1、In2、In3、In4同时为0来达到电机的停止,从而是小车停止。图3.15 电机驱动电路图4 软件设计在进行单片机控制系统设计时,除了系统硬件设计以外,大量的工作就是如何让根据系统每一个现象或者作用设计应用程序。因此,软件设计在单片机控制系统设计中占有重要的地位。对于本系统,软件更为重要。本次软件设计需要完成以下两个任务。1:单片机根据传感器I/O口的输入状态,来相应的执行判断程序,来达到小车的前进,后退,停止;2:单片机两个I/O口同时产生两个占空比不相同的方波,来控制小车电机的车速,来达到小车的左转弯、右转弯;为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实际上就是完成一定功能,相对独立的程序段,这中程序设计方法叫做模块化程序设计法。模块化程序设计方法的主要优点是:1、 单个模块化起一个完整的程序易编写及调试;2、 模块可以共存,一个模块可以被多个任务在不同条件下调用;3、 模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序,寻迹子程序,调速子程序等构成。4.1PWM脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。随着电子技术的发展,出现了多种PWM技术,其中包括:相电压控制PWM、脉宽PWM法、随机PWM、SPWM法、线电压控制PWM等,而在镍氢电池智能充电器中采用的脉宽PWM法,它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周期、PWM的占空比而达到控制充电电流的目的。模拟信号的值可以连续变化,其时间和幅度的分辨率都没有限制。9V电池就是一种仿真器件,因为它的输出电压并不精确地等于9V,而是随时间发生变化,并可取任何实数值。与此类似,从电池吸收的电流也不限定在一组可能的取值范围之内。模拟信号与数字信号的区别在于后者的取值通常只能属于预先确定的可能取值集合之内,例如在0V, 5V这一集合中取值。模拟电压和电流可直接用来进行控制,如对汽车收音机的音量进行控制。在简单的模拟收音机中,音量旋钮被连接到一个可变电阻。拧动旋钮时,电阻值变大或变小;流经这个电阻的电流也随之增加或减少,从而改变了驱动扬声器的电流值,使音量相应变大或变小。与收音机一样,模拟电路的输出与输入成线性比例。尽管模拟控制看起来可能直观而简单,但它并不总是非常经济或可行的。其中一点就是,模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重(如老式的家庭立体声设备)和昂贵。模拟电路还有可能严重发热,其功耗相对于工作组件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。 通过以数字符方式控制模拟电路,可以大幅度降低系统的成本和功耗。此外,许多微控制器和DSP已经在芯片上包含了PWM控制器,这使数字控制的实现变得更加容易了。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。多数负载(无论是电感性负载还是电容性负载)需要的调制频率高于10Hz,通常调制频率为1kHz到200kHz之间。 许多微控制器内部都包含有PWM控制器。例如,Microchip公司的PIC16C67内含两个PWM控制器,每一个都可以选择接通时间和周期。占空比是接通时间与周期之比,调制频率为周期的倒数。执行PWM操作之前,这种微处理器要求在软件中完成以下工作: 1、设置提供调制方波的片上定时器/计数器的周期 2、 在PWM控制寄存器中设置接通时间 3、设置PWM输出的方向,这个输出是一个通用I/O管脚 4、启动定时器 5、使能PWM控制器本系统采用PWM来调节直流电机的速度。PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。4.2 主函数程序设计对于小车的行驶,我这样设想的,整个系统供上电之后,就不停的执行扫描端口,当此输入口为低电平时,意味着小车的开关已经按下,小车已经发动起来了,单片机执行相应的子程序,否则就一直扫描。这样比较贴合实际一些。同样的,当此输入口为高电平时,小车停止行驶。前面第2章讲到,L298N与单片机相连接的6个I/O口,in1in4是输出控制电机的端口,in5in6是使能端,in5控制in1和in2,in6控制in3和in4,只有当它们为高电平时,in1in4才输出有效,那么要达到两个电机同时转动,就必须使in5in6同时为高电平。对于小车停止,预想的是,当开关按下时,小车开始行驶,计数器也开始计数,当不再检测到黑线的时候就停止,这样,对于B部分的时间显示来说,可以设定外部中断,停止的时候定时器停止计数,在数码管上就显示当前计数值,即为小车行驶的时间。所以主函数可以这样写:Void mian()In5=1;In6=1; /L28N使能端,只有两者都为高电平时,in1in4输入的高低电平才有效/While(kaiguan=0)/“发动机钥匙”/Xunji();/循迹程序/总体程序流程图:结束停止NY是否检测到黑线Y转向子程序是否偏离黑线继续直线前进NYN开关是否按下启动小车开始图4.1 程序主体流程图4.3 寻迹子函数程序设计寻迹,顾名思义,就是单片机寻找准确的路线,以达到精准的行驶,本设计采用黑线行驶,三个TCRT5000红外传感器,分别连接STC单片机的P1.0、P1.1、P1.2口,对于三个传感器就有=8种状态,根据现实情况,在下表中给予统一编码。表4.1传感器输出信号编码传感器状态(a、b、c)小车状态000停止001右大拐弯010直线前进011右小拐弯100左大拐弯101直线前进(此状态不可能出现)110左小拐弯111后退根据上表,得出寻迹子程序流程图寻迹子程序传感器输出状态111110101100011010001000后退左小拐直向前左大拐右小拐直向前右大拐停止跳出子程序图4.2 转向子程序流程图基于上面所述,寻迹程序可以这样编写。void xunji() if(sensera=0)&(senserb=0)&(senserc=0) stop();/停止吧,因为没有黑线啦/ else if(sensera=0)&(senserb=0)&(senserc=1) PWMqianjin(7,3);/小车即将向左偏离黑线,右大转弯吧/ else if(sensera=0)&(senserb=1)&(senserc=1) PWMqianjin(6,4);/小车较偏离左边,希望右小转弯/ else if(sensera=1)&(senserb=0)&(senserc=0)PWMqianjin(3,7); /小车即将向右偏离黑线,左大转弯吧/else if(sensera=1)&(senserb=1)&(senserc=1)houtui(5,5);/小车可能横跨在黑线上啦,此时后退吧,但是一般此种情况很难出现,早就被我扼杀在萌芽状态啦/else if(sensera=1)&(senserb=1)&(senserc=0)PWMqianjin(4,6); /小车较偏离右边,希望左小转弯/ else PWMqianjin(5,5); /此刻,黑线被压在小车的中央,全速前进/4.4 调速子程序小车能稳定行驶,转弯是在所难免的,对于调速,采用P20P23输出不同占空比的方波,来控制小车两个轮子的速度,对于转弯的方案,有以下几种。方案1:遇到转弯的时候,一个轮子降低速度,另外一个停止,优点是转弯的时候一个轮子行驶,不需要考虑同时输出不同占空比的方波的问题,这样单片机控制简单一些,缺点则是,小车在转弯的时候一直有个电机会停止与启动,电机频繁启动对电机寿命会有影响,另外小车行驶起来让人感觉比较“冲”,就是转弯过程中不细腻。方案2:遇到需要转弯的时候,将一个轮子的速度降低,另一个轮子速度提高,只要两个轮子的占空比之差在一个合理的范围之内,转弯就合情合理啦。接下来就是要解决怎么样使单片机两个I/O口同时产生不同占空比的方波,根据自己此段时间的努力,1:采用定时器,开始就开启定时,当传感器输出口达到某一状态时,给计数器装在一定的数值,此数值代表不同的占空比,在定时器中断程序里面取反。2:采用赋值延时,给驱动芯片端口分别赋值,延时使相应的端口输出不同占空比的方波。综合系统难易程度,本次选择赋值延时方案产生两个不同占空比的方波。所以调速子程序可以这样编写。void PWMqianjin(uchar x1,uchar x2)/前进程序,x1,x2代表左右电机的占空比/uchar a,b,n=100;in1=0;in4=0;/左电机反转,右电机正转=前进,意味着in1=in4=0,in2和in3输出方波/while(n-)in2=1;in3=0;for(a=x1;a0;a-);in2=0;in3=1;for(b=x2;b0;b-);void houtui(uchar x1,uchar x2)/后退函数/uchar c,d,m=100;in2=0;in3=0;/左电机正转,右电机反转=后退,意味着in2=in3=0,in1和in4输出方波/while(m-)in1=0;in4=1;for(c=x1;c0;c-);in1=1;in4=0;for(d=x2;d0;d-);void stop()/停车函数,采用软件和硬件停车,“钥匙”关跟检测不到黑线的时候,就停车/in1=0;in2=0;in3=0;in4=0;5 整体调试5.1 测试方法及仪器:测试仪器测试仪器暴扣数字万用表,示波器,直流稳压电源等。测试方法数字万用表主要用来测试分立元件的电阻、压降、漏电流、截止/导通状态等参数;示波器用于测试PWM输出口的波形。直流稳压电源主要用来给系统提供精准的电压源。 此设计是单片机应用系统的开发性实验。通过此设计可知在单片机系统开发过程应注意以下事项。1)硬件的选择。选择适合设计目地的元器件是一个重要的方设计环节。不能以元器件是否是最高性能作为选择元器件的标准。往往高性能器件的价格也是较高的。应根据项目设计的需要选择元器件,能够满足设计需要作为标准选择元器件。2)因为单片机系统设计是硬件和软件相结合的设计,所以系统和硬件和软件必须紧密配合,协调一致。应不断调整硬软件设计,以提高系统工作效率。单片机的应用如今已经是在工业,电子等方面展示出了它的优越性,利用单片机在设计电路逐渐成了趋势,它与外围电路再加上软件程序就可以构建任意的产品,使得本设计成为现实。随着单片机的日益发展,它必将在未来显示出更大的活力,为电子设计更多精彩。对于数字电压表而言,功能将会越来越强大。我们在设计的过程中发现了自身知识的不足,也发现我们必须具备专业基础知识才能成功的设计出一件合格的东西。这次课程设计收获很多,体会也很深刻,并且对我们所学的东西也产生了浓厚的兴趣。在设计过程中,也学会了很多新的东西,如对一些初次使用的模块的认识与掌握。当然最重要的是学到了关于基本电子设计的一些方法,同时也加深了对一些常用的电子元件的理解以及其基本用法的掌握。通过多次调试,发现小车有以下几方面的问题及因素影响:(1)自制导线不合格。究其原因,一方面是对压线钳的熟练及合理运用方面不够灵活,另一方面是对专业基本功掌握不够。(2)程序逻辑方面不够严谨,导致在行驶过程中不按预期的路线去行驶。究其原因,一方面由于电路自身缺陷导致程序有误,另一方面由于C语言掌握不够,需要加强。针对以上问题,改进方案如下:(1)解决方案:先用万用表对自制导线进行测量,检测合格则使用。(2)解决方案:先对程序进行软件调试,进行单步运行,软件调试成功在进行硬件调试,最终实现预期要求。 通过本次毕业设计,不仅是对我们课本所学知识的考查,更是对我的自学能力和收集资料能力以及动手能力的考验。本次毕业设计使我们对一个项目的整体设计有了初步认识,还认识了几种传感器,并能独立设计出其接口电路,本次毕业设计使我们意识到了实验的重要性,在硬件制作和软件调试的过程中,出现了很多问题,最终都是通过实验的方法来解决的。还有以前对程序只是一个很模糊的概念,通过这次的课题设计使我对程序完全有了一个新的认识,并能使用C熟练的进行编程了。通过本次课题设计,极大的锻炼了我们的思考和分析问题的能力,并对单片机有了一个更深的认识。总之,在毕业设计的过程中,无论是对于学习方法还是理论知识,我们都有了新的认识,受益匪浅,这将激励我们在今后再接再厉,不断完善自己的理论知识,提高实践运作能力。致谢历时三个月的毕业设计已告一段落。进过自己不断的搜索努力以及梁老师的耐心指导和热情帮助,本设计已经基本完成。在这段时间里,梁老师严谨的治学态度和热忱的工作作风令我十分钦佩,他的指导使我受益匪浅。同时为我们开放了实验室,也为我提供良好的实习场地。在此对梁应选老师表示深深的感谢。通过本次毕业设计,使我深刻地认识到学号专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学四年的学习成果。虽然在这次设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这三个月的设计是对过去所学的知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。最后感些评阅老师百忙之中抽出时间对本论文进行了评阅!参考文献1 华成英,童诗白.模拟电子技术基础(第4版)M.北京:高等教育出版社,2006.423页-433页.2 李朝青.单片机原理及接口技术(第3版)M.北京:北京航空航天大学出版社,2006.3 张国雄.测控电路(第3版)M.北京:机械工业出版社,2008.232页-242页.4 马忠梅,籍顺心,张凯等.单片机的C语言应用程序设计(第4版)M.北京:北京航空航天大学出版社,2006.5 浦昭邦.光电测试技术M.北京:机械工业出版社,2004.6 郭天祥.51单片机C语言教程入门、提高、开发、拓展全攻略M.北京:电子工业出版社,2009.7 谭浩强.C程序设计(第三版)M.北京:清华大学出版社,2005.8 张俊.匠人手记:一个单片机工作者的实践与思考M.北京:北京航空航天大学出版社,2008.9 王玮.感悟涉及电子设计的经验与哲理M.北京:北京航空航天大学出版社,2009.10 全国大学生电子设计竞赛组委会.第五届全国大学生电子竞赛获奖作品选编M.北京:北京理工大学出版社,2003.11 谢自美.电子线路设计实验测试M.武汉:华中科技大学出版社,2000.12 吕惠智.红外技术M哈尔滨:哈尔冰工程大学出版社,1998.13 Yamato.New conversion system for UPS using high fre2 quency linkJ1 IEEE PESC ,1988 :210-320.14 Romon Pallas-Areny,John G.Websters(美).传感器和信号调节M.张伦译.北京:清华大学出版社,2003.15 Borenstein J, Koveny. Real2time obstacle avoidance for fast mo bile robotsJ.

温馨提示

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

评论

0/150

提交评论