小车的功能简介_第1页
小车的功能简介_第2页
小车的功能简介_第3页
小车的功能简介_第4页
小车的功能简介_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

小车的功能简介:1) 小车以声音来启动,即小车上的驻极体接受到一定的声音信号,再通过对信号的放大处理,将信号传给单片机,使小车启动(开始寻线);2) 小车可以寻迹黑线,能够沿白线的走向而自动完成小车的转向等动作,在寻线的过程中还要对黑线下的铁片进行检测,当检测到第5块铁片后,小车退出寻线程序,开是避障;3) 在小车的避障阶段,小车能够通过自己前方的红外发射接收模块,检测前行方向的障碍物,并自动避开障碍物,继续前行(避障的结束是以小车上的光敏传感器检测到200W灯泡的光为标志);4) 当在发现障碍物时,小车会发出报警信号:小车上的蜂鸣器会响起,并且报警灯(LED)会亮起;5) 寻线和避障结束后(即光敏电阻检测到光信号),小车能够在200可的灯泡的光线指引下,完成小车的入库动作;6) 利用小车底座上的霍尔元件检测行驶途中的铁片,并且在检测到铁片时,小车回暂停1秒,并且指示灯LED会亮起,在1秒后小车继续开始寻线,检测到铁片的信息会传到单片机进行记录;7) 小车的一系列动作完成后,液晶显示屏上还将显示小车的行驶时间,以及检测到的铁片数目。寻迹检测方案的选择探测路面黑线的基本原理:光线照射到路面并反射,由于黑线和白纸对光的反射系数不同,可以根据接收到的反射光强弱来判断是否是黑线。利用这个原理,可以控制小车行走的路迹。下面几种可行的方案是根据本原理设计的:方案一:采用集成的红外发射接收对管(型号:)的信号检测方案,如图1-1所示。其工作原理:利用电位器的分压作用,从比较器的正输入端5输入一个某一定幅值的电压。当无光照时,光敏电阻呈现高阻状态,输入比较器的负输入端6输入一个高电平(大于端口5的电压值),则此时比较器输出低电平;反之,当有光照的时候,光敏电阻接收到反射的光,其阻值下降,则负输入端6输入的是低电平(小于端口5的电压值),则此时比较器输出高电平。本方案能达到基本的控制要求,但是它的缺点在于容易受到外界光线的干扰,不易于控制小车的行迹,损坏了信号采集的效果。解决办法:调整传感器的安装位置,尽量避免外界光线的干扰。

VCC1-1发光二极管及光敏电阻组成的发射接收方案方案二:脉冲调制的反射式红外发射接收器。由于采用该有交流分量的调制信号,侧可大幅度减少外界干扰;另外红外发射接收管的最大工作电流取决于平均电流。如果采用占空比小的调制信号,再平均电流不变的情况下,瞬时电流很大(50〜100mA),则大大提高了信噪比。并且其反应灵敏,外围电路也很简单。如图1-2所示。它的优点是消除了外界光线的干扰提高了灵敏度,制作比较简单。1-2脉冲调制的反射式红外发射接收方案由以上两种方案比较可知。方案二要比方案一优势大,但是方案一的电路简单,工作性能还算比较稳定,能够基本满足项目的需求。从而避免了电路的复杂性,因此我先用方案一作为小车的线路监测系统。电动机的选择市场上用很多种类的小电压直流电动机,购买也很方便。主要有普通电动机、和步进电动机。方案一:采用步进电机,步进电动机的一个显著的特点就是具有快速启动和停止能力,而且最重要的还是它能够准确地行使我们所要求的路程,能够达到我们所要求的标准。对于步进电机而言当,当负荷不超过其所能提供的动态转矩值时,步进电机就能够立即启动或反转。其转换灵敏度比较高。正转、反转控制灵活。但是步进电机的价格比较昂贵,且编程也相对复杂些,占用过多的IO口,对于单片机的资源是种浪费。因此性价比较低。方案二:采用普通的直流电机。直流电机具有优良的调速特性,调速平滑、方便。调整范围广;过载能力强,能承受频繁的冲击负载,可实现频繁的无极快速启动、制动和反转。能满足各种不容的特殊运行要求,最重要的是它使用容易且价格便宜。由于普通直流电机价格适宜,更易于购买,并且电路相对简单,因此建议采用直流电机作为动力源。电动机驱动方案的选择方案一:采用电路网络或数字电位器调整电动机的分压,从而达到调整速度目的。但是组织网络只能是先有极调速,而数字电阻的元器件价格比较昂贵,且可能存在于干扰。更主要的问题在于一般电动机的电阻比较小但电流很大,分压不仅会降低效率,而且实现很困难。方案二:采用继电器对电动机的开关控制,通过控制开关的切换速度实现对小车的速度进行调整。这个电路的优点是电路较为简单,缺点是继电器的响应时间长,易于损坏,寿命较短、可靠性小。方案三:采用四个大功率晶体管组成H桥式电路,四个大功率晶体管分为两组,交替导通和截止,用单片机控制使之工作在开关状态,进而控制电机的运行。该控制电路由于四个大功率晶体管只工作在饱和与截止状态下,效率非常高,并且大功率晶体管开关的速度很快,稳定性也极强,是一种广泛采用的电路,可以选择了四个大功率晶体管组成H桥式电路的293集成。^CC1VCC21-3L293集成芯片由于本项目所选用的电机所须用的电流较小,并没有超过了293所能承受的范围,因此,我们L293进行驱动。障碍物探测方案的选择方案一:采用光电开关,因为其反应灵敏,外围电路也很简单。它的优点是消除了外界光线的干扰提高了灵敏度。方案二:采用超声波传感器,如果传感器接收到反射的超声波,则通知单片机前方有障碍物,如则通知单片机可以向前行驶。市场上很多红外光电探头也都是基于这个原理。这样不但能准确完成测量,而且能避免电路的复杂性。但是由于光电开关的输出电压较高,因此在电路的设计当中我们还采用了电位器进行分压,使其产生适合于单片机接受的电平。我们在这里采用的是第一种方案如图1-4所示。因为第二种方案超声波传感器价格比较昂贵。

JP_O2RO2Res21K9VGNDJP_O2RO2Res21K9VGND在这里接 插光电开关Header3Obs220KP23图1-4光电开关使用电路图寻找光源的方案方案一:采用光敏电阻为传感器件,将光敏电阻置于黑盒子里面,黑盒子开有一条细逢,而光敏电阻就被安置在盒子中一定的位置上,然后在将盒子安置在车子的恰当位置上,这样:当光线照射于两光敏电阻之间时,小车就执行前进的动作;当光线照射在左边的光敏电阻时,小车就执行右转的动作;而当右边的光敏电阻感受到光照时,小车则左转;在小顶部的光敏电阻受到光照时,表明已成功抵达目的地,任务完成。电路原理如图1-5:光敏的m图光敏的m图1-56.声音传感启动的方案话筒的原理:话筒中的震动片根据声波的变化情况进行震动,从而导致话筒的电阻值的变化,因此,在这里我们采用了和寻找光源相同的电路原理,如图1-6所示,及当驻集体感受到一定强度的声波时,驻集体的电阻值会变小,从而分压值也会随着变化,因此当电压值的变化超过比较值时,比较器的输出值也会变化,从而向单片机发出启动的指令。

VCCU2CLM324NP2_0VCCU2CLM324NP2_0图1-6声音的功放电路我们采用了TDA2822运放芯片,在J_Speak处连接喇叭,那么从?_37输入的电信号就会经过功放电路从喇叭输出VCCU4P37|R-Spk110K213"IFVsInput+(1)NCNCNCNCNCInput-(1)Input+(2)Input-(2)16100uFU4P37|R-Spk110K213"IFVsInput+(1)NCNCNCNCNCInput-(1)Input+(2)Input-(2)16100uF14C-Spk2T10uFI'4.7KI、1000uF*0.1uF1'21'2JHeader2GNDGNDOutput(1)GNDOutput(2)GNDTDA2822铁片检测的方案考虑到铁片的性质,因此我们主要想利用霍尔元件来实现对铁片的检测。方案一:打算自己设计霍尔检测电路。这样可以降低成本。但是,它不易安装,使

用的性能无法保证。方案二:采用市场上现有的霍尔开关,其特点是使用简单,稳定性好,对于本项目来说,安装也相当的方便。其设计设计电路,如图1-8所示(与光电开关的使用一样):JPI1JPI1图1-8(霍尔开关的使用电路)路程的检测:方案一:采用光电编码器。光电编码器能够对路程进行精确的检测,具有十分良好的性能,现在对光电编码器的使用也很普遍。方案二:利用在履带上黏结铁皮,通过记录检测到铁皮的次数N,再测量出履带的长度L,于是利用行使路程S=N*L。由于是对铁片的检测,因此检测电路采用了跟前面铁片检测相同的电路,如图1-9JPI2安插霍尔开关2Iron2.20K P35―I1'图1-9(霍尔开关的使用电路)供电方案的选择方案一:采用两个电源供电,将电动机驱动电源与电片机以及其周边电路电源完全隔离,利用光电耦合器传输信号。这样可以使电动机驱动所造成的十扰彻底消除,提高了系统的稳定性,但是多一组电池,增加了小车的重量,同时也增加了小车的惯性,消弱因为电动机的控制性能,降低了灵敏度,而且从成本上来讲也增加了不少。方案二:采用单一电源供电。电源直接给电动机供电,因电动机起动瞬间电流较大,会造成电源电压波动,因而控制与检测部分电路通过集成稳压块供电,将电压稳定在一定数值范围内,以免有波动电压造成电路的损毁,其供电也比方案一简单。我们在选用的时候,我们选用第二种方案供电,如图1-5所示。因为,这样可以减小在电源方面的开销,使电动机驱动所造成的干扰比较小,能够保证系统的稳定性,可以达到比赛所追求的目标。图1-6电路供电方案图8.控制核心CPU的选择方案一:市场上流通很多种类的单片机,在一般性能上都可以达到要求,例如AT89C51、羚羊系列等都可以用于控制小车,缺点在于:要么是不能够电反复擦写,要么就是下载器的价格太高,且羚羊的单片机价钱比较贵。不利于小资本实验。方案=:AT89S52系列单片机价钱容易接受,可以在线下载,下载器也比较容易购买到,方便携带应用。例如,AT89S52拥有足够的内存来存储程序及数据,它也拥有足够多的IO端口和中断响应端口,方便我们对小车的控制。因此,我选择了第二种方案,采用AT89S52作为控制核心,利用从传感信号对小车进行控制。如图1-5所示。

迫农通PD.Q'ADD38]37]P0.2W皿36]叩.*占。335]=,D.^.AD4倒11姑U0533]叩.卧3532]PD.7/AD731|zA.''.'pp3D]ALE29)JL!LN弋.了以亏27]吒.曲匕32.SA-3片引脚图)24]弋123]久.泌c22]如70弋二拓第二部分:软件的设计程序的流程图:本项目完整的程序:#include<reg52.h>#include<math.h>#defineuintunsignedint#defineucharunsignedcharucharR=2;//对铁片数量进行全局变量的设定ucharcom;uchardat;uchartdata;uchari;uintshe;// 有关液晶的函数声明voiddsp(); //显示voiddelay(uintshijin); 〃延时voidwritedata(uchar com); //写数据voidwritecode(uchar cmd); //写命令// 各种数据的定义uintjourney=0;//路程ucharjourney1=0;ucharjourney2=0;ucharjourney3=0;ucharjourney4=0;uinttime=1; 〃时间uinttime_1=1;uinttime1=0;uinttime2=0;uinttime3=0;uintspeed=0;

ucharspeed1=0;ucharspeed2=0;// 293对电机的控制信号的sbitEnable=P1"0;//左和右电机使能控制sbitL1=P1"1;sbitL2=P1”2;sbitR1=P1”3;sbitL1=P1"1;sbitL2=P1”2;sbitR1=P1”3;sbitR2=P1”4;// sbitLightL=P1"5;sbitLightR=P1"6;sbitLightM=P1"7;sbitVoice=P2”0;sbitLineL=P2”1;sbitLineR=P2”2;sbitObstacleL=P2”3;sbitObstacleR=P2”4;sbitRS=P2”6;sbitRW=P2”7;sbitE=P3”3;sbitIron=P3”2;〃左电机控制1〃左电机控制2〃右电机控制1〃右电机控制2传感信号的获取//左光源的检测//右光源的检测〃中间光源的检测//声音启动信号//寻线左传感器//寻线右传感器〃左障碍物的检测//右障碍物的检测//液晶屏使能端//检测到铁片的外部中断INT0voiddelay(uintshijin)//100us(uinti;ucharj;for(i=0;i<shijin;i++);for(j=0;j<120;j++);}voiddelay50us(unsignedcharn)//50us(unsignedchari,j;for(i=n;i>0;i--)for(j=50;j>0;j--);}// 液晶屏幕的写数据函数和写命令函数voidwritedata(ucharcom)// 写数据函数(RS=0;RW=1;do(P0=0XFF;E=1;E=0;}while(tdata&0x80);(RS=1;RW=0;P0=com;E=1;delay(2);E=0;}}voidwritecode(ucharcmd)// 写命令函数(RW=1;RS=0;do(P0=0xff;E=1;tdata=P0;E=0;}while(tdata&0x80);(RW=0;P0=cmd;E=1;delay(2);E=0;}}// 行使方式的定义voidHead(void) 〃前进(L1=1;L2=0;R1=1;R2=0;}voidTurn_right(void)〃右转(L1=1;L2=0;R1=0;R2=0;}voidTurn_left(void)〃左转(L1=0;L2=0;R1=1;R2=0;}voidStop(void) 〃停车(L1=0;L2=0;R1=0;R2=0;}voidBack(void)(L1=0;L2=1;R1=0;R2=1;}寻线子程序voidFollow_Line(void)(if(LineL==0&&LineR==0)Stop();elseif(LineL==0)Turn_right();elseif(LineR==0)Turn_left();elseHead();}// 寻找光源voidSearch_Light(void)(while(1)(if(LightL==0)(Turn_right();delay50us(1);}elseif(LightR==0)(Turn_left();delay50us(1);}elseif(LightM==0)(Head();delay50us(1);}else(Stop();}}}// 躲避障碍物的程序voidAvoid(void)if(ObstacleR==0&&ObstacleL==0)(Back();delay50us(5);Turn_right();delay50us(5);}elseif(ObstacleR==0&&ObstacleL!=0)(Turn_left();delay50us(5);}elseif(ObstacleR!=0&&ObstacleL==0)(Turn_right();delay50us(5);}else(Head();delay50us(5);}Iron_Disp(ucharn)(switch(n)// 检测到铁片时的显示记录函数(case1:writecode(0x01);writedata(0xcc);writedata(0xfa);writedata(0xc6);writedata(0xac);writedata(0xca);writedata(0xfd);writedata(0xa1);writedata(0xc3);writedata(0xa3);writedata(0xb1);break;//铁片数:1case2:writecode(0x01);writedata(0xcc);writedata(0xfa);writedata(0xc6);writedata(0xac);writedata(0xca);writedata(0xfd);writedata(0xa1);writedata(0xc3);;writedata(0xa3);writedata(0xb2);break;case3:writecode(0x01);writedata(0xcc);writedata(0xfa);writedata(0xc6);writedata(0xac);writedata(0xca);writedata(0xfd);writedata(0xa1);writedata(0xc3);;writedata(0xa3);writedata(0xb3);break;case4:writecode(0x01);writedata(0xcc);writedata(0xfa);writedata(0xc6);writedata(0xac);writedata(0xca);writedata(0xfd);writedata(0xa1);writedata(0xc3);;writedata(0xa3);writedata(0xb4);break;case5:writecode(0x01);writedata(0xcc);writedata(0xfa);writedata(0xc6);writedata(0xac);writedata(0xca);writedata(0xfd);writedata(0xa1);writedata(0xc3);;writedata(0xa3);writedata(0xb5);break;}}Num_Disp(charn)(switch(n)(case0:writedata(0xa3);writedata(0xb0);break;case1:writedata(0xa3);writedata(0xb1);break;case2:writedata(0xa3);writedata(0xb2);break;case3:writedata(0xa3);writedata(0xb3);break;case4:writedata(0xa3);writedata(0xb4);break;case5:writedata(0xa3);writedata(0xb5);break;case6:writedata(0xa3);writedata(0xb6);break;case7:writedata(0xa3);writedata(0xb7);break;case8:writedata(0xa3);writedata(0xb8);break;case9:writedata(0xa3);writedata(0xb9);break;}}// 主函数voidmain(void)(writecode(0x01);//对液晶屏的初始化delay(200);writecode(0x30);writecode(0x0c);writedata(0xcb);writedata(0xc9);writedata(0xfa);writedata(0xd7);writedata(0xd5);writedata(0xb9);writedata(0xc5);writedata(0xcb);writedata(0xad);writedata(0xce);writedata(0xde);writedata(0xcb);writedata(0xc0);writedata(0xa1);writedata(0xa0);writedata(0xf4);writedata(0xc8);writedata(0xa1);writedata(0xb5);writedata(0xa5);writedata(0xd0);writedata(0xc5);writedata(0xd5);writedata(0xd6);writedata(0xba);writedata(0xb9);writedata(0xc7);writedata(0xe0);writedata(0xa1);writedata(0xa0);writedata(0xb4);writedata(0xd2);writedata(0xb4);writedata(0xd2);writedata(0xb5);writedata(0xc4);writedata(0xce);writedata(0xd2);writedata(0xc0);writedata(0xb4);writedata(0xc1);writedata(0xcb);while(Voice)();if(Voice==0)(TMOD=0xEA;〃用于T0计时,工作模式2;T1计数,工作模式2;TH0=0x06; //每250us中断一次TL0=0x06;TH1=0X00;TL1=0X00;EA=1; //开中断ET0=1; 〃允许TF0中断EX0=0; 〃允许INT0EX1=1;TR0=1; 〃启动关闭控制位TR1=1;while(1)(do(Search_Light();}while(LightL==0||LightR==0||LightM==0||ObstacleR==0||ObstacleL==0);do(Search_Light();}while(LightL==0||LightR==0||LightM==0);do(Avoid();}while(ObstacleR==0||ObstacleL==0);}}}// 中断函数01,输出pwm信号voidPwm1()interrupt1(unsignedintij;Enable=0;for(ij=4;ij>0;ij--);Enable=1;time_1++;if(time1==4000)(time++;time1=0;

//外部中断//外部中断INT0/*voidIroner()interrupt2(// 判断是否检测到铁片intii;intjj;if(R<=5)(Stop();switch(R);delay50us(8000);R++;for(ii;ii<600;ii--)(for(jj;jj<600;jj--)(Follow_Line();}}}}*/

voidTimer()interrupt3(time_1++;if(time_1==4000)(time++;time_1=0;}}// 外部中断INT0voidMission_End()interrupt0(Stop();journey=(TH1*16+TL1)*27;//路程journey1二journey/1000;journey2=(journey/100)%10;journey3=(journey/10)%10;journey4=journey%1000;time1=time/100;〃时间time2=(time/10)%10;time3=time%100;speed二journey/time;writecode(0x01);/*writedata(0xc8);//任wri

温馨提示

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

评论

0/150

提交评论