智能避障小车毕业论文

上传人:水****8 文档编号:55780567 上传时间:2022-02-18 格式:DOC 页数:56 大小:649KB
返回 下载 相关 举报
智能避障小车毕业论文_第1页
第1页 / 共56页
智能避障小车毕业论文_第2页
第2页 / 共56页
智能避障小车毕业论文_第3页
第3页 / 共56页
点击查看更多>>
资源描述
摘 要避障是智能小车应具备的基本功能之一, 以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 barries,which 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 collision.Keywords: P89C51RA; intelligent; infrared obstacle avoidance sensors 可修改 欢迎下载 精品 Word目 录摘 要IAbstractII目 录I第一章 绪论11.1 小车避障系统设计的意义11.2 小车避障系统11.2.1 主控系统21.2.2 机械系统31.2.3 电机驱动模块31.2.4 传感器系统41.2.5 电源电路的选型51.2.6 里程检测模块61.2.7 显示模块6第二章 主控制单元72.1 整体构思72.2 主控制部分82.2.1 CPU介绍82.2.2 CPU功能112.2.3 CPU相关电路112.3 主程序设计122.3.1 关于定时与计数器122.3.2 程序13第三章 驱动单元153.1 直流电机的驱动原理153.2 直流电机的驱动电路15第四章 躲避障碍物单元174.1 避障传感器电路174.1.1 近距离避障传感器174.1.2 远距离避障传感器184.2 避障方法194.2.1 前方有障碍物194.2.2 侧面有障碍物214.3 避障程序22第五章 显示单元235.1 里程和时间显示235.2 显示模块硬件235.2.1 ZLG7289A介绍255.2.2 ZLG7289A串行接口275.2.3 ZLG7289A控制指令28第六章 在系统编程336.1在系统编程(ISP)介绍336.2 FLASH EPROM 存储器336.3 ISP设计346.4 单片机与PC机的连接356.4.1 连接介绍35参考文献37附 录38结 论49致 谢50第一章 绪论1.1 小车避障系统设计的意义自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。避障控制系统是基于自动导引小车(AVGauto-guide vehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。使用传感器感知路线和障碍并作出判断和相应的执行动作。1.2 小车避障系统该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、CPU。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。单片机驱动直流电机一般有两种方案:第一,勿需占用单片机资源,直接选择有PWM功能的单片机,这样可以实现精确调速;第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。考虑到实际情况,本文选择第二种方案。CPU使用P89C51RA单片机,配合软件编程实现。还有显示部分通过软件可以显示行使时间和路程。1.2.1 主控系统根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。据此,拟定了以下两种方案并进行了综合的比较论证,具体如下:方案一:仅采用CPLD作为核心部件的方案如图1-1所示:选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较大的劣势。同时,CPLD的处理速度非常快,而小车的行进速度不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案,进而提出了第二种设想。里程检测红外遥控障碍检测CPLD避开障碍显示行驶里程、时间等指示灯显示行驶路线图1-1 以CPLD为核心的原理框图方案二:仅采用单片机作为核心部件的方案如图1-2所示:采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。图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示),分立元件型发光管与接收管相互独立,用户在使用时可以根据需要灵活的设定发光管与接受管的位置,并可利用棱镜、透镜等完成特殊的目的,缺点是装置麻烦。透射遮挡型和反射型通过塑料模具将发光管与接收管封装在一起,非常方便用户使用,在本题中对障碍物的检测我使用反射型。红外发光管红外接收管分立元件型透射遮挡型反射型图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。LED显示模块(时间、里程)P89C51RA侧体左侧红外传感器车体右侧红外传感器车体左前红外传感器车体右前红外传感器控制直流电机驱动器路程传感器 图2-1 系统总原理框图2.2 主控制部分2.2.1 CPU介绍P89C51RA2xx包含8K可并行可编程的非易失性FLASH程序存储器,并可实现对器件串行在系统编程(ISP)和在应用中编程(IAP)。在系统编程(ISP:In-System Programming):当MCU安装在用户板上时,允许用户下载新的代码。在应用中编程(IAP:In-Application Programming):MCU可以在系统中获取新代码并对自己重新编程。这种方法允许通过调制解调器连接进行远程编程。片内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位I/O口、3个16位定时/计数器、多中断源-4中断优先级-嵌套的中断结构、1个增强型UART、片内振荡器及时序电路。 图2-2 引脚图新增的特性使得P89C51RA2成为功能更强大的微控制器,从而更好地支持需要用到脉宽调制,高速I/O,递增/递减计数功能(如电机控制)等应用场合。 表2-1 管脚描述名称管脚号类型名称和功能Vss20I地:0V参考点Vcc40I电源:提供掉电、空闲、正常工作电压P0.0-0.739-32I/OP0口:P0口是开漏双向口,可向其写入1使其状态为悬浮,用作高阻输入。P0也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉传送1。P1.0-1.71-812345678I/OI/OIII/OI/OI/OI/OI/OP1口: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.721-28I/OP2口: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.710-171011I/OIOP3口:P3口是带内部上拉的双向 I/O口,向P3口写入1时,P3口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P3口会因为内部上拉而输出电流(见DC电气特性)。P89C51RX2的P3口脚具有以下特殊功能:RxD(p3.0):串行输入口TxD(P3.1):串行输出口12I(P3.2):外部中断013I(P3.3):外部中断11415IIT0(P3.4):定时器0外部输入T1(P3.5):定时器1外部输入16I(P3.6):外部数据存储器写信号17I(P3.7):外部数据存储器读信号RST9I复位:当晶振在运行中,只要复位管脚出现2个机器周期高电平即可复位,内部有扩散电阻连接到Vss仅需要外接一个电容到Vcc即可实现上电复位。ALE30O地址锁存使能:在访问外部存储器时,输出脉冲锁存地址的低字节,在正常情况下,ALE输出信号恒定为1/6振荡频率。并可用作外部时钟或定时,注意每次访问外部数据时一个 ALE 脉冲将被忽略,ALE 可以通过置位SFR auxililary.0禁止,置位后ALE只能在执行MOVX指令时被激活。29O程序存储使能:读外部程序存储。当从外部读取程序时每个机器周期被激活两次,在访问外部数据存储器无效,访问内部程序存储器时无效 。 /Vpp31I外部寻址使能/编程电压:在访问整个外部程序存储器时,必须外部置低。如果为高时,将执行内部程序。当RST释放后EA脚的值被锁存,任何时序的改变都将无效。该引脚在对 FLASH 编程时用于输入编程电压(Vpp) XTAL119I晶体1:振荡反向放大器输入端和内部时钟发生电路输入端XTAL218O晶体2:振荡反向放大器输出端注:为了避免上电时的“latch-up”效应,任意管脚(Vpp除外)上的电压最大不能高于Vcc+0.5,最低不能低于Vss-0.5。2.2.2 CPU功能在设计中,将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.3 CPU相关电路图 图2-3 时钟信号输入方式P89C51的时钟信号的应用有两种方式:内部方式和外部方式。原理图如图2-3所示,在设计中采用的是内部方式。XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHZ,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。图2-4 CPU复位电路在振荡器运行时,有两个及其周期(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 定时器/计数器特殊功能寄存器TMODGATEC/M1M0GATEC/M1M0该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相同。此模式下定时器0的TL0及TH0作为两个独立的8位计数器。TL0占用定时器0 的控制位:C/T,GATE,TR0,INT0及TF0。TH0限定为定时器功能(计数器周期),占用定时器1的TR1及TF1。此时TH0控制“定时器1”中断。模式3可用于需要一个额外的8位定时器的场合。定时器0工作于模式3时,80C51看似有3个定时器/计数器,当定时器0工作于模式3时,定时器1可通过开关进入/退出模式3,它仍可用作串行端口的波特率发生器,或者应用于任何不要求中断的场合。设计中,仅用了定时器0和计数器1。霍尔传感器检测的低电平信号直接由计数器1计数,计数器设初值后形成5ms的中断,时间和红外线脉冲的形成都利用了此中断,详见程序。总程序详见附录1。2.3.2 程序中断程序框图如图2-5,软件设计主流程图如图 2-6,总程序清单见附录1。5ms到,定时器1产生中断时间显示程序I/O输出100Hz脉冲返回主程序 图2-5 中断流程图 开 始初始化MCU初始化7289启动小车前行是否有障?左侧左前或前右前右侧右避子程序左避子程序避左前障碍程序避右前障碍程序距离显示返回NY 图2-6 主程序框图第三章 驱动单元3.1 直流电机的驱动原理直流电机是由直流电源供电,输入电能,输出的是机械能。图3-1所示为一个典型的直流电机控制电路。电路得名于“H桥式驱动电路”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:图1及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。如图所示,H桥式电机驱动电路包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。图3-1 H桥式电机驱动电路要使电机运转,必须使对角线上的一对三极管导通。例如,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。该流向的电流将驱动电机顺时针转动。另一对三极管Q2和Q3导通时,电流将从右至左流过电机,电流将从右至左流过电机,从而驱动电机沿另一方向转动。3.2 直流电机的驱动电路设计中,驱动电路的四个输入端分别接P89C51RA2的P0.0-P0.3口。P0.0和P0.1控制车的右轮,P0.2和P0.3控制车的左轮。一驱动电路如图3-2。由I/O的脉冲来控制H桥中三极管的通断,从而来控制直流电机的前进、后退、左转和右转的动作,具体如下表3-1。采用普通直流电机,通过控制脉冲占空比算法,实现对小车速度的控制。这种调速方式有调速特性优良、调整平滑、调速范围广、带载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。由三极管Q9、Q10、Q11、Q12构成H桥驱动电路,控制着几个管子的通断就可以控制直流电机的正转、反转。当P0.0高电平、P0.1低电平时,Q9和Q11导表3-1 I/O的脉冲控制直流电机动作P0.3P0.2P0.1P0.0状态1001前行0110后退1010左转0101右转通,电机正转,具有良好的抗干扰性能,反之,电机反转;当左轮前进,右轮后退时,车子便右拐弯,反之左拐弯。图3-2 小车驱动四个输出端具有较大的电流驱动能力,当小车负载电池,启动时,每通道峰值电流能力可达2.2A(经过测试) 。在此设计中为了得到稳定的控制信号,在单片机与直流电机之间添加一个反相器74LS04,以提高控制端输出电流和反应速度,因此提高控制灵敏性。第四章 躲避障碍物单元4.1 避障传感器电路避障电路部分有六个传感器,四个可以检测近距离障碍物的传感器,检测到的信号送入到单片机的P2.0-P2.3口,两个可以检测远距离障碍物的传感器检测到的信号送入单片机的P2.5和P2.6。4.1.1 近距离避障传感器图4-1反射式光电传感器电路反射式光电传感器为提高小车检测障碍的精度,系统采用4个发射和接收一体的反射式红外光电传感器JY043W作为检测元件。红外线具有极强的反射能力,应用广泛,采用专用的红外发射管和接收管可以有效地防止周围可见光的干扰,提高系统的抗干扰能力。对于小车遇到的障碍物,发射管发出同样的光强,接收管接收到的光强不同,因此输出的电压值也不同;给定一个基准电压,通过对不同输出电压值进行比较,则电路的输出为高低电平。当检测到障碍时,有红外光被反射回,光敏三极管导通,导致输出为高电平,这样不仅系统硬件电路简单,而且信号处理速度快。图4-2 安装位置图对小车侧面障碍物的检测由于要求检测距离较近,外界干扰相对较弱,为简化设计我选用直流直接驱动方式。如图4-1所示,此电路主要通过LM393比较器,与外部输入信号进行比较,在此设计中,发光二级管的功率为25V/160=0.156W通过调节R20可变电阻(电位器)来调节LM393中的比较电压。通过比较器输出0- +5V的电压,被单片机口读入。小车侧面的传感器安装位置如图4-2,I/O口检测到高电平1表示有信号(有障碍物),0为无信号(无障碍物)。 4.1.2 远距离避障传感器图4-3 红外线传感器对前方障碍物的检测因为要求检测距离较,受到环境光的干扰比较大,因此我们选用抗干扰能力较强的交流调制工作方。如图4.1.3所示,在发射端通过改变NPN三级管(9013)的开断使发光二级管产生50Hz到50-0Hz的脉冲。在接收端,采用0.01u的滤波电容,来阻止环境光的干扰。输入信号通过LM358集成运放放大输出,被单片机数据采集口读入。小车正面的传感器安装位置请参看图4-4。 红外传感器 图4-4 安装位置图 图4-5 LM358引脚图 LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。引脚如图4-5。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。工作原理:由中央处理单元管脚输出100-500Hz方波,每当处于高电平时,三极管导通,使红外发射二极管发光。当有障碍时,红外线被物体反射回来由接受器接收,并将其还原为电信号,经运放反向放大后,再由同向放大器放大输出,当输出为高电平时,驱动三极管使其导通,此时指示二极管发亮,表示接受到反射信号。 工作使用方法:通过单片机程序产生一个大约100Hz的方波(通过定时器中断来产生),再把信号连接到传感器的P27口上,即可以发射出100Hz的红外线脉冲,用脉冲工作方式目的是在接收上通过隔直电容把环境光隔离,减少环境对传感器的干扰。当前面有阻挡时就会接收到反射回来的脉冲信号,通过放大后在传感器的P24口上就有100Hz的接收信号,那么单片机就可以检测到前面有障碍物而完成响应动作。特色设计:1. 发光二级管端加入可变电阻,用于调节发光二级管的发光强度,通过可调节可对白,灰,棕,砖红,土黄等颜色障碍物产生反射信号。2. 在此设计中,采用同向放大,发大倍数为:。分子R为100K,分母R为4.7K,10K,27K。通过三位拨盘来调节LM358的防大倍数。因此可调节测量的远近。3. 在LM358的输出端增加一个发光二级管,通过LM358的输出信号控制NPN三级管的通断,来控制二级管是否发光,从而我们可直观的观察到是否遇到障碍物。4.2 避障方法4.2.1 前方有障碍物小车前行,检测P2口,如果前方或左前方有障碍物,其避障效果如图4-6,重复步骤可躲避正前方和左前方障碍物。右前方有障碍物时,上述图中步骤将左拐变为右转,右转相应改为左转即可躲避右前方有障碍物。前方或左前方遇障 后退 左拐 后退 右拐 前进图4-6 避障效果图4.2.2 侧面有障碍物小车前行,检测P2口,如果左方有障碍物,其避障效果如图4-7,右方有障碍物时,将图中步骤拐的方向改为反方向。仅左长传感器有信号时,继续前行左长和左短传感器都有信号时,右拐右拐 前行,左长无信号 左拐前行并右拐 越过障碍 图4-7 侧避障效果4.3 避障程序避左前障碍物程序流程如图4-8。左前有障碍物返回主程序小车右拐,检测I/O口,进入switch循环小车后退大步,记下步伐无碍,左拐前行记下的步伐再右拐小车后退左拐图4-8 避左前障碍程序框图第五章 显示单元5.1 里程和时间显示里程设计涉及到霍尔传感器,它用来检测小车车圈上的磁铁,在小车车圈上安装10片磁铁,磁铁于磁铁间距为17mm。通过单片机T1口计数器,记录磁片个数。一秒送ZLG7289A显示一次。霍尔传感器的分析如下:按图5-1所示的各种方法设置磁体,将它们和霍尔开关电路组合起来可以构成各种旋转传感器。霍尔电路通电后,磁体每经过霍尔电路一次,便输出一个电压脉冲。由此,可对转动物体实施转数、转速、角度、角速度等物理量的检测。图5-1 (a)径向磁极(b)轴向磁极(c)遮断式 时间显示采用定时器0中断的方法,定时器0工作方式1,为16位。付初值后能产生5ms的中断,累计20次便为1秒,送LED显示。循环,到60的时候秒存储单元就清零,分单元由0加1。5.2 显示模块硬件此设计采用的是广州周立功有限公司研发的串行接口8 位LED数码管及64 键的键盘智能控制芯片(ZLG7289A)。此显示要求位与位之间扫描时间不能超过10ms,同时要满足八位一次行扫描时间不能超过30ms。连接如图5-2。5-2 LED显示5.2.1 ZLG7289A介绍ZLG7289A是串行接口8位LED数码管及64键键盘智能控制芯片。ZLG7289A是一片具有串行接口的,可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示键盘接口的全部功能。ZLG7289A内部含有译码器,可直接接受BCD码或16进制码,此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。ZLG7289A具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。电特性(Vcc=5.0V,Fosc=16MHz,=25)如表5-1。典型应用:仪器仪表,工业控制器,条形显示器,控制面板特点:l 串行接口,无需外围元件可直接驱LEDl 各位独立控制译码/不译码及消隐和闪烁属性l (循环左移)/(循环)右移指令l 具有段寻址指令,方便控制独立LEDl 64键键盘控制器,内含去抖动电路表5-1 电特性符号参数测试条件最小典型最大单位Vcc电源电压4.55.05.5VIcc工作电流不接LED35mAIcc工作电流LED全亮, =10mA60100mA逻辑输入高电平2.05.5V逻辑输入低电平00.8V按键响应时间含去抖动时间101840mSKEY引脚输出电流7mAKEY引脚吸入电流10mAT1从CS下降沿至CLK脉冲时间2550250uST2传送指令时CLK脉冲宽度58250uST3字节传送中CLK脉冲时间间隔58250uST4指令与数据时间间隔1525250uST5读键盘指令中指令与输出数据时间间隔1525250uST6输出键盘数据建立时间58-uST7读键盘数据时CLK脉冲宽度58250uST8读键盘数据完成后DATA转为输入状态时间5uS表5-2 ZLG7289A引脚功能说明引脚名称说明1,2正电源3,5NC悬空4接地6片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据7CLK同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效8DATA串行数据输入/输出端,当芯片接收指令时,此引脚为输入端;当读取键盘数据时,此引脚在读指令最后一个时钟的下降沿变为输出端9按键有效输出端,平时为高电平,当检测到有效按键时,此引脚变为低电平10-16SG-SA段g-段a驱动输出17DP小数点驱动输出18-25DIG0-DIG7数字0-数字7驱动输出26OSC2振荡器输出端27OSC1振荡器输入端28复位端5.2.2 ZLG7289A串行接口ZLG7289A 采用串行方式与微处理器通讯,串行数据从DATA引脚送入芯片并由CLK端同步。当片选信号变为低电平后DATA 引脚上的数据在CLK 引脚的上升沿被写入ZLG7289A 的缓冲寄存器。ZLG7289A的指令结构有三种类型:1.不带数据的纯指令指令的宽度为8个BIT ,即微处理器需发送8个CLK脉冲。2.带有数据的指令宽度为16个BIT,即微处理器需发送16个CLK脉冲。3.读取键盘数据指令宽度为16个BIT,前8个为微处理器发送到ZLG7289A 的指令,后8个BIT为ZLG7289A 返回的键盘代码。执行此指令时ZLG7289A 的DATA 端在第9个CLK 脉冲的上升沿变为输出状态,并与第16个脉冲的下降沿恢复为输入状态,等待接收下一个指令。串行接口的时序如下图5-3、图5-4、图5-5:图5-3 纯指令时序图(单字节命令) 图 5-4 带数据指令时序图(命令字在前,输入数据在后)图 5-5 读键盘指令时序图(命令字在前,键值在后)5.2.3 ZLG7289A控制指令ZLG7289A 的控制指令分为二大类纯指令和带有数据的指令。5.2.3.1 纯指令1.复位清除指令D7D6D5D4D3D2D1D010100100当ZLG7289A 收到该指令后,将所有的显示清除,所有设置的字符消隐闪烁等属性也被一起清除,执行该指令后芯片所处的状态与系统上电后所处的状态一样。2. 测试指令D7D6D5D4D3D2D1D010111111该指令使所有的LED 全部点亮,并处于闪烁状态主要用于测试。3. 左移指令D7D6D5D4D3D2D1D010100001使所有的显示自右向左从第1 位向第8 位移动一位,包括处于消隐状态的显示位。但对各位所设置的消隐及闪烁属性不变。移动后最右边一位为空无显示。例如原显示为:1 2 3 4 5 6 7 8,其中第2 位2 和第4 位4 为闪烁显示执行了左移指令后显示变为:2 3 4 5 6 7 8,第二位3 和第四位5 为闪烁显示。4. 右移指令D7D6D5D4D3D2D1D010100000与左移指令类似,但所做移动为自左向右从第8 位向第1 位移动移动后最左边一位为空。5. 循环左移指令D7D6D5D4D3D2D1D010100011与左移指令类似,不同之处在于移动后原最左边一位第8 位的内容显示于最右位,第1 位在上。例中执行完循环左移指令后的显示为:2 3 4 5 6 7 8 1,第二位3和第四位5为闪烁显示。6. 循环右移指令D7D6D5D4D3D2D1D010100010与循环左移指令类似但移动方向相反。5.2.3.2 带有数据的指令1.下载数据且按方式0译码D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010000a2a1a0DPXXXd3d2d1d0X=无影响,命令由二个字节组成。前半部分为指令,其中a2,a1,a0 为位地址,具体分配如下:a2a1a0显示位00010012010301141005101611071118d0-d3为数据收到此指令时,ZLG72
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 研究报告 > 标准规范


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!