智能超声波蔽障小车剖析.docx
- 文档编号:24411643
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:27
- 大小:195.49KB
智能超声波蔽障小车剖析.docx
《智能超声波蔽障小车剖析.docx》由会员分享,可在线阅读,更多相关《智能超声波蔽障小车剖析.docx(27页珍藏版)》请在冰豆网上搜索。
智能超声波蔽障小车剖析
中国矿业大学计算机学院
2012级本科生课程报告
课程名称:
信息检索
报告时间:
2015-10-20
学生姓名:
学号:
专业:
任课教师:
目录
摘要2
Abstract2
第一章绪论4
1.1项目研究背景及意义:
4
1.2项目主要研究内容:
4
1.3设计思路:
5
1.4应用场合和功能:
5
第二章总体方案5
2.1总体方案概述:
5
第三章各模块功能介绍7
3.1障碍物测距系统:
7
3.2显示模块:
7
3.3驱动模块:
10
3.4电源模块:
11
4.1程序设计流程图12
4.2程序设计:
13
第五章系统调试17
5.1调试的思路:
17
5.2各模块的调试:
17
5.3调试心得:
18
结果分析18
总结19
第六章结论与展望20
6.1结论:
20
6.2展望:
20
致谢20
参考资料21
摘要
智能小车是一种能够通过编程手段完成特定任务的小型化机器人,它具有制作成本低廉,电路结构简单,程序调试方便等优点。
由于具有很强的趣味性,智能小车深受广大机器人爱好者以及高校学生的喜爱。
本论文介绍的是具有自动避障功能的智能小车的设计与制作(以下简称智能小车),论文对智能小车的方案选择,设计思路,以及软硬件的功能和工作原理进行了详细的分析和论述。
经实践验收测试,该智能小车的电路结构简单,调试方便,系统反映快速、灵活,设计方案正确、可行,各项指标稳定、可靠。
Abstract
Smartcarscanbeprogrammedtoperformaspecifictaskmeanstheminiaturizationofrobot,ithastomakecostislow,circuitsimplestructure,convenientprogramtest.Becauseofithasstronginterest,intelligentrobotcarfavoredbythemajorityoftheuniversitystudents'enthusiastsandlove.
Thispaperintroducestheisaautomaticobstacleavoidancefunctionofintelligentcardesignandproduction(hereinafterreferredtoasthesmartcar),thethesistotheintelligenceofthecarschemeselection,designidea,andtheimplementationofhardwareandsoftwarefunctionandworkingprincipleofadetailedanalysisanddiscusses.Afterpracticeacceptancetest,thisintelligentcarcircuitstructureissimple,convenientdebug,fast,flexiblesystemreflect,correctandfeasibledesignscheme,eachindexissteadyandreliable.
关键词:
超声波传感器避障小车ATmega16
第一章绪论
1.1项目研究背景及意义:
智能作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。
本设计主要体现多功能小车的智能模式,设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义。
同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济收益,形成商业价值。
超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。
我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。
本智能小车系统最诱人的前景就是可用于未来的智能汽车上了,当驾驶员因疏忽或打瞌睡时这样的智能汽车的设计就能体现出它的作用。
如果汽车偏离车道或距障碍物小于安全距离时,汽车就会发出警报,提醒驾驶员注意,如果驾驶员没有及时作出反应,汽车就会自动减速或停靠于路边。
这样的小车还可以用于月球探测等的无人探月车,帮助我们传达月球上更多的信息,让我们更加的了解月球,为将来登月做好充分准备。
这样的小车在科学考察探测车上也有广阔的应用前景,在科学考察中,有很多危险且人们无法涉足的地方,这时,智能科学考察车就能够派上用场,在它上面装上摄像机,代替人们进行许多无法进行的工作。
1.2项目主要研究内容:
本设计题目为智能避障小车设计,主要研究小车的避障功能,小车遇到障碍物时,当距离障碍物大于40cm,PWM信号自增,驱动电机加速,小车加速前进,当小于30cm时,PWM信号自减,驱动电机减速,小车减速前进,并且小车采取相应的避障措施。
这里探测装置必不可少,因为超声波在距离检测方面的较准确定位。
所以采用超声波传感器作为探测装置,由于超声波遇到障碍物时发生像光一样的反射和散射,在经过多次发射之后再回到超声波检测端口会产生较严重的路程差,从而影响对距离的检测进而影响对障碍物的较准确定位。
通过软件内部校准优化消除外部物理条件造成的误差从而达到对障碍物的较准确定位。
1.3设计思路:
直流电机PWM控制系统的主要功能包括:
实现对直流电机的加速、减速,并且可以调整电机的转速,能够很方便的实现电机的智能控制。
主体电路:
即直流电机PWM控制模块。
这部分电路主要由AT89S52单片机的I/O端口、定时计数器、外部中断扩展等控制直流电机的加速、减速以及转弯,并且可以调整电机的转速,能够很方便的实现电机的智能控制。
其间是通过AT89S52单片机产生脉宽可调的脉冲信号并输入到L298驱动芯片来控制直流电机工作的。
该直流电机PWM控制系统由以下电路模块组成:
设计控制部分:
主要由AT89S52单片机的外部中断扩展电路组成。
直流电机PWM控制实现部分主要由电机和L298直流电机驱动模块组成。
设计显示部分:
LCD数码显示部分,实现对超声波测的距离的实时显示。
1.4应用场合和功能:
应用场合:
智能小车是一种能够通过编程手段完成特定任务的小型化机器人,它具有制作成本低廉,电路结构简单,程序调试方便等优点。
由于具有很强的趣味性,智能小车深受广大机器人爱好者以及高校学生的喜爱。
同时在玩具的应用上深受小朋友的青睐。
功能:
本小车使用AT89S52单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,并且用LED显示出来,当小车与障碍物的距离大于40cm时,小车会沿直线前进,当小车与障碍物的距离小于30cm时,小车转弯以避开障碍物,并且此时蜂鸣器报警。
在避开障碍物后,小车会沿直线前进。
第二章总体方案
2.1总体方案概述:
本小车使用AT89S52单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,并且用LCD显示出来,当小车与障碍物的距离大于40cm时,小车会沿直线前进,当小车与障碍物的距离小于30cm时,小车转弯以避开障碍物,并且此时蜂鸣器报警。
在避开障碍物后,小车会沿直线前进。
简要框图如图2-1。
2.2总体电路原理图:
第三章各模块功能介绍
3.1障碍物测距系统:
方案一:
超声波视觉
优点:
价格合理,夜间不受影响。
易于多目标测量和分类,分辨率好。
缺点:
测量范围小,对天气变化敏感。
不能直接测量距离,算法复杂,处理速度慢。
方案二:
激光雷达MMW雷达
优点:
夜间不受影响,不受灯光、天气影响。
缺点:
对水、灰尘、灯光敏感、价格贵。
探测障碍的最简单的方法是使用超声波传感器,它是利用向目标发射超声波脉冲,计算其往返时间来判定距离的。
算法简单,价格合理。
所以我们选择超声波传感器。
超声波测距原理:
首先利用单片机输出一个40kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。
由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离,即:
S=VT/2,通过单片机来算出距离。
3.2显示模块:
方案一:
用LCD显示。
优点:
辐射小、显示内容多、低耗能、散热小、显示的画面稳定不闪烁。
缺点:
不适合做图,图像还原不好、有可视范围限制。
方案二:
用LED显示。
优点:
亮度高、成本低,缺点:
不能显示汉字,显示内容较少。
对于本课题的要求,我们选择LCD实现功能,显示内容多,低功耗,显示画面稳定不闪烁,硬件电路设计简单。
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
3.2.2引脚功能说明:
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-2-1所示:
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
表3-2-1:
引脚接口说明表
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
3.2.31602LCD的指令说明及时序:
1602液晶模块内部的控制器共有11条控制指令,如表3-2-2所示:
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
表3-2-2:
控制命令表
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
与HD44780相兼容的芯片时序表如下:
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
输入
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
输出
无
读数据
输入
RS=H,R/W=H,E=H
输出
D0—D7=数据
写数据
输入
RS=H,R/W=L,D0—D7=数据,E=高脉冲
输出
无
3.3驱动模块:
方案一:
采用ULN2003驱动,它是由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,一般用于高速大功率驱动电路。
所以我们不采用这个方案。
方案二:
采用由双极性管组成的H桥电路(L298N)。
用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。
这种电路由于工作在管子的饱和截止模式下,则效率非常高;H桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高。
而且它有更强的驱动能力。
L298N有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。
L298N有过电流保护功能,当出现电机卡死时,可以保护电路和电机
等。
所以我们选择L298N。
驱动电机的运行,I/O端口状态与电机制动对照表,如下。
IN1
IN2
IN3
IN4
EN1
EN2
转速
1
0
1
0
1
1
正转
0
1
0
1
1
1
反转
1
1
1
1
1
1
停止
0
0
0
0
1
1
停止
X
X
X
X
0
0
停止
3.4电源模块:
我们选择采用5v的独立的稳压电源。
优点:
稳定可靠,且有各种成熟电路可供选用;
缺点:
各模块都采用独立电源,会使系统复杂,且可能影响电路电平。
综合电源模块的缺优点,和电路的实际需求,我们采用了两块独立稳压电源,一块给小车的电机驱动供电,一块给小车的芯片供电,这样弥补了单个独立电源供电出现电力不足的情况。
4.1程序设计流程图
本设计系统软件采用模块化结构,由主程序﹑定时子程序、电机驱动子程序﹑中断子程序、显示子程序﹑算法子程序构成。
主程序流程图如图:
4.2程序设计:
#include
#include
#include"LCD1602display.h"
#include"STC12C5A60S2_PWM.h"
#defineTXP2_1
#defineRXP2_0
sbitDU=P2^6;
sbitWE=P2^7;
#defineForward_L_DATA
sbitP4_0=0xc0;
sbitL293D_IN1=P1^2;
sbitL293D_IN2=P1^3;
sbitL293D_IN3=P1^6;
sbitL293D_IN4=P1^7;
sbitL293D_EN1=P1^4;
sbitL293D_EN2=P1^5;
sbitBUZZ=P2^3;
voidcmg88()//关数码管,点阵函数
{
DU=1;
P0=0X00;
DU=0;
}
voidDelay400Ms(void);//延时400毫秒函数
unsignedcharcodeRange[]="==RangeFinder==";
unsignedcharcodeASCII[13]="0123456789.-M";
unsignedcharcodetable[]="Distance:
000.0cm";
unsignedcharcodetable1[]="!
!
!
Outofrange";
unsignedchardisbuff[4]={0,0,0,0};
voidCount(void);//距离计算函数
unsignedinttime=0;//用于存放定时器时间值
unsignedlongS=0;//用于存放距离的值
bitflag=0;//量程溢出标志位
bitturn_right_flag;
voidForward(unsignedcharSpeed_Right,unsignedcharSpeed_Left)
{
L293D_IN1=0;
L293D_IN2=1;
L293D_IN3=1;
L293D_IN4=0;
//PWM_Set(255-Speed_Right,255-Speed_Left);
}
voidStop(void)//刹车
{
L293D_IN1=0;
L293D_IN2=0;
L293D_IN3=0;
L293D_IN4=0;
//PWM_Set(0,0);
}
voidTurn_Right(unsignedcharSpeed_Right,unsignedcharSpeed_Left)//后
{
L293D_IN1=1;
L293D_IN2=0;
L293D_IN3=0;
L293D_IN4=0;
//PWM_Set(255-Speed_Right,255-Speed_Left);
}
/
voidConut(void)
{
time=TH1*256+TL1;
TH1=0;
TL1=0;
1s=1000ms=1000000us
S=time*2;
S=S*0.17;
if(S<=300)//
{
if(turn_right_flag!
=1)
{
Stop();
Delay1ms(5);
}
turn_right_flag=1;
P2_3=0;
Delay1ms(50);
P2_3=1;
Turn_Right(120,120);
}
else
{
turn_right_flag=0;
Forward(Forward_R_DATA,Forward_L_DATA);
}
if((S>=5000)||flag==1)//超出测量范围
{
flag=0;
DisplayListChar(0,1,table1);
}
else
{
disbuff[0]=S%10;
disbuff[1]=S/10%10;
disbuff[2]=S/100%10;
disbuff[3]=S/1000;
DisplayListChar(0,1,table);
DisplayOneChar(9,1,ASCII[disbuff[3]]);
DisplayOneChar(10,1,ASCII[disbuff[2]]);
DisplayOneChar(11,1,ASCII[disbuff[1]]);
DisplayOneChar(12,1,ASCII[10]);
DisplayOneChar(13,1,ASCII[disbuff[0]]);
}
}
voidzd0()interrupt3
{
flag=1;//中断溢出标志
RX=0;
}
voidTimer_Count(void)
{
TR1=1;//开启计数
while(RX);//当RX为1计数并等待
TR1=0;//关闭计数
Conut();//计算
}
voidStartModule()//启动模块
{
TX=1;//启动一次模块
Delay10us
(2);
TX=0;
}
voidmain(void)
{
unsignedchari;
unsignedinta;
cmg88();//关数码管
Delay1ms(400);//启动等待,等LCM讲入工作状态
LCMInit();//LCM初始化
Delay1ms(5);//延时片刻
DisplayListChar(0,0,Range);
DisplayListChar(0,1,table);
TMOD=TMOD|0x10;//设T0为方式1,GATE=1;
EA=1;//开启总中断
TH1=0;
TL1=0;
ET1=1;//允许T0中断
//===============================
//PWM_ini();
//===============================
turn_right_flag=0;
//=================================
B:
for(i=0;i<50;i++)//判断K3是否按下
{
Delay1ms
(1);
if(P3_6!
=0)//当K3按下时,启动小车
gotoB;//跳转到标号B,重新检测
}
BUZZ=0;
Delay1ms(50);
BUZZ=1;//响50ms后关闭蜂鸣器
while
(1)
{
RX=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 超声波 小车 剖析
![提示](https://static.bdocx.com/images/bang_tan.gif)