智能小车论文.doc_第1页
智能小车论文.doc_第2页
智能小车论文.doc_第3页
智能小车论文.doc_第4页
智能小车论文.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

全国电子设计大赛论文简易智能电动小车(E题)参赛者: 目 录摘要1一、方案的论证与比较2 1. 黑色引导线的光电检测模块2 2. 光源导航模块2 3. 金属检测电路3 4. 电机驱动4 5. 车轮测速及路程计算模块4 6. 显示模块4 7. 中央处理单元5 8. 电源配置5二、系统各模块的具体设计61. 硬件设计6 1.1 光电检测电路61.2 测速和计程电路71.3 PWM电机驱动模块72. 软件部分72.1 黑线导航部分72.2 金属检测82.3 从指定点C到入库部分82.4 程序特点9三、设计报告10 1. 程序清单102. 实际测试10 2.1 测试的设备10 2.2 测试项目及结果102.3 调试中的问题102.4 完成情况11四、总结12五、材料,工具清单13六、流程图及程序清单14摘要本系统采用两个AT89C52单片机作为中央处理单元控制各部分协调工作,以微型反射式红外线发射接收一体化管和光敏二极管为数据采集部件,用大功率达林顿管构成的电子开关电路驱动电机,组成了一个比较完整的简易智能电动车。系统用单片机控制小车的启停,方向和速度,完成了题目的基本和附加要求。系统通过控制脉冲占空比算法,采用闭环控制方式,实现了对电动小车智能的精密控制。一、方案的论证与比较根据本系统的要求,设计的主要任务是让小车能够沿着黑色导引线走到指定点C,并记录这段路途中金属片的个数和与起跑线之间的距离,然后小车在C点停5秒后再次启动,经过引导光源绕过两个障碍物后顺利进入车库。记录并显示时间、路程和金属片的个数都是本题的附加部分,并不是难点所在。本题的难点和重点是如何给车导航,解决由于单片机内部资源冲突而引起的方向失控。因此选择恰当的算法是本题的关键。根据分析,我们分以下几个部分进行方案论证和比较论证。1. 黑色引导线的光电检测模块 本电路的功能是为了能让单片机获得小车与跑道上黑线的相对位置,用反射式光电检测器件实现。考虑到环境中光源的影响,我们采用了聚光性能好的红外发光二极管作为发光源,配以灵敏度较高的光敏二极管作为接收端。 为了识别由于反光面不同而产生的信号,单片机有几种不同的接收方式:方案A:把接收到的电压经A/D转换器转换成相应的数字信号,通过查表精确的查得该数值所对应的颜色,从而得知小车在跑道上的相对位置,这一方案硬件和软件设计比较复杂,耗费时间。注意到本系统中只有黑和白两种颜色,实际上无需进行多种颜色的判断。方案B:直接接收,即将该信号直接输入单片机的P0口。此方案看似简单,其实不然。因为光敏二极管的输出阻抗和单片机的输入阻抗相当,因此输入的高电平会被拉下来而误读为低电平,达不到检测的目的。方案C:改变接收管输出阻抗,把输出的电压规范成标准的TTL电平。做法如下,首先将接收管的信号接到比较器一个输入端,另一端接基准电压Vref,取Vref在白色信号和黑色信号电压之间,输出端接到单片机的P1.0,那么单片机接收到的就是规范的TTL电平,便于单片机处理,此方案比较容易实现。方案C得到的只有高低两种电平,可以直接输给单片机,而且不存在阻抗匹配问题,最方便实现.本题中只需要识别黑色和白色,故方案A中判断没有必要。方案B检测目的不容易达到,由上面的比较我们选择方案C,如图1所示。-+至单片机 Vref图12. 光源导航模块为了能够到达停车区并顺利进入车库,小车必须有趋光性或其它方式的方向感知系统。为此我们设计以下几种方案。方案A:利用超声波测量前方是否有障碍物及障碍物的距离,根据信号的强弱控制小车方向,让它绕过障碍物。此方法可以很精确的测出障碍物的距离,但是绕过障碍物后就失去了方向感,无法按要求继续前进,而且很有可能把车侧面的障碍物误测为前方障碍物。方案B:充分利用题目的给定条件光源,我们采用了两路光电接收装置。将两路光电管平行置于小车的两侧,当小车的一侧有障碍物时(如图2所示),该侧面的光电管就不会接收到光源信号,小车就会自动调整方向,试图绕过障碍物,趋向光源;当前方无障碍物,但是小不是正对光源时,小车一侧的光电管就会被小车自己挡住而接收不到光信号(如图3),此时小车也会自动调整方向,使它趋向光源。小车光图2 小车光 图3方案C:散状前置三路光敏二极管(如图3所示)。在每个光敏二极管的外围套上恰当长度的黑色外套,使其正对光源时有很强的信号,有很小偏角时信号较弱,偏角稍大时无信号,那么三个配合起来,实时检测三个信号的强弱,可以敏感的决定转向。小车光图4光敏二极管 方向感较强的光敏二极管 光线结合本题要求和上述电路的特点,我们选用了方案C。 3. 金属检测电路为了能够完成题目的基本要求,探测金属数目,及与起跑线的距离,并且能停在指定的C点,小车必须有感应金属的能力,有以下几种方案可供参考。方案A:用霍尔元件检测。在小车的底部装一块磁铁,在磁铁和地面之间安放一个霍尔元件,那么小车经过铁片上方时,霍尔元件周围的磁场就会发生改变,从而感知道了铁片的位置及尺寸,由于在距铁片较远处就能产生信号,可能导致测量的距离不准确。方案B:用金属探测器检测。在小车的底部安放一个,高度定为此金属探测器能感应到金属的最大距离,那么只有在小车下面的金属探测器处于金属的正上方时才会有感应信号,从而大提高了测量的精度。方案B简单可行易于安装,且能准确测量出铁片的长度,采用方案B。 4. 电机驱动模块方案A: 为了满足电机起动时大电流的要求,和电机双向控制的需要,我们采用了由大功率达林顿管组成的经典H型电路。此电路可以提供很大电流,转换速度极快且换向容易,用来和PWM调制波形配合使用,很容易控制电机的速度和方向。方案B:用两个单刀双掷继电器作为电机换向电路,电路简单,换向也比较容易,但是开关的响应时间很长,不宜用于PWM调制信号的输入。在此项目中必须,采用PWM控制电机的转速,一般要求工作在200Hz左右,若采用方案B,则达不到用PWM波来控制速度的要求,因此我们采用了方案A。5. 车轮测速及路程计算模块方案A:采用霍尔元件。用现有的霍尔集成片正对车轮,在车轮上安装一个环形的磁铁,每转一圈可产生六个脉冲,然后把脉冲一个一个的计数,通过计算可以测出小车的速度和路程。方案B:采用沟槽结构的断续式光电开关,利用沟槽结构将其固定在车轴上,再在车轮上均匀地分布一些遮光条,让其恰好通过沟槽 ,产生一个个脉冲,通过对脉冲计数,对速度和路程进行测量。 以上两种方案均可行,但霍尔元件在此题中却表现出了它独有的优越性环形磁铁易于安装,而光敏接收二极管受外界影响较为严重,因此,选用了方案B。6. 显示模块方案A:用内置HD44780驱动器的LCD液晶显示器作为显示模块,内部含有80字节的静态RAM,有一定的存储功能。 用单片机的P1口作为LCD的数据口,P3.5P3.7作为它的控制总线,对LCD直接控制,实时显示所需的信息。方案B:用动态数码管模块作为显示模块。将八个数码管的数据ag端按顺序依次连接到一起作为此模块的数据总线,将八个数码管的GND端分别接到74LS138译码器的八输出端,将138的输入端ABC接到单片机的P0.5P0.7。而P0.0P0.3经过74LS48作为此模块的数据总线,显示时不断的扫描各个数码管,让其显示所要的数字。由于方案A含有内置的RAM,无需不间断的扫描,故不会占用大量的CPU资源,就能很完美的完成显示任务,对于规模较大的系统来说是非常理想的,所以选方案A。7. 中央处理单元方案A:用一个单片机控制整个系统工作,包括测速、测距、记录金属块的个数、黑线导航、光源引导和方向控制以及一些声光信号。此外还用了两个外部中断和两个定时计数器并辅之以大量的检测子程序。在A到C路段中用外部中断0记录行走的路程并不断检测小车是否出轨,若出轨则做出相应的反应,使其顺利达到C点,每遇到一个金属片,就用外部中断1告知CPU进行处理。在障碍区单片机又不断的检测另外的3路光电信号,以判断小车是否朝着光源行驶。定时器0记录了全程小车所用的时间。全程中用定时计数器1调制PWM波控制车速。方案B:用两个AT89C51作为中央处理单元,双机严格分工,紧密合作。主机负责测速、测距、记录金属块的个数、记录行程时间以及存储和显示所需要的信息,PWM波形也由主机产生。从机则受控于主机,负责小车的开启、停止、倒退,最重要的是为小车导航,让小车能顺利到达C点,绕过障碍物,最终进入车库。方案A充分利用了AT89C51的内部资源,效率较高,但由于中断之间的相互影响导致小车不能及时地检测到黑线信号和光源信号,使小车很容易出轨。而方案B单独用一个AT89C51进行黑线检测和光源检测,不做其他的操作就能及时地检测到黑线信号和光源信号,所以能够及时而准确的动作。经过实验论证,方案A确实无法完成基本的导航任务,所以我们选用方案B。8. 电源配置本系统采用双电源供电,将电机电源和单片机的电源分开,电机用6V的充电池,单片机用三节普通的电池供电。用双电源有很多的好处,因为电机在起动时的电流很大,而且在受不同阻力时有不同的电流,会造成电源不稳,有毛刺等干扰,严重时会造成单片机掉电。二、系统各模块的具体设计以下我们将系统分为硬件和软件部分分别进行论述。系统的组成及原理图如图5所示: 从单片机LCD 驱动器LCD显示器 主 单片机外部中断金属探测八路比较器七路光感 电机驱动 Vcc 图51. 硬件设计1.1 光电检测电路(如图6所示)VCCVCC-+ 图6红外光敏二极管接收到光信号时导通,指定点C点的电压较低,而当红外光敏二极管截止时,指定点C点的电压较高。利用白纸和黑纸的反光能力不同,光敏二极管就能分别白色跑道上的黑色引导线。为了能够区分这个改变不大的变化,我们引入了精度较高的比较器,把基准电压调在两种电压之间。那么当发射/接收对着黑色引导线时,反相端的电压值就会大于基准电压,比较器就会输出一个高电平给单片机,从而单片机就知道小车有一点出轨,经过判断做出相应反应,使小车在黑线上行驶。1.2 测速和计程电路霍尔元件在不同的磁场有不同的电平,用集成的霍尔会有很明显的变化,那么固定在车轮上的环形磁铁所拥有的磁场会随着车轮的转动而改变,测得了环形的磁极对数之后,只需测出霍尔元件发出信号的频率和车轮的周长,就可以计算出小车的速度。1.3 PWM电机驱动模块(如图7所示) 图7 本电路采用的是基于PWM原理的H型驱动电路,以TIP132大功率管为核心,以保证电机起动时8A的电流要求。当输入1 为高电平,输入2为低电平时,Q3,Q6导通,电机正转,反之就反转。 为了能够使电机的供电电压不低于5V,我们必须用高于5V的电压,而这样一来,又会给单片机带来危险,基于上述考虑,我们运用4N25光耦集成块,将控制部分与电机驱动部分分开。对输入端输入200Hz的信号,通过对其占空比的改变来调速。改变输入1,2的电压可以决定电机的方向。2. 软件设计2.1 黑线导航部分此部分的流程图如图8所示:开始到C点?根据光电信号右或左转停止YN 图8从A到C点的过程中,小车不断的检测底部的两组光电头,哪边有压线信号就向该方向转,由于单片机的频率很高,故在理论上是不会脱轨的。2.2 金属检测金属检测部分用的是外部中断方式,即有金属就在中断服务子程序中把金属片数目变量加一。流程图如下(图9):NT0Number+Return;图92.3 从指定点C到入库部分在指定点C点等了5秒之后,小车再次启动,先让小车左转行驶,直到右边的光电头有信号时,让小车右转,再判断入库否,有就停,没有就判断小车左边的光电头是否有信号,如有让小车左转,再判断小车右边的光电头是否有信号,让小车右转,如此反复,直到小车顺利进入车库。流程图如下(图10):左转行驶根据信号转向行驶入库否? N Y停 机 图102.4 程序特点a) 用Keil C51语言编写,易于调试。b) 以模块化设计思想为指导,用子程序的形式实现各个功能模块,可读性强。c) 充分利用单片机的内部资源,本系统中用到了两个定时计数器,两个外部中断。d) 采用双CPU分工合作,大大提高了小车方向控制的灵敏度。三、设计报告1. 程序清单(附后)2. 实际测试2.1 测试的设备模拟场地: 4m2m长方形跑道。米 尺: 精度1cm秒 表: 精度0.01s2.2 测试项目及结果a).直道全速测试 通过软件将最大速度保存并显示。测试条件:刚刚充好的电池 全程4m 小车全速(单位m/s)次 数1234 实测速度3.23.53.02.4表1 b).圆弧最高速度 能走圆弧的最高速度 测试条件: 半径为0.8M的圆弧形黑色引导线不脱离跑道 次 数 1 2 3 5 实测速度 1.51.31.11.4表2测试时发现,小车在弧形跑道上行驶时,很容易脱离跑道,必须把速度降下来,才能正常的走过去,但是速度太低了也不能达到效果,所以我们必须在不脱轨的情况下尽量提高速度。c).总时间(单位:s)和总距离(单位:m)次 数显示时间实际时间 测量距离 实际距离1211888.5225197.5319208.3表3d).金属块的测量 次 数 123 45 6 块 数 4 4 4 5 4 4表4问题所在:测得的块数与实际测的块数不同,据分析,应该是由于跑道下面有金属片使路面不平,小车走过时有抖动,金属探测器在一个金属片上产生了两个或多个信号,所导致计数不准确。为了解决这个问题,我们将金属探测器安放在底部尽量接近地面的位置,再加上软件防抖动措施,这样小车有上下抖动时,也不会多次探测到同一个金属片了。2.3 调试中的问题 a) 小车在运行的过程中很容易脱离车轨,要同时把握好角度和速度。在调试的过程中,我们首先让小车用一个最高的速度行驶,结果发现小车连直线都很难走完,然后我们就稍微降低速度,再让其行驶并进行下一次的测试,直到可以沿轨道走到指定点C。 b) 我们是用光电器件进行方向控制,让其不脱离黑色的引导线,然而在白天和晚上调试结果却不相同,是因为白天和晚上的光线强弱有很大的区别,在白纸上的效果就显得很明显,我们本想用调制的信号来检测黑线,但是由于时间关系,无法完成改进。 c) 在走弧线的过程中,由于所购的小车的最大转向角度,达不到半径R0.8的圆弧需求,除了动手改变其机械性能之外别无选择,最后我们达到了要求。2.4 完成情况此次制作总的来说还是比较成功的,可以沿着引导线走到指定点C点,停5秒后再接着向车库走,在探索的过程中,车头是对着灯光行驶。四. 总结本系统在硬件设计上,使用大量的传感器,在不同的情况下能比较精桷的寻找目标;用PWM技术解决了电机驱动效率的问题,同时也较好的协调了速度与行程弧度的关系;用H型桥式电路实现了驱动电源和控制电源的隔离,保证了系统模块间不产生相互干扰;充分利用单片机89C52的强大功能,软件中用了单片机的所有外部中断源和两个定时计数器;从大量的实验结果看来,本系统能很好地完成各项任务,达到了题目预定的要求。五. 材料,工具清单材料或器件规格数量(个)玩具小汽车15cm35cm1运算放大器LM3242比 较 器LM3397单 片 机AT89C512电 容多种若干电 阻多种若干导 线多种若干电 池1.5V/6V4/1门 电 路CMOS/TTL若干表5Abstract We designed and made a simple intelligent electrically driven car system which is based on two single chips AT89C52, use the infrared ray emitting-receiving integrated diodes ray-detect diodes as the data collection device, and use an electronic switch circuit for making drive motor. It can tune speed and direction of electrically driven car that is based on the single chip. The system has implemented exact control to the car by using pulse duration radio algorithm.六、流程图及程序清单附录1:软件程序流程图开始显示初始化打开外部中断0,1启动小车开定时器0左光电头检测引导线?右光电头检测引导线?右 转有金属?左 转金属数i+1LCD显示12Y N YNYN金属数目i=4?小车停5秒12左转行驶右边有光源?左边有光源?右边有光源?入库否?左转右转停止 Y N N Y Y N Y N N Y主机程序流程图:开始初始化过程小车起动初始化定时器1产生PWM开定时计数器0有中断0?记程变量L+;有中断1?L*63.5m?发停信号给从机M+并显示不断的显示当前路程所用时间,金属块数入库停车YNNYNY从机程序流程图:开始有轮压线?主机停车?停5秒,再发车左行右侧有光?右转左侧有光?左转入库了?停车相应调整YNYNYNYNYN附录2:程序源文件#include #include #define uchar unsigned char#define uint unsigned int#define forwardP2_4#define backwardP2_5sbitRS= P30;sbitRW= P34;sbitElcm= P35;#define DataPort P1/ 数据端口#define Busy0x80#define Diameter150/车轮的周长uchar i=0,flag=0;/记金属块数目uint time=0,percent=0;uint vt=0,m=0,v=0,mt=0;/ 短延时void Delay5Ms(void)uint i = 5552;while(i-);void delay(uint T)uint i;for(i=0;iT;i+)Delay5Ms();return;/*=正常读写操作之前必须检测LCD控制器状态:CS=1 RS=0 RW=1DB7: 0 LCD控制器空闲; 1 LCD控制器忙=*/void WaitForEnable( void )DataPort = 0xff;RS =0; RW = 1; _nop_();Elcm = 1; _nop_(); _nop_();while( DataPort & Busy );Elcm = 0;/*= 写控制字符子程序: E=1 RS=0 RW=0=*/void LcdWriteCommand( uchar CMD,uchar AttribC )if (AttribC) WaitForEnable();/ 检测忙信号?RS = 0;RW = 0; _nop_();DataPort = CMD; _nop_();/ 送控制字子程序Elcm = 1;_nop_();_nop_();Elcm = 0;/ 操作允许脉冲信号/*= 显示光标定位=*/void LocateXY( char posx,char posy)uchar temp;temp = posx & 0xf;posy &= 0x1;if ( posy )temp |= 0x40;temp |= 0x80;LcdWriteCommand(temp,0);/*= 初始化程序, 必须按照产品资料介绍的初始化过程进行=*/void LcdReset( void ) LcdWriteCommand( 0x38, 0);/ 显示模式设置(不检测忙信号)Delay5Ms();LcdWriteCommand( 0x38, 0);/ 共三次Delay5Ms();LcdWriteCommand( 0x38, 0);Delay5Ms();LcdWriteCommand( 0x38, 1);/ 显示模式设置(以后均检测忙信号) LcdWriteCommand( 0x08, 1);/ 显示关闭 LcdWriteCommand( 0x01, 1);/ 显示清屏LcdWriteCommand( 0x06, 1);/ 显示光标移动设置LcdWriteCommand( 0x0c, 1);/ 显示开及光标设置/*= 当前位置写字符子程序: E =1 RS=1 RW=0=*/void LcdWriteData( char dataW )WaitForEnable();/ 检测忙信号RS = 1; RW = 0; _nop_(); DataPort = dataW; _nop_();Elcm = 1; _nop_(); _nop_();Elcm = 0;/ 操作允许脉冲信号/*= 按指定位置显示数出一个字符=*/void DispOneChar(uchar x,uchar y,uchar Wdata) LocateXY( x, y );/ 定位显示地址LcdWriteData( Wdata );/ 写字符/*-float型数据的显示,小数点后一位-*/void shownumber(uchar x,uchar y,uint D)uchar temp4=0;temp0=D/1000;temp1=(D%1000)/100;temp2=(D%1000)%100)/10;temp3=(D%1000)%100)%10;if(temp0!=0)DispOneChar(x,y,temp0+0);DispOneChar(x+1,y,temp1+0);DispOneChar(x+2,y,temp2+0);DispOneChar(x+3,y,.);DispOneChar(x+4,y,temp3+0);DispOneChar(x+5,y,c);DispOneChar(x+6,y,m);elseif(temp1!=0)DispOneChar(x,y,temp1+0);DispOneChar(x+1,y,temp2+0);DispOneChar(x+2,y,.);DispOneChar(x+3,y,temp3+0);DispOneChar(x+4,y,c);DispOneChar(x+5,y,m);elseDispOneChar(x,y,temp2+0);DispOneChar(x+1,y,.);DispOneChar(x+2,y,temp3+0);DispOneChar(x+3,y,c);DispOneChar(x+4,y,m);return;void intt() interrupt 1 using 0TH0=0xff; TL0=0xce; time+; if(time=percent) forward=forward; if(time=100) time=0; forward=forward; return;void intt0() interrupt 0/检测金属中断服务程序i+;flag=1;return;/*-开动小车子程序;-*/void start()P2=0x00;IE=0x81;/开CPU中断和INT0IT0=1;/INT0跳变时触发TMOD=0x01;/定时器0工作方式1TH0=0xff;/定时器0赋初值TL0=0xce;ET0=1;/允许计数器0中断TR0=1;/启动定时器0void stop()/小车停止子程序IE=0x80;forward=0;forward=0;forward=0;backward=0;backward=0;backward=0;return;void examinateM()/检测并显示金属数目if(flag=1)DispOneChar(3,0,i+0);flag=0;return;void intt1() interrupt 2v+;void countV() interrupt 3 using 1m+;void testV

温馨提示

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

评论

0/150

提交评论