毕业论文智能避障小车.docx
- 文档编号:26914970
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:31
- 大小:34.87KB
毕业论文智能避障小车.docx
《毕业论文智能避障小车.docx》由会员分享,可在线阅读,更多相关《毕业论文智能避障小车.docx(31页珍藏版)》请在冰豆网上搜索。
毕业论文智能避障小车
毕业论文:
智能避障小车
摘要
避障是智能小车应具备的基本功能之一以P89C51RA芯片为核心采集前方障碍信息并对智能小车进行控制选用红外避障传感器检测智能小车前方的障碍物设计了智能小车的自动避障系统并阐述其工作原理该系统设计简单成本低实时性好在室环境中取得了预期的实验结果使智能小车无碰撞到达目的地
关键词P89C51RA智能红外避障传感器
Abstract
TheobstacleavoidanceisoneofthemainfunctionsthatanindependentlyintelligentcarriageshouldbeprovidedUsetheP89C51RAasakeycomponentcollectingtheenvironmentalinformationandcontrollingtheintelligentcarriageakindofobstacleavoidancesystemofintelligentcarriageisdesignedInthissysteminfraredobstacleavoidancesensorsareusedtodetectthebarrieswhicharefrontofdistancebetweentheintelligentcarriageandthebarriersThesystemsdesignissimpleandhaslowercostandbetterrealtimefeaturesAndatthesametimethissystemhasobtainedanticipatedexperimentalresultsintheindoorenvironmentThatistheintelligentcarriagecanarriveatthedestinationwithoutanycollision
KeywordsP89C51RAintelligentinfraredobstacleavoidancesensors
摘要I
AbstractII
目录I
第一章绪论1
11小车避障系统设计的意义1
12小车避障系统1
121主控系统2
122机械系统3
123电机驱动模块3
124传感器系统4
125电源电路的选型5
里程检测模块6
127显示模块6
第二章主控制单元7
21整体构思7
22主控制部分8
221CPU介绍8
222CPU功能11
223CPU相关电路11
23主程序设计12
231关于定时与计数器12
232程序13
第三章驱动单元15
31直流电机的驱动原理15
32直流电机的驱动电路15
第四章躲避障碍物单元17
41避障传感器电路17
411近距离避障传感器17
412远距离避障传感器18
42避障方法19
421前方有障碍物19
422侧面有障碍物21
43避障程序22
第五章显示单元23
51里程和时间显示23
52显示模块硬件23
521ZLG7289A介绍25
522ZLG7289A串行接口27
523ZLG7289A控制指令28
第六章在系统编程33
61在系统编程ISP介绍33
62FLASHEPROM存储器33
63ISP设计34
64单片机与PC机的连接35
641连接介绍35
参考文献37
附录38
结论49
致谢50
第一章绪论
11小车避障系统设计的意义
自第一台工业机器人诞生以来机器人的发展人们不断探讨改造认识自然过程中科技发展要实现自动导引功能和避障功能就必须要感知导引线和障碍物导引线相给一个视觉功能CPU机器人要实现自动避障功能还可以扩展循迹等功能感知导引线和障碍物可以实现小车自动识别路线选择正确的行进路线并检测到障碍物自动躲避基于上述要求传感检测部分考虑到小车一般不需要感知清晰的图像只要求粗略感知即可所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当智能小车的执行部分是由直流电机来充当的主要控制小车的行进方向和速度单片机驱动直流电机一般有两种方案第一勿需占用单片机资源直接选择有PWM功能的单片机这样可以实现精确调速第二可以由软件模拟PWM输出调制需要占用单片机资源难以精确调速但单片机型号的选择余地较大考虑到实际情况本文选择第二种方案CPU使用P89C51RA单片机配合软件编程实现还有显示部分通过软件可以显示行使时间和路程
121主控系统
根据设计要求我认为此设计属于多输入量的复杂程序控制问题据此拟定了以下两种方案并进行了综合的比较论证具体如下
方案一仅采用CPLD作为核心部件的方案
如图1-1所示选用一片CPLD如EPM7128LC84-15作为系统的核心部件实现控制与处理的功能CPLD具有速度快编程容易资源丰富开发周期短等优点可利用VHDL语言进行编写开发但CPLD在控制上较单片机有较大的劣势同时CPLD的处理速度非常快而小车的行进速度不可能太高那么对系统处理信息的要求也就不会太高在这一点上MCU就已经可以胜任了若采用该方案必将在控制上遇到许许多多不必要增加的难题为此我们不采用该种方案进而提出了第二种设想
方案二仅采用单片机作为核心部件的方案
如图1-2所示采用单片机作为整个系统的核心用其控制行进中的小车以实现其既定的性能指标充分分析我们的系统其关键在于实现小车的自动控制而在这一点上单片机就显现出来它的优势控制简单方便快捷这样一来单片机就可以充分发挥其资源丰富有较为强大的控制功能及可位寻址操作功能价格低廉等优点因此这种方案是一种较为理想的方案
针对本设计特点多开关量输入的复杂程序控制系统需要擅长处理多开关量的标准单片机而不能用精简IO口和程序存储器的小体积单片机DAAD功能也不必选用根据这些分析我选定了P89C51RA单片机作为本设计的主控装置51单片机具有功能强大的位操作指令IO口均可按位寻址程序空间多达8K对于本设计也绰绰有余更可贵的是51单片机价格非常低廉
在综合考虑了传感器两部电机的驱动显示等诸多因素后我们决定采用一片单片机充分利用P89C51RA单片机的资源
122机械系统
本题目要求小车的机械系统稳定简单而四轮运动系统具备以上特点
驱动部分由于玩具汽车的直流电机功率较小而小车上装有电池电机电子器件等使得电机负担较重为使小车能够顺利启动且运动平稳在直流电机和轮车轴之间加装了三级减速齿轮
显示部分将显示模块放置小车前部上方利于观察
电池的安装将电池放置在车体的正下方降低车体重心提高稳定性同时可增加驱动轮的抓地力减小轮子空转所引起的误差
123电机驱动模块
方案一采用继电器对电动机的开或关进行控制通过开关的切换对小车的速度进行调整此方案的优点是电路较为简单缺点是继电器的响应时间慢易损坏寿命较短可靠性不高
方案二采用电阻网络或数字电位器调节电动机的分压从而达到分压的目的但电阻网络只能实现有级调速而数字电阻的元器件价格比较昂贵更主要的问题在于一般的电动机电阻很小但电流很大分压不仅回降低效率而且实现很困难
方案三使用功率三极管作为功率放大器的输出控制直流电机线性型驱动的电路结构和原理简单成本低加速能力强采用由达林顿管组成的H型PWM电路用单片机控制达林顿管使之工作在占空比可调的开关状态下精确调整电动机转速这种电路由于工作在管子的饱和截止模式下效率非常高H型保证了简单的实现转速和方向的控制电子管的开关速度很快稳定性也极强是一种广泛采用的PWM调速技术
这种调速方式有调速特性优良调整平滑调速围广过载能力大能承受频繁的负载冲击还可以实现频繁的无级快速启动制动和反转等优点因此决定采用使用功率三极管作为功率放大器的输出控制直流电机
124传感器系统
方案一反射式红外发射接收装置只有物体反射红外光时才有信号输入其信号强度与小车距障碍物的距离成正比因此可利用信号强度作为避障依据
红外探测器的选型与工作方式
1红外探测器的选型
红外探测器以其发射功率大抗干扰能力强而在工业生产中有着广泛的应用红外探测器按其工作模式可大致分为主动式与被动式主动式红外探测器自带红外光源通过对光源的遮挡反射折射等光学手段可以完成对被探测物体位置的判别被动式红外探测器本身没有光源通过接受被探测物体的特征光谱辐射来测量被探测物的位置温度或进行红外成像直流直接驱动方式装置简单但检测距离和抗干扰能力都比较差交流调制方式由于可以采用交流耦合方式解决了放大器的直流漂移问题从而可以大大提高检测的距离同时由于环境光产生的干扰多数情况是信号的直流或低频分量可以由滤波器加以隔绝因此交流调试方式抗干扰能力也比较强缺点是系统相对复杂在本体中我们要利用红外探测器检测障碍物的距离显然选用主动式红外传感器比较合适系统的造价可以降低可靠性可以提高
主动式红外传感器又可分为分立元件型透射遮挡型和反射型如图1-3示分立元件型发光管与接收管相互独立用户在使用时可以根据需要灵活的设定发光管与接受管的位置并可利用棱镜透镜等完成特殊的目的缺点是装置麻烦透射遮挡型和反射型通过塑料模具将发光管与接收管封装在一起非常方便用户使用在本题中对障碍物的检测我使用反射型
2主动式红外探测器的工作方式选取
主动式红外探测器常用的驱动方式可分为直流直接驱动方式和交流调制方式直流直接驱动方式装置简单但检测距离和抗干扰能力都比较差交流调制方式由于可以采用交流耦合方式解决了放大器的直流漂移问题从而可以大大提高检测的距离同时由于环境光产生的干扰多数情况是信号的直流或低频分量可以由滤波器加以隔绝因此交流调试方式抗干扰能力也比较强缺点是系统相对复杂
方案二采用反射式超声波换能器只有物体反射超声波时才有信号输入测量发射接收信号间的时间差T2-T1利用其可以得到障碍物的距离将该信息送给单片机单片机发出控制信号改变小车的转向使小车不与障碍物发生接触该方法适合较远距离障碍物检测
反射式超声波换能器成本高电路设计复杂因为不要求检测的很远于是选自了反射式光电传感器在本题中对前方障碍物的检测因为要求检测距离较远受到环境光的干扰比较大因此我们选用抗干扰能力较强的交流调制工作方式而对小车侧面障碍物的检测由于要求检测距离较近外界干扰相对较弱为简化设计我们选用直流直接驱动方式
125电源电路的选型
方案一所有器件采用单一电源6节AA电池这样供电比较简单但是由于电动机启动瞬间电流很大而且PWM驱动的电动机电流波动较大会造成电压不稳有毛刺等干扰严重时可能造成单片机系统掉电缺点十分明显
图1-4稳压电路
方案二双电源供电将电动机驱动电源与单片机及其周边电路电源完全隔离利用光电耦合器传输信号这样做法虽然不如单电源方便灵活但可将电动机驱动所造成的干扰完全消除进一步提高系统稳定性
里程检测模块
方案一由发光二极管和光敏二极管组成发射接收装置将一带四个孔的遮光塑料板贴于车轮将此装置固定车轮一侧车轮每转动一圈发射接收正对四次通过对接受脉冲计数从而得到车的里程安装困难
方案二采用霍尔集成片将磁铁安装于车轮上霍尔集成片安装在固定位置当磁铁与霍尔集成片正对时由于霍尔效应对产生脉冲计数从而得到车轮转数通过程序求出里程通过ZLG7289A显示经分析拟选用方案二
127显示模块
方案一通过单片机直接驱动LED通过8个IO口驱动八个LED8个IO口驱动LED的八段发光二级管此方法占用大量的IO口
方案二使用ZLG7289A显示驱动芯片ZLG7289A是一片具有串行接口的可同时驱动8位共阴式数码管或64只独立LED的智能显示驱动芯片ZLG7289A部含有译码器可直接接受BCD码或16进制码并同时具有2种译码方式此外还具有多种控制指令如消隐、闪烁、左移、右移、段寻址等ZLG7289A采用串行方式与微处理器通讯串行数据从DATA引脚送入芯片并由CLK端同步有操作方便占用IO口少等优点因此选用方案二
总结一下这次设计智能小车可以按指定路线运行自动区分直线轨道和弯路轨道在指定弯路处拐弯实现灵活前进转弯倒退等功能在轨道上划出设定的地图并且车速自动可调主要是以P89C51RA单片机为核心采用霍尔传感器进行里程统计红外传感器进行目标识别与避障使自动寻迹小车准确跟踪轨迹路线采用直流电机对车的转向进行控制由软件实现了小车自动行驶自动避障里程统计行驶时间显示并发出指示信息等功能
第二章主控制单元
21整体构思
经过方案论证的过程之后我们选定了仅采用单片机作为核心部件的方案其系统总方框图如图2-1所示
具体的功能设置已通过该图做了直观的说明通过主控芯片控制各传感器输入的信号控制方式由软件来实现其中包括六个红外传感器用来检测障碍物四个传感器用来检测侧面障碍2个检测前方障碍还有一个霍尔传感器用来检测路程相关的信号除了处理这些信号单片机还通过IO口控制直流电机和LED的显示在功能和作用上我分成了四大部分主控驱动避障和显示部分总原理图见论文后附录2
图2-1系统总原理框图
22主控制部分
221CPU介绍
P89C51RA2xx包含8K可并行可编程的非易失性FLASH程序存储器并可实现对器件串行在系统编程ISP和在应用中编程IAP在系统编程ISPIn-SystemProgramming当MCU安装在用户板上时允许用户下载新的代码在应用中编程IAPIn-ApplicationProgrammingMCU可以在系统中获取新代码并对自己重新编程这种方法允许通过调制解调器连接进行远程编程片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位IO口3个16位定时计数器多中断源-4中断优先级-嵌套的中断结构1个增强型UART片振荡器及时序电路
图2-2引脚图
新增的特性使得P89C51RA2成为功能更强大的微控制器从而更好地支持需要用到脉宽调制高速IO递增递减计数功能如电机控制等应用场合
表2-1管脚描述
名称管脚号类型名称和功能Vss20I地0V参考点Vcc40I电源提供掉电空闲正常工作电压P00-0739-32IOP0口P0口是开漏双向口可向其写入1使其状态为悬浮用作高阻输入P0也可以在访问外部程序存储器时作地址的低字节在访问外部数据存储器时作数据总线此时通过部强上拉传送1P10-171-8
1
2
3
4
5
6
7
8IO
IO
I
I
IO
IO
IO
IO
IOP1口P1口是带部上拉的双向IO口向P1口写入1时P1口被部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P1口会因为部上拉而输出电流见DC电气特性P1口第2功能
T2P10定时计数器2的外部计数输入时钟输出
T2EXP11定时计数器2重装载捕捉方向控制
ECIP12PCA的外部时钟输入
CEX0P13PCA模块0捕获比较模式的外部IO管脚
CEX1P14PCA模块1捕获比较模式的外部IO管脚
CEX2P15PCA模块2捕获比较模式的外部IO管脚
CEX3P16PCA模块3捕获比较模式的外部IO管脚
CEX4P17PCA模块4捕获比较模式的外部IO管脚P20-2721-28IOP2口P2口是带部上拉的双向IO口向P2口写入1时P2口被部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P2口会因为部上拉而输出电流见DC电气特性在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址OVXDPTR此时通过部强上拉传送1当使用8位寻址方式MOVRi访问外部数据存储器时P2口发送P2特殊功能寄存器的容P27在编程擦除时必须为1
续表2-1管脚描述
名称管脚号类型名称和功能P30-P3710-17
10
11IO
I
OP3口P3口是带部上拉的双向IO口向P3口写入1时P3口被部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P3口会因为部上拉而输出电流见DC电气特性P89C51RX2的P3口脚具有以下特殊功能
RxDp30串行输入口
TxDP31串行输出口12IP32外部中断013IP33外部中断114
15I
IT0P34定时器0外部输入
T1P35定时器1外部输入16IP36外部数据存储器写信号17IP37外部数据存储器读信号RST9I复位当晶振在运行中只要复位管脚出现2个机器周期高电平即可复位部有扩散电阻连接到Vss仅需要外接一个电容到Vcc即可实现上电复位ALE30O地址锁存使能在访问外部存储器时输出脉冲锁存地址的低字节在正常情况下ALE输出信号恒定为16振荡频率并可用作外部时钟或定时注意每次访问外部数据时一个ALE脉冲将被忽略ALE可以通过置位SFRauxililary0禁止置位后ALE只能在执行MOVX指令时被激活29O程序存储使能读外部程序存储当从外部读取程序时每个机器周期被激活两次在访问外部数据存储器无效访问部程序存储器时无效Vpp31I外部寻址使能编程电压在访问整个外部程序存储器时必须外部置低如果为高时将执行部程序当RST释放后EA脚的值被锁存任何时序的改变都将无效该引脚在对FLASH编程时用于输入编程电压VppXTAL119I晶体1振荡反向放大器输入端和部时钟发生电路输入端XTAL218O晶体2振荡反向放大器输出端
注为了避免上电时的latch-up效应任意管脚Vpp除外上的电压最大不能高于Vcc05最低不能低于Vss-05
222CPU功能
在设计中将MCU资源分配如下P00-P03作为直流电机的4个驱动控制口设计中采用直接控制P14-P17连接ZLG7289控制数据的传输和显示P20-P25作为传感器信号的接入口P26-P27产生脉冲控制三极管从而使红外传感器产生红外线脉冲P31和P32即RXDTXD为ISP相关所用P35即计数器输入端作为霍尔传感器产生脉冲的接入端四个反射式光电传感器和红外线传感器用于障碍物检测检测到的红外避障信号由P2口输入再通过软件分析通过P1口输出相应的电机驱动信号控制小车实现相应的动作来达到避开障碍物的目的还有一个传感器便是霍尔传感器它检测到的脉冲送入P3口并进行记数通过程序计算出小车的里程并由LED显示出来单片机的P3口为复用口还可以根据实际情况扩展所需要的功能比如用于偱轨迹红外线传感器检测到的信号输入到P3口再通过软件完成相应的控制动作
223CPU相关电路
图
图2-3时钟信号输入方式
P89C51的时钟信号的应用有两种方式部方式和外部方式原理图如图2-3所示在设计中采用的是部方式
XTAL1是片振荡器的反相放大器输入端XTAL2则是输出端使用外部振荡器时外部振荡信号应直接加到XTAL1而XTAL2悬空部方式时时钟发生器对振荡脉冲二分频如晶振为12MHZ时钟频率就为6MH晶振的频率可以在1MH24MHz选择电容取30PF左右
图2-4CPU复位电路
在振荡器运行时有两个及其周期24个振荡周期以51芯片便循环复位复位后P0P3口均置1引脚表现为高电平程序计数器和特殊功能寄存器SFR全部清零当复位脚由高电平变为低电平时芯片为ROM的00H处开始运行程序常用的复位电路图如图2所示TMOD的控制位CT进行选择这两个定时计数器有4种操作模式通过TMOD的M1和M0选择两个定时计数器的模式01和2都相同模式3不同如下所述而定时器2未用到就不赘述
1模式0
将定时器设置成模式0时类似8048定时器即8位计数器带32分频的预分频器
此模式下定时器寄存器配置为13位寄存器当计数从全为1翻转为全为0时定时器中断标志位TFn置位当TRn1同时GATE0或1时定时器计数置位GATE时允许由外部输入控制定时器这样可实现脉宽测量TRn为TCON寄存器的控制位如表2-2
表2-2定时器计数器特殊功能寄存器TMOD
GATECM1M0GATECM1M0
该13位寄存器包含THn全部8个位及TLn的低5位TLn的高3位不定可将其忽略置位运行标志TRn不能清零此寄存器
模式0的操作对于定时器0及定时器1都是相同的两个不同的GATE位TMOD7和TMOD3分别分配给定时器0及定时器1
2模式1
模式1除了使用了THn及TLn全部16位外其它与模式0相同
3模式2
此模式下定时器寄存器作为可自动重装的8位计数器TLnTLn的溢出不仅置位TFn而且将THn容重新装入TLnTHn容由软件预置重装时THn容不变模式2的操作对于定时器0及定时器1是相同的
4模式3
在模式3中定时器1停止计数效果与将TR1设置为0相同
此模式下定时器0的TL0及TH0作为两个独立的8位计数器TL0占用定时器0的控制位CTGATETR0INT0及TF0TH0限定为定时器功能计数器周期占用定时器1的TR1及TF1此时TH0控制定时器1中断
模式3可用于需要一个额外的8位定时器的场合定时器0工作于模式3时80C51看似有3个定时器计数器当定时器0工作于模式3时定时器1可通过开关进入退出模式3它仍可用作串行端口的波特率发生器或者应用于任何不要求中断的场合
设计中仅用了定时器0和计数器1霍尔传感器检测的低电平信号直接由计数器1计数计数器设初值后形成5ms的中断时间和红外线脉冲的形利用了此中断详见程序总程序详见附录1
232程序
中断程序框图如图2-5软件设计主流程图如图2-6总程序清单见附录1
图2-5中断流程图
图2-6主程序框图
第三章驱动单元
31直流电机的驱动原理
直流电机是由直流电源供电输入电能输出的是机械能所示为一个典型的直流电机控制电路电路得名于H桥式驱动电路是因为它的形状酷似字母H4个三极管组成H的4条垂直腿而电机就是H中的横杠注意图1及随后的两个图都只是示意图而不是完整的电路图其中三极管的驱动电路没有画出来如图所示H桥式电机驱动电路包括4个三极管和一个电机要使电机运转必须导通对角线上的一对三极管根据不同三极管对的导通情况电流可能会从左至右或从右至左流过电机从而控制电机的转向要使电机运转必须使对角线上的一对三极管导通例如当Q1管和Q4管导通时电流就从电源正极经Q1从左至右穿过电机然后再经Q4回到电源负极该流向的电流将驱动电机顺时针转动另一对三极管Q2和Q3导通电流将从右至左流过电机电流将从右至左流过电机从而驱动电机沿另一方向转动Q9Q10Q11Q12构成H桥驱动电路控制着几个管子的通断就可以控制直流电机的正转反转当P00高电平P01低电平时Q9和Q11导
表3-1IO的脉冲控制直流
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 智能 小车