当前位置:文档之家› 毕业论文:智能避障小车

毕业论文:智能避障小车

毕业论文:智能避障小车摘要避障是智能小车应具备的基本功能之一以P89C51RA芯片为核心采集前方障碍信息并对智能小车进行控制选用红外避障传感器检测智能小车前方的障碍物设计了智能小车的自动避障系统并阐述其工作原理该系统设计简单成本低实时性好在室环境中取得了预期的实验结果使智能小车无碰撞到达目的地关键词P89C51RA智能红外避障传感器AbstractThe obstacle avoidance is one of the main functions that an independently intelligent carriage should be provided Use the P89C51RA as a key component collecting the environmental information and controlling the intelligent carriage a kind of obstacle avoidance system of intelligent carriage is designed In this system infrared obstacle avoidance sensors are used to detect the barrieswhich are front of distance between the intelligent carriage and the barriers The systems design is simple and has lower cost and better real time features And at the same time this system has obtained anticipated experimental results in the indoor environment That is the intelligent carriage can arrive at the destination without any collisionKeywords P89C51RA intelligent infrared obstacle avoidance sensors目录摘要IAbstract II目录I第一章绪论 111 小车避障系统设计的意义 112 小车避障系统 1121 主控系统 2122 机械系统 3123 电机驱动模块 3124 传感器系统 4125 电源电路的选型 5里程检测模块6127 显示模块 6第二章主控制单元721 整体构思722 主控制部分8221 CPU介绍8222 CPU功能11223 CPU相关电路1123 主程序设计12231 关于定时与计数器12232 程序13第三章驱动单元1531 直流电机的驱动原理1532 直流电机的驱动电路15 第四章躲避障碍物单元17 41 避障传感器电路17 411 近距离避障传感器17 412 远距离避障传感器1842 避障方法19421 前方有障碍物 19422 侧面有障碍物 2143 避障程序22第五章显示单元2351 里程和时间显示2352 显示模块硬件23521 ZLG7289A介绍25522 ZLG7289A串行接口27 523 ZLG7289A控制指令28 第六章在系统编程3361在系统编程 ISP 介绍3362 FLASH EPROM 存储器3363 ISP设计3464 单片机与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 主控制部分221 CPU介绍P89C51RA2xx包含8K可并行可编程的非易失性FLASH程序存储器并可实现对器件串行在系统编程ISP和在应用中编程IAP在系统编程ISPIn-System Programming当MCU安装在用户板上时允许用户下载新的代码在应用中编程IAPIn-Application ProgrammingMCU可以在系统中获取新代码并对自己重新编程这种方法允许通过调制解调器连接进行远程编程片ROM中固化的默认的串行加载程序Boot Loader允许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 管脚描述名称管脚号类型名称和功能Vss 20 I 地0V参考点Vcc 40 I 电源提供掉电空闲正常工作电压P00-07 39-32 IO P0口P0口是开漏双向口可向其写入1使其状态为悬浮用作高阻输入P0也可以在访问外部程序存储器时作地址的低字节在访问外部数据存储器时作数据总线此时通过部强上拉传送1 P10-17 1-812345678 IOIOIIIOIOIOIO P1口P1口是带部上拉的双向 IO口向P1口写入1时P1口被部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P1口会因为部上拉而输出电流见DC电气特性P1口第2功能T2 P10 定时计数器2的外部计数输入时钟输出T2EX P11 定时计数器2重装载捕捉方向控制ECI P12 PCA 的外部时钟输入CEX0 P13 PCA模块0捕获比较模式的外部IO管脚CEX1 P14 PCA模块1捕获比较模式的外部IO管脚CEX2 P15 PCA模块2 捕获比较模式的外部IO管脚CEX3 P16 PCA模块3捕获比较模式的外部IO管脚CEX4 P17 PCA模块4捕获比较模式的外部 IO管脚P20-27 21-28 IO P2口P2口是带部上拉的双向IO口向P2口写入1时P2口被部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P2口会因为部上拉而输出电流见DC 电气特性在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址 OVX DPTR 此时通过部强上拉传送1当使用8位寻址方式 MOV Ri 访问外部数据存储器时P2口发送P2特殊功能寄存器的容P27在编程擦除时必须为1续表2-1 管脚描述名称管脚号类型名称和功能P30-P37 10-1711 IOIO P3口P3口是带部上拉的双向 IO口向P3口写入1时P3口被部上拉为高电平可用作输入口当作为输入脚时被外部拉低的P3口会因为部上拉而输出电流见DC电气特性P89C51RX2的P3口脚具有以下特殊功能RxD p30 串行输入口TxD P31 串行输出口12 I P32 外部中断0 13 I P33 外部中断1 1415 II T0 P34 定时器0外部输入T1 P35 定时器1外部输入16 I P36 外部数据存储器写信号17 I P37 外部数据存储器读信号RST 9 I 复位当晶振在运行中只要复位管脚出现2个机器周期高电平即可复位部有扩散电阻连接到Vss仅需要外接一个电容到Vcc即可实现上电复位ALE 30 O 地址锁存使能在访问外部存储器时输出脉冲锁存地址的低字节在正常情况下ALE输出信号恒定为16振荡频率并可用作外部时钟或定时注意每次访问外部数据时一个ALE 脉冲将被忽略ALE 可以通过置位SFR auxililary0禁止置位后ALE只能在执行MOVX指令时被激活29 O 程序存储使能读外部程序存储当从外部读取程序时每个机器周期被激活两次在访问外部数据存储器无效访问部程序存储器时无效Vpp 31 I 外部寻址使能编程电压在访问整个外部程序存储器时必须外部置低如果为高时将执行部程序当RST释放后EA脚的值被锁存任何时序的改变都将无效该引脚在对 FLASH 编程时用于输入编程电压 Vpp XTAL1 19 I 晶体1振荡反向放大器输入端和部时钟发生电路输入端XTAL2 18 O 晶体2振荡反向放大器输出端注为了避免上电时的latch-up效应任意管脚Vpp除外上的电压最大不能高于Vcc05最低不能低于Vss-05222 CPU功能在设计中将MCU资源分配如下P00-P03作为直流电机的4个驱动控制口设计中采用直接控制P14-P17连接ZLG7289控制数据的传输和显示P20-P25作为传感器信号的接入口P26-P27产生脉冲控制三极管从而使红外传感器产生红外线脉冲P31和P32即RXDTXD为ISP相关所用P35即计数器输入端作为霍尔传感器产生脉冲的接入端四个反射式光电传感器和红外线传感器用于障碍物检测检测到的红外避障信号由P2口输入再通过软件分析通过P1口输出相应的电机驱动信号控制小车实现相应的动作来达到避开障碍物的目的还有一个传感器便是霍尔传感器它检测到的脉冲送入P3口并进行记数通过程序计算出小车的里程并由LED显示出来单片机的P3口为复用口还可以根据实际情况扩展所需要的功能比如用于偱轨迹红外线传感器检测到的信号输入到P3口再通过软件完成相应的控制动作223 CPU相关电路图图2-3 时钟信号输入方式P89C51的时钟信号的应用有两种方式部方式和外部方式原理图如图2-3所示在设计中采用的是部方式XTAL1是片振荡器的反相放大器输入端XTAL2则是输出端使用外部振荡器时外部振荡信号应直接加到XTAL1而XTAL2悬空部方式时时钟发生器对振荡脉冲二分频如晶振为12MHZ时钟频率就为6MH晶振的频率可以在1MH24MHz选择电容取30PF左右图2-4 CPU复位电路在振荡器运行时有两个及其周期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置位当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位TMOD7 和TMOD3分别分配给定时器0及定时器12 模式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的中断时间和红外线脉冲的形利用了此中断详见程序总程序详见附录1232 程序中断程序框图如图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-1 IO的脉冲控制直流电机动作P03 P02 P01 P00 状态 1 0 0 1 前行0 1 1 0后退 1 0 1 0 左转0 1 0 1 右转通电机正转具有良好的抗干扰性能反之电机反转当左轮前进右轮后退时车子便右拐弯反之左拐弯图3-2 小车驱动。

相关主题