超声波避障小车论文.doc

上传人:聆听****声音 文档编号:511173 上传时间:2023-04-29 格式:DOC 页数:23 大小:1.24MB
下载 相关 举报
超声波避障小车论文.doc_第1页
第1页 / 共23页
超声波避障小车论文.doc_第2页
第2页 / 共23页
超声波避障小车论文.doc_第3页
第3页 / 共23页
超声波避障小车论文.doc_第4页
第4页 / 共23页
超声波避障小车论文.doc_第5页
第5页 / 共23页
超声波避障小车论文.doc_第6页
第6页 / 共23页
超声波避障小车论文.doc_第7页
第7页 / 共23页
超声波避障小车论文.doc_第8页
第8页 / 共23页
超声波避障小车论文.doc_第9页
第9页 / 共23页
超声波避障小车论文.doc_第10页
第10页 / 共23页
超声波避障小车论文.doc_第11页
第11页 / 共23页
超声波避障小车论文.doc_第12页
第12页 / 共23页
超声波避障小车论文.doc_第13页
第13页 / 共23页
超声波避障小车论文.doc_第14页
第14页 / 共23页
超声波避障小车论文.doc_第15页
第15页 / 共23页
超声波避障小车论文.doc_第16页
第16页 / 共23页
超声波避障小车论文.doc_第17页
第17页 / 共23页
超声波避障小车论文.doc_第18页
第18页 / 共23页
超声波避障小车论文.doc_第19页
第19页 / 共23页
超声波避障小车论文.doc_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

超声波避障小车论文.doc

《超声波避障小车论文.doc》由会员分享,可在线阅读,更多相关《超声波避障小车论文.doc(23页珍藏版)》请在冰点文库上搜索。

超声波避障小车论文.doc

河南科技学院新科学院

2012届本科毕业论文

智能小车运动控制技术研究

学生姓名:

xxx

所在院系:

新科学院信工系

所学专业:

计算机科学与技术

导师姓名:

xxx

完成时间:

2012年5月5日

智能小车运动控制技术研究

摘要

本系统采用STC89C52单片机为控制核心,利用超声波传感器检测道路上的障碍,然后把数据传送给单片机,当超声波检测到距离小车前方20CM有障碍物时单片机就发出指令让小车左转一定角度,然后停止运行继续探测.如果前方20CM没有障碍物就直走,否则继续左转一定角度。

如此通过超声波不断的循环检测周边环境的情况进行自动避障。

该系统在驱动方面采用L298驱动4个直流电机带动小车运行。

并且,用PWM系统调速,控制小车前进的速度。

关键词:

STC89C52,PWM调速,电动小车,超声波

SMARTCARMOTIONCONTROLTECHNOLOGY

Abstract

ThesystemusesSTC89C52singlechiptocontrolthecore,Theuseofultrasonicsensorstodetectroadobstacles,Thensenddatatothemicrocontroller,Whenultrasonictestingtodistancethecarinfrontof20CMthereisanobstacle,themicrocontrollerissuedadirectivetoallowthecartoturnleftatanangle,Thenstoptheruntocontinuedetection,Ifthefront20CMtherearenoobstructionsonthestraight,Otherwise,continuetoturnleftatanangle,Sobytheultrasoniccontinuouslooptodetectthesurroundingenvironment,theautomaticobstacleavoidance,ThissystemL298drive4DCmotorstodrivethecarrunninginthedrive,AndspeedcontrolofthePWMsystemtocontroltheforwardspeedofthecar.

Keywords:

STC89C52;PWMcontrol;electriccar;ultrasonic

目录

1绪论 1

1.1项目研究背景及意义 1

1.2项目主要研究内容 1

2总体设计方案及论证 2

2.1系统组成原理 2

2.2功能需求 4

3硬件设计 5

3.1系统设计框图 5

3.2电源设计 6

3.3电机驱动设计 6

3.4超声波测距设计 6

3.5数码管显示设计 7

3.6主控系统设计 7

4软件设计 8

4.1软件设计流程 8

4.2超声波探测模块 9

4.3数码管显示程序 11

4.4直流电机驱动部分软件设计 12

4.5pwm脉宽调速设计 13

5软件与硬件的整合 14

5.1调试超声波模块 14

5.2电机调试 14

5.3系统调试 14

6总结 14

参考文献 16

致谢 17

附录 18

I

1绪论

1.1项目研究背景及意义

智能作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。

本设计主要体现多功能小车的智能模式,设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义。

同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济收益,形成商业价值。

超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。

我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。

本智能小车系统最诱人的前景就是可用于未来的智能汽车上了,当驾驶员因疏忽或打瞌睡时这样的智能汽车的设计就能体现出它的作用。

如果汽车偏离车道或距障碍物小于安全距离时,汽车就会发出警报,提醒驾驶员注意,如果驾驶员没有及时作出反应,汽车就会自动减速或停靠于路边。

这样的小车还可以用于月球探测等的无人探月车,帮助我们传达月球上更多的信息,让我们更加的了解月球,为将来登月做好充分准备。

这样的小车在科学考察探测车上也有广阔的应用前景,在科学考察中,有很多危险且人们无法涉足的地方,这时,智能科学考察车就能够派上用场,在它上面装上摄像机,代替人们进行许多无法进行的工作。

1.2项目主要研究内容

本设计题目为智能避障小车设计,主要研究小车的避障功能,小车遇到障碍物时,当距离障碍物大于50CM以较快速度前进,当小于50CM时慢速前进,当小于20CM时小车应采取避障共能。

这里探测装置必不可少,因为超声波在距离检测方面的较准确定位。

所以采用超声波传感器作为探测装置,由于超声波遇到障碍物时发生像光一样的反射和散射,在经过多次发射之后再回到超声波检测端口会产生较严重的路程差,从而影响对距离的检测进而影响对障碍物的较准确定位。

通过软件内部校准优化消除外部物理条件造成的误差从而达到对障碍物的较准确定位。

2总体设计方案及论证

2.1系统组成原理

根据题目的要求,确定如下方案:

在现有玩具车底盘的基础上,加装超声波模块检测小车周边障碍物的实时情况。

然后,超声波把数据返回给单片机,单片机发送相应的指令实现对电动小车的自动避障、运行状况的实时测量,从而达到利用单片机对小车智能控制,自动避障的目的。

这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。

(1)STC89C52作为主控芯片

常用的AT89C51/52、STC89C51单片机都采用DIP40封装。

图2-1为DIP40单片机封装外形引脚的分布。

40个引脚按功能分为4个部分,即电源引脚(Vcc和Vss)、时钟引脚(XTAL1和XTAL2)、控制信号引脚(RST、、和ALE)以及I/O口引脚(P0—P3)。

图2-1单片机原理图

(2)直流电机驱动芯片

对于直流电机驱动芯片的选择首先我要考虑它的输出功率能不能很好的驱动小车的四个直流电机。

然后,考虑它的外围电路是否简单。

还有就是考虑它的价格是否相对比较便宜。

综合这些我最终选择以前用过的大家都比较熟悉的电机驱动芯片L298。

电机驱动部分主要采用一片L298N和主控芯片AT89C52直接相连够成驱动电路。

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-2。

AT89C52的P1.6端口作为pwm脉冲输出,同时与L298N的两个使能端ENA、ENB相连,达到控制小车速度目的。

P1^2~P1^5端口分别与L298N的引脚IN1、IN2、IN3、IN4相连通过电平变化控制电机在持续高速状态下的转向。

L298N的四个输出端直接与两个电机相连驱动电机。

图2-2L298N芯片实物图和引脚图

(3)超声波传感器

超声波测距原理:

超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。

超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:

s=340t/2这就是所谓的时间差测距法。

超声波传感器结构如图2-3所示。

图2-3超声波传感器结构

超声波在本设计中的原理分析:

由于自己用分立元器件焊接比较麻烦,所以本设计采用现成的US-100超声波模块,US-100超声波测距模块可实现0~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。

US-100模块如图2-4所示。

US-100正面图US-100背面图

图2-4超声波实物图

超声波探测模块US-100的使用方法为:

IO口触发,给Trig口至少10us的高电平,启动测量;模块自动发送8个40Khz的方波,自动检测是否有信号返回;有信号返回,通过IO口Echo输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(高电平时间*340)/2,单位为m。

程序中测试功能主要由两个函数完成,即measure()负责计算一次测量小车障碍物的距离,然后shouldTurn()确定前方有障碍物采取避障措施,根据车体大小及系统的反应,经过测试,取20cm的反应距离效果较为明显。

另外,US-100超声波探测模块探测的间隔周期推荐值是64ms(图2-5),但经过试验,我们发现在我们的小系统中取800ms较为适宜,使主程序有足够的时间来驱动小车前进,而不至于出现前进不流畅的现象。

图2-5超声波检测原理

2.2功能需求

在做本设计前首先要做好功能需求分析,即该小车要实现什么功能,需要什么材料,如何去实现,只有做到胸有成竹才能达到自己的目标,少走弯路。

本设计为智能避障小车,这里重点就是小车的避障功能,首先要选择一个适合的探测障碍物模块,目前常用的测距方式主要有雷达测距、红外测距,激光测距和超声波测距4种:

1.雷达测距受恶劣天气的影响比较大,且成本比较高,雷达还必须满足电磁兼容要求;2.红外测距安全,但测量范围比较窄,若精度要求高的话成本也会更高;3.激光测距速度快,精度高,量程大,抗光、电干扰能力强,但制作难度大,成本较高,而且光学系统需要保持干净,否则将影响测量;4.与上述测距方式比较,超声波测距有几大优点:

超声波测距对色彩和光照不敏感,可用于识别透明及漫反射性的物体,可在黑暗、有灰尘或烟雾的环境当中使用;‚超声波测距对电磁场及其他电磁干扰不敏感,可用于电磁干扰强、有毒、有害等恶劣环境中;ƒ超声波传感器结构简单、体积小、成本低、技术难度小、信息处理简单可靠、易于小型化和集成化。

当然超声波测距也有一定的缺点,比如受温度、气流、材质的影响,综上所述,再结合我们的设计目标,采用超声波测距最符合设计要求。

其次要选择一款适合的主控芯片,考虑到适用性、经济性,本设计采用STC89C52作为主控芯片,并且我手中就有现成的芯片,取材容易。

再次就要考虑驱动4个直流电机了,考虑到输出功率要驱动4个电机,我选择电路简单、能够满足需要、价格便宜的L298为驱动芯片。

3硬件设计

3.1系统设计框图

本系统采用89C52单片机进行智能控制。

按下开始键启动小车,当小车上的超声波检测到前方20CM处有障碍物的时候就开始左转一定度角。

然后停止,800 MS后超声波传感器再次进行探测,如果20CM内仍有障碍物,继续左转一定角度,直到20CM内无障碍物,小车开始前进。

通过单片机控制小车避障、转弯、调速等一系列动作;系统的自动避障功能通过超声波传感器正前方检测,由单片机控制实现;在小车行进过程中,采用单片机驱动L298实施PWM脉宽调制技术,以提高系统的静动态性能。

系统原理图如图3-1所示。

图3-1系统总体方框图

3.2电源设计

电源部分的设计主要采用7805芯片,使用7805芯片搭建的电路的优点是简单、实用,并且完全能够满足壁障小车单片机控制系统和L298N芯片的逻辑供电的供电需要。

7805芯片有3个引脚,分别为输入IN端、输出OUT端和接地GND端,通常情况下可以提供1.5A的电流,在散热足够的情况下可以提供大于1.5A的电流。

7805芯片的输入电压可以为9V、12V、15V不等,输出电压稳定在5V,正负误差不超过0.2V。

7805芯片如图3-2。

基于这样的情况再结合电机的工作电压,选取了12V电源作为7805的输入电源。

图3-27805芯片

3.3电机驱动设计

由于一个L298只有2路输出,可以带2个直流电机,因为本设计所用小车为4轮驱动,为简化设计,一个L298输出带动2个直流电机,原理图如图3-3所示。

3.4超声波测距设计

本设计采用市场上热卖的US-100超声波模块,该模块有5个引脚,从左到右依次编号1,2,3,4,5。

它们的定义如下:

1号Pin:

接VCC电源(供电范围2.4V~5.5V);2号Pin:

当为UART模式时,接外部电路UART的TX端;当为电平触发模式时,接外部电路的Trig端;3号Pin:

当为UART模式时,接外部电路UART的RX端;当为电平触发模式时,接外部电路的Echo端;4号Pin:

接外部电路的地;5号Pin:

接外部电路的地。

根据引脚定义,本设计2、3号引脚分别接单片机的P1^0和P1^1;

图3-3电机驱动电路

3.5数码管显示设计

数码管有一位、双位、四位等几种,而不管将几位数码管连在一起,数码管的显示原理都是一样的,都是靠点亮内部的发光二极管来发光的,数码管的内部结构如图3-4所示,从图3-4(a)可看出,一位数码管的引脚是10个,显示一个8字要7个小段,另外还有一个小数点,所以内部共有8个小的发光二极管,最后还有一个公共端,生产商为了封装统一,单位数码管都封装10个引脚,而他们的公共端分为共阳极和共阴极,如图3-4(b)所示。

图3-4数码管显示原理图

本小车用的开发板是6位共阳极数码管,所谓“共阳”就是指其内部的8个发光二极管的阳极全部连在一起,而他们的阴极是独立的,通常在设计电路时一般把阳极接VCC,当我们给数码管的任一个阴极加低电平时,对应的那个发光二极管就点亮了。

当使用多位一体数码管时,它内部的公共端是独立的,而负责显示什么数字的段线全部都是连在一起的,独立的公共端可以控制多位数码管中哪一位点亮,通常我们把公共端叫做“位选线”,连在一起的段线叫做“段选线”。

本设计所用开发板的数码管共阴端与P0口连接,共阳端经过一个反相器与P2口相连,其硬件连接图如图3-5所示。

3.6主控系统设计

AT89C52片内有ROM/EPROM的单片机,其硬件结构具有功能部件种类全,功能强等特点。

特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集。

1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。

MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也

图3-5数码管连接图

是MCS-51单片机在设计的精美之处。

因此,这种芯片构成的最小系统简单、可靠。

用89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,89C52单片机最小系统如图3-6所示。

由于集成度的限制,最小应用系统只能用作一些小型的控制单元。

其应用特点:

(1)有可供用户使用的大量I/O口线。

(2)内部存储器容量有限。

(3)应用系统开发具有特殊性。

图3-689C52单片机最小系统

4软件设计

4.1软件设计流程

本设计系统软件采用模块化结构,由主程序、定时子程序、电机驱动子程序、中断子程序、显示子程序、算法子程序构成。

定时器完成对超声波探测器发出的超声波在小车和障碍物之间往返运行的时间,然后在算法子程序中计算出小车距障碍物的距离,小车根据距障碍物的距离决定是继续前进还是转弯,主程序流程图如图4-1所示

4.2超声波探测模块

实现中采用定时器1进行定时测量,计算公式为(单位:

ms):

T=TH0*256+TL0,超声波探测程序流程图如图4-2所示。

超声波测距部分程序分析:

在while循环中不断的对前方数据扫描检测周边障碍物。

其中给TRIG脚先置高电平,这样超声波发出8个40HZ的方波信号,稍作延时,再把TRIG脚置低电平。

当检测有信号返回时IO口就输出高电平。

这样就可以通过公式计算出障碍物距小车的距离。

部分程序如下:

图4-1主程序流程图

voidzd3()interrupt3 //T1中断用来扫描数码管和计800MS启 动超声波探测模块

{

TH1=0xf8;

TL1=0x30;

pwmFlag++;

if(pwmFlag>pwm)

pwmFlag=0;

图4-2超声波探测流程图

if((pwmFlag==pwm)&&(pwm!

=0))//脉宽控制

{

pwmOut=~pwmOut;

pwmFlag=0;

}

display();

timer++;

if(timer>=400)

{

timer=0;

TX=1; //800MS启动一次模块

for(i=0;i<10;i++)

_nop_();

TX=0;

}

}

Measure函数用来算出距离障碍物的距离,当障碍物小于20cm时小车开始转弯,

voidmeasure(void)

{

time=TH0*256+TL0;

TH0=0;

TL0=0;

S=(time*1.7)/100;//算出来是CM

if(S>50)//pwm控制车速,大于50CM全速前进

{

pwm=0;

}

else//小于50CM慢速前进

{

pwm=10;

}

if((S>=20)||(flag==1))

{

flag=0;

startRun();

}

else

{

shouldTurn();

}

if(S>700)//超出测量范围显示“-”

{

a=0xbf;

b=0xbf;

c=0xbf;

}

else

{

a=S%1000/100;

b=S%1000%100/10;

c=S%1000%100%10;

}

}

4.3数码管显示程序

本小车所用开发板采用6位共阳极数码管,段选线接在P0口,位选线经过一个反相器接P2口,根据电路连接图写出数字0~9的16进制数的编码,通过选中某一个数码管动态的实现数字,动态显示子程序如下

voiddisplay()

{

switch(i)

{

case0:

P2=bit_ser[0];

P0=seven_seg[c];

break;

case1:

P2=bit_ser[1];

P0=seven_seg[b];

break;

case2:

P2=bit_ser[2];

P0=seven_seg[a];

break;

default:

break;

}

i++;

if(i>=3)i=0;

}

4.4直流电机驱动部分软件设计

直流电机控制部分程序分析

将直流电机的端口定义如下

sbitmoA_1=P1^2;

sbitmoA_2=P1^3;

sbitmoB_1=P1^4;

sbitmoB_2=P1^5;

unsignedintpwm;//控制车速脉宽,只要在程序中根据距离设置pwm值

即可控制车速

控制小车前进的程序如下所示,

moA_1=1;

moA_2=0;

moB_1=1;

moB_2=0;

小车转弯程序如下:

voidshouldTurn()

{

moA_1=0;

moA_2=0;

moB_1=1;

moB_2=0;

delay(600);//延时转过一定角度后,小车停止,根据下次超声波探测

结果决定下次动作

moA_1=0;

moA_2=0;

moB_1=0;

moB_2=0;

}

4.5pwm脉宽调速设计

为了很好的控制直流电机的速度,本系统采用脉冲宽度调制信号(PWM信号)实现对直流电机的精确控制。

其实,PWM脉宽调制,是靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率。

而输出频率的变化可通过改变此脉冲的调制周期来实现。

这样,使调压和调频两个作用配合一致,且于中间直流环节无关,因而加快了调节速度,改善了动态性能。

而PWM信号可以用单片机模拟,可以通过单片机精确的控制脉宽的变化。

在本实验中用pwm信号控制L298的EN引脚即可控制小车车速,以下程序片段摘自measure()函数。

if(S>50)//pwm控制车速,大于50CM全速前进

{

pwm=0;

}

else//小于50CM慢速前进

{

pwm=10;

}

5软件与硬件的整合

在本次设计过程中,考虑到各个模块之间的控制复杂性,我们将电机控制,超声波测距分开调试,当两个模块都可以正常工作之后,再将它们结合起来调试,采取了“分而治之”的思想。

5.1调试超声波模块

在调试超声波的时候,主要思想是用定时器

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2