毕业论文智能避障小车.docx
- 文档编号:3908128
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:54
- 大小:580.66KB
毕业论文智能避障小车.docx
《毕业论文智能避障小车.docx》由会员分享,可在线阅读,更多相关《毕业论文智能避障小车.docx(54页珍藏版)》请在冰豆网上搜索。
毕业论文智能避障小车
摘要
避障是智能小车应具备的基本功能之一,以P89C51RA芯片为核心,采集前方障碍信息并对智能小车进行控制,选用红外避障传感器检测智能小车前方的障碍物,设计了智能小车的自动避障系统,并阐述其工作原理。
该系统设计简单、成本低、实时性好,在室内环境中取得了预期的实验结果,使智能小车无碰撞到达目的地。
关键词:
P89C51RA,智能,红外避障传感器
Abstract
Theobstacleavoidanceisoneofthemainfunctionsthatanindependentlyintelligentcarriageshouldbeprovided.UsetheP89C51RAasakeycomponent,collectingtheenvironmentalinformationandcontrollingtheintelligentcarriage,akindofobstacleavoidancesystemofintelligentcarriageisdesigned.Inthissystem,infraredobstacleavoidancesensorsareusedtodetectthebarries,whicharefrontofdistancebetweentheintelligentcarriageandthebarriers.Thesystem'sdesignissimple,andhaslowercostandbetterrealtimefeatures.Andatthesametime,thissystemhasobtainedanticipatedexperimentalresultsintheindoorenvironment.Thatis:
theintelligentcarriagecanarriveatthedestinationwithoutanycollision.
Keywords:
P89C51RA;intelligent;infraredobstacleavoidancesensors
第一章绪论
1.1小车避障系统设计的意义
自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。
近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。
人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。
随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。
视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。
视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。
但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。
机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。
避障控制系统是基于自动导引小车(AVG—auto-guidevehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。
使用传感器感知路线和障碍并作出判断和相应的执行动作。
1.2小车避障系统
该智能小车可以作为机器人的典型代表。
它可以分为三大组成部分:
传感器检测部分、执行部分、CPU。
机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。
可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。
基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。
智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。
单片机驱动直流电机一般有两种方案:
第一,勿需占用单片机资源,直接选择有PWM功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。
考虑到实际情况,本文选择第二种方案。
CPU使用P89C51RA单片机,配合软件编程实现。
还有显示部分通过软件可以显示行使时间和路程。
1.2.1主控系统
根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。
据此,拟定了以下两种方案并进行了综合的比较论证,具体如下:
方案一:
仅采用CPLD作为核心部件的方案
如图1-1所示:
选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。
CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。
但CPLD在控制上较单片机有较大的劣势。
同时,CPLD的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。
若采用该方案,必将在控制上遇到许许多多不必要增加的难题。
为此,我们不采用该种方案,进而提出了第二种设想。
方案二:
仅采用单片机作为核心部件的方案
如图1-2所示:
采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。
充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。
这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。
因此,这种方案是一种较为理想的方案。
针对本设计特点——多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D功能也不必选用。
根据这些分析,我选定了P89C51RA单片机作为本设计的主控装置,51单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是51单片机价格非常低廉。
在综合考虑了传感器、两部电机的驱动、显示等诸多因素后,我们决定采用一片单片机,充分利用P89C51RA单片机的资源。
1.2.2机械系统
本题目要求小车的机械系统稳定、简单,而四轮运动系统具备以上特点。
驱动部分:
由于玩具汽车的直流电机功率较小,而小车上装有电池、电机、电子器件等,使得电机负担较重。
为使小车能够顺利启动,且运动平稳,在直流电机和轮车轴之间加装了三级减速齿轮。
显示部分:
将显示模块放置小车前部上方,利于观察。
电池的安装:
将电池放置在车体的正下方,降低车体重心,提高稳定性,同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。
1.2.3电机驱动模块
方案一:
采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。
方案二:
采用电阻网络或数字电位器调节电动机的分压,从而达到分压的目的。
但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。
更主要的问题在于一般的电动机电阻很小,但电流很大,分压不仅回降低效率,而且实现很困难。
方案三:
使用功率三极管作为功率放大器的输出控制直流电机。
线性型驱动的电路结构和原理简单,成本低,加速能力强,采用由达林顿管组成的H型PWM电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高;H型保证了简单的实现转速和方向的控制;电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。
因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。
1.2.4传感器系统
方案一:
反射式红外发射—接收装置,只有物体反射红外光时才有信号输入,其信号强度与小车距障碍物的距离成正比。
因此可利用信号强度作为避障依据。
红外探测器的选型与工作方式:
1、红外探测器的选型
红外探测器以其发射功率大、抗干扰能力强而在工业生产中有着广泛的应用,红外探测器按其工作模式可大致分为主动式与被动式,主动式红外探测器自带红外光源,通过对光源的遮挡、反射、折射等光学手段可以完成对被探测物体位置的判别。
被动式红外探测器本身没有光源,通过接受被探测物体的特征光谱辐射来测量被探测物的位置、温度或进行红外成像。
直流直接驱动方式装置简单但检测距离和抗干扰能力都比较差;交流调制方式由于可以采用交流耦合方式解决了放大器的直流漂移问题从而可以大大提高检测的距离,同时由于环境光产生的干扰多数情况是信号的直流或低频分量可以由滤波器加以隔绝,因此交流调试方式抗干扰能力也比较强,缺点是系统相对复杂。
在本体中我们要利用红外探测器检测障碍物的距离,显然选用主动式红外传感器比较合适,系统的造价可以降低可靠性可以提高。
主动式红外传感器又可分为分立元件型、透射遮挡型和反射型(如图1-3示),分立元件型发光管与接收管相互独立,用户在使用时可以根据需要灵活的设定发光管与接受管的位置,并可利用棱镜、透镜等完成特殊的目的,缺点是装置麻烦。
透射遮挡型和反射型通过塑料模具将发光管与接收管封装在一起,非常方便用户使用,在本题中对障碍物的检测我使用反射型。
2、主动式红外探测器的工作方式选取
主动式红外探测器常用的驱动方式可分为直流直接驱动方式和交流调制方式,直流直接驱动方式装置简单但检测距离和抗干扰能力都比较差;交流调制方式由于可以采用交流耦合方式解决了放大器的直流漂移问题从而可以大大提高检测的距离,同时由于环境光产生的干扰多数情况是信号的直流或低频分量可以由滤波器加以隔绝,因此交流调试方式抗干扰能力也比较强,缺点是系统相对复杂。
方案二:
采用反射式超声波换能器,只有物体反射超声波时才有信号输入,测量发射接收信号间的时间差T2-T1,利用其可以得到障碍物的距离,将该信息送给单片机,单片机发出控制信号改变小车的转向,使小车不与障碍物发生接触。
该方法适合较远距离障碍物检测。
反射式超声波换能器成本高,电路设计复杂,因为不要求检测的很远,于是选自了反射式光电传感器,在本题中对前方障碍物的检测因为要求检测距离较远,受到环境光的干扰比较大,因此我们选用抗干扰能力较强的交流调制工作方式;而对小车侧面障碍物的检测由于要求检测距离较近,外界干扰相对较弱,为简化设计我们选用直流直接驱动方式。
1.2.5电源电路的选型
方案一:
所有器件采用单一电源(6节AA电池)。
这样供电比较简单;但是由于电动机启动瞬间电流很大,而且PWM驱动的电动机电流波动较大,会造成电压不稳、有毛刺等干扰,严重时可能造成单片机系统掉电,缺点十分明显
。
图1-4稳压电路
方案二:
双电源供电。
将电动机驱动电源与单片机及其周边电路电源完全隔离,利用光电耦合器传输信号。
这样做法虽然不如单电源方便灵活,但可将电动机驱动所造成的干扰完全消除,进一步提高系统稳定性。
1.2.6里程检测模块
方案一:
由发光二极管和光敏二极管组成发射接收装置,将一带四个孔的遮光塑料板贴于车轮,将此装置固定车轮一侧,车轮每转动一圈,发射接收正对四次,通过对接受脉冲计数从而得到车的里程,安装困难。
方案二:
采用霍尔集成片,将磁铁安装于车轮上,霍尔集成片安装在固定位置,当磁铁与霍尔集成片正对时,由于霍尔效应,对产生脉冲计数从而得到车轮转数。
通过程序求出里程,通过ZLG7289A显示。
经分析,拟选用方案二。
1.2.7显示模块
方案一:
通过单片机,直接驱动LED,通过8个I/O口驱动八个LED,8个I/O口驱动LED的八段发光二级管,此方法占用大量的I/O口。
方案二:
使用ZLG7289A显示驱动芯片,ZLG7289A是一片具有串行接口的可同时驱动8位共阴式数码管或64只独立LED的智能显示驱动芯片。
ZLG7289A内部含有译码器可直接接受BCD码或16进制码并同时具有2种译码方式此外还具有多种控制指令如消隐﹑闪烁﹑左移﹑右移﹑段寻址等。
ZLG7289A采用串行方式与微处理器通讯串行数据从DATA引脚送入芯片并由CLK端同步。
有操作方便占用I/O口少等优点。
因此选用方案二。
总结一下,这次设计智能小车,可以按指定路线运行,自动区分直线轨道和弯路轨道,在指定弯路处拐弯,实现灵活前进、转弯、倒退等功能,在轨道上划出设定的地图,并且车速自动可调。
主要是以P89C51RA单片机为核心,采用霍尔传感器进行里程统计,红外传感器进行目标识别与避障,使自动寻迹小车准确跟踪轨迹路线;采用直流电机对车的转向进行控制,由软件实现了小车自动行驶、自动避障,里程统计,行驶时间显示,并发出指示信息等功能。
第二章主控制单元
2.1整体构思
经过方案论证的过程之后,我们选定了仅采用单片机作为核心部件的方案,其系统总方框图如图2-1所示。
具体的功能设置已通过该图做了直观的说明。
通过主控芯片控制各传感器输入的信号,控制方式由软件来实现,其中包括六个红外传感器用来检测障碍物,四个传感器用来检测侧面障碍,2个检测前方障碍。
还有一个霍尔传感器用来检测路程相关的信号;除了处理这些信号单片机还通过I/O口控制直流电机和LED的显示。
在功能和作用上,我分成了四大部分:
主控、驱动、避障和显示部分。
总原理图见论文后附录2。
图2-1系统总原理框图
2.2主控制部分
2.2.1CPU介绍
P89C51RA2xx包含8K可并行可编程的非易失性FLASH程序存储器,并可实现对器件串行在系统编程(ISP)和在应用中编程(IAP)
。
在系统编程(ISP:
In-SystemProgramming):
当MCU安装在用户板上时,允许用户下载新的代码。
在应用中编程(IAP:
In-ApplicationProgramming):
MCU可以在系统中获取新代码并对自己重新编程。
这种方法允许通过调制解调器连接进行远程编程。
片内ROM中固化的默认的串行加载程序(BootLoader)允许ISP通过UART将程序代码装入Flash存储器,而Flash代码中则不需要加载程序。
对于IAP,用户程序通过使用片内ROM中的标准程序对Flash存储器进行擦除和重新编程。
引脚如图2-2,它的管脚描述如表2-1。
该器件可通过并行编程或在系统编程对一个Flash位进行编程,从而选择6时钟或12时钟模式。
此外,也可通过时钟控制寄存器CKCON中的X2位选择6时钟或12时钟模式。
另外,当处于6时钟模式时,片内外设可以选择一个机器周期6时钟或是12时钟。
可通过CKCON寄存器对每个外设的时钟源进行选择。
该系列微控制器是80C51微控制器的派生器件,是采用先进CMOS工艺制造的8位微控制器,指令系统与80C51完全相同。
该器件有4组8位I/O口、3个16位定时/计数器、多中断源-4中断优先级-嵌套的中断结构、1个增强型UART、片内振荡器及时序电路。
图2-2引脚图
新增的特性使得P89C51RA2成为功能更强大的微控制器,从而更好地支持需要用到脉宽调制,高速I/O,递增/递减计数功能(如电机控制)等应用场合。
表2-1管脚描述
名称
管脚号
类型
名称和功能
Vss
20
I
地:
0V参考点
Vcc
40
I
电源:
提供掉电、空闲、正常工作电压
P0.0-0.7
39-32
I/O
P0口:
P0口是开漏双向口,可向其写入1使其状态为悬浮,用作高阻输入。
P0也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉传送1。
P1.0-1.7
1-8
1
2
3
4
5
6
7
8
I/O
I/O
I
I
I/O
I/O
I/O
I/O
I/O
P1口:
P1口是带内部上拉的双向I/O口,向P1口写入1时,P1口被内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P1口会因为内部上拉而输出电流(见DC电气特性)。
P1口第2功能:
T2(P1.0):
定时/计数器2的外部计数输入/时钟输出
T2EX(P1.1):
定时/计数器2重装载/捕捉/方向控制
ECI(P1.2):
PCA的外部时钟输入
CEX0(P1.3):
PCA模块0捕获/比较模式的外部I/O管脚
CEX1(P1.4):
PCA模块1捕获/比较模式的外部I/O管脚
CEX2(P1.5):
PCA模块2捕获/比较模式的外部I/O管脚
CEX3(P1.6):
PCA模块3捕获/比较模式的外部I/O管脚
CEX4(P1.7):
PCA模块4捕获/比较模式的外部I/O管脚
P2.0-2.7
21-28
I/O
P2口:
P2口是带内部上拉的双向I/O口,向P2口写入1时,P2口被内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P2口会因为内部上拉而输出电流(见DC电气特性)。
在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址(OVX@DPTR),此时通过内部强上拉传送1。
当使用8位寻址方式(MOV@Ri)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。
P2.7在编程/擦除时必须为“1”
续表2-1管脚描述
名称
管脚号
类型
名称和功能
P3.0-P3.7
10-17
10
11
I/O
I
O
P3口:
P3口是带内部上拉的双向I/O口,向P3口写入1时,P3口被内部上拉为高电平,可用作输入口。
当作为输入脚时,被外部拉低的P3口会因为内部上拉而输出电流(见DC电气特性)。
P89C51RX2的P3口脚具有以下特殊功能:
RxD(p3.0):
串行输入口
TxD(P3.1):
串行输出口
12
I
(P3.2):
外部中断0
13
I
(P3.3):
外部中断1
14
15
I
I
T0(P3.4):
定时器0外部输入
T1(P3.5):
定时器1外部输入
16
I
(P3.6):
外部数据存储器写信号
17
I
(P3.7):
外部数据存储器读信号
RST
9
I
复位:
当晶振在运行中,只要复位管脚出现2个机器周期高电平即可复位,内部有扩散电阻连接到Vss仅需要外接一个电容到Vcc即可实现上电复位。
ALE
30
O
地址锁存使能:
在访问外部存储器时,输出脉冲锁存地址的低字节,在正常情况下,ALE输出信号恒定为1/6振荡频率。
并可用作外部时钟或定时,注意每次访问外部数据时一个ALE脉冲将被忽略,ALE可以通过置位SFRauxililary.0禁止,置位后ALE只能在执行MOVX指令时被激活。
29
O
程序存储使能:
读外部程序存储。
当从外部读取程序时
每个机器周期被激活两次,在访问外部数据存储器
无效,访问内部程序存储器时
无效。
/Vpp
31
I
外部寻址使能/编程电压:
在访问整个外部程序存储器时,
必须外部置低。
如果
为高时,将执行内部程序。
当RST释放后EA脚的值被锁存,任何时序的改变都将无效。
该引脚在对FLASH编程时用于输入编程电压(Vpp)
XTAL1
19
I
晶体1:
振荡反向放大器输入端和内部时钟发生电路输入端
XTAL2
18
O
晶体2:
振荡反向放大器输出端
注:
为了避免上电时的“latch-up”效应,任意管脚(Vpp除外)上的电压最大不能高于Vcc+0.5,最低不能低于Vss-0.5。
2.2.2CPU功能
在设计中,将MCU资源分配如下:
P0.0-P0.3作为直流电机的4个驱动控制口,设计中采用直接控制。
P1.4-P1.7连接ZLG7289控制数据的传输和显示,P2.0-P2.5作为传感器信号的接入口,P2.6-P2.7产生脉冲控制三极管从而使红外传感器产生红外线脉冲,P3.1和P3.2即RXD、TXD为ISP相关所用,P3.5即计数器输入端作为霍尔传感器产生脉冲的接入端。
四个反射式光电传感器和红外线传感器用于障碍物检测,检测到的红外避障信号由P2口输入,再通过软件分析,通过P1口输出相应的电机驱动信号控制小车,实现相应的动作来达到避开障碍物的目的;还有一个传感器便是霍尔传感器,它检测到的脉冲送入P3口,并进行记数,通过程序计算出小车的里程,并由LED显示出来;单片机的P3口为复用口,还可以根据实际情况扩展所需要的功能,比如用于偱轨迹红外线传感器,检测到的信号输入到P3口再通过软件完成相应的控制动作。
2.2.3CPU相关电路
图
图2-3时钟信号输入方式
P89C51的时钟信号的应用有两种方式:
内部方式和外部方式。
原理图如图2-3所示,在设计中采用的是内部方式。
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHZ,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择。
电容取30PF左右。
图2-4CPU复位电路
在振荡器运行时,有两个及其周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个引脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
常用的复位电路图如图2-4所示。
2.3主程序设计
2.3.1关于定时与计数器
在P89C51RA2中,定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择这两个定时/计数器有4种操作模式通过TMOD的M1和M0选择。
两个定时/计数器的模式0、1和2都相同,模式3不同如下所述,而定时器2未用到就不赘述。
1.模式0
将定时器设置成模式0时类似8048定时器,即8位计数器带32分频的预分频器。
此模式下定时器寄存器配置为13位寄存器。
当计数从全为“1”翻转为全为“0”时定时器中断标志位TFn置位。
当TRn=1同时GATE=0或
=1时定时器计数。
置位GATE时允许由外部输入
控制定时器,这样可实现脉宽测量。
TRn为TCON寄存器内的控制位,如表2-2。
表2-2定时器/计数器特殊功能寄存器TMOD
GATE
C/
M1
M0
GATE
C/
M1
M0
该13位寄存器包含THn全部8个位及TLn的低5位。
TLn的高3位不定,可将其忽略。
置位运行标志(TRn)不能清零此寄存器。
模式0的操作对于定时器0及定时器1都是相同的两个不同的GATE位(TMOD.7和TMOD.3)分别分配给定时器0及定时器1。
2.模式1
模式1除了使用了THn及TLn全部16位外,其它与模式0相同。
3.模式2
此模式下定时器寄存器作为可自动重装的8位计数器(TLn)。
TLn的溢出不仅置位TFn,而且将THn内容重新装入TLn,THn内容由软件预置。
重装时THn内容不变。
模式2的操作对于定时器0及定时器1是相同的。
4.模式3
在模式3中,定时器1停止计数,效果与将TR1设置为0相同。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 智能 小车