红外智能遥控小车设计.docx
《红外智能遥控小车设计.docx》由会员分享,可在线阅读,更多相关《红外智能遥控小车设计.docx(59页珍藏版)》请在冰豆网上搜索。
红外智能遥控小车设计
摘要
着计算机、微电子、信息技术的快步发展,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到极大的扩展。
智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可用于科学勘探等用途。
智能小车就是其中的一个体现。
智能车俩是集中运用计算机技术、单片机技术、传感器技术、自动控制技术、机电一体化技术、通讯导航技术、人工智能及机器人学等高新技术的综合体。
本次设计制作的多功能小车,小车各部分采用模块化设计,以两电动机为主驱动。
通过传感器采集各类信息,送人单片机,处理数据后实现相应动作,实现小车的多功能自动控制。
本项目采用了keilc51软件作为单片机c语言集成开发环境。
利用pc机与单片机的串口通信,主要实现小车的自动控制功能,和利用无线接收的遥控控制功能。
采用AT89S52单片机加电机驱动电路和红外遥控循迹模块还有红外接收一体化传感器设计而成。
运用红外遥控控制小车的前进,后退,左转,右转,启动和停止。
首先介绍了系统的总体组成,然后分硬件与软件两部分进行阐述,硬件中先描述了各个重要模块的功能,分模块介绍多功能小车主要功能的设计思想和功能的实现的原理。
接着,软件设计的介绍,主要在于程序的介绍。
最后总结在设计过程中遇到的困难和解决的方法。
关键词单片机;红外;遥控控制;电机驱动
第一章绪论
1.1课题背景、目的及意义
1.1.1课题背景
近年来,随着电子技术的飞速发展,无线遥控已被广泛应用到日常生活及工业控制当中,电视机,电冰箱,视频监控系统,电视演播系统,电视会议系统,微格教学系统,多媒体教学系统,工业智能可能控制等多种领域都有应用。
自第一台机器人诞生以来,智能机器的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。
近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式,随着科学技术的发展,运用于机器人的传感器的种类越来越多,其中传感器成为机器人自动行走和避障的重要部件,传感器的典型应用领域为自助式智能导航系统,对于传感器的各种技术而言,图像处理技术已经相当发达,而基于图像的理解技术还很落后,机器运转需要通过大量的运算也只能识别一些结构化环境简单的目标。
随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注,全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,我们迫切需要培养和训练能够设计智能化、自动化设备的工程技术人才。
智能化作为现代科技发展的新方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要任务的管理,可应用与科学勘探,娱乐等用途。
遥控智能小车就是其中的一个体现。
本次设计的无线智能小车,基于单片机控制的设计思想,选用廉价的遥控编程解码集成电路,采用L298N专用电机驱动芯片驱动电机,通过PWM脉冲调速,外围安装无线遥控集成模块,实现了小车的无线智能控制。
1.1.2课题目的及意义
本设计主要研究内容就是基于89s52设计一部智能小车,小车能够实现自动循迹,自动避障,自动跟随,超声波测量距离,和红外遥控,寻光行驶的智能小车控制系统,包括了对驱动电路,红外通讯等的探索和研究。
本文主要从小车设计方案的选取、硬件设计、软件设计、测试结果方面进行主要论述。
在后文中我们就小车的智能行车、壁障方案的、显示方案、遥控方案、超声波测距方案、直流调速方案、行驶距离测量和倒车与前行方案的选择进行论述。
并且我们从单片机的最小系统电路、前向通道、后向通道三个方面对系统的硬件电路进行了论述和分析。
最后,我们对小车的软件编程方面进行论述,包括如何自纠错,如何提高算法效率。
1.2系统的总体方案设计
1.2.1
该系统以AT89C51单片机为核心的控制电路,采用模块化的设计方案,利用红外遥控器代替开关按键控制小的启动和停止,能够轻松自如的实现小车的启动停止、左转、右转和前进后退等功能,假如我们希望小车运行到黑线上来检测是否有循迹功能,就可以用遥控器控制小车行驶到有黑线的地方,当小车遇到有黑线时,会自动启动循迹功能模块,让小车沿黑线跑。
每个模块都是相互独立又相互协调配合,实现了小车的智能控制。
系统控制框图如图2.1所示:
图3.2系统结构图
1.2.2主控系统
采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。
充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。
这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。
因此,这种方案是一种较为理想的方案。
针对本设计特点——多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。
根据这些分析,我选定了AT89C51单片机作为本设计的主控装置。
1.2.3电机驱动模块
采用功率三极管作为功率放大器的输出控制直流电机。
线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。
现市面上有很多此种芯片,因此选用L298。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。
1.2.4循迹模块
采用两只红外对管,分别置于小车车身左右两侧,根据两只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,合理安装好两只光电开关的位置就可以很好的实现循迹的功能。
1.2.5显示模块
常用的数码显示器件主要有LED数码显示器和LCD液晶显示器。
LCD显示器具有低功耗、散热小、浅薄轻巧、显示锐利、屏幕调节方便等特点,同时又是现在市场的主流产品,价格较以往也有大幅的下降。
第二章方案设计与论证
2.1智能行驶方案
2.1.1寻光方案
为了检测光线的强弱,我们在小车左前方、右前方加了2只光敏传感器,即光敏电阻。
光敏传感器根据照射在它上面的光线的强弱,阻值发生变化,输出电压随之变化,通过ADC0809后,得到与光强相对应的数字量,从而引导小车,向光源靠近。
不同型号的光敏电阻,暗电阻及亮电阻差别较大,需根据不同参数的光敏电阻,选用不同大小的分压电阻。
光敏电阻:
光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;它的特性可以概括为:
入射光强,电阻减小,入射光弱,电阻增大。
光敏电阻大致可以分为表2-1几类。
表2-1光敏电阻的分类
类型
特点
紫外光敏电阻器
对紫外线较灵敏,包括硫化镉、硒化镉光敏电阻器等,用于探测紫外线。
红外光敏电阻器
主要有硫化铅、碲化铅、硒化铅。
锑化铟等光敏电阻广泛用于导弹制导、天文探测、非接触测量、人体病变探测、红外光谱,红外通信等国防、科学研究和工农业生产中。
可见光光敏电阻器
包括硒、硫化镉、硒化镉、碲化镉、砷化镓、硅、锗、硫化锌光敏电阻器等。
主要用于各种光电控制系统,如光电自动开关门户,航标灯、路灯和其他照明系统的自动亮灭,自动给水和自动停水装置,机械上的自动保护装置和“位置检测器”,极薄零件的厚度检测器,照相机自动曝光装置,光电计数器,烟雾报警器,光电跟踪系统等方面
小车行驶时,寻的是自然光源,所以本设计的寻光传感器选择上面选择了可见光光敏电阻作为光线传感器,同时也排除了红外遥控对于寻光行驶的影响。
常用的光敏电阻器有MG41~MG45系列,主要参数如表2-2所示,根据小车系统的参数和缩小体积的原则,我们选用了MG44-2型光敏电阻,该型号体积小,额定功率也能达到小车的系统要求。
2.1.2检障方案
2.1.2.1传感器的比较
识别障碍的首要问题是传感器的选择,下面对几种传感器的优缺点进行说明(见表2.2)。
探测障碍的最简单的方法是使用超声波传感器,它是利用向目标发射超声波脉冲,计算其往返时间来判定距离的。
该方法被广泛应用于移动机器人的研究上。
其优点是价格便宜,易于使用,且在10m以内能给出精确的测量。
表2-2传感器性能比较
传感器类型
优点
缺点
超声波
格合理,夜间不受影响
测量范围小,对天气变化敏感
视觉
易于多目标测量和分类,分辨率好
不能直接测量距离,算法复杂,处理速度慢
激光雷达
夜间不受影响不受灯光、天气影响
对水、灰尘、灯光敏感。
价格贵
视觉传感器在CW系统中使用得非常广泛。
其优点是尺寸小,价格合理,在一定的宽度和视觉域内可以测量定多个目标,并且可以利用测量的图像根据外形和大小对目标进行分类。
但是算法复杂,处理速度慢。
雷达传感器在军事和航空领域已经使用了几十年。
主要优点是可以鲁棒地探测到障碍而不受天气或灯光条件限制。
近十年来随着尺寸及价格的降低,在汽车行业开始被使用。
但是仍存在性价比的问题。
超声波是一种在弹性介质中的机械振荡,其频率超过20KHz,分横向振荡和纵向振荡两种,超声波可以在气体、液体及固体中传播,其传播速度不同。
它有折射和反射现象,且在传播过程中有衰减。
利用超声波的特性,可做成各种超声波传感器,结合不同的电路,可以制成超声波仪器及装置,在通讯、医疗及家电中获得广泛应用。
所以本设计采用T/R-40-12小型超声波传感器作为探测前方障碍物体的检测元件。
2.1.2.2测距方案的选取
当利用超声波探测器测距时常用二种方法——强度法和反射时间法,强度法是利用声波在空气中的传输损耗值来测量被测物的距离,被测物越远其反射信号越弱,根据反射信号的强弱就可以知道被测物的远近,但在使用这种方法时由于换能器之间的直接耦合信号很难消除,在放大器增益较高时这一直接耦合信号就可使放大器饱和从而使整套系统失效其原理如图2.2.1示,由于直接耦合信号的影响强度法测距只适合较短距离的且精度要求不高的场合。
反射时间法是利用检测声波发出到接收到被测物反射回波的时间来测量距离其原理,对于距离较短和要求不高的场合我们可认为空气中的声速为常数,我们通过测量回波时间T利用公式s=v×(t/2)其中,S为被测距离、V为空气中声速、T为回波时间(
),可以计算出路程,这种方法不受声波强度的影响,直接耦合信号的影响也可以通过设置“时间门”来加以克服,因此这种方法非常适合较远距离的测距,如果对声速进行温度修订,其精度还可进一步提高,本题中我们选用此方法。
2.2比较器的选择
小车对行驶状态的判定,都需要经过比较器来完成,所有的状态比较最终都转换成为电压的比较。
比较器的特点:
工作在开环或正反馈状态。
放大、运算电路为了实现性能稳定并满足一定的精度要求,这些电路中的运放均引入了深度负反馈;而为了提高比较器的反应速度和灵敏度,它所采用的运放不但没有引入负反馈,有时甚至还加正反馈。
因此比较器的性能分析方法与放大、运算电路是不同的。
非线性。
由于比较器中运放处于开环或正反馈状态,它的两个输入端之间的电位差与开环电压放大倍数的乘积通常超过最大输出电压,使其内部某些管子进入饱和区或截止区,因此在绝大多数情况下输出与输入不成线性关系,即在放大、运算等电路中常用的计算方法对于比较器不再适用。
开关特性。
比较器的输出通常只有高电平和低电平两种稳定状态,因此它相当与一个受输入信号控制的开关,当输入电压经过阈值时开关动作,使输出从一个电平跳变到另一个电平。
由于比较器的输入信号是模拟量,而它的输出电平是离散的,因此电压比较器可作为模拟电路与数字电路之间的过渡电路。
由于比较器的上述特点,在分析时既不能象对待放大电路那样去计算放大倍数,也不能象分析运算电路那样去求解输出与输入的函数关系,而应当着重抓住比较器的输出从一个电平跳变到另一个电平的临界条件所对应的输入电压值(阈值)来分析输入量与输出量之间的关系。
如果在比较器的输入端加理想阶跃信号,那么在理想情况下比较器的输出也应当是理想的阶跃电压,而且没有延迟。
但实际集成运放的最大转换速率总是有限的,因此比较器输出电压的跳变不可能是理想的阶跃信号。
电压比较器的输出从低电平变为高电平所须的时间称为响应时间。
响应时间越短,响应速度越快。
减小比较器响应时间的主要方法有:
(1)尽可能使输入信号接近理想情况,使它在阈值附近的变化接近理想阶跃
且幅度足够大。
(2)选用集成电压比较器。
(3)如果选用集成运放构成比较器,为了提高响应速度可以加限幅措施,以避免集成运放内部的管子进入深饱和区。
具体措施多为在集成运放的两个输入端并联二极管。
如图2-4电压比较器电路所示:
图2-4电压比较器电路
在本设计中,光电传感器只输出一种高低电平信号且伴有外界杂波干扰,所以我们尝试采用了一种滞回比较器。
简单电压比较器结构简单,而且灵敏度高,但它的抗干扰能力差,也就是说如果输入信号因受干扰在阈值附近变化,则比较器输出就会反复的从一个电平跳到另一个电平。
如果用这样的输出电压控制电机或继电器,将出现频繁动作或起停现象。
这种情况,通常是不允许的。
而滞回比较器则解决了这个问题。
滞回比较器有两个数值不同的阈值,当输入信号因受干扰或其他原因发生变化时,只要变化量不超过两个阈值之差,滞回比较器的输出电压就不会来回变化。
所以抗干扰能力强。
但是,滞回比较器毕竟是模拟器件,温度的漂移是它无法消除的。
综合考虑系统的各项性能,最后我们决定采用数字器件——施密特触发器。
施密特触发器是双稳态触发器的变形,它有两个稳定状态,触发方式为电平触发,只要外加触发信号的幅值增加到足够大,它就从一个稳定状态翻转到另一个稳定状态。
施密特触发器具有与滞回比较器相类似的滞回特性,但施密特触发器的抗干扰能力比滞回比较器更强。
2.3红外遥控系统
通用红外遥控系统由发射和接受两大部分组成,应用编/解码专用集成电路芯片来进行控制操作。
发射部分包括键盘矩阵、编码调制、LED红外发送器;接受部分包括光、电转换放大器、解调、解码电路。
红外遥控示意图如图1所示。
图1红外遥控示意图
2.3.1遥控发射器及其编码
当发射器按键按下后,既有遥控吗发出,所按的键不同遥控编码也不同,这种遥控码具有以下特征:
采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2.1所示。
图2.1红外波形图
上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。
然后再通过红外发射二极管产生红外线向空间发射,如图2.1.1所示。
图2.1.1红外码示意图
产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,放置不同机种遥控码互相干扰。
该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。
遥控器在案件按下后,周期性地发出同一种32位二进制码,周期约为108ms。
一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图2.1.2为发射波形图。
图2.1.2遥控连发信号波形
2.3.2遥控信号接收
接收电路可以使用一种集红外线接收和放大于一体的一体化红外线接收器,不需要任何外界原件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。
接收器对外只有3个引脚:
Out、GND、Vcc与单片机接口非常方便,如图2.2所示。
①脉冲信号输出接,直接接单片机的IO口;
②GND接系统的底线(0V);
③Vcc接系统的电源正极(+5V);
图2.2红外一体化接收头
2.5显示系统
本设计中用两片4位八段数码管gem4561ae作显示器,并具有双重功能,在小车不行驶时其中一片显示年﹑月,另一片显示时﹑分;当小车行驶时,分别显示时间和行驶距离。
为减轻单片机的运算压力,使用EM78P458作为显示驱动芯片。
管脚如图2-7所示,用单片机的并行口控制,一个数码显示电路用4个口线。
该芯片共有20个管脚,管脚LED1﹑LED2﹑LED3﹑LED4分别接10k电阻和三极管后与4位八段数码管5461中的a1﹑a2﹑a3﹑a4四个数位选择端相连,这四个数位选择端用来产生LED选通信号。
管脚a﹑b﹑c﹑d﹑e﹑f﹑g﹑dp分别接680欧电阻后与四位八段数码管4561中的a﹑b﹑c﹑d﹑e﹑f﹑g﹑dp相连,分别控制各段码和小数点。
管脚d0﹑d1﹑d2﹑d3接单片机并行口,通过对单片机对芯片进行控制。
管脚vss串上10k电阻后与vcc管脚相接后再接+5v电源,管脚gnd接地。
图2-7EM78P458的管脚
显示驱动器支持动态显示,其显示功能如表2-3真值表所示,0000-1001显示从0-9数字,1010是未进位时是小数点清位,1011是进位后加小数点,1100-1111是八段共阴数码管的位选。
表2-3显示驱动芯片真值表
D3
D2
D1
D0
显示
0
0
0
0
0
0
0
0
1
1
0
0
1
0
2
0
0
1
1
3
0
1
0
0
4
0
1
0
1
5
0
1
1
0
6
0
1
1
1
7
1
0
0
0
8
1
0
0
1
9
1
0
1
0
清小数点
1
0
1
1
加小数点
1
1
0
0
a1选通
1
1
0
1
a2选通
1
1
1
0
a3选通
1
1
1
1
a4选通
第三章硬件设计
3.1遥控小车硬件芯片
3.1.1AT89S52
AT89S52为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,引脚如图3.1.1。
其主要功能列举如下:
1、拥有灵巧的8位CPU和在系统可编程Flash
2、晶片内部具时钟振荡器(传统最高工作频率可至12MHz)
3、内部程序存储器(ROM)为8KB
4、内部数据存储器(RAM)为256字节
5、32个可编程I/O口线
6、8个中断向量源
7、三个16位定时器/计数器
8、三级加密程序存储器
9、全双工UART串行通道
图3.1.1AT89S52引脚图
3.1.2L293
L298是SGS公司的产品,采用标准TTL逻辑电平信号控制,是一个具有高电压大电流的全桥驱动芯片,它相应频率高,具有两个时能控制端,在不受输入信号影响的情况下允许或禁止器件工作;有一个逻辑电源输入端,是内部逻辑电路部分在低电压下工作可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载。
如图3.1.2
图3.1.2电机驱动原理图
L298N芯片内部包含4通道逻辑驱动电路,是一种二相和四相的专用驱动器,内含二个H桥的高电压大电流双全桥驱动器,接收标准TTL逻辑电平信号,符合两轮驱动和单片机控制。
它可驱动46V,2A以下的电机,满足小车马达的驱动要求。
L298N驱动2个电机,2、3脚和13、14脚之间分别接2个电动机。
5、7、10、12脚接输入控制电平,控制电机的正反转,ENA(6脚),ENB(11脚)接控制使能端,控制电机的停转。
3.2遥控小车电路设计方案
遥控可以选用无线遥控和红外遥控。
由于红外线遥控不具有像无线电遥控那样穿过障碍物去控制被控对象的能力,所以,在设计家用电器的红外线遥控器时,不必要像无线电遥控器那样,每套(发射器和接收器)要有不同的遥控频率或编码(否则,就会隔墙控制或干扰邻居的家用电器),所以同类产品的红外线遥控器,可以有相同的遥控频率或编码,而不会出现遥控信号“串门”的情况。
这对于大批量生产以及在家用电器上普及红外线遥控提供了极大的方便。
由于红外线为不可见光,因此对环境影响很小,再由红外光波动波长远小于无线电波的波长,所以红外线遥控不会影响其他家用电器,也不会影响临近的无线电设备。
所以我们决定使用红外遥控的方式。
另外红外信号的解码可以用芯片解码也可以使用单片机通过编程软件解码。
软件解码需要的外部元件很少,从而可以节约成本。
因此我们选择单片机通过编程软件解码。
确定了制作的方向后,开始设计电路。
因为红外的遥控很普遍,所以我们选取了一个普通的现成的红外遥控。
我们只需要制作接收部分和电机驱动部分。
我们设计的小车由软件和硬件部分组成。
硬件部分由控制电路和驱动电路组成。
系统结构框图如图3.2。
控制电路图如图3.2.1。
驱动电路图如图3.2.
图3.2.2驱动电路
图3.2.1所示其实就是51单片机的最小系统图。
C5、C6、Y2组成单片机的时钟模块,这里采用12M的晶振以方便编程时计算时间。
C4、R5、K2、R7则是复位电路,AT89S52设定的是复位高电平有效,当K2被按下,复位脚被电源VCC拉至高电平,达到复位功能。
图3.2.2中L298N驱动2个电机,2、3脚和13、14脚之间分别接2个电动机。
5、7、10、12脚接输入控制电平,控制电机的正反转,ENA(6脚),ENB(11脚)接控制使能端,控制电机的停转。
其中5、7、10、12脚分别接单片机的P2.2、P2.3、P2.4、P2.5。
本小车有2个电机,分别在小车左右两侧,通过控制小车单侧电机转动,另一侧电机停止就能达到转弯的功能,前进后退则两个电机同时转动。
图3.2.2中8个1N4007二极管的作用是释放电机停止时产生的反响尖峰电势。
1、3和2、4的100uf+0.1uf的电容组合则是参考L298N芯片资料中的基本应用电路设计的,为的是防止电机正反转和停止过程中产生的不规则电流影响到L298N的运作。
本小车设计L298N的逻辑电源与AT89S52共用,所以这个耦合电容也是为了防止单片机在运行过程中由于电势混乱而死机复位等。
3.3单片机的调试
采用软件解码,单片机的程序调试就格外重要。
要想用单片机控制小车的运动,首先要知道遥控器的按键码值。
为此,我编写程序,用1602LCD显示遥控器的按键码值(程序见附录)。
其流程如图3.3
图3.3程序流程图
如此实验多次可得遥控的按键码值,确定了按键码值。
只需要将1602的显示函数替换成相对应的控制L298从而驱动电机的程序即可。
为了保持成功,我们还利用Proteus软件仿真,其仿真如图3.3.1
图3.3.1Proteus仿真图
经过proteus仿真,确认可以驱动电机按要求转动。
遥控端功能:
基本功能:
发送运动控制指令(前进,后退,左转,右转,调头),通过液晶显示当前工作状态。
扩展功能:
(1)工作模式的选择指令(受控模式和自动避障模式);测温的执行指令;
(2)接收温度数据信号,并通过液晶显示模块显示。
1、硬件电路介绍
(1)MCU最小系统
图4MCU控制电路图
(2)无线数传模块
无线数传模块接口
(3)按键模块
该模块功能很简单,就是将操控指令通过本模块输入至MCU。
电路原理图如图17所示。
按键与指令功能对应关系如表3所示。
表3按键功能
按键
指令功能
K1
前进
K2
后退
K3
向左
K4
向右
K5
模式选择开关(自动避障和遥控)
K6
测温开关