超声波避障小车研究报告_第1页
超声波避障小车研究报告_第2页
超声波避障小车研究报告_第3页
超声波避障小车研究报告_第4页
超声波避障小车研究报告_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

超声波避障小车项目研究汇报项目组组员:计科专业0901余恒洋计科专业0901吴林生医专业0902史思总“智能机器人”创新实践班5月20日

摘要Mega16是AVR系列单片机里应用比较广泛的一款,在自动控制领域里享有很高的价值,以其易用性和多功能性受到了广大电子设计及爱好者的好评。本次设计重要是运用mega16单片机、超声波传感器和L298N完毕避障小车的制作,以ATmega16为主控芯片,运用超声波对距离的检测将前方的障碍探测出来并且通过超声波传回的数据进行判断,然后ATmega16发出指令控制电机的转动。关键词:超声波传感器避障小车ATmega16目录摘要 II1绪论 -1-1.1项目研究背景及意义 -1-1.2项目重要研究内容 -1-2总体设计方案及论证 -2-2.1总体方案设计 -2-2.2硬件设计 -2-2.2.1电源设计 -2-2.2.2电机驱动设计 -3-2.2.3超声波测试模块 -4-2.2.4主控系统设计 -5-2.3软件设计 -5-2.3.1直流电机控制模块 -5-2.3.2超声波探测模块 -7-2.4软件与硬件的整合 -10-2.4.1调试超声波模块 -10-2.4.2电机调试 -10-3测试 -11-4成果分析 -12-5总结 -13-6参照文献 -14-7附录 -15-绪论项目研究背景及意义伴随汽车工业的迅速发展,有关汽车的研究也越来越受到人们的关注。智能汽车概念的提出给汽车产业带来机遇也带了挑战。汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于超声波的智能小车的避障研究。超声波作为智能车避障的一种重要手段,以其避障实现以便,计算简朴,易于做到实时控制,测量精度也能到达实用的规定,在未来汽车智能化进程中必将得到广泛应用。我国作为一种世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种状况下研究超声波在智能车避障上的应用品有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。项目重要研究内容超声波在距离检测方面的较精确定位。超声波传感器重要发射高频超声波,在碰到障碍物时发生像光同样的反射和散射,在通过多次发射之后再回到超声波检测端口会产生较严重的旅程差,从而影响对距离的检测进而影响对障碍物的较精确定位。通过软件内部校准优化消除外部物理条件导致的误差从而到达对障碍物的较精确定位。总体设计方案及论证总体方案设计系统采用ATMEL的8位微控制器ATmega8单片机作为关键控制单元用于智能车系统的控制,在超声波检测到障碍物之后,主控芯片根据距离值控制直流电机的转动,在转动的方案上将首先尝试左转,在900ms里面持续转动三次阐明前方的障碍不能通过,就控制小车后退,并且向相反的方向转动。系统总体的设计方框图如图2-1所示。图2图2STYLEREF1\s2SEQ图2-\*ARABIC\s11系统总体方案图图1.2系统总体方框图硬件设计电源设计电源部分的设计重要采用7805芯片,使用7805芯片搭建的电路的长处是简朴、实用,并且完全可以满足壁障小车单片机控制系统和L298N芯片的逻辑供电的供电需要。7805芯片有3个引脚,分别为输入IN端、输出OUT端和接地GND端,一般状况下可以提供1.5A的电流,在散热足够的状况下可以提供不小于1.5A的电流。7805芯片的输入电压可认为9V、12V、15V不等,输出电压稳定在5V,正负误差不超过0.2V。7805芯片如图2-2。基于这样的状况再结合电机的工作电压,选用了12V电源作为7805的输入电源,搭建的电源部分电路如图2-3图STYLEREF1\s2SEQ图\*ARABIC\s127805芯片电机驱动设计电机驱动部分重要采用一片L298N和主控芯片ATmega16单片机直接相连够成驱动电路。L298N芯片直插式的15个引脚,其中有两个使能端ENA和ENB,两个反馈端SA和SB,四个输入端IN1、IN2、IN3和IN4,四个输出端OUT1、OUT2、OUT3和OUT4,一种接地端GND,一种VSS(5V时性能最佳)逻辑电源电压输入端和一种VS(最大承载电压46V,鉴于7805和电机电压,选用12V电源供电)功率电源电压输入端。L298N可同步驱动两个电机,最大输出电流为2A,鉴于它的良好性能和价格,选用L298N作为电机驱动芯片,L298N芯片如图2-3。ATmega16的PB4、PB5两个端口直接分别与L298N的两个使能端ENA、ENB相连,控制电机转停的目的。PD0~PD3端口分别与L298N的引脚IN1、IN2、IN3、IN4相连通过电平变化控制电机在持续高速状态下的转向。L298N的四个输出端直接与两个电机相连驱动电机。搭建的电机驱动部分电路如图2-4。图2-3L298N芯片图2-4电机驱动电路图超声波测试模块超声波模块采用现成的HC-SR04超声波模块,该模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm。模块包括超声波发射器、接受器与控制电路。基本工作原理:采用IO口TRIG触发测距,给至少10us的高电平信号;模块自动发送8个40khz的方波,自动检测与否有信号返回;有信号返回,通过IO口ECHO输出一种高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。实物如下图2-5。其中VCC供5V电源,GND为地线,TRIG触发控制信号输入,ECHO回响信号输出等四支线。图2-5超声波模块实物图图2-5超声波模块实物图主控系统设计主控系统重要采用ATmega16单片机作为中央处理器,系统重要包括ISP下载端口用于目前单片机程序、超声波连接端口用于和超声波模块的连接输入检测信号和输出指令信号、L298N连接端口用于和驱动电路的连接,输出电机转动信号和各类指示灯用于指示测试信号等。控制系统部分电路如图2-6图2-6主控系统原理图软件设计直流电机控制模块在单片机的应用领域里面,电机控制的措施比较多,主流的控制方案有如下几种:方案一:串电阻调速系统。方案二:静止可控整流器。简称V-M系统。方案三:脉宽调速系统。旋转变流系统由交流发电机拖动直流电动机实现变流,由发电机给需要调速的直流电动机供电,调整发电机的励磁电流即可变化其输出电压,从而调整电动机的转速。变化励磁电流的方向则输出电压的极性和电动机的转向都伴随变化,因此G-M系统的可逆运行是很轻易实现的。该系统需要旋转变流机组,至少包括两台与调速电动机容量相称的旋转电机,还要一台励磁发电机,设备多、体积大、费用高、效率低、维护不以便等缺陷。且技术落后,因此搁置不用。V-M系统是当今直流调速系统的重要形式。它可以是单相、三相或更多相数,半波、全波、半控、全控等类型,可实现平滑调速。V-M系统的缺陷是晶闸管的单向导电性,它不容许电流反向,给系统的可逆运行导致困难。它的另一种缺陷是运行条件规定高,维护运行麻烦。最终,当系统处在低速运行时,系统的功率因数很低,并产生较大的谐波电流危害附近的用电设备。采用晶闸管的直流斩波器基本原理与整流电路不一样的是,在这里晶闸管不受相位控制,而是工作在开关状态。当晶闸管被触发导通时,电源电压加到电动机上,当晶闸管关断时,直流电源与电动机断开,电动机经二极管续流,两端电压靠近于零。脉冲宽度调制(PulseWidthModulation),简称PWM。脉冲周期不变,只变化晶闸管的导通时间,即通过变化脉冲宽度来进行直流调速。与V-M系统相比,PWM调速系统有下列长处:(1)由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可以获得脉动很小的直流电流,电枢电流轻易持续,系统的低速运行平稳,调速范围较宽,可达1:10000左右。由于电流波形比V-M系统好,在相似的平均电流下,电动机的损耗和发热都比较小。(2)同样由于开关频率高,若与迅速响应的电机相配合,系统可以获得很宽的频带,因此迅速响应性能好,动态抗扰能力强。(3)由于电力电子器件只工作在开关状态,主电路损耗较小,装置效率较高。根据以上综合比较,以及本设计中受控电机的容量和直流电机调速的发展方向,本设计采用了Mega16单片机的PWM输出调速,结合LM298芯片,可以实现比很好的控制效果,在小车避障的过程中,也可以直接控制LM298芯片,变化电机的运转状况,实现简易的转向与后退等功能。电机控制流程图:图2-7电机控制流程图图2-7电机控制流程图 超声波探测模块超声波探测模块HC-SR04的使用措施如下:IO口触发,给Trig口至少10us的高电平,启动测量;模块自动发送8个40Khz的方波,自动检测与否有信号返回;有信号返回,通过IO口Echo输出一种高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*340)/2,单位为m。程序中测试功能重要由两个函数完毕,即measure()负责启动一次模块的测距,然后由ShouldTurn()确定前方与否有障碍物,根据车体大小及系统的反应,通过测试,取30cm的反应距离效果较为明显。此外,HC-SR04超声波探测模块探测的间隔周期推荐值是64ms(图2-8),但通过试验,我们发目前我们的小系统中取125ms较为合适,使主程序有足够的时间来驱动小车前进,而不至于出现前进不流畅的现象。图2-8超声波探测模块时序图图2-8超声波探测模块时序图实现中采用定期器0进行定期测量,8分频,TCNTT0预设值0XCE,当timer0溢出中断发生2500次时为125ms,计算公式为(单位:ms):T=(定期器0溢出次数*(0XFF-0XCE))/1000其中定期器0初值计算根据分频不一样而有差异。超声波探测程序流程图:图2-9图2-9超声波探测程序流程图

软件与硬件的整合在本次设计过程中,考虑到各个模块之间的控制复杂性,我们将电机控制,超声波测距分开调试,当两个模块都可以正常工作之后,再将它们结合起来调试,采用了“分而治之”的思想。调试超声波模块在调试超声波的时候,重要思想是用定期器检测超声波会送信号维持高电平的时间,用串口示波器将测得的数据显示在串口示波器上,根据返回的成果,确定到达转弯距离以内所需要的时间,然后运用时间控制电机电机调试在点击调试的过程中,我们首先将Mega16的PWM输出在示波器上反应出来,保证PWM波的输出正常,并且可以根据顾客设定的比较值产生不一样形式的输出,在比较匹配发生之后,调整其占空比,实现电机的速度控制,在控制电机转动的时候,采用直接控制LM298芯片的方式,实现左转,右转,后退等功能。测试由于HR-S04对于障碍物的反射面有一定规定,即不能凹凸不平,应尽量平滑,否则测量不会很精确。针对障碍物表面的平整与不平整,我们分别测试了小车的运行状况。当障碍物表面叫平整时,除非是极端的拐角处小车无法退出外(考虑到编程的复杂度以及仅仅是示意模型小车,程序中未记录小车转弯途径),小车能很好的避障;当障碍物表面不是很平整时,成果不能预测,有时小车能很好的转弯,而有时不能,这重要取决于探测模块的探测敏捷度,由于超声波和一般声波同样,有也许通过多次反射后回来的信号已出现偏差,而这程序很难实现辨别。总的说来,小车的运行成果基本到达了预期的效果,实现了演示性的避障功能。针对以上测试成果我们对控制程序进行了细微的改善,这样考虑:由于小车只有前方一种导向源,当碰到障碍物时而不能通过时会卡死,因此我们想到在程序中设置一种计数器,记录小车探测到障碍物的次数,同步也记下记录到对应次数时所用的总的探测时间,当在短时间内测量次数到达一定数量时阐明周围障碍物较多或已堵死在前方,此时让小车后退一段距离然后随机的转一种方向,再继续前进,实践中我们获得探测限制次数为3次,时间为6000us,即3次探测到障碍物的总时间不不小于6000us时就执行后退功能。通过实际测试,改善后小车避障效果体现的较为杰出(当然是在只有前方一种探测器的前提下),与之前相比有很大的提高,基本不会出现小车不能继续前进的状况,到达了我们预期的效果。

成果分析小车通过测试,运行成果良好。硬件上没有错误,重要瓶颈在于探测模块的敏捷度,由于软件完全靠探测模块返回的信号作为根据进行下一步控制的操作,无法确认该信号与否精确。为使小车转弯愈加精确与智能,可以有如下改善:(1)增长对小车转弯次数和每次转弯时前面所通过的时间的记录,这样可以进行回退,使小车显得更智能某些,不过这会增长开发难度,也会规定更多的存储空间及数据处理时间,假如处理器速度不是很快,效果也许不会太明显;(2)增长探测模块的个数,如左右各增长一种探测器,这样同步检测多种方向,明显改善避障的效果,尤其是针对墙角、三面均有障碍物的状况。

总结本超声波避障小车的设计基于单片机原理和传感器原理,以ATmega16单片机为主控芯片,采用L298N和12V直流电机为驱动元件,通过软件编程制作了一整套构造完整,功能模块化,反应较为敏捷的超声波避障小车。通过对该避障小车的避障测试试验,试验成果证明该避障小车可以很好的按照预期完毕避障动作,并且可以迅速运动敏捷避障,效果良好,运行稳定性很好。不过该超声波避障小车还存在着许多的局限性,例如说只能对正前方一定角度内进行探测,使用的是一路超声波而不是多路超声波探测,并且为了简化,默认的只是向同一种方向转弯等,这些都是有待深入发展和提高的,这与制作者自身的对与障碍检测距离分析、自动控制信号处理、图像处理等诸多技术的有限性分不开的,还需要研究制作者的学习和探索。本次项目共历时两个月,有充足的时间来准备,但由于我们对所需器件的不熟悉导致花在器件采购上的时间较多,后来需要详细规划好项目估计使用的器材,这样可以便一次购置到位。此外项目的进度控制不是很精确,小组的执行力不够,以致有几次都没能按估计进度完毕规定任务,当然技术上自身也有一定难度,但我们认为这不是重要原因,后来我们会强调时间概念,准时并且争取有效率的完毕规定阶段的任务。超声波避障小车的实物主体框架由史思总负责完毕,包括硬件电路的设计与焊接和最胡的组装,吴林和余恒洋负责软件上的编写。我们分工比较明确,使得小组各组员能专注于自己的那部分任务,工作完毕质量更有保证,并且查错与改错也更轻易某些。我们碰到的困难重要在于对超声波模块的使用措施不理解,试验室的模块并没有配套的资料,而网上也比较难找到它的手册资料,最终我们选择参照模板程序,然后对其进行改善使之适于自己的需求,这样也减少了从头到尾反复编写代码的时间。最初我们考虑到会使用pwm波来控制电机,但后来测试发现我们的小车速度并不快,无需pwm调速都能正常运行,故我们在项目结束时没有考虑pwm的使用,这也使我们的工作大大简化,我们总结得出:能用简朴措施处理的问题便不用复杂的技术。

参照文献[1]邵贝贝.嵌入式实时操作系统[LC/OS-Ⅱ(第2版)[M].北京.清华大学出版社.[2]邵贝贝.单片机嵌入式应用的在线开发措施[M].北京.清华大学出社.[3]王晓明.电动机的单片机控制[M].北京.北京航空航天大学出版社.[4]臧杰,阎岩.汽车构造[M].北京.机械工业出版社.[5]安鹏,马伟.S12单片机模块应用及程序调试[J].电子产品世界..第211期.162-163[7]童诗白,华成英.模拟电子技术基础[M].北京.高等教育出版社.[8]沈长生.常用电子元器件使用一读通[M].北京.人民邮电出版社.[9]宗光华.机器人的创意设计与实践[M].北京.北京航空航天大学出社.[10]张伟等.ProtelDXP高级应用[M].北京.人民邮电出版社.[11]张文春.汽车理论[M].北京.机械工业出版社.[12]江海波,王卓然,耿德根编著.深入浅出AVR单片机.中国电力出版社,.[13]袁新娜,与红英编著.超声波传感器在智能小车避障系统中的应用.[A]中北大学()08-0085-04

附录超声波避障小车原理图超声波避障小车PCB图小车运行图片超声波避障小车程序源代码

附录一:超声波避障小车原理图

附录二:超声波避障小车PCB图

附录三:小车运行图片

附录四:超声波避障小车程序源代码/////////////////////////////////Motor.h///////////////////////////////#ifndef_MOTOR_H_#define_MOTOR_H_#include<iom16v.h>#include<macros.h>//宏定义#defineSTOP_LEFTPORTC&=~((1<<PC7)|(1<<PC6))#defineFORWARD_RPORTC|=(1<<PC7);PORTC&=~(1<<PC6)#defineBACKWARD_RPORTC&=~(1<<PC7);PORTC|=(1<<PC6)#defineSTOP_RIGHTPORTC&=~((1<<PC5)|(1<<PC4))#defineFORWARD_LPORTC&=~(1<<PC4);PORTC|=(1<<PC5)#defineBACKWARD_LPORTC&=~(1<<PC5);PORTC|=(1<<PC4)//自定义类型typedefunsignedcharuchar;typedefunsignedintuint;typedefunsignedlongulong;typedefenum{FALSE=0,TRUE=1,LEFT,RIGHT,FORWARD,BACKWARD,STOP}BOOL;//函数申明voidBackward(void);voidForward(void);voidStop(void);voidTurn(intflag);#endif/////////////////////////////////Motor.c///////////////////////////////#include"motor.h"#include"delay.h"////////////////////////////////////////////////////voidForward(void){ FORWARD_R; FORWARD_L;}///////////////////////////////////////////////////voidBackward(void){BACKWARD_R; BACKWARD_L; }///////////////////////////////////////////////////voidTurn(intflag){ Stop(); Delay_ms(10); if(flag==RIGHT) { STOP_RIGHT; FORWARD_L; } elseif(flag==LEFT) { STOP_LEFT; FORWARD_R; } elseif(flag==FORWARD) { Forward(); } else { Backward(); } Delay_ms(500); }///////////////////////////////////////////////////voidStop(void){ STOP_LEFT; STOP_RIGHT;}/////////////////////////////////Measure.h///////////////////////////////#ifndef_MEASURE_H#define_MEASURE_H//触发端口:PB0//回应端口:PD3#defineECHOPD3#defineSTART_TRIGPORTB|=0X01#defineSTOP_TRIGPORTB&=0XFE#defineCLEAR_TRIGSTOP_TRIG#defineCLEAR_ECHOPORTD&=~(1<<ECHO)//0b00001000=1<<PD3=1<<ECHO#defineECHO_IS_LOW(!(PIND&(0b00001000)))#defineECHO_IS_HIGH(PIND&(0b00001000))//函数申明voidmeasure(void);intShouldTurn(void);#endif/////////////////////////////////Measure.c///////////////////////////////#include"measure.h"#include"delay.h"#include<iom16v.h>#include<macros.h>///////////////////////////////////////////////////voidmeasure(void){ CLEAR_TRIG; START_TRIG;//触发探测 Delay_us(20); //产生20us的触发信号 STOP_TRIG; CLEAR_ECHO; //将ECHO口置为低}///////////////////////////////////////////////////intShouldTurn(void){ unsignedlongtmp=0; TCCR1B=0X00;//关闭定期器1 TCNT1H=0x00; TCNT1L=0x00; //若检测为低电平则等待,高电平阐明有障碍物 while(ECHO_IS_LOW) { } TCCR1B=0X02; //8分频,启动定期器1 while(ECHO_IS_HIGH) { tmp=TCNT1H; tmp<<=8; tmp+=TCNT1L; if(tmp>)//不小于半米的距离,半米的距离需1470=0x05BE(us) { TCCR1B=0X00; return0; } } TCCR1B=0X00;//关闭定期器1 return1;}//////////////////////////////////Delay.h///////////////////////////////#ifndef_DELAY_H_#define_DELAY_H_voidDelay_us(unsignedint);voidDelay_ms(unsignedint);#endif/////////////////////////////////Delay.c///////////////////////////////#include<macros.h>#include"delay.h"///////////////////////////////////////////////////voidDelay_us(unsignedinttime){ while(time--) { NOP();NOP(); } }///////////////////////////////////////////////////voidDelay_ms(unsignedinttime){ while(time--) Delay_us(1000);}/////////////////////////////////main.c///////////////////////////////#include"Motor.h"#include"delay.h"#include"measure.h"uintcount=0; //计数定期器0的溢出次数BOOLMEASURE_FLAG=FALSE;//********port_init*********//初始时所有端口均为低,但控制电机的两个引脚PD4、PD5为高voidport_init(void) {PORTA=0x00;DDRA=0xFF;PORTB=0x00;DDRB=0xFF;PORTD=0X00;PORTD|=

温馨提示

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

最新文档

评论

0/150

提交评论