《智能避障小车课程设计.docx》由会员分享,可在线阅读,更多相关《智能避障小车课程设计.docx(23页珍藏版)》请在三一办公上搜索。
1、 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】智能避障小车课程设计光机电一体化课程设计 题 目: 智能超声波避障小车 院 别: 机电学院 专 业: 机械电子工程(师范) 姓 名: 路小娃 学 号: 同组人员: 谢嘉玲 欧嘉兴 指导教师: 杨 永 日 期: 2016年6月16日 智能超声波避障小车摘要本设计主要有三个模块包括信号检测模块、主控模块、电机驱动模块。信号检测模块采用超声波测距模块,用以对有无障进行检测。主控电路采用宏晶公司的8051核心的STC89C52单片机为控制芯片。电机驱动模块采用意法半导体的L298N专用电机驱动芯片,单片控制与
2、传统分立元件电路相比,使整个系统有很好的稳定性。信号检测模块将采集到的路况信号传入STC89C52单片机,经单片机处理过后对L298N发出指令进行相应的调整。我们设计的小车已经实现基本的避障功能。关键词:智能避障小车,STC89C52单片机,L298N驱动芯片,信号检测模块,避障目录 1课程设计内容项目研究的背景及意义智能作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。本设计主要体现多功能小车的智能模式,设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、 家用自动清
3、洁机器人等自动半自动机器人的设计与普及有一定的参考意义。同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的 弥补,实现经济收益,形成商业价值。 超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单, 易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。 本智能小车系统最诱人的前景就是可用于未来的智能汽车上了,当驾驶员
4、因疏忽或打瞌睡时这样的智能汽车的设计就能体现出它的作用。如果汽车偏离 车道或距障碍物小于安全距离时,汽车就会发出警报,提醒驾驶员注意,如果 驾驶员没有及时作出反应,汽车就会自动减速或停靠于路边。这样的小车还可以用于月球探测等的无人探月车,帮助我们传达月球上更 多的信息,让我们更加的了解月球,为将来登月做好充分准备。 这样的小车在科学考察探测车上也有广阔的应用前景,在科学考察中,有 很多危险且人们无法涉足的地方,这时,智能科学考察车就能够派上用场,在 它上面装上摄像机,代替人们进行许多无法进行的工作。应用场合和功能: 应用场合:智能小车是一种能够通过编程手段完成特定任务的小型化机器人,它具有制作
5、成本低廉,电路结构简单,程序调试方便等优点。由于具有很强的趣味性,智能小车深受广大机器人爱好者以及高校学生的喜爱。同时在玩具的应用上深受小朋友的青睐。功能:本小车使用STC12C5A60S2单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,当小车与障碍物的距离大于30cm时,小车会沿直线前进,当小车与障碍物的距离小于30cm时,小车转弯以避开障碍物。在避开障碍物后,小车会沿直线前进。项目主要研究内容本设计题目为智能避障小车设计,主要研究小车的避障功能,小车遇到障碍物时,当距离障碍物大于30cm,驱动电机工作,小车正常前进,当小于30cm时,舵机会接受到单片机的信号,小车采取相应的
6、避障措施。这里探测装置必不可少,因为超声波在距离检测方面的较准确定位。所以采用超声波传感器作为探测装置,由于超声波遇到障碍物时发生像光一样的反射和散射,在经过多次发射之后再回到超声波检测端口会产生较严重的路程差,从而影响对距离的检测进而影响对障碍物的较准确定位。通过软件内部校准优化消除外部物理条件造成的误差从而达到对障碍物的较准确定位。2总体方案论述总体方案计划小车使用STC12C5A60S2单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,当小车与障碍物的距离大于危险距离时,小车会沿直线前进,当小车与障碍物的距离小于危险距离时,小车转弯以避开障碍物。在避开障碍物后,小车会沿直线
7、前进。总体功能及性能指标1. 通过测距传感器来获取小车距离障碍物的距离。2. 当小车与障碍物的距离大于30cm时,小车会沿直线前进,当小车与障碍物的距离小于30cm时,小车转弯以避开障碍物。总体电路原理图图二 总体电路原理图系统方案的比较与确定1.方案一(1)设计超声波模块测距,STC12C5A60S2单片机作为主控模块;(2)设定报警阈值(设定30CM,可用键盘调整阈值),小车通过舵机工作来实现转弯避障;(3)利用STC12C5A60S2的P1口AD转换功能,超声波模块测量距离。2.方案二(1)红外测距器的系统设计,STC12C5A60S2单片机作为主控模块;(2)用动态扫描法实现LED数字
8、显示,红外驱动信号用单片机的定时器完成;(3)单片机使用端口输出超声波转化器所需的40KHz方波信号ISD1820语音播放距离,并用LED数字显示显示其距离值。我们小组考虑到,超声波测距方向性好,耐脏污,可以在较差环境下使用,价格中等,检测距离远。红外测距的优点是便宜,易制,安全,缺点是精度低、抗干扰能力差、方向性差、测试距离近。激光测距精度高,但是成本较高,制作难度高,对人体安全有影响,且受外界环境影响较大。三者经过相互比较,从经济和我们所学的知识考虑。所以我们最终选择方案一。最终实物图3硬件电路的设计 硬件系统的基本结构该智能车系统可分为四个主要模块:单片机主控核心模块,传感器避障模块,电
9、机驱动模块和显示模块。其主要组成构图如下:数据数据数据数据超声波单片机STC12C5A60S2单片机STC12C5A60S2控制数据舵机控制数据障碍物测距系统:方案一:超声波视觉 优点:价格合理,夜间不受影响。易于多目标测量和分类,分辨率好。缺点:测量范围小,对天气变化敏感。不能直接测量距离,算法复杂,处理速度慢。方案二:红外测距 优点:便宜,易制,安全,速度快。 缺点:精度低,距离近,方向性差,容易受光干扰 探测障碍的最简单的方法是使用超声波传感器,它是利用向目标发射超声波脉冲,计算其往返时间来判定距离的。算法简单,价格合理。所以我们选择超声波传感器。超声波测距原理:首先利用单片机输出一个4
10、0kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。时序图如图1所示。由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:S=VT/2,通过单片机来算出距离。图:超声波测距原理驱动模块:方案一:采用ULN2003驱动,它是由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时
11、驱动7组负载的能力,一般用于高速大功率驱动电路。所以我们不采用这个方案。方案二:采用由双极性管组成的H桥电路(L298N)。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,则效率非常高;H桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高。而且它有更强的驱动能力。L298N有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。L298N有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。所以我们选择L298N。下图为L298内部图:图:L298内部原理图L298各引脚功能,如下表。引脚功能1、15S
12、EN1、SEN2分别为两个H桥的电流反馈脚,不用时可以接地2、31Y1、1Y2输出端,与对应输入端(IN1、IN2)同逻辑4VS驱动电压,最小值需比输入的低电平电压高5、7IN1、IN2输入端,TTL电平兼容6、11EN1、EN2使能端,低电平禁止输出8GND地9VSS逻辑电源,7V10、12IN3、IN4输入端,TTL电平兼容13、142Y1、2Y2输出端,与对应输入端(IN3、IN4)同逻辑表3-3-1 封装引脚及功能驱动电机的运行,I/O端口状态与电机制动对照表,如下。IN1IN2IN3IN4EN1EN2转速101011正转010111反转111111停止000011停止XXXX00停止
13、表3-3-2 I/O端口状态与电机制动对照表电源模块:我们选择采用的独立的稳压电源。优点:稳定可靠,且有各种成熟电路可供选用;缺点:电源需要经LM2940转换成5v的独立的稳压电源。综合电源模块的缺优点,和电路的实际需求,我们采用了两个变压电源模块,一块给小车的电机驱动供电,一块给小车的芯片供电,这样弥补了单个独立电源供电出现电力不足的情况。4.程序 程序流程图本设计系统软件采用模块化结构,由主程序定时子程序、电机驱动子程序中断子程序、显示子程序算法子程序构成。主程序流程图如图2所示。其中:避障中断服务子程序完成对超声波探测器产生的外部中断进行处理,如果超出预定的危险距离就左转进行避障。在定时
14、中断服务子程序,完成定时与里程的计算。主程序流程图如图13所示。图13 程序流程图5系统软硬件调试 硬件调试超声波距仪的制作为了使信号稳定,最好给输入电源加上一个滤波电路,会增加误差,但总体来说不影响结果。在本次设计中,主控模块是非常重要的部分,它不仅是本次设计的核心,在本次硬件调试中也遇到了问题,接上电源的时候,显示屏不亮,没有任何显示,于是我做了如下的工作:(1)检查电源是否通电;(2)编程使P1为低电平,检查到P1输出为低;(3)检查P0口未接上拉电阻。软件调试 硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据所设计的电路参数和程序,测距仪能测的范围为20cm150c
15、m,测距仪最大误差不超过。系统调试完后对各个距离进行多次测量,与预定值进行比较,对测量误差进行多次实验分析,不断调节器件和修改程序使其达到实际使用的测量要求。 调试中遇到的问题在焊接过程中一些地方出现虚焊等接触不良的问题,导致显示不稳定有闪烁。接线过程中用插针接线容易导致接线松动,没接到或者接触不良。环境问题:超声波在空气介质的传播过程中会有很大的衰减,其衰减遵循指数规律。一般情况下能测150cm,但是空气介质发生改变,如尘埃过多,导致红外线强度降低,测量发生误差,且测量距离变小。周围有其他辐射源,并且强度很大时会影响测量结果。结 论对所设计的电路进行测量、校准发现其测量范围在20cm150c
16、m内的平面物体做了多次测量发现,其最大误差为,且重复性好。该测距仪稳定性比较高、灵敏度比较高。但是在检测过程中会有一些不便的地方: 1.测量时在超声波测距仪和目标物体之间周没有其它可阻挡的物体,由于是根据反射能量法,且发射功率有限,反射回来的声波能量容易过低而无法采集,测距仪无法测量150cm外的物体。2.必须在干净清新的空气环境下测量,空气中一旦尘埃过多,会最终影响计算距离的值。3.不能够实现不同温度下的测距功能。4.因为超声波是将空气作为媒介所以受电磁干扰比较大。由上述的分析知,如果能够干净清新的空气环境,稳定的温度下,无其它电磁干扰,阻挡的物体,能够获得较高的测量精度。参考文献1 ,单片
17、机原理与开发,高等教育出版社2 计时鸣,机电一体化控制技术与系统,西安电子科技大学出版社3 张曙光,c语言程序设计,人民邮电出版社4 彭伟,单片机C语言程序设计实训基于8051+Proteus仿真电子工业出版社附录 附录一 相关程序#include #include #include #define uchar unsigned char#define uint unsigned int /*Declare SFR associated with the PCA */sfr CCON = 0xD8; /PCA control registersbit CCF0 = CCON0; /PCA mo
18、dule-0 interrupt flagsbit CCF1 = CCON1; /PCA module-1 interrupt flagsbit CR = CCON6; /PCA timer run control bitsbit CF = CCON7; /PCA timer overflow flagsfr CMOD = 0xD9; /PCA mode registersfr CL = 0xE9; /PCA base timer LOWsfr CH = 0xF9; /PCA base timer HIGHsfr CCAPM0 = 0xDA; /PCA module-0 mode regist
19、ersfr CCAP0L = 0xEA; /PCA module-0 capture register LOWsfr CCAP0H = 0xFA; /PCA module-0 capture register HIGHsfr CCAPM1 = 0xDB; /PCA module-1 mode registersfr CCAP1L = 0xEB; /PCA module-1 capture register LOWsfr CCAP1H = 0xFB; /PCA module-1 capture register HIGHsfr PCAPWM0 = 0xf2;sfr PCAPWM1 = 0xf3;
20、sbit RX=P10; sbit TX=P11; sbit pwm =P27 ; sbit INPUT1=P20; /p13 sbit INPUT2=P21; sbit INPUT3=P22; /p14 sbit INPUT4=P23; sbit ENA=P24; sbit ENB=P25; unsigned char jd=0,count=0,joflag=0; /角度标识unsigned int time=0;unsigned int timer=0;float S=0; bit flag =0;/*/ void Conut(void) time=TH0*256+TL0; TH0=0;
21、TL0=0; S=(time*/100; /算出来是CM/ if(flag=1) /超出测量/ / flag=0;/ printf(-n); / / printf(S=%fn,S); /*/ void Delay1ms()unsigned char i, j;_nop_();i = 11;j = 190;dowhile (-j); while (-i);void delayms(unsigned int xms)int xnum=0;for(;xnum=255)left_speed=255;if(right_speed=255)right_speed=255;CCAP0H = CCAP0L =
22、 (255-left_speed);CCAP1H = CCAP1L = (255-right_speed);void dianji() INPUT1=1;INPUT2=0;INPUT3=1;INPUT4=0;ENA=1;ENB=1; void stop()INPUT1=1;INPUT2=0;INPUT3=1;INPUT4=0;ENA=0;ENB=0;/void duoji()/TH0 = 0xff; /重新赋值/TL0 = 0x19;/ if(countjd) /判断次数是否小于角度标识/ pwm=1; /确实小于,PWM输出高电平/ else/ pwm=0; /大于则输出低电平/ count
23、=(count+1); /次数加1/ count=count%80; /次数始终保持为40 即保持周期为20ms/void jiaodu(unsigned char num)unsigned int jdcount=0;for(;jdcount400;jdcount+)if(jdcount=num)pwm=1;else pwm=0;delayus5x(10);void check()if(S40) /检测到障碍物if(joflag%2)/0 jiaodu(2);else jiaodu(35);joflag+;joflag%=200;delayms(1200);jiaodu(21); else
24、jiaodu(21);delayms(100);/*/void main(void) unsigned char iii=0; TMOD=0x21; /设T0为方式1,GATE=1;SCON=0x50;TH1=0xFD;TL1=0xFD;TH0=0;TL0=0; TR0=1; ET0=1; /允许T0中断TR1=1; /开启定时器TI=1;EA=1; /开启总中断dianji();PWM_INIT();moto(130,130);for(;) StartModule(); /set csb while(!RX);/当RX为零时等待 TR0=1; /开启计数 while(RX);/当RX为1计数
25、并等待 TR0=0;/关闭计数 Conut();/计算 / duoji(); EA=0; check(); EA=1; delayms(500);/100MS /*/ void zd0() interrupt 1 /T0中断用来计数器溢出,超过测距范围 flag=1; /中断溢出标志 附录二 使用元器件一览表序号名称型号规格数量备注1单片机芯片STC型STC12C5A60S21个主控单元2超声波模块1个测距3稳压芯片LM型LM29404个稳压4晶振12MHz产生时钟频率6电容陶瓷型普通型100F20PF7排阻普通型1031个上拉电阻8驱动L289n1个附录三 心得心得我们组的设计题目是“智能避
26、障小车”,我们都没有做过避障小车,一开始不知从何下手,后来找了班里做同个题目的大神咨询,请教了实验室的师兄,理出思路,先是通过上网,看书查找有关资料,开会提出大概构造和预期效果,再比较各类方案,敲出最终方案,定出初步模型,并购买相应材料开始焊电路板。然后组长根据组员的能力和特长分工,比如焊接硬件电路、整理文档、编写程序和画电路图等。通过一番整理和修改后,用Protel在电脑上进行电路排版,排布成功后准备焊接电路板。焊接后检测电路和进行程序调试。虽然在过程中我们出现不少问题但大家开动思路,查阅资料,求助大神后积极动手,最终还是成功解决。通过这次课程设计,不仅增强了我们的动手能力,提高和巩固了单片机方面的知识和动手操作能力,认识到把理论应用到实践中去是多么重要,还凝聚了团队合作精神。而且意识到学习机械电子技术的重要性,它可以将我们学习到的知识转化成科技生产力,从而造福于社会,加强我们国家的现代化步伐。更进一步地说,只有学好理论知识,提升自己的科研能力,才有可能成为一名真正的高素质人才。做任何事情都需要沉住气,稳住心,才能一步一个脚印完成。