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

下载本文档

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

文档简介

1、智能巡线小车的设计方案1.1智能小车的意义和作用自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像管或 CCD,目前

2、的 CCD已能做到自动聚焦。但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。避障控制系统是基于自动导引小车( AVGauto-guide vehicle )系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。使用传感器感知路线和障碍并作出判断和相应的执行动作。该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、 CPU。机器人要实现自动避障功能,还可以

3、扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源, 直接选择有 PWM功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到实际情况,本文选择第二种方案。 CPU使用 S

4、TC89C52单片机,配合软件编程实现。1.2 智能小车的现状现智能小车发展很快, 从智能玩具到其它各行业都有实质成果。其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几届的电子设计大赛智能小车又在向声控系统发展。比较出名的飞思卡尔智能小车更是走在前列。我此次的设计主要实现循迹、检测铁片、显示小车行走时间这三个功能。1.3 论文各部分的主要容第 1章对智能循迹小车意义和作用,现状进行简单阐述。第 2章介绍了该智能循迹小车系设计方案比较和选择,分析了各模块的功能。第 3章阐述了智能小车系统的硬件电路的设计,其中包括电源模块、路面检测模块、单片机最小系统、电机驱动模块,以及一些辅助电

5、路。第 4章首先介绍了该系统的软件编程,以及程序调试过程中所用到的程序调试软件及其调试环境。最后总结部分说明了本论的主要容,举出了在系统测试过程中所发现的问题,并提出了可能的解决方案。2 方案论证与选择2.1 任务设计一个基于单片机控制的自动寻迹小车,使小车能够自动检测地面黑色轨迹,并沿着黑色车轨迹行驶。系统方案方框图如图2.1 所示检测黑线软件控制驱动电机控制小车图 2.1小车工作原理框图设计要求:基本要求:实现小车的自动循迹,能前进、左转弯、右转弯、后退,检测沿途的铁片并显示铁片数目跟小车行走时间。 (按照程序预设);扩展部分:实现小车的避障功能(如时间充足);主要的设计容 :1:电源模块

6、的设计。2:路面检测模块的设计。3:单片机最小系统的设计。4:电机驱动模块的设计。2.2 电源模块的设计方案 1:采用单电源供电,通过单电源同时对单片机和直流电机进行供电,此方案的优点是,减少机身的重量,操作简单,其缺点是,这样会使单片机的波动变大,影响单片机的性能,稳定性比较弱。方案 2:采用双电源供电, 通过两个独立的电源分别对单片机和直流电机进行供电,此方案的优点是,减少波动,稳定性比较好,可以让小车更好的运作起来,唯一的缺点就是会增加小车的重量。综合以上的优缺点,本设计决定采用第二种方案。2.3 路面检测模块的设计传感器类型选择循迹模块对于智能巡线小车来说就像来说有如人的眼睛对于人,是

7、提供给小车的“眼睛”,此类光电传感器可以分为: 可见光传感器、 红外传感器、 紫外线传感器等 (此处不考虑光电耦合器件和位置敏感器件, 由于它们占用太多的 MCU资源,用起来不方便)。方案 1:可见光传感器是基于可见光源的传感器,它结构简单、设计成熟,但是它工作在可见光波段,容易被外界干扰。方案 2:红外光传感器。红外线是波长为 830nm950nm 的电磁波,自然环境物理在该波段的辐射量是很微弱的,所以红外反射式传感器受外界干扰较小,可靠性高。设计技术成熟,应用广泛。方案 3:紫外线传感器。在自然环境下该类传感器很难受干扰,可靠性高,但是它价格昂贵。所以我们最终选择方案二, 即红外光传感器作

8、为传感器检测模块的基本器件。红外传感器方案循迹主要是检测路面情况,利用光的反射原理,当光线照射在白在线,反射量比较大,反之,照在黑在线,由于黑色对光的吸收,反射回来的量比较少,这样就可以判断黑带轨道的走向。为此我们产生以下三种方案。方案 1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。因此我们考虑其它更加稳定的方案。方案 2:用红外发射管和接收管自己

9、制作光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平, 若接收不到发射管发出的光线则检测出黑线继而输出高电平。这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我们放弃了这个方案。方案 3:采用 TCRT50000光电传感器,该传感器模块是基于 TCRT5000红外光电传感器设计的一款红外反射式光电开关, 传感器采用高发射功率红外光电二极管和高灵敏度光电晶体管组成,输出的信号经施密特电路整形,稳定可靠。电压比较器选择市场上可以做电压比较器的运放,实在是太多,根据实

10、验室现有条件以及器件选择经济并且能满足使用要求的原则,本次电压比较器选择实验室现有的LM324,此器件价格便宜,并且带有真差动输入的四运算放大器。2.4 控制电机方案比较方案 1:采用步进电机作为该系统的驱动电机。由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降,且在较高转速时会急剧下降,其转速较低,不适用于小车等有一定速度要求的系统。经综合比较考虑,我们放弃了此方案。方案 2:采用小型直流减速电机。直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其部由高速电动机提供原始动力,带动变速(

11、减速)齿轮组,可以产生较大扭力。为了能够较好的满足系统的要求,我们选择了方案2。2.5 电机驱动方案的比较方案 1:采用继电器对电动机的开或关进行控制 , 通过开关的切换对小车的速度进行调整 . 此方案的优点是电路较为简单 , 缺点是继电器的响应时间慢 , 易损坏 , 寿命较短 , 可靠性不高。方案 2:采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。方案 3:采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简

12、单,加速能力强,采用由达林顿管组成的H 型桥式电路 ( 如图 2.1a) 。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H 型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。现市面上有很多此种芯片,我选用了L298N(如图 2.1b) 。这种调速方式有调速特性优良、调整平滑、调速围广、超载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。a H 型桥式电路b L29

13、8N实物图图 2.12.6 主控制芯片选择方案 1:可以采用 ARM为系统的控制器,优点是该系统功能强大,片上外设集成度搞密度高,提高了稳定性,系统的处理速度也很高,适合作为大规模实时系统的控制核心。方案 2:选用 51 系列的单片机, AT89S52单片机算术运算功能强,软件编程灵活、自由度大,功耗低、体积小、技术成熟,成本也比ARM低。根据自己的知识能力, 实验室现有条件, 选用 STC89C52RC单片机作为本次毕业设计的主控芯片,而且此芯片烧程序也不需要专用的下载器,另一方面节省了成本,只要安装 USB转串口驱动,在普通的计算机上就可以烧写程序,很方便。2.7 本章小结经过积极论证,最

14、后采用以 STC89C52单片机为控制核心, 黑白线信号经过 TCRT5000 输出高低电压信号,再经过 LM324电压比较器输出给单片机标准 TTL电平信号,而单片机根据输入口高低电平的变化来执行相对应指令,使小车达到稳定的行驶。3 硬件电路的设计3.1 总体设计智能小车采用前轮驱动,后轮左右两边各用一个直流电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,前轮是万象轮,起支撑的作用。将循迹光电对管分别装在车体下的左中右,分别检测来自路面的信息,比如当只有左边的传感器检测到黑线的时候(即对应的输出是高电平的时候),通过主控制器控制左边的电机速度慢一点,同时右边的速度快一点,就可以完

15、成小车的转弯,为了使小车平稳的过渡弯道,可以将相应的电机的占空比调节围小一点,这样可以避免急转弯,对小车的稳定行驶也有作用的。路面检测电路复位电路图 3.1硬件总体电路框图STC89C523.2 单片机最小系统时钟电路电机驱动电路此次设计所用的STC89C52是一种带8K 字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programmable and Erasable Read Only Memory)的低电压,高性能COMOS8的微处理器, 俗称单片机。该器件采用 ATMEL搞密度非易失存制造技术制造, 与工业标准的 MCS-51指令集和输出管脚相兼容。图 3.2 STC89C5

16、2 单片机时钟电路STC89C52部有一个用于构成振荡器的高增益反相放大器,引脚 XTAL1和 XTAL2分别是此放大器的输入端和输出端。时钟可以由部方式产生或外部方式产生。部方式的时钟电路如图 3.3(a)所示,在 XTAL1和 XTAL2引脚上外接定时组件,部振荡器就产生自激振荡。定时组件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2 12MHz之间选择,电容值在 530pF 之间选择,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图33(b)所示, XTAL1接地, XTAL2接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MH

17、z的方波信号。片时钟发生器把振荡频率两分频,产生一个两相时钟P1 和 P2,供单片机使用。( a)部方式时钟电路( b)外部方式时钟电路图 3.3时钟电路本次采用的是部方式。 C1, C2为 30PF的瓷片电容。复位及复位电路( 1)复位操作复位是单片机的初始化操作。 其主要功能是把 PC初始化为 0000H,使单片机从 0000H 单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除 PC之外,复位操作还对其它一些寄存器有影响,它们的复位状态如表一所示。表 3.1 一些寄存器的复位状态寄存器复位状态寄存器复位状

18、态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H(2)复位信号及其产生RST引脚是复位信号的输入端。 复位信号是高电平有效, 其有效时间应持续24 个振荡周期 ( 即二个机器周期 ) 以上。若使用颇率为12MHz的晶振,则复位信号持续时间应超过 2us 才能完成复位操作。产生复位信号的电路逻辑如图 3.4 所示:图 3.4复位信号的电路逻辑图整个复位电路包括芯片、外两部分。外部电路产生的复

19、位信号(RST)送至施密特触发器,再由片复位电路在每个机器周期的S5P2 时刻对施密特触发器的输出进行采样,然后才得到部复位操作所需要的信号。复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图 3.5(a)所示。这佯,只要电源Vcc 的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与 Vcc 电源接通而实现的,其电路如图3.5 (b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图 3.5 ( c)所示:(

20、 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

21、引脚图位。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.0P0.7P1 口( Pin1 Pin8 ): 8 位准双向 I/O 口线,名称为P1.0P1.7P2 口( Pin21 Pin28

22、 ): 8 位准双向 I/O 口线,名称为 P2.0 P2.7P3 口( Pin10 Pin17 ): 8 位准双向 I/O 口线,名称为 P3.0 P3.7STC89C52主要部资源如表二所示。表 3.2 STC89C52 部资源主要功能特性兼容 MCS51指令系统8K 可反复擦写 Flash ROM32 个双向 I/O 口256x8bit部 RAM3个 16 位可编程定时 / 计数器中断时钟频率0-24MHz2个串行中断可编程 UART串行通道2个外部中断源共 6 个中断源2个读写中断口线3 级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能3.3 路面检测模块传感器 TCRT5000介绍

23、TCRT5000红外光电传感器是一款红外反射式光电开关。传感器采用高发射功率红外光电二极管和高灵敏度光敏三极管组成,其输出信号经过施密特电路整形,稳定可靠。图 3.7 红外光电传感器 TCRT5000传感器的红外发射二极管不断的发射红外线,当发射出的红外线照射在黑色的物体上,由于黑颜色的物体反射基数低,没有反射回来或者反射回来的强度不够大时,光敏三极管一直处于关断状态,此时图3.6 中 4跟 5之间的压降就比较大,经过稳定测试之后的压降大约在 4.62V左右,当发射到白颜色的物体上的时候,由于白颜色反射基数大,足以是光敏三极管饱和,所以此时的上图中4跟6之间的压降比较低,经过稳定测试之后的压降

24、在 0.56V左右,变化较为明显。图 3.8红外光电传感器的模型比较器 LM324LM324为四运放集成电路,采用14脚双列直插塑料封装。部有四个运算放大器,有相位补偿电路。电路功耗很小,工作电压围宽,可用正电源3 32V,或正负双电源±1 5V± 15V工作。在黑线检测电路中用来确定红外接收信号电平的高低,以电平高低判定黑线有无。在电路中, LM324的一个输入端需接滑动变阻器,通过改变滑动变阻器的阻值来提供合适的比较电压。图 3.9 LM324 引脚图具体电路通过 TCRT5000检测黑线,输出接收到的信号给 LM324,接收电压与比较电压比较后,输出信号变为标准 TT

25、L高低电平,再输入到单片机中,用以判定是否检测到黑线。图 3.10路面检测模块具体电路图参数解说:1: 前面说到 TCRT5000是由一个红外线发光二极管和一个光敏三极管组成,图 3.11TCRT5000的红外发光二极管的伏安曲线(20摄氏度时)如图所示,当红外发光管的电压达到1.3V左右的时候,流经红外发光管的电流是最大的,即此时的红外发光管的发射功率最大。传感器安装在小车的地盘,距离路面距离很短,再者对于小车的续航能力来说,功耗低的话续航能力好一点,鉴于此两方面的考虑,我们选择红外发射管压降在1.1V 左右,也经过反复测试,此时的发射功率检测1cm左右距离的黑白线,效果较为明显,如果电源电

26、压为 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 ,那么输出给电压比较器异相端的电压就是在黑白两种状态下此分压电阻的压降,即黑线时

27、为( 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

28、,我拿到的为 9.6k 左右,还有此时加在电位器上的电压也并不是很准确的5V电压,所以才出现这样的情况。传感器安装在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走,需要再车底盘安置三个传感器,装置位置如图3.6 所示, 三个传感器,那就意味着八种1,0组合的状态,为了使小车平稳的转弯,设置“大拐”“小拐”,意思有左大拐,左小拐,右大拐,右小拐,直线前进,后退,还有两种无效的状态(101,111 ),下来有必要说下传感器的安装距离,为了检测的方便我们使小车的两个传感器之间的距离刚好大于黑线的距离,这样的目的就是,当一个传感器检测不到的时候,它旁边的传感器就要检测到黑线呢,这样就使

29、传感器无盲区。右传感器左 电 机图 3.12传感器安装布局图后万3.3.5TTL 电平向轮中传感器TTL 电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V 等价于逻辑“1”,0V 等价于逻辑“ 0”,这被称做 TTL 信号系统。 TTL电平 VCC是 5V。当光电对管右 电 机检测到黑线时,输出高电平,高于电压比较器的“+”输入端设定比较电压,相当于5V,左传感器等价于逻辑“ 1”; 当光电对管检测到白线时,输出低电平,低于电压比较器的“ +”输入端设定比较电压,相当于 0V,等价于逻辑“ 0”。TTL电路是电流控制器件,一般提供 25 毫安的驱动能力。 TTL电路的速度快,传输延

30、迟时间短 (5-10ns) ,但是功耗大。TTL输出低电平 <0.8V ;输出低电平 >2.4V。在室温下,一般输出高电平是 3.5V ,输出低电平是 0.2V。 TTL 输入低电平 <1.2V ;输入高电平 >2.0V。所以,TTL 器件输出的低电平要小于 0.8V ,高电平要大于 2.4V 。输入时,低于 1.2V 就认为是 0,高于 2.0V 就认为是 1。3.4电源模块电源对于一个系统来说作用是巨大的,它是系统工作稳定的前提。下表是整个方案中需要的电源及电源值。表 3.3本系统供电项目及数值电源供电专案电源数值电机驱动芯片 L298N+4.5V-+7VSTC单片

31、机+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,而放弃 LM

32、7805)下图就是电源原理图,输入是 12V,输出是 +5V。图 3.13 12V电源转 5V 电源电路原理图3.5 电机驱动模块电机驱动芯片L298N电机驱动芯片L298N是 SGS公司的产品,部包含4 信道逻辑驱动电路。是一种二相和四相电机的专用驱动器, 即含二个 H 桥的高电压大电流双全桥式驱动器, 接收标准 TTL 逻辑电平信号,可驱动 46V、2A 以下的电机。其引脚排列如图 3.14 所示, 1 脚和 15 脚可单独引出连接电流采样电阻器, 形成电流传感信号。 L298 可驱动 2 个电机,OUT1、OUT2和 OUT3、OUT4之间分别接 2 个电动机。 5、 7、 10、12

33、脚接输入控制电平,控制电机的正反转, 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 、I

34、n3 、 In4 同时为 0 来达到电机的停止,从而是小车停止。图 3.15电机驱动电路图4 软件设计在进行单片机控制系统设计时,除了系统硬件设计以外,大量的工作就是如何让根据系统每一个现象或者作用设计应用程序。因此,软件设计在单片机控制系统设计中占有重要的地位。对于本系统,软件更为重要。本次软件设计需要完成以下两个任务。1:单片机根据传感器I/O 口的输入状态, 来相应的执行判断程序, 来达到小车的前进,后退,停止;2:单片机两个 I/O 口同时产生两个占空比不相同的方波,来控制小车电机的车速,来达到小车的左转弯、右转弯;为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一

35、部分叫做一个模块。所谓“模块” ,实际上就是完成一定功能,相对独立的程序段,这中程序设计方法叫做模块化程序设计法。模块化程序设计方法的主要优点是:1、 单个模块化起一个完整的程序易编写及调试;2、 模块可以共存,一个模块可以被多个任务在不同条件下调用;3、 模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。本系统软件采用模块化结构,由主程序,寻迹子程序,调速子程序等构成。4.1PWM脉冲宽度调制 (PWM),是英文“ Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与

36、变换的许多领域中。脉冲宽度调制是一种模拟控制方式,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。随着电子技术的发展,出现了多种PWM技术,其中包括:相电压控制PWM、脉宽 PWM法、随机 PWM、SPWM法、线电压控制 PWM等,而在镍氢电池智能充电器中采用的脉宽PWM法,它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。

37、可以通过调整 PWM的周期、 PWM的占空比而达到控制充电电流的目的。模拟信号的值可以连续变化,其时间和幅度的分辨率都没有限制。 9V电池就是一种仿真器件,因为它的输出电压并不精确地等于 9V,而是随时间发生变化,并可取任何实数值。与此类似,从电池吸收的电流也不限定在一组可能的取值围之。模拟信号与数字信号的区别在于后者的取值通常只能属于预先确定的可能取值集合之,例如在 0V, 5V 这一集合中取值。模拟电压和电流可直接用来进行控制,如对汽车收音机的音量进行控制。在简单的模拟收音机中,音量旋钮被连接到一个可变电阻。拧动旋钮时,电阻值变大或变小;流经这个电阻的电流也随之增加或减少,从而改变了驱动扬

38、声器的电流值,使音量相应变大或变小。与收音机一样,模拟电路的输出与输入成线性比例。尽管模拟控制看起来可能直观而简单,但它并不总是非常经济或可行的。其中一点就是,模拟电路容易随时间漂移,因而难以调节。能够解决这个问题的精密模拟电路可能非常庞大、笨重 ( 如老式的家庭立体声设备 ) 和昂贵。模拟电路还有可能严重发热,其功耗相对于工作组件两端电压与电流的乘积成正比。模拟电路还可能对噪声很敏感,任何扰动或噪声都肯定会改变电流值的大小。通过以数字符方式控制模拟电路,可以大幅度降低系统的成本和功耗。此外,许多微控制器和 DSP已经在芯片上包含了 PWM控制器,这使数字控制的实现变得更加容易了。脉冲宽度调制

39、( PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有 (ON),要么完全无(OFF)。电压或电流源是以一种通 (ON)或断 (OFF) 的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。多数负载 ( 无论是电感性负载还是电容性负载 ) 需要的调制频率高于 10Hz,通常调制频率为 1kHz到200kHz之间。许多微控制器部都包含有PWM控

40、制器。例如, Microchip 公司的 PIC16C67含两个 PWM控制器,每一个都可以选择接通时间和周期。占空比是接通时间与周期之比,调制频率为周期的倒数。执行 PWM操作之前,这种微处理器要求在软件中完成以下工作:1、设置提供调制方波的片上定时器/ 计数器的周期2、 在 PWM控制寄存器中设置接通时间3、设置 PWM输出的方向,这个输出是一个通用I/O 管脚4、启动定时器5、使能 PWM控制器本系统采用 PWM来调节直流电机的速度。PWM是通过控制固定电压的直流电源开关频率, 从而改变负载两端的电压, 进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面 , 如电机调速、温度控

41、制、压力控制等。在 PWM驱动控制的调整系统中 , 按一个固定的频率来接通和断开电源 , 并根据需要改变一个周期“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小 , 从而控制电动机的转速。因此 ,PWM又被称为“开关驱动装置”。在脉冲作用下 , 当电机通电时 , 速度增加;电机断电时 , 速度逐渐减少。只要按一定规律 , 改变通、断电的时间 , 即可让电机转速得到控制。4.2 主函数程序设计对于小车的行驶,我这样设想的,整个系统供上电之后,就不停的执行扫描端口,当此输入口为低电平时,意味着小车的开关已经按下,小车已经发动起来了,单片机执行相应的子程序,否

42、则就一直扫描。这样比较贴合实际一些。同样的, 当此输入口为高电平时,小车停止行驶。前面第2章讲到, L298N与单片机相连接的 6个I/O 口, in1in4是输出控制电机的端口,in5in6 是使能端, in5 控制 in1 和in2 , in6 控制 in3 和 in4 ,只有当它们为高电平时,in1in4 才输出有效,那么要达到两个电机同时转动,就必须使in5in6 同时为高电平。对于小车停止,预想的是,当开关按下时,小车开始行驶,计数器也开始计数,当不再检测到黑线的时候就停止,这样,对于B部分的时间显示来说,可以设定外部中断,停止的时候定时器停止计数,在数码管上就显示当前计数值,即为小

43、车行驶的时间。所以主函数可以这样写:Void mian()In5=1;In6=1; /L28N使能端,只有两者都为高电平时,in1in4 输入的高低电平才有效 /While(kaiguan=0)/“发动机钥匙” /Xunji();/循迹程序 /总体程序流程图:开始N图 4.1程序主体流程图4.3 寻迹子函数程序设计寻迹,顾名思义,就是单片机寻找准确的路线,以达到精准的行驶,本设计采用黑线行驶,三个 TCRT5000红外传感器,分别连接STC单片机的 P1.0、 P1.1、P1.2 口,对于三个传感器就有 =8 种状态,根据现实情况,在下表中给予统一编码。表 4.1传感器输出信号编码传感器状态(

44、 a、b、 c)小车状态000停止001右大拐弯010直线前进011右小拐弯100左大拐弯101直线前进(此状态不可能出现)110左小拐弯111后退根据上表,得出寻迹子程序流程图寻迹子程序传感器输出状态000001010011100101110111停止右大拐直向前右小拐左大拐直向前左小拐后退跳出子程序图 4.2转向子程序流程图基于上面所述,寻迹程序可以这样编写。void xunji()if(sensera=0)&&(senserb=0)&&(senserc=0)stop();/停止吧,因为没有黑线啦/else if(sensera=0)&&(s

45、enserb=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)&&

46、(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:遇到需要转弯的时候,将一个轮子

温馨提示

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

评论

0/150

提交评论