智能避障小车课程设计_第1页
智能避障小车课程设计_第2页
智能避障小车课程设计_第3页
智能避障小车课程设计_第4页
智能避障小车课程设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

武汉大学珞珈学院本科毕业论文广东技术师范学院2光机电一体化课程设计题目:智能超声波避障小车院别:机电学院专业:机械电子工程(师范)姓名:路小娃学号:2013095444026同组人员:谢嘉玲欧嘉兴指导教师:杨永日期:2016年6月16日

智能超声波避障小车摘要本设计主要有三个模块包括信号检测模块、主控模块、电机驱动模块。信号检测模块采用超声波测距模块,用以对有无障进行检测。主控电路采用宏晶公司的8051核心的STC89C52单片机为控制芯片。电机驱动模块采用意法半导体的L298N专用电机驱动芯片,单片控制与传统分立元件电路相比,使整个系统有很好的稳定性。信号检测模块将采集到的路况信号传入STC89C52单片机,经单片机处理过后对L298N发出指令进行相应的调整。我们设计的小车已经实现基本的避障功能。关键词:智能避障小车,STC89C52单片机,L298N驱动芯片,信号检测模块,避障目录TOC\o"1-3"\h\u3072摘要 232077目录 3274171课程设计内容 4100611.1项目研究的背景及意义 4168581.2应用场合和功能: 494431.3项目主要研究内容 4171892总体方案论述 6133062.1总体方案 6229422.2总体功能及性能指标 6121562.2.1总体功能 630612.2.2总体电路原理图 612812.3系统方案的比较与确定 7134102.3.1系统方案的比较 7176312.3.2系统方案的确定 7115162.4最终实物图 819453硬件电路的设计 9245353.1硬件系统的基本结构 9317563.1.1障碍物测距系统: 9248493.1.2驱动模块: 10194043.1.3电源模块: 12107964.程序 13121674.1程序流程图 1324175系统软硬件调试 1470235.1硬件调试 14115675.2软件调试 14276365.3调试中遇到的问题 1412808结论 1432087参考文献 155302附录 1611492附录一相关程序 1610988附录二使用元器件一览表 2330922附录三心得 24

1课程设计内容1.1项目研究的背景及意义智能作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。本设计主要体现多功能小车的智能模式,设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义。同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济收益,形成商业价值。超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。本智能小车系统最诱人的前景就是可用于未来的智能汽车上了,当驾驶员因疏忽或打瞌睡时这样的智能汽车的设计就能体现出它的作用。如果汽车偏离车道或距障碍物小于安全距离时,汽车就会发出警报,提醒驾驶员注意,如果驾驶员没有及时作出反应,汽车就会自动减速或停靠于路边。这样的小车还可以用于月球探测等的无人探月车,帮助我们传达月球上更多的信息,让我们更加的了解月球,为将来登月做好充分准备。这样的小车在科学考察探测车上也有广阔的应用前景,在科学考察中,有很多危险且人们无法涉足的地方,这时,智能科学考察车就能够派上用场,在它上面装上摄像机,代替人们进行许多无法进行的工作。1.2应用场合和功能:应用场合:智能小车是一种能够通过编程手段完成特定任务的小型化机器人,它具有制作成本低廉,电路结构简单,程序调试方便等优点。由于具有很强的趣味性,智能小车深受广大机器人爱好者以及高校学生的喜爱。同时在玩具的应用上深受小朋友的青睐。功能:本小车使用STC12C5A60S2单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,当小车与障碍物的距离大于30cm时,小车会沿直线前进,当小车与障碍物的距离小于30cm时,小车转弯以避开障碍物。在避开障碍物后,小车会沿直线前进。1.3项目主要研究内容本设计题目为智能避障小车设计,主要研究小车的避障功能,小车遇到障碍物时,当距离障碍物大于30cm,驱动电机工作,小车正常前进,当小于30cm时,舵机会接受到单片机的信号,小车采取相应的避障措施。这里探测装置必不可少,因为超声波在距离检测方面的较准确定位。所以采用超声波传感器作为探测装置,由于超声波遇到障碍物时发生像光一样的反射和散射,在经过多次发射之后再回到超声波检测端口会产生较严重的路程差,从而影响对距离的检测进而影响对障碍物的较准确定位。通过软件内部校准优化消除外部物理条件造成的误差从而达到对障碍物的较准确定位。

2总体方案论述2.1总体方案计划小车使用STC12C5A60S2单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,当小车与障碍物的距离大于危险距离时,小车会沿直线前进,当小车与障碍物的距离小于危险距离时,小车转弯以避开障碍物。在避开障碍物后,小车会沿直线前进。2.2总体功能及性能指标2.2.1总体功能1.通过测距传感器来获取小车距离障碍物的距离。2.当小车与障碍物的距离大于30cm时,小车会沿直线前进,当小车与障碍物的距离小于30cm时,小车转弯以避开障碍物。2.2.2总体电路原理图图二总体电路原理图2.3系统方案的比较与确定2.3.1系统方案的比较1.方案一(1)设计超声波模块测距,STC12C5A60S2单片机作为主控模块;(2)设定报警阈值(设定30CM,可用键盘调整阈值),小车通过舵机工作来实现转弯避障;(3)利用STC12C5A60S2的P1口AD转换功能,超声波模块测量距离。2.方案二(1)红外测距器的系统设计,STC12C5A60S2单片机作为主控模块;(2)用动态扫描法实现LED数字显示,红外驱动信号用单片机的定时器完成;(3)单片机使用P1.0端口输出超声波转化器所需的40KHz方波信号ISD1820语音播放距离,并用LED数字显示显示其距离值。2.3.2系统方案的确定我们小组考虑到,超声波测距方向性好,耐脏污,可以在较差环境下使用,价格中等,检测距离远。红外测距的优点是便宜,易制,安全,缺点是精度低、抗干扰能力差、方向性差、测试距离近。激光测距精度高,但是成本较高,制作难度高,对人体安全有影响,且受外界环境影响较大。三者经过相互比较,从经济和我们所学的知识考虑。所以我们最终选择方案一。2.4最终实物图

3硬件电路的设计3.1硬件系统的基本结构该智能车系统可分为四个主要模块:单片机主控核心模块,传感器避障模块,电机驱动模块和显示模块。其主要组成构图如下:数据数据数据数据数据数据数据超声波单片机STC12C5A60S2单片机STC12C5A60S2控制数据超声波单片机STC12C5A60S2单片机STC12C5A60S2控制数据舵机舵机控制控制数据3.1.1障碍物测距系统:方案一:超声波视觉优点:价格合理,夜间不受影响。易于多目标测量和分类,分辨率好。缺点:测量范围小,对天气变化敏感。不能直接测量距离,算法复杂,处理速度慢。方案二:红外测距优点:便宜,易制,安全,速度快。缺点:精度低,距离近,方向性差,容易受光干扰探测障碍的最简单的方法是使用超声波传感器,它是利用向目标发射超声波脉冲,计算其往返时间来判定距离的。算法简单,价格合理。所以我们选择超声波传感器。超声波测距原理:首先利用单片机输出一个40kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。时序图如图1所示。由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。图3.1:超声波测距原理3.1.2驱动模块:方案一:采用ULN2003驱动,它是由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,一般用于高速大功率驱动电路。所以我们不采用这个方案。方案二:采用由双极性管组成的H桥电路(L298N)。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,则效率非常高;H桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高。而且它有更强的驱动能力。L298N有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。L298N有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。所以我们选择L298N。下图为L298内部图:图3.3:L298内部原理图L298各引脚功能,如下表。引脚功能1、15SEN1、SEN2分别为两个H桥的电流反馈脚,不用时可以接地2、31Y1、1Y2输出端,与对应输入端(IN1、IN2)同逻辑4VS驱动电压,最小值需比输入的低电平电压高2.5V5、7IN1、IN2输入端,TTL电平兼容6、11EN1、EN2使能端,低电平禁止输出8GND地9VSS逻辑电源,4.5~7V10、12IN3、IN4输入端,TTL电平兼容13、142Y1、2Y2输出端,与对应输入端(IN3、IN4)同逻辑表3-3-1封装引脚及功能驱动电机的运行,I/O端口状态与电机制动对照表,如下。IN1IN2IN3IN4EN1EN2转速101011正转010111反转111111停止000011停止XXXX00停止表3-3-2I/O端口状态与电机制动对照表3.1.3电源模块:我们选择采用8.4v的独立的稳压电源。优点:稳定可靠,且有各种成熟电路可供选用;缺点:电源需要经LM2940转换成5v的独立的稳压电源。综合电源模块的缺优点,和电路的实际需求,我们采用了两个变压电源模块,一块给小车的电机驱动供电,一块给小车的芯片供电,这样弥补了单个独立电源供电出现电力不足的情况。

4.程序4.1程序流程图本设计系统软件采用模块化结构,由主程序﹑定时子程序、电机驱动子程序﹑中断子程序、显示子程序﹑算法子程序构成。主程序流程图如图2所示。其中:避障中断服务子程序完成对超声波探测器产生的外部中断进行处理,如果超出预定的危险距离就左转进行避障。在定时中断服务子程序,完成定时与里程的计算。主程序流程图如图13所示。图13程序流程图5系统软硬件调试5.1硬件调试超声波距仪的制作为了使信号稳定,最好给输入电源加上一个滤波电路,会增加误差,但总体来说不影响结果。在本次设计中,主控模块是非常重要的部分,它不仅是本次设计的核心,在本次硬件调试中也遇到了问题,接上电源的时候,显示屏不亮,没有任何显示,于是我做了如下的工作:(1)检查电源是否通电;(2)编程使P1为低电平,检查到P1输出为低;(3)检查P0口未接上拉电阻。5.2软件调试硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据所设计的电路参数和程序,测距仪能测的范围为20cm~150cm,测距仪最大误差不超过0.5cm。系统调试完后对各个距离进行多次测量,与预定值进行比较,对测量误差进行多次实验分析,不断调节器件和修改程序使其达到实际使用的测量要求。5.3调试中遇到的问题在焊接过程中一些地方出现虚焊等接触不良的问题,导致显示不稳定有闪烁。接线过程中用插针接线容易导致接线松动,没接到或者接触不良。环境问题:超声波在空气介质的传播过程中会有很大的衰减,其衰减遵循指数规律。一般情况下能测150cm,但是空气介质发生改变,如尘埃过多,导致红外线强度降低,测量发生误差,且测量距离变小。周围有其他辐射源,并且强度很大时会影响测量结果。结论对所设计的电路进行测量、校准发现其测量范围在20cm—150cm内的平面物体做了多次测量发现,其最大误差为0.5cm,且重复性好。该测距仪稳定性比较高、灵敏度比较高。但是在检测过程中会有一些不便的地方:1.测量时在超声波测距仪和目标物体之间周没有其它可阻挡的物体,由于是根据反射能量法,且发射功率有限,反射回来的声波能量容易过低而无法采集,测距仪无法测量150cm外的物体。2.必须在干净清新的空气环境下测量,空气中一旦尘埃过多,会最终影响计算距离的值。3.不能够实现不同温度下的测距功能。4.因为超声波是将空气作为媒介所以受电磁干扰比较大。由上述的分析知,如果能够干净清新的空气环境,稳定的温度下,无其它电磁干扰,阻挡的物体,能够获得较高的测量精度。参考文献[1]毋茂盛,《单片机原理与开发》,高等教育出版社[2]计时鸣,《机电一体化控制技术与系统》,西安电子科技大学出版社[3]张曙光,《c语言程序设计》,人民邮电出版社[4]彭伟,《单片机C语言程序设计实训—基于8051+Proteus仿真》电子工业出版社

附录附录一相关程序#include<reg52.h>#include<intrins.h>#include<STDIO.H>#defineucharunsignedchar#defineuintunsignedint /*DeclareSFRassociatedwiththePCA*/sfrCCON=0xD8;//PCAcontrolregistersbitCCF0=CCON^0;//PCAmodule-0interruptflagsbitCCF1=CCON^1;//PCAmodule-1interruptflagsbitCR=CCON^6;//PCAtimerruncontrolbitsbitCF=CCON^7;//PCAtimeroverflowflagsfrCMOD=0xD9;//PCAmoderegistersfrCL=0xE9;//PCAbasetimerLOWsfrCH=0xF9;//PCAbasetimerHIGHsfrCCAPM0=0xDA;//PCAmodule-0moderegistersfrCCAP0L=0xEA;//PCAmodule-0captureregisterLOWsfrCCAP0H=0xFA;//PCAmodule-0captureregisterHIGHsfrCCAPM1=0xDB;//PCAmodule-1moderegistersfrCCAP1L=0xEB;//PCAmodule-1captureregisterLOWsfrCCAP1H=0xFB;//PCAmodule-1captureregisterHIGHsfrPCAPWM0=0xf2;sfrPCAPWM1=0xf3; sbitRX=P1^0;sbitTX=P1^1;sbitpwm=P2^7;sbitINPUT1=P2^0;//p1^3sbitINPUT2=P2^1;sbitINPUT3=P2^2;//p1^4sbitINPUT4=P2^3;sbitENA=P2^4;sbitENB=P2^5;unsignedcharjd=0,count=0,joflag=0;//角度标识 unsignedinttime=0; unsignedinttimer=0; floatS=0;bitflag=0;/********************************************************/voidConut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100;//算出来是CM// if(flag==1) //超出测量// {// flag=0;// printf("\n");// }//// printf("S=%f\n",S); }/********************************************************/voidDelay1ms() //@11.0592MHz{ unsignedchari,j; _nop_(); i=11; j=190; do { while(--j); }while(--i);}voiddelayms(unsignedintxms){ intxnum=0; for(;xnum<xms;xnum++) { Delay1ms(); }}voidDelay5us() //@11.0592MHz{ unsignedchari; _nop_(); _nop_(); _nop_(); i=10; while(--i);}voiddelayus5x(unsignedintxus){ while(xus--) { Delay5us(); }}/********************************************************/voidStartModule() //T1中断用来800MS启动模块{ TX=1; //800MS启动一次模块 Delay5us(); Delay5us(); Delay5us(); Delay5us(); TX=0;}/****************************/*描述:PWM初始化函数/*功能:程序开始执行部分/*输入:左右两个轮子的速度****************************/voidPWM_INIT(){ CCON=0; CL=0; CH=0; CMOD=0X00;//0x02 CCAP0H=CCAP0L=0XFF; CCAPM0=0X42; CCAP1H=CCAP1L=0XFF; CCAPM1=0X42; CR=1; }/****************************/*描述:PWM调速函数/*功能:程序开始执行部分/*输入:左右两个轮子的速度****************************/voidmoto(intleft_speed,intright_speed){ if(left_speed>=255) left_speed=255; if(right_speed>=255) right_speed=255; CCAP0H=CCAP0L=(255-left_speed); CCAP1H=CCAP1L=(255-right_speed);}voiddianji(){INPUT1=1; INPUT2=0; INPUT3=1; INPUT4=0; ENA=1; ENB=1;}voidstop(){ INPUT1=1; INPUT2=0; INPUT3=1; INPUT4=0; ENA=0; ENB=0;}//voidduoji()//{//// TH0=0xff;//重新赋值// TL0=0x19;////if(count<jd)//判断0.5ms次数是否小于角度标识//pwm=1;//确实小于,PWM输出高电平//else//pwm=0;//大于则输出低电平////count=(count+1);//0.5ms次数加1//count=count%80; //次数始终保持为40即保持周期为20ms////}voidjiaodu(unsignedcharnum){ unsignedintjdcount=0; for(;jdcount<400;jdcount++) { if(jdcount<=num) pwm=1; elsepwm=0; delayus5x(10); }}voidcheck(){ if(S<40)//检测到障碍物 { if(joflag%2) //0 { jiaodu(2); } else { jiaodu(35); } joflag++; joflag%=200; delayms(1200); jiaodu(21); } else jiaodu(21); delayms(100);}/********************************************************/voidmain(void){ unsign

温馨提示

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

评论

0/150

提交评论