基于单片机的智能避障小车设计的毕业论文
毕业设计论文
(基于单片机的智能避障小车设计)
专 业: 电子
班 级: 1001
姓 名: 田川
二〇一三年十一月
基于单片机的智能避障小车设计
摘 要
当今世界,随着汽车工业的快速发展,关于汽车的研究也越来越受到人们的关注。从20世纪70年代,美欧等发达国家开始进行无人驾驶汽车的研究,我国从上世纪80年代开始着手无人驾驶汽车的研制开发,虽与国外相比还有一些距离,但目前也取得了阶段性成果。智能汽车概念的提出给汽车产业带来机遇也带了挑战。汽车的智能化必将是未来汽车产业发展的趋势,在这样的背景下,我们开展了基于单片机的智能小车的避障研究。我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的结果,在这种情况下研究智能避障小车的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。
该设计利用单片机STC89C52RC作为主控芯片,该芯片是一种高速、低功耗、抗干扰能力强的芯片,其最高时钟工作频率为48MHz,用户应用程序空间为8K。能够满足程序空间需要。
本文首先介绍了智能车的发展前景,接着介绍了该课题设计构想,各模块电路的选择及其电路工作原理,最后对该课题的设计过程进行了总结与展望并附带各个模块的电路原理图,和本设计实物图,及完整的C语言程序。
关键词:单片机,直流步进电机,避障小车
目 录
第一章 总体设计方案………………………………..........………1 §1.1设计要求…………………………………………...................1 §1.2系统设计方案…………………………………………..............1 §1.3总体设计…………………………………………...................1 §1.4功能说明…………………………………………………........1
第二章 硬件的选择与组成......................................2
§2.1单片机的选择.....................................................2
§2.2避障模块的选择...................................................2
§2.3驱动模块的选择...................................................2
§2.4电源方案.........................................................2
第三章 软件程序流程图...............................................3
§3.1主流程图..........................................................3
§3.2 模块程序设计说明.................................................3
§3.3单片机光电避障程序................................................3
§4.2驱动模块程序......................................................3
第四章 电路调试.......................................................4
§4.1硬件调试..........................................................4
§4.2软件调试..........................................................4
§4.3系统联调............................................................4
§4.4 实现功能..........................................................4
第五章 小车图原理图程序.........................................5
§5.1小车图.............................................................5
§5.2原理图.............................................................5
§5.3单片机程序.........................................................5
参考文献 ...................................................................5
致 谢....................................................................5
第一章 总体设计方案
§1.1设计要求
1>在小车行驶过程中,光电传感器一直启动,对前方路况进行检测
2>当接近障碍物距离小于10cm时,小车自动左转
3>当小车转过后,还是一直检测前方道路是否有障碍,若无障碍,向前行驶。如果存在障碍物且小于10cm,小车左转,并再次检测前方路况,若无障碍物,向前行驶。
§1.2系统设计方案
根据设计要求,为了便于调试和改进,采用模块化设计。系统可分为:微控制器、避障模块、驱动模块、电源模块、小车模块。其基本框图如下:
§1.3总体设计
基于单片机STC89C52RC设计的智能避障小车,本设计需提供5V供电6V供电。5V供电为单片机及其他电路提供工作电压,其中直流6V供电只为光电避障模块供电。光电避障模块,采用购买现成的光电避障模块:5V电源,采用购买现成的移动电源:6V电源,采用购买现成的4节1.5V干电池串联得到:步进电机驱动模块,采用购买现成的步进驱动模块;小车模块,采用购买的现成的小车模块(包含车底盘加已固定好的两个步进电机加轮胎加万向轮)。各模块之间用排线连接,并用胶枪固定。单片机通过光电模块去对小车行驶道路上的障碍物进行检测,然后单片机通过处理反馈的信息,判断障碍物的距离,进而发出指令控制驱动模块,控制小车实现转向,达到避障的目的。制作该产品用到的元器件都是以前
学习或实训中用到过的元器件,对元器件性能及使用方法有一定的了解,可以熟悉运用,而且有效节省了硬件成本,又能实现预定目标。该设计有很大的实用价值。系统整体设计如下所示:
光电模块======单片机 —— 控制步进驱动模块 —— 步进电机------ 小车运动
§1.4功能说明
本设计主控芯片采用52芯片,负责对传感器发出的信号接收处理,并向步进电机驱动模块发出动作指令。复位采用手动复位。+5V主要为单片机,步进电机以及其他芯片供电提供电源;+6V为光电模块供电。按下可以自锁的开关小车启动运行绿色指示灯亮 ,开关打开小车停止运动红色指示灯亮,运行中光电模块将检测信息反馈给单片机,单片机经过处理反馈回来的信息,发出相应的指令控制步进驱动模块,从而控制小车做出相应的动作,前进或转向,达到避障的目的。
第二章 硬件的选择与组成
§2.1单片机的选择
采用单片机STC89C52RC为核心,8K的内部程序存储器(ROM),512个内部数据存储器(RAM),4个寄存器区,32个通用I/O端口,2个16位的定时、计数器,有ISP功能,能用于下载线进行的在线编程,设有4个中断源,能够完成设计要求,且该芯片价格便宜,采用该芯片能够达到设计要求,且平时实训中一直采用该芯片,对其比较熟悉,控制起来相对简单。
比较其他单片机,综合考虑设计要求及成本,该设计选用STC89C52作为主控芯片。单片机用的是STC89C52RC,该芯片存储容量大,体积小。单片机最小系统:电源部分、晶振部分、复位电路和31号脚接高电平。单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行
接口和中断系统等几个大单元及数据总线地址总线和控制总线等三大总线。9号复位信号脚,时钟电器开始工作,复位端会出现24个时钟周期以上的高电平,系统即初始复位。其复位方式一般为手动复位,VCC断电期间,此引脚可接上备用电源,以保证单片机内部RAM的数据不丢失。31脚程序存储器的内外部选通线,内置有8kb的程序存储器,当EA为高电平并且程序地址小于8kb时,读取内部程序存储器指令数据。所以该设计31脚应该接高电平。51单片机内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,18、19脚就接电容和晶振电路。单片机40脚接VCC,可以提供电源,20脚接地。
§2.2避障模块的选择
采用光电避障,光电避障的基本原理是发光管发出光束,接收管接收前方物体反射的光束,据此判断前方是否有障碍物。根据反射光的有无可以判断前方是否有障碍,接近物体距离小于10cm时可以接收到当大于10cm时接收不到。这里我们选择的避障模块是探测到障碍小于10cm时,模块上的一组常开触点就会闭合
红外反射式传感器在自主式寻迹、避障机器人上的应用说明,用光电传感器作为机器人的近距离感觉传感器是可行的,当距离小于10mm时,有较好的可靠性和抗干扰能力,而传感器的探头尺寸仅为几个毫米,特别适合小型化,在相应的智能控制系统中可进行有意义的尝试。光电传感器的显著特点是非接触、不受电的干扰、灵敏度高、时间分辨率和空间分辨率高,可进行全方位的测试。
§2.3步进驱动模块的选择
§2.4电源方案
5V电源,采用购买现成的移动电源:6V电源,采用购买现成的4节1.5V干电池串联得到。
第三章 软件程序流程图
§3.1主流程图
开始------向前运动-----前方有障碍小于10cm------左转----前方无障碍--向前运动---前方有障碍--向左运动--------
开始后小车的光电模块会一直检测前方是否有障碍,如果没有一直往前移动,如果障碍小于10cm,光电模块会发信号给单片机 单片机会控制步进电驱动模块 进而控制步进电动机转动,实现避开障碍。如此循环,达到避障的目的。
§3.2 模块程序设计说明
运用C语言编写程序,在平时的制作中多次使用该语言,因此采用该语言编程相对容易一些。
§3.3 光电避障程序
while(p11==0IIp10==1)//向前运动
{p0.0=0;p0.1=0;p0.2=0;p0.3=1;delayms(50)p0.4=0;p0.5=0;p0.6=0;p0.7=1;delayms(50);p0.0=0;p0.1=0;p0.2=1;p0.3=0; delayms(50);
p0.4=0;p0.5=0;p0.6=1;p0.7=0; delayms(50);
p0.0=0;p0.1=1;p0.2=0;p0.3=0; delayms(50);
p0.4=0;p0.5=1;p0.6=0;p0.7=0;delayms(50);
p0.0=1;p0.1=0;p0.2=0;p0.3=0; delayms(50);
p0.4=1;p0.5=0;p0.6=0;p0.7=0; delayms(50);}
while(p11==1)//停止
{P0=0xff;}while(p10==0)//左转
{n=20;//控制左转角度
While(n){p0.4=0;p0.5=0;p0.6=0;p0.7=1;delayms(50);
p0.4=0;p0.5=0;p0.6=1;p0.7=0; delayms(50);
p0.4=0;p0.5=1;p0.6=0;p0.7=0; delayms(50);
p0.4=1;p0.5=0;p0.6=0;p0.7=0; delayms(50);}}
§4.2驱动模块程序
p0.0=0;p0.1=0;p0.2=0;p0.3=1;delayms(50);
p0.4=0;p0.5=0;p0.6=0;p0.7=1;delayms(50);
p0.0=0;p0.1=0;p0.2=1;p0.3=0; delayms(50);
p0.4=0;p0.5=0;p0.6=1;p0.7=0; delayms(50);
p0.0=0;p0.1=1;p0.2=0;p0.3=0;delayms(50);
p0.4=0;p0.5=1;p0.6=0;p0.7=0;delayms(50);
p0.0=1;p0.1=0;p0.2=0;p0.3=0; delayms(50);
p0.4=1;p0.5=0;p0.6=0;p0.7=0; delayms(50);
3.4 驱动程序流程
当在主程序响应时,会首先判断障碍物的距离是否小于设定的安全距离(被设计中为10cm),若大于安全距离,小车继续按原来的方向行驶,若小于安全距离,小车首先左转,若无障碍物或有障碍但大于安全距离,小车沿该方向前进,反之当障碍物的距离小于安全距离时,小车向左旋转,若无障碍物或有障碍物但距离大于安全距离,小车沿该方向前进,反之当障碍物的距离小于安全距离时。小车向左转,沿该方向行驶。如此循环实现避
障。
第四章 电路调试
§4.1硬件调试
在每个元件在没焊上去时,先用万用表检测,它们是不是都正常的,像LED灯,有些可能是有损坏的。单片机最小系统的焊接相对于驱动电路的焊接比较容易,以为在实训中多次焊接过该电路,但我还是很细心的按电路设计流程,画原理图、焊接电路、检测电路到通电测试。完成了该最小系统的设计。该设计过程中,要注意谐振电容的选择,焊接前
一定要对该电容进行检测,确保谐振电容完好,否则将导致晶振不起振,单片机无法正常工作,振荡器输入分别由引脚18和引脚19来完成振荡部分。51单片机的一个机器周期含有6个状态周期,而每个状态周期为2个振荡器周期,因此一个机器周期共有12个振荡周期,12MHz的振荡频率,一个振荡器周期为1/12微秒,一个机器周期为1微秒。
§4.2软件调试
软件调试是制作该课题一个难点,在调试采用分模块调试,首先调试光电避障模块位置以达到最佳效果,其次开始调试驱动模块,该模块是该课题的核心。
§4.3系统联调
将硬件调试和软件调试相结合,在电路原理图上先检测电路有没有短接,断路现象,可以用万用表检测电路中的电流、电压是否符合。上电后,观察各个电源指示灯是否正常,用万用表检测各个主要测试点,看各个测试点电压是否正常。正常后,将所编写的程序烧入单片机最小系统中,进行系统联调将,看是否能够达到预期效果。
§4.4 实现功能
本设计,以单片机STC89C52RC为核心实现小车避障。小车在行驶过程中自动检测障碍物,当障碍物的距离小于小车的安全行驶距离时,小车会首先向左转向,如果没有障碍物,小车沿该方向前进,若有障碍且障碍物距离小于安全距离,小车向左旋转,若无则沿该方向前进,若有障碍物且障碍物距离小于小车行驶的安全距离时,小车向左旋转,如此往复,达到避开障碍物的目的。由于自身能力有限,部分功能效果不是很好,但基本实现了避障的目的,有许多地方有待改进,我会在以后的学习中不断完善该设计。
第五章 小车图原理图程序
§5.1小车图
§5.2原理图
§5.3单片机程序
#include#define uint unsigned int void delayms(uint);
sbit p01=P0^1;sbit p02=P0^2;sbit p03=P0^3;sbit p00=P0^0;//左边步进电机 sbit p05=P0^5;sbit p06=P0^6;sbit p07=P0^7;sbit p04=P0^4;//右边步进电机 sbit p10=P1^0;//光电
sbit p11=P1^1;//启动停止
sbit p20=P2^0;//小车运行中指示灯 绿灯
sbit p21=P2^1;//小车停止运行指示灯 红灯
void main(){while(p11==0IIp10==1)//向前运动{p20=0;p21=1;
p0.0=0;p0.1=0;p0.2=0;p0.3=1; delayms(50);
p0.4=0;p0.5=0;p0.6=0;p0.7=1;delayms(50);
p0.0=0;p0.1=0;p0.2=1;p0.3=0; delayms(50);
p0.4=0;p0.5=0;p0.6=1;p0.7=0; delayms(50);
p0.0=0;p0.1=1;p0.2=0;p0.3=0;
delayms(50);
p0.4=0;p0.5=1;p0.6=0;p0.7=0; delayms(50);
p0.0=1;p0.1=0;p0.2=0;p0.3=0; delayms(50);
p0.4=1;p0.5=0;p0.6=0;p0.7=0; delayms(50);}while(p11==1)//停止
{p20=1;p21=0;P0=0xff;}
while(p10==0)//左转
{
p20=0;p21=1;p0.4=0;p0.5=0;p0.6=0;p0.7=1; delayms(50);
p0.4=0;p0.5=0;p0.6=1;p0.7=0; delayms(50);
p0.4=0;p0.5=1;p0.6=0;p0.7=0; delayms(50);
p0.4=1;p0.5=0;p0.6=0;p0.7=0; delayms(50);}}
void delayms(uint xms){uint i, j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}
参考文献
[1] 谢自美·电子线路设计.试验.测试 [M] ·华中科技大学出版社,2004
[2] 宗光华·机器人的创意设计与实践 [M] ·北京航空航天大学出版社,
2004
[3] 肖景和·红外线热释电与超声波遥控电路[M] ·人民邮电出版社,2003
[4] 靳 桅·单片机原理及应用[M] ·西南交通大学出版社,2004
[5] 王毅编著·单片机器件手册[M] ·人民邮电出版社,1994
[6] 何立民·单片机应用系统设计[M] ·北京航空航天大学出版社,1995
[7] 软件Keil uvision2、ISP 说明书,芯片89C51RA2xx说明书
[8] 丹尼斯.克拉克机·器人设计与控制[M] ·科学出版社,2004
[9] 杨帮文·新编传感器实用宝典[M] ·机械工业出版社,2005
[10] 周坚编·单片机C语言轻松入门[M] ·北京航空航天大学出版社,2006
[11] Oppenhein AV, Schafer R·Discrete-Time Signal Processing [M] ·Englewood
Cliffs,NJ: Prentice-Hall, 1989
[12] Proakis J G, Manolakis D G·Introducton to Digital Signal Processing
[M] ·New York: Macmillan Publishing Company,1988·234
致谢
本论文是在指导教师孙哲的悉心指导下完成的。我们老师严谨治学的态度给我树立了榜样,使我受益匪浅。在此特向指导教师的关心和帮助表示诚挚的敬意和衷心的感谢!
在论文工作的过程中,北电能源有限公司为我的课题研究提供了良好的条件,使我顺利完成了论文的工作,在此向他们致以崇高的谢意!
向在论文完成过程中给予我支持和帮助的老师、同学们表示谢意。