智能避障小车论文_第1页
智能避障小车论文_第2页
智能避障小车论文_第3页
智能避障小车论文_第4页
智能避障小车论文_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

“神戎”杯山东大学信息学院光电基于光电导航的智能移动测量小车第 1页共27页.简介竞赛说明:设计一辆具有光电导航功能的智能车,要求从线路的指定点出发,沿轨道上铺设的“ 8”字形导航条走完全程。在行走过程中,利用光电技术测量、记录沿途所通过隧道的数目、各段隧道的长度及沿途路边树木的棵数。目录第1章引言 . ... ...4第2章总体方案.................52.1 52.2 52.3 5第3章 硬件方案 ... 73.1 ..7word文档交流 2.3.2..73.3..73.4..73.58..3.6..83.7..83.7..8第4章 硬件实现及单元电路设计 . .94.1 ..94.2 ..94.3 .94.2 ..104.2 .10第5章 系统软件设计方案 .. . .11word文档交流 3.6........126.1安装步骤 ..126.2电路的调试 ...12第7章 . . .12 1415第一章 引言随着汽车工业的快速发展,关于汽车的研究也越来越受到人们的关注。智能汽车概念的提出给汽车产业带来机遇也带了挑战。 汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波和红外线的智能小车的避障研究。针对一种基于红外传感器的循迹小车,通过对整体方案、电路、算法、调试、车辆参数的介绍,详尽地阐述小车通过传感器系统感知外界环境和自身状态,在复杂的环境中自主移动并完成相应的任务。红外传感器以其独有的特征而被青睐。该智能小车系统涉及直流电机控制技术、路径识别、传感技术、电子设计、程序设计等多个学科,磨练我们的知识融合和实践动手能力的培养。摘要:智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探用途。本设计中智能小车采用STC89C52单片机作为检测和控制的核心,实现智能小车的智能控制。驱动电机采用直流减速电机。关键词 智能小车;单片机;红外线;循迹word文档交流 4.word文档交流 5.第二章 总体方案本章主要简要地介绍系统总体方案的选定和总体设计思路,在后面的章节中将整个系统分为机械结构、控制模块、控制算法等三部分对智能车控制系统进行深入的介绍分析。2.1 需求分析设计一种基于红外循迹的小车移动平台,借助红外传感器的使用满足在一定的复杂的环境中自主循迹任务 ,使小车可以按轨道行走。2.2 总体设计通过学习和研究相关技术资料了解到,红外模块是系统的关键模块之一,方案的好坏,直接关系到最终性能的优劣,因此确定模块的方法是决定系统总体方案的关键。循迹模块采用红外传感器的优点是价格相对便宜,在满足系统的要求下具有较高的精度,能很好的循迹。2.3方案确定系统采用STC89C52单片机作为核心控制单元用于智能车系统的控制,小车车头正中间红外传感器检测前方障碍物,用于判断是否需要转弯。系统总体的设计方框图如图1所示。测速模块电源模块 测树木模块STC89C52 电机驱动模块循迹模块 主控模块显示模块word文档交流 6.根据系统方案设计,系统包括以下模块: STC89C52主控模块、L9110电机驱动模块、电源模块、循迹模块、显示模块、测速测树木模块等。各模块的作用如下:STC89C52主控模块,作为整个智能小车的“大脑” ,将发送采集红外等传感器的信号,根据控制算法做出控制决策,驱动直流电机等等完成对智能车的控制。电源模块,为整个系统提供合适而又稳定的电源 ;电机驱动模块,驱动直流电机完成智能车的加减速控制和转向控制 ;红外循迹模块,则能够达到循迹功能。显示模块,将测量结果显示。测速测树木模块,准确测量树木数量,隧道长度。word文档交流 7.第三章 硬件方案根据总体方案设计,对硬件结构的要求是:简单而高效,在不断的尝试后确定了以下的设计方案:3.1.1车体设计买现成的车模。经过反复考虑论证,我们制定了买左右两轮分别驱动,后万向轮转向的车模方案。即左右轮分别用两个转速和力矩基本完全相同的直流减速电机进行驱动,后装一个万向轮。这样,当两个直流电机转向相反同时转速相同时就可以实现电动车的原地旋转,由此可以轻松的实现小车坐标不变的 90度和180度的转弯。3.1.2 主控制器模块采用STC89C52单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统, 其关键在于实现小车的自动控制, 而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。 51单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。3.1.3 电源模块采用7.2V锂电池做电源,后为单片机,传感器供电。经过实验验证小车工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。3.1.4 电机驱动模块采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的 H型桥式电路。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路效率非常高, H型桥式电路保证了简单的实现转速和方向的控制, 是一种广泛采用的 PWM调速技术。现市面上有很多此种芯片,我选用L9110,一片L9110可以分别控制一个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。word文档交流 8.3.1.5 电机模块本系统为智能电动车,对于电动车来说,其驱动轮的驱动电机的选择就显得十分重要。所以我采用直流减速电机。直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生大扭力。能够较好的满足系统的要求。3.1.6 循迹模块采用红外传感器负责循迹功能的实现。考虑到本系统需要检测线路,为了使用方便、系统稳定性、便于操作和调试。3.1.7 测量显示模块用红外对管进行速度及距离测量,以及数目测量,用 1602显示屏进行结果显示3.2 最终方案经过反复论证,我们最终确定了如下方案:1、车模用两驱车模2、采用STC89C52单片机作为主控制器。考虑到89C52单片机运行速度比较慢,如果采用一片单片机可能会出现误差(如测速模块)所以用两片单片机。3、用7.2V锂电池供电。7.2V电池能为电机提供更高的功率。4、用红外传感进行测量树木数量。左右各一路红外传感器,由于小车速度比较慢,所以不需要利用外部中断直接在检测到返回的低电平后数量加一,然后延时一段时间,直到小车绕过树木,防止数量重复相加。5、L9110作为直流电机的驱动芯片。结构简单,重量较轻,可以为电机提供稳定、大功率的电压。6、红外对管进行测量隧道长度。利用一路红外探头位于小车上方检测隧道有无。进入隧道后用红外测速模块计算小word文档交流 9.车行进的距离。7、红外探测器进循迹。考虑到轨道主要以直线为主,中间有直角钝角转弯和中间交叉路口直行三种特殊情况,共采用七路循迹模块,其中五路(从左往右第二、三、四、五、六)检测直道,再用三路处理三种特殊情况(三路循迹探头为从左往右第一、四、七) 。8、1602显示器显示数据。考虑到要显示的内容比较简单,只是字母和数字,所以 1602就能满足要求,而且1602结构简单,价格便宜,容易掌握。word文档交流 10.第四章 硬件实现及单元电路设计4.1 主控制模块主控制最小系统电路如图 4所示。图44.2 电源设计为了节约成本,我们的电源采用了 7.2V锂电池电池作为单片机的供电电源。4.3 驱动电路通过单片机给予 L9110电路PWM信号来控制小车的速度,起停。word文档交流 11.4.4 循迹模块word文档交流 12.4.5测量显示模块第5章系统软件设计方案该方案的编程思路是先确定主程序,之后根据各硬件电路功能来设计子程序模块,最后再将各模块嵌入主程序中。这样编程结构简单,由于子程序模块与硬件电路一一对应,所以调试起来十分方便。本设计软件方框图如图 9示。word文档交流 13.循迹的智能小车主程序循测显电测迹树示机速子木子驱子程子程动程序程序子序序程序图9第六章 系统的安装与调试6.1 安装步骤检查元件的好坏按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。放置、焊接各元件按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。6.2 电路的调试首先烧入电机控制小程序,控制电机正反转,停止均正常。说明电机及驱动电路无误。然后加入循迹子程序,小车运转正常时,达到理想效果。在调试程序时,发现有的word文档交流 14.指令用的不正确,导致电路功能不能完全实现,另外软件程序中的延时有的过长、有的过短。类似的现象还有很多就不一一列举了。第7章 心得与总结本智能小车电路在硬件上采用红外循迹传感器来循迹。由于采用了 7.2V锂电池电池供电使系统的抗干扰性得到加强。在软件上,充分利用了 STC89C52的系统资源,使智能小车实现了隧道测量、树木检测、循迹的功能。本设计结构简单,调试方便,系统反映快速灵活,硬件电路由可拆卸模块拼接而成有很大的扩展空间。经实验测试,该智能小车设计方案正确、可行,各项指标稳定、可靠。虽然智能小车系统有很多优点,但在设计当中也存在着一些不足。一是由于我们都是做出的小车较简单;再者就是在制作过程中出现了较多问题:小车在行驶过程中左右摇晃,容易冲出轨道,转弯不稳定,轨道两旁树木会被重复检测,中间交叉处不能直行,主要原因是左右轮转速不完全一致,可以使用四轮小车同时将循迹探头往前放。程序存在缺陷,行进过程中有时会停止。通过这次对作品的制作,使我学到许多东西,不管软件方面还是硬件方面都需要掌握,还有合作协调方面,动手能力,调试时候注意事项,都有着很大的要求,是我受益匪浅。经费预算飞思卡尔小车底盘+驱动模块:280电池+充电器:60九路循迹+支架:70红外探头4个:80测速模块两个(左右轮):301602显示器1个:20L9110电机驱动模块:15word文档交流 15.三轮小车底盘+两个电机:40STC89C52单片机两个:15STC89C52最小系统两个:20总计: 630附录:(源代码)循迹:#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharsbitr1=P0^0;sbitr2=P0^1;sbitl1=P0^2;sbitl2=P0^3;sbitlook=P2^4;sbitlook1=P1^0;sbitlook2=P1^1;sbitlook3=P1^2;sbitlook4=P1^3;sbitlook5=P1^4;sbitlook6=P1^5;word文档交流 16.sbitlook7=P1^6;sbitget=P1^7;voidgo();voidback();voidturn_right();voidturn_left();voiddelay1ms(int);voidstop();voidturnright(uint);voidturnleft(uint);voidgo_strait(uchar);voidmain(){get=1;if(get==0)stop();else{if(look1==1&&look2==1&&look3==0&&look4==1&&look5==1&&look6==1&&look7==1)//直行{ go();}elseif((look1==0||look2==0)&&look4==1&&look5==1&&look6==1&&look7==1)// 在轨道上右偏{do{turn_left();}while(look3==1);}elseif(look1==1&&look2==1&&(look4==0||look5==0)&&look6==1&&look7==1)// 在轨道上左偏{do{turn_right();}while(look3==1);}word文档交流 17.elseif(look6==0){go_strait(1);if(look7==0){go_strait(10);}else{do{turn_right();}while(look3==1);}}elseif(look7==0){go_strait(1);if(look6==0){go_strait(10);}else{do{turn_left();}while(look3==0);}}elsestop();} }voidgo(){r1=0;r2=1;l1=0;l2=1;delay1ms(5);stop();word文档交流 18.delay1ms(10);}voidgo_strait(ucharx){while(x--){r1=0;r2=1;l1=0;l2=1;delay1ms(3);stop();delay1ms(10);}}voidback(){r1=1;r2=0;l1=1;l2=0;delay1ms(10);stop();delay1ms(10);}voidturn_right(){{r1=0;r2=0;l1=0;l2=1;delay1ms(5);stop();delay1ms(15);}}voidturnright(uintz){while(z--)turn_right();}word文档交流 19.voidturn_left(){r1=0;r2=1;l1=0;l2=0;delay1ms(5);stop();delay1ms(15);// }}voidturnleft(uintz){while(z--)turn_left();}voidstop(){r1=0;r2=0;l1=0;l2=0;}voiddelay1ms(intx){inti,j;for(i=1;i<x;i++)for(j=1;j<120;j++);}检测:/07/lcd 模块#include<reg51.h>#defineLCDPP0#defineuintunsignedint#defineucharunsignedcharsbitRS=P1^7;// 寄存区选择位word文档交流 20.sbitRW=P1^6;//设置读写位sbitE=P2^4;//使能位(0:禁止,1:使能)sbitBF=P0^7;//忙碌检查位sbitlookleft=P2^0;sbitlookright=P2^1;sbitlookup=P3^3;sbitspeed=P3^2;sbitstop=P1^1;//小车停止标志sbitsend=P1^0;charamount_tree=0,amount_bri=0;//树的个数,隧道的个数uintlength_bri[4];//桥的长度charline1[]="CountofTree:";charline2[]="CountofBri:";charline3[]="LengthofBri:";//显示的字符charline4[]="";uinttemp=0;//测速模块反应次数voidinit_LCM(void);//初始化设置函数voidwrite_inst(char);//写入指令函数voidwrite_char(char);//写入字符数据函数voidcheck_BF(void);//检查是否忙碌函数voiddelay1ms(int);//延迟函数voiddisplay1();//voiddisplay_char(charline,loca,character);// 写入指定位置voidblank_line(charline);// 写入空白行voidmain(){send=1;while(1){if(stop==0) //遇到终止信号时{send=0;display1();word文档交流 21.}else// 没有遇到终止信号{if(lookup==1)// 没有桥{if(lookright==0&&lookleft==1)// 右边有树{amount_tree=amount_tree+1;delay1ms(200);}if(lookright==1&&lookleft==0)// 左边有树{amount_tree=amount_tree+1;delay1ms(200);}if(lookright==0&&lookleft==0){amount_tree=amount_tree+2;delay1ms(200);}}else //有桥{amount_bri=amount_bri+1;temp=0;while(lookup==0){IE=0x81;TCON=0x01;//if(speed==1){//temp=temp+1;word文档交流 22.// delay1ms(5);// }}length_bri[amount_bri]=temp/5;}}}}voidspeed_INT(void)interrupt0{temp=temp+1;}//--------LCD 显示—-----------voiddisplay1(){chari,j;charlength[5];charcount_tree[2],count_bri[2]; // 用sac码显示数量count_tree[0]=amount_tree/10+0x30;// 树的个数,十位数count_tree[1]=amount_tree%10+0x30;// 树的个数,个位数count_bri[0]=amount_bri/10+0x30; // 桥,十位数count_bri[1]=amount_bri%10+0x30; // 桥,个位数init_LCM();// 初始化设置while(1){write_inst(0x80);// 第一行起始地址,显示字符串 1,树的棵数for(i=0;i<14;i++)write_char(line1[i]);write_inst(0x8e);// 显示数字的地址for(i=0;i<2;i++)write_char(count_tree[i]);write_inst(0xc0);// 第二行起始地址,显示字符串 2 ,桥的数量word文档交流 23.for(i=0;i<14;i++)write_char(line2[i]);write_inst(0xce); //显示数字的地址for(i=0;i<2;i++)write_char(count_bri[i]);delay1ms(2500);write_inst(0x01);// 清除显示屏delay1ms(1000);//===各个桥的长度for(j=0;j<amount_bri;j++){chardis[3],x=j+1;uinty;length[0]=length_bri[x]/10000+0x30;y=length_bri[x]%10000;length[1]=y/1000+0x30;y=y%1000;length[2]=y/100+0x30;y=y%100;length[3]=y/10+0x30;y=y%10;length[4]=y%10+0x30;if(x<10){dis[0]='';dis[1]=x+0x30;dis[2]=':';}else{dis[0]=x/10+0x30;dis[1]=x%10+0x30;dis[2]=':';}write_inst(0x80);for(i=0;i<16;i++)write_char(line3[i]);// 第一行显示字符串word文档交流 24.write_inst(0xc1);// 第二行起始地址为第二个位置for(i=0;i<3;i++)write_char(dis[i]);write_inst(0xc5);for(i=0;i<5;i++)write_char(length[i]);write_inst(0xcb);write_char('c');write_inst(0xcd);write_c

温馨提示

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

评论

0/150

提交评论