06446104庞宝宝.docx

上传人:b****3 文档编号:3488263 上传时间:2022-11-23 格式:DOCX 页数:47 大小:572.10KB
下载 相关 举报
06446104庞宝宝.docx_第1页
第1页 / 共47页
06446104庞宝宝.docx_第2页
第2页 / 共47页
06446104庞宝宝.docx_第3页
第3页 / 共47页
06446104庞宝宝.docx_第4页
第4页 / 共47页
06446104庞宝宝.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

06446104庞宝宝.docx

《06446104庞宝宝.docx》由会员分享,可在线阅读,更多相关《06446104庞宝宝.docx(47页珍藏版)》请在冰豆网上搜索。

06446104庞宝宝.docx

06446104庞宝宝

学号:

06446104

常州大学

毕业设计

(2010届)

 

题目一种具有路径记忆功能的自动小车设计——软件设计

学生庞宝宝

学院信息科学与工程学院专业班级电子061

校内指导教师马正华专业技术职务教授

校内指导教师周炯如专业技术职务高级实验师

校外指导老师黄成章专业技术职务经理

 

二○一○年六月

一种具有路径记忆功能的自动小车设计——软件设计

摘要:

无人驾驶的电动车可以应用于抢险、救灾等人力不能达到的危险区域的探测。

当发生如火灾、有毒物质泄漏、辐射等灾难时,人们往往要冒着生命危险或者根本就无法进入这些灾难现场以了解灾情,因此需要一种探测车来代替人们完成任务从而减少和避免人员的伤亡。

探测车在失去无线遥控信号且又无法前进时,探测车能按原路径返回,因此有简单的路径记忆功能。

本设计硬件方面主要以AT89S52单片机为控制核心,利用红外对管RG5000检测行驶路径,单片机根据红外检测信号控制直流减速电机转动,电机驱动电路由L298芯片驱动和TPL521光耦隔离芯片组成。

同时利用霍尔元件间接测量行驶的路程,单片机根据小车的行驶路程和时间,控制LED八段数码管显示路程和时间。

软件设计方面运用了查询的方法检测黑线信号,利用中断的方法,记录小车行驶路程的变量,实现路径的记忆,都用C语言设计实现。

小车能够在模式2下按照记忆的路径变量行驶。

软件设计与仿真利用keil平台,本设计基本实现了预定的功能,通过实验,进一步证实了带有记忆功能的智能小车的使用价值。

关键词:

单片机;路径记忆;红外对管;智能车

 

DesignofAkindofmemoryintelligentcar—SoftwareDesign

Abstract:

Smartcarcanbeusedinthedetectionofthedangerzonewhichhumancannotbereachedduringrescue,disasterreliefetc..Whenthereisfire,leakageoftoxicsubstances,radiationandotherdisasters,peopleoftenhavetorisktheirlivesorsimplycannotenterthedisastersitetofindoutwhathappened,thereforeakindofprobevehiclesneededtoreplacehumantoaccomplishthemissiontoreduceandavoidpersonnelcasualties.Whenroverhaslostthewirelessremotecontrolsignalandcannotmoveforward,thentherovercantaketheoriginalpathtoreturn,sothereisasimplememorizationfunctionofpath.

Thisdesignofhardware,taketheAT89S52asthemainmicrocontrollerwithinusinginfrareddetectionofthetubeRG5000totravelpath.MCUcontrolsDCgearmotorrotationbasedontheinfraredsignal,andthemotordrivecircuitisdesignedbytheL298chipdriverandTPL521optocouplerisolatedchips.AtthesametimetheMCUrememberdrivingdistancebyusingtheHallindirectmeasurement.Basedondrivingdistanceandtime,MCUcontrolstheLEDdigitaldisplaytoshowthedistanceandtime.

Inthesoftwarerespect,todetecttheblacklinesignalsbythequeryusedway,torecordingcardrivingdistanceofthevariablesbytheinterruptmethodandtoachievethepathofmemoriesaredesignedinClanguage.UndertheModel2thecarcandriveaccordingtothepathoftravelmemoriesvariables.Softwaredesignandsimulationusekeilplatform.Thecompletedsmartcarcouldachievetheintendedfunctionofthisdesign,andthisresearchshowthatAkindofmemoryintelligentcarhasahighapplicationvalue.

Keywords:

Singlechip;Pathmemory;Infraredemittingdiode;Intelligentvehicle

 

目次

摘要I

目次III

1绪论1

1.1课题背景、目的和意义1

1.2课题的现状与发展趋势1

1.3课题欲解决的问题2

2设计方案3

2.1常见路径记忆算法介绍3

2.1.1基于DSP的路径记忆3

2.1.2基于FM357-2的路径记忆4

2.1.3数据分析法5

2.2系统总体方案设计6

3硬件系统设计7

3.1单片机最小系统设计7

3.1.1AT89S52单片机的介绍7

3.1.2最小系统设计及管脚分配9

3.2模式选择设计11

3.3时钟与复位设计11

3.4显示电路设计12

3.5蜂鸣器电路设计13

3.6电机驱动设计13

3.6.1电机及其驱动方式的介绍13

3.6.2电机驱动电路设计14

3.7红外对管巡线设计14

3.7.1红外对管RG5000介绍14

3.7.2巡线电路设计15

3.7.3巡线设计思想16

3.8霍尔测距设计16

3.8.1霍尔测距原理介绍16

3.8.2测距电路设计17

4软件系统设计17

4.1系统主函数18

4.1.1系统配置19

4.1.2显示子程序设计19

4.1.3电机驱动子程序21

4.1.4红外巡线程序设计23

4.1.5霍尔测速程序设计27

4.1.6记忆行驶程序设计27

4.2外部中断函数29

4.3定时中断函数29

4.4控制算法30

5系统测试报告31

5.1硬件系统模拟仿真测试31

5.1.1最小系统的测试31

5.1.2红外巡线模块的测试31

5.1.3霍尔测距模块的测试31

5.1.4电机驱动模块的测试32

5.1.5显示模块的测试32

5.2软件测试问题分析32

5.2.1巡线模块问题分析32

5.2.2记忆模块问题分析32

5.3小车总体运行情况32

5.4使用说明及指示灯的情况33

6结论33

参考文献34

致谢35

附录A36

 

1绪论

1.1课题背景、目的和意义

随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。

全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。

比如“飞思卡尔”杯全国大学生智能车竞赛,单独的关于小车方面的比赛,我们以小车为原型,设计制作一种具有记忆功能的自动小车,这个课题研究的内容,可以应用到很多方面,可见其研究意义很大。

基于GPS导航的自动导引小车(AutomaticGuidedVehicle),它实现的主要功能是在计算机和GPS的控制引导下沿程序设定路径运行完成作业的无人驾驶自动小车,本质上它可为现代制造业物流提供了一种高度柔性化和自动化的运输方式;自动导引小车需要实现记忆多条行驶路径,在实时观察车流量,选择最佳的行驶路径。

消防侦察机器人是一种集火场探测及有毒、易燃、易爆气体场所探测等多种功能于一体的遥操作机器人,可以实现有线手操盒控制和无线控制功能[5]。

消防侦察机器人接收不到无线通讯信号并且无法前进时,能够自动返回到最近的信号区,所以消防侦察机器人应具有简单的路径记忆功能。

当发生如火灾、有毒物质泄漏、辐射等灾难时,人们往往要冒着生命危险或者根本就无法进入这些灾难现场以了解灾情,因此需要一种探测车来代替人们完成任务从而减少和避免人员的伤亡[4]。

探测车在失去无线遥控信号且又无法前进时,探测车能按原路径返回,因此有简单的路径记忆功能。

智能扫地机器人[1],该机器人是在具有避障、沿线、遍历、记忆等功能的智能小车上添加相应的扫地工具和充电电池等模块组成,当扫地机器人遍历范围较广泛时,需要自动回插座充电,然后自动返回刚刚打扫的地方继续清扫,这就需要将原来的路径记忆下来。

考古机器人,对于一些人类不能直接进入的考古隐区,考古人员可以利用在具有避障、沿线、遍历、记忆等功能的智能小车上添加摄像头,矿物质分析仪等功能的考古机器人进行深入探究。

机器人进入考古区域后,需要从原路返回,这就需要机器人有记忆路径的功能。

这次我们设计的小车,主要研究小车行驶路径的记忆问题,使小车具有记忆路径的功能,对于研究其他领域,包括上述领域问题的研究提供了基础。

1.2课题的现状与发展趋势

智能小车就是轮式机器人中的一种,虽然是最基本的机器人雏形,但其中已包含了大部分功能。

在80年代中期,世界上一些著名的公司开始研制移动机器人,90年代以来,以研制高水平的环境信息传感器和信息处理技术、高适应性的移动机器人控制技术和真实环境下的规划技术为标志,开展了移动机器人的更高层次的研究[1]。

对于我们学生而言,也一直关注和学习研究智能小车方面的问题。

据全国GPS导航分析报告中提到,我国GPS导航市场依据导航模式可以简单的分为驾车导航和行人导航两大块,驾车导航主要是用于汽车等交通工具使用车载GPS或者便携式GPS导航仪领域,行人导航主要是徒步行走或者乘车使用GPS导航产品来实现位置服务需求的满足。

现在GPS导航绝大多数是离线静态导航,简单来说就是导航产品里的导航地图数据和信息点(POI)是固定静止不变,而在线动态导航是指导航产品里的地图数据和POI点及相关信息都能实时更新。

在线动态导航的好处显而易见,能跟实际情况做到100%的契合,更好的满足人们位置服务需求。

目前AGV在室内的应用较多。

但随着需求的发展,户外或半户外AGV技术将逐步完善和进入应用阶段。

户外AGV技术一直是应用的难点,主要受制于相对恶劣的自然条件,如:

温度、湿度、阳光、雾、雨、雪等天气。

所以,如防雨的激光导航装置,交流驱动器,特殊经验的系统设计等,是现在的研究发展方向。

国内AGV应用需求正突破传统行业,医药、港口等行业的需求日益扩大。

目前我国港口集装箱采用的码头运输方式为起重机将集装箱卸载到人工驾驶的运载工具上,再运输到储存地点。

如果采用AGV作为运载工具,目前在欧洲运行的案例表明将提高港口卸载效率约70%。

这对我国港口行业的发展意义重大,我国港口吞吐量世界第一,装卸货物总量巨大,运载效率的极大提高直接意味着集装箱货轮停泊时间的缩短,减少货轮巨额的停泊费用,同时装卸周期的缩短将极大提升单口岸的利用效率,对于国民经济进出口效益的意义是不言而喻的。

我国森林面积较大,容易引发火灾等,现在研究的消防机器人,能够自动进入森林去灭火[5]。

保障了消防员的人身安全。

扫地机器人—科沃斯机器人,它除了最基本的扫地功能以外,还具有强吸力,智能寻找垃圾,并且具有预约定时自动清扫以及智能返回充电功能,对于老年人或是经常出差的人来说绝对是最佳选择[6]。

我国研制的考古机器人走进古代墓穴探测,在对西安市一处古代墓葬的发掘试验中,中国研发的考古机器人进入情况不明的墓穴。

地面上,陕西省考古研究院的专家通过笔记本电脑,实时观看机器人“看到”的景象,接收它传回的各种信息包括分析土质年代,据此制订下一步发掘方案。

1.3课题欲解决的问题

本设计系统主要能实现小车沿黑线行驶,并且寻找最佳行驶路线,记忆此路线,能按照此最佳路径重复行驶的功能。

设计中,软件部分主要是记录行驶的方向,以及在此方向上的路程,设计中采用两个数组,方向定义为0,1,2,3;路程用霍尔元件产生中断的个数乘于小车车轮的1/8得到,将对应的数据记录在数组对应的位置。

遇到某线段的终点,返回180°,继续沿黑线行驶,直到另一节点处重新寻找行驶的路径,并且将返回的路径的记录清除掉,如果寻找的路径与之前方向相同,那么更新前一组中数据中的路程。

在第一圈行驶中,寻找最佳路径时,小车采用固定的低速行驶,在寻找到最佳路径之后,小车根据车在此方向上行驶的路程的长短,设定其速度:

路程较短的距离,小车采用的速度相对较低,在路程长的方向上,小车采用较高的速度行驶,当某段路程即将行驶完的时候,使小车的速度降低,同时我们测量下一段的距离,确定下一段的速度,这样小车就可以以较短的时间行驶完全程。

其中可能存在的关键问题有单片机芯片的数据存储空间可能不够,小车的实时控制可能不会太准确,小车行驶路程的测量有一定误差等,所以我们选择的路径不超过八个方向,即数组长度不超过8。

2设计方案

2.1常见路径记忆算法介绍

2.1.1基于DSP的路径记忆

利用编码器和软件实现,我们定义了一个循环队列的数据结构CirQueue。

typedefstruct

{//循环队列的数据结构

int*front;//头指针队非空时指向队头元素

int*rear;//尾指针队非空时指向队尾元素的下一位置

intDataCount;//计数器记录队中元素总数

DataTypedata[5];//表示只能记录最后发生的5个运动状态

}CirQueue;

只要能够记忆最后五个运动状态即可满足,每个元素的数据类型为:

typedefstruct

{//数据的结构

intMovingStatus;//移动机器人的运动状态

intL_speed;//移动机器人左轮的运动速度

intLIncreSurplus;//左轮编码器的余数增量

intR_speed;//移动机器人右轮的运动速度

intRIncreSurplus;//右轮编码器的余数增量

}DataType;

另外用一个枚举类型定义了机器人的5个运动状态:

静止、前进、左转、右转、后退,如下:

Enum{STILLNESS,GO_FORWARD,TURN_LEFT,TURN_RIGHT,GO_BACKWARD};

所以我们只要把5个运动状态的每个运动状态下的左轮和右轮的速度左轮编码器和右轮编码器在该状态下所转过的脉冲数以及该运动状态的名字记录下来当路径返回时按照该状态的相反状态运动即可实现简单的路径返回。

这样就达到了记忆路径的目的。

简化起流程图如图2.1所示。

图2.1方案一路径记忆流程图

2.1.2基于FM357-2的路径记忆

在计算机内定义一个记录类型来存储左右两个主动轮任意时刻的运动状态:

Type

TCarState=Record

LeftWheel:

WheelState;//左轮状态

RightWheel:

WheelState;//右轮状态

StateTime:

Integer;//车轮状态保持时间

LeftVel:

Real;//左轮速度

RightVel:

Real;//右轮速度

End;

WheelState为枚举变量定义如下:

TypeWheelState=(PDirect,Sleep,Ndirec);

其中,PDiract,Sleep,NDirect分别为正向,静止不动,反向。

定义记录类型变量:

CarState;TCarSate;

当左右轮中任何一个运动状态(转动方向、速度)发生改变时触发一事件,该事件将两轮的运动参数(包括转动方向、速度、车轮状态、保持时间等)通过DDE方式写入CarState的单域并将记录车轮状态保持时间的定时器复位以便记录下一个状态,同时将CarState所有的单域写人路径记忆文件中:

Var

PathRecordTiniFile;

FileName:

String;

FileName:

=‘PathRecord.ini’;//记忆路径文件名

PathRecord:

=TIniFile.Create(filename);//为生成路径记忆.ini文件

PathRecord.WriteString(IntToStr(i),'LeftWheel',CarState.LertWheel);

//将CarState单域写入RathRecord.ini文件中

这样该文件存储了行驶的路径,所以,要返回只需要从文件的末尾开始读取,如果要按照原路径行驶,则从文件头读取即可。

2.1.3数据分析法

首先第一圈记录下小车行驶的轨道的曲率和路程等信息。

第一圈的主要目的就是将赛道的重要特征按特定的格式记录下来,作为第二圈的参考。

初圈最终要记录的数据的横坐标一般为行驶的路程,而纵坐标则为赛道此点的曲率半径。

对于横坐标,由于初圈一般匀速驶完,一般可以直接用时间来表示,也可以用车速传感器的当前脉冲数来表示。

而对于纵坐标,则无法第一时间取得当前点的曲率半径,它需要对采集到的原始数据进行相关处理后才能得出。

这样子记录下来的据录下来的轨道信息,经过整合,去除毛刺,可以得到如下类似的图:

图2.2消除毛刺之后的波形图

2.2系统总体方案设计

本设计中主要由电机控制模块、红外对管巡线模块、显示模块、霍尔测距模块等四大部分,单片机控制这四部分,共同完成寻找最优路径行驶和记忆行驶的功能。

其主要硬件模块框图如图2.3所示。

图2.3系统总体硬件框图

电机控制模块由直流减速电机、L298电机驱动模块,TLP521光耦隔离模块,电源输入模块等组成,主要完成了对电机的正转、反转以及电机转速的控制,使小车能够前进行驶、左转、右转等;红外对管模块由红外对管信号测量电路、信号处理电路组成,完成了对黑线信号的检测功能;霍尔模块由霍尔信号测量电路和信号处理电路组成,完成了对霍尔信号的检测处理功能;LED显示模块主要由两个四位数码管及其驱动电路组成,主要完成对路程和时间的显示功能;单片机采集红外对管、霍尔元件产生的数据信号,输出相应的参数,实现对电机和LED显示的控制。

软件设计主要完成对采集到的信号的处理,产生相应的输出信号,控制硬件上各个部分的运转。

设计中选择90°转弯的路径,选用二个数组a[8],b[8]记录小车行驶的方向和路程,其中a[i](i是0-7)是小车行驶的方向,包括东,西,南,北;b[i](对应a[i]中的i)记录小车在此方向上的行驶路程。

系统软件框图:

图2.4系统总体软件框图

主函数主要完成系统的配置、函数的调用等功能,电机控制函数主要完成对电机的正转、反转和转速的控制;巡线行驶函数主要完成对黑线信号的处理以及最优路径的寻找;记忆行驶函数主要根据记录的路径行驶一遍的功能;显示函数主要完成对路程和时间的显示。

另外还附加了一些子函数,辅助完成上述功能。

3硬件系统设计

硬件系统设计中,主要用到以下几个模块:

AT89S52单片机最小系统模块,模式选择模块,L298电机驱动模块,RG5000红外巡线模块,霍尔测距模块,LED显示模块,终点喇叭报警模块。

在该设计中,我们主要用单片机控制各个模块的运转,红外压线行驶用来寻找最佳路径,并且用两个数组记录下来,霍尔元件主要用来记录行驶的路程,方便记录到二维数组中,当到达终点的时候,用喇叭来提示到达终点。

系统总体设计框图如下:

图3.1硬件总体框图

硬件系统的设计主要是信号的采集和处理电路,主要有黑线信号的采集和处理,磁钢信号的采集和处理,转换成单片机可以辨别的高低电平信号。

单片机根据采集到的红外对管产生的数据信号,判断小车的行驶状态是左转,右转或者是左后转,停止,进而通过控制电机的转动,执行响应的处理程序。

当霍尔元件测量到磁钢存在的时候,产生中断信号,单片机执行中断处理函数,计数值加一,表示小车又行驶了1/8车轮的路程。

3.1单片机最小系统设计

3.1.1AT89S52单片机的介绍

本设计中单片机选用AT89S52单片机。

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在线系统可编程Flash存储器。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

AT89S52的指令系统与8051系列单片机指令系统兼容,使编程更加方便,熟悉。

能够用C语言编写程序,运行基本的功能,C语言功能强大、结构性、可读性、维护性好。

AT89S52单片机存储容量和速度方面均符合我们的设计要求,并且电路设计简单、价格低廉,适合本设计使用。

其管脚图如下:

图3.2单片机引脚图

主要功能管脚说明:

(1)电源及时钟引脚:

VCC、GND、XTAL1、XTAL2。

(2)控制引脚:

、ALE、

、RES。

(3)I/O口引脚:

P0、P1、P2、P3,为4个8位I/O口的外部电路引脚。

P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。

在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能

P1.0T2(定时器/计数器T2的外部计数输入),时钟输出;

P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制);

P1.5MOSI(在系统编程用);

P1.6MISO(在系统编程用);

P1.7SCK(在系统编程用);

P

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

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1