毕业设计论文基于超声波测距的机器人模糊避障研究.doc
-
资源ID:4874567
资源大小:663.52KB
全文页数:32页
- 资源格式: DOC
下载积分:10金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
毕业设计论文基于超声波测距的机器人模糊避障研究.doc
目录摘要31 引言41.1选题的背景及意义41.2 机器人的发展综述52 超声波测距62.1 超声波概论62.2 两种常用的超声波测距方案62.2.1 基于单片机的超声波测距系统62.2.2 基于CPLD 的超声波测距系统72.3超声波测距的工作原理83 机器人的模糊避障系统93.1 移动机器人的避障传感器93.1.1 激光传感器93.1.2 视觉避障93.1.3 超声传感器93.2 避障系统设计思想103.2.1超声传感器的幻影现象103.2.2 模糊避障算法设计114 硬件系统设计134.1超声波测距系统硬件设计134.2 单片机的内部结构144.3单片机最小系统电路144.4 超声波发射系统电路154.5超声波接收系统电路164.6 显示模块的设计174.7机器人避障的硬件系统185 系统软件设计196 结论与总结22致谢23参考文献24附录125附录226基于超声波测距的机器人模糊避障研究 电子信息工程 *指导老师 *摘要:移动机器人在工作的时候不可避免地受到障碍物的干扰,障碍物会严重影响机器人的工作效率,碰撞时更会使机器人损坏,所以实现机器人的自动避障非常重要。本论文在分析了智能移动机器人避障常用传感器的基础上,提出了基于超声波传感器测距的移动机器人的模糊避障系统,详细介绍了超声波传感器的原理和特性,采用单片机AT89C52为核心,用超声波测距的方法检测障碍物,通过单片机对信号的处理,驱动电机的转向,左右前进与后退,从而达到自动避障的功能。通过实践得出模糊避障控制机理和策略易于接受和理解,便于应用开发,模糊避障算法对环境有很大的适应性,机器人能在不同的环境条件下实现了避障。关键词: AT89C52单片机;移动机器人;超声波传感器;超声波测距1 引言随着机器人技术的发展,自主移动机器人以其灵活和智能等特点,在人们的生产、生活中的应用越来越广泛。移动机器人是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统。随着计算机科学的发展可以通过单片机控制来实现对其行驶方向、启动、停止以及速度的控制,无需人工干预,操作人员可以通过修改移动机器人的控制程序来改变它的行驶方式。移动机器人的避障运动一直是一个重要课题,实现避障的方法主要有超声波避障、视觉避障、红外传感器、激光避障、微波雷达等。目前超声波避障实现方便,计算简单,易于做到实时控制,并且在测量精度方面能达到实用的要求,因此成为常用的避障方法。本研究提出了基于超声波测距的机器人模糊避障研究,从而获得了有效的实验结果。1.1选题的背景及意义 目前单片机渗透到我们生活的各个领域,导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人超声波是频率高于20KHz的声波,它方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远,可用于测距,测速,清洗,焊接,碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。超声波因其频率下限大约等于人的听觉上限而得名。一般认为超声波的发现是意大利科学家斯帕拉捷,他习惯晚饭后到附近的街道上散步。他常常看到,很多蝙蝠灵活的在空中飞来飞去,却从不会撞到树上或者墙壁上。这个现象引起了他的好奇:蝙蝠凭什么特殊本领在夜空中自由自在的飞行呢? 1793年夏天,一个晴朗的夜晚,喧腾热闹的城市渐渐平静下来。斯帕拉捷匆匆吃完饭,便走出街口,把笼子里的蝙蝠放了出去。当他看到放出去的几只蝙蝠轻盈敏捷地来回飞翔时,不由得惊叫起来。因为那几只蝙蝠,眼睛全被他蒙上了,都是“瞎子”呀。 斯帕拉捷为什么要把蝙蝠的眼睛蒙起来呢?原来,每当他看到蝙蝠在夜晚轻巧自如的飞翔时,总认为这些小精灵一定长着一双特别敏锐的眼睛,假如他们的眼睛瞎了,就不可能在黑夜中灵巧的多过各种障碍物,并且敏捷的捕捉飞蛾了。然而事实完全出乎他的意料,斯帕拉捷很奇怪:不用眼睛,蝙蝠凭什么来辨别前方的物体,捕捉灵活的飞蛾呢? 于是,他把蝙蝠的鼻子堵住。结果,蝙蝠在空中还是飞的那么敏捷、轻松。“难道它薄膜似的翅膀,不仅能够飞翔,而且能在夜间洞察一切吗?”斯帕拉捷这样猜想。他又捉来几只蝙蝠,用油漆涂满它们的全身,然而还是没有影响到它们飞行。 最后,斯帕拉捷堵住蝙蝠的耳朵,把它们放到夜空中。这次,蝙蝠可没有了先前的神气,它们像无头苍蝇一样在空中东碰西撞,很快就跌落在地。 啊!蝙蝠在夜间飞行,捕捉食物,原来是靠听觉来辨别方向、确认目标的! 斯帕拉捷的实验,揭开了蝙蝠飞行的秘密,促使很多人进一步思考:蝙蝠的耳朵又怎么能“穿透”黑夜,“听”到没有声音的物体呢? 后来人们继续研究,终于弄清了其中的奥秘。原来,蝙蝠靠喉咙发出人耳听不见的“超声波”,这种声音沿着直线传播,一碰到物体就像光照到镜子上那样反射回来。蝙蝠用耳朵接受到这种“超声波”,就能迅速做出判断,灵巧的自由飞翔,捕捉食物。 现在,人们利用超声波来为飞机、轮船导航,寻找地下的宝藏。超声波就像一位无声的功臣,广泛地应用于工业、农业、医疗和军事等领域。斯帕拉捷怎么也不会想到,自己的实验,会给人类带来如此巨大的恩惠。1.2 机器人的发展综述随着科学技术的不断发展,尤其计算机技术的突飞猛进,带动了其他的技术的不断的发展,机器人就是一个典型的例子。机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。随着技术的不断发展,人们的生活方式也慢慢的发生变化。人们在对自然的不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。机器人的历史并不算长,1959年美国英格伯格和德沃尔制造出世界上第一台工业机器人,机器人的历史才真正开始。 英格伯格在大学攻读伺服理论,这是一种研究运动机构如何才能更好地跟踪控制信号的理论。德沃尔曾于1946年发明了一种系统,可以“重演”所记录的机器的运动。1954年,德沃尔又获得可编程机械手专利,这种机械手臂按程序进行工作,可以根据不同的工作需要编制不同的程序,因此具有通用性和灵活性,英格伯格和德沃尔都在研究机器人,认为汽车工业最适于用机器人干活,因为是用重型机器进行工作,生产过程较为固定。1959年,英格伯格和德沃尔联手制造出第一台工业机器人。随着现代科技的迅速发展,机器人正在经历着一个从初级到高级的飞跃,它正沿着达尔文的“进化论”逐渐发展自己,壮大自己,完善自己。研制具有人类外观特征,可以模拟人类行走与基本操作功能的类人型机器人,一直是人类机器人研究的梦想之一。类人型机器人研究是一门综合性很强的学科,代表着一个国家的高科技发展水平。1997年,日本本田公司率先研制出第一台类人型步行机器人样机。目前,机器人正在进入“类人机器人”的高级发展阶段,即无论从相貌到功能还是从思维能力和创造能力方面,都向人类“进化”,甚至在某些方面大大超过人类,如计算能力和特异功能等。类人型机器人技术,集自动控制、体系结构、人工智能、视觉计算、程序设计、组合导航、信息融合等众多技术于一体。专家指出,未来的机器人在外形方面将大有改观,如目前的机器人大都为方脑袋、四方身体以及不成比例的粗大四肢,行进时要靠轮子或只作上下、前后左右的机械运动,而未来的机器人从相貌上来看与人无区别,它们将靠双腿行走,其上下坡和上下楼梯的平衡能力也与人无异,有视觉、有嗅觉、有触觉、有思维,能与人对话,能在核反应堆工作,能灭火,能在所有危险场合工作,甚至能为人治病,还可克隆自己和自我修复自己。总之,它们能在各种非常艰难危险的工作中,代替人甚至超过人类去从事各种工作。它的运用潜力将在不久的将来得到很好的验证。而自动寻迹也是机器人领域研究的一个热点,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标,所以在这些方面都很有研究的价值。2 超声波测距2.1 超声波概论超声波是一种在弹性介质中的机械振荡,它是由与介质相接触的振荡源所引起的,其频率在20 kHz以上。超声波在工业生产、医疗技术、日常生活中的应用越来越多。超声波在介质中传播时在不同介面上具有反射的特性,由于它有指向性强、方向性好、传播能量大、传播距离较远等特点,常用于测量物体的距离、厚度、液位等。我们知道,电磁波的传播速度为3×108 m/s,而超声波在空气中的传播速度为340 m/s,其速度相对电磁波是非常慢的。超声波在相同媒体里传播速度相同,即在相当大的频率范围内声速不随频率变化,波动的传播方向与振动方向一致,是纵向振动的弹性机械波,它是借助于传播介质的分子运动而传播的,波动方程描述方法和电磁波是类似的。 A=A(x)·cos(t+kx) (2.1.1) A(x)=A0·e-x (2.1.2)式中,A(x)为振幅,A0为常数,为圆频率,t为时间,x为传播距离,k=2/为波数,A为波长, 为衰减系数。衰减系数与声波所在介质及频率的关系为: =a·f2 (2.1.3)式中,a为介质常数,f为振动频率。在空气中,a=2×10 ,当振动的声波频率f=40kHz带入式2.1.3,可得 3。2×10 /cm,即1/=31m; 若f=30kHz,则1/=56m,它的物理意义是:在(1/)的长度上,平面声波的振幅衰减为原来的e分之一,由此可以看出,频率越高衰减的越厉害,传播的距离越短。声波在空气媒质里传播,因空气分子运动摩擦等原因,能量被吸收损耗。考虑实际工程测量要求,选用频率f=40kHz的超声波。超声波具有如下特性: 1) 超声波可在气体、液体、固体、固熔体等介质中有效传播。 2) 超声波可传递很强的能量。 3) 超声波会产生反射、干涉、叠加和共振现象。4) 超声波在液体介质中传播时,可在界面上产生强烈的冲击和空化现象。2.2 两种常用的超声波测距方案2.2.1 基于单片机的超声波测距系统基于单片机的超声波测距系统,是利用单片机编程产生频率为40kHz 的方波,经过发射驱动电路放大,使超声波传感器发射端震荡,发射超声波。超声波经反射物反射回来后,由传感器接收端接收,再经接收电路放大、整形,控制单片机中断口。其系统框图如图1所示。图1 基于单片机的超声波测距系统框图这种以单片机为核心的超声波测距系统通过单片机记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,在接收电路输出端产生一个负跳变,在单片机的外部中断源输入口产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离,结果输出给LED 显示 。利用单片机准确计时,测距精度高,而且单片机控制方便,计算简单。许多超声波测距系统都采用这种设计方法。2.2.2 基于CPLD 的超声波测距系统这种测距系统采用CPLD(Complex Programmable Logic Device)器件,运用VHDL(Very High Speed Integrated Circuit Hardware Description Language)编写程序,使用MAX+plusII 软件进行软硬件设计的仿真和调试,最终实现测距功能。CPLD 器件内部的宏单元是其最基本的模块,能独立地编程为D 触发器、T触发器、RS 触发器或JK 触发器工作方式或组合逻辑工作方式。它的这种特性非常适用于本系统,可将本系统所需要的分频功能、计数功能、振荡器、七段码显示全部由MAX 来实现,而只需在外部配上适当的超声波传感器、接收和发送电路,即可组成一个测量精度高、性能稳定、响应速度快且具有显示功能的超声波测距仪。此测距系统利用CPLD 器件控制超声波的发射,并对超声波发射至接收的往返时间进行计数,将计算结果在LED 上显示出来。配合使用MAX+plusII 开发软件,可集设计输入、设计处理、设计校验和器件编程于一体,集成度高,开发周期短。其系统框图如图2所示。图2 基于CPLD 的超声波测距系统框图超声波发射器向某一方向发射40kHz 的超声波,在发射超声波的同时,MAX7128S 内的计数器开始计数。超声波在空气中传播,途中碰到障碍物就会立即返回来。超声波接收器收到反射波后就将回波信号送到CPLD,CPLD 立即停止计数。CPLD 所计的时间就是超声波从传感器到被测物的往返时间。超声波在空气中的传播速度如设定为332m/s,根据计数器记录的时间t,就可以计算出发射点距障碍物的距离s,即:s=332t/2。CPLD 开始计数后,只要传感器收到回波,CPLD 就立即停止计数,即只有最先返回的超声波才起作用,也就是说超声波测距仪总是测得离传感器最近的物体的距离。通过以上介绍我们知道,以单片机为核心的超声波测距系统设计简单、方便,而且测精度能达到工业要求。本课题研究的测距系统就是用单片机控制的。通过超声波发射器向某一方向发射超声波,单片机在发射时刻同时开始计时,超声波在空气中传播,途中碰到障碍物就立即反射回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离s=v·t/2。2.3超声波测距的工作原理超声波测距的方法有多种,如相位检测法;声波幅值检测法和往返时间检测法。相位检测法虽然精度高,但检测范围有限;声波幅值检测法易受反射波的影响。本论文硬件设计采用超声波往返时间检测法,其原理为:超声波发生器T1在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器T2所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离计算公式为:s=c·t/2。其中d为被测物与测距器的距离,s为声波的来回的路程,c为声速,t为声波来回所用的时间。超声波往返时间检测法如图3所示。 图3 超声波往返时间检测法3 机器人的模糊避障系统机器人安全避障是机器人研究的重要领域,人们很早就开始对移动机器人的研究。斯坦福研究院(SRI)的Nils Nilssen 和CharlesRosen 等人早在20世纪70年代初就研制了Shakey 的自主移动机器人,目的是应用人工智能技术研究机器人在复杂环境下的自主推理、规划和控制。20 世纪70 年代末,随着计算机的应用和传感技术的发展,移动机器人的研究又出现了新的高潮。20 世纪90 年代以来,以研制高水平的环境信息传感器和信息处理技术,高适应性的移动机器人控制技术,真实环境下的规划技术为标准,开展了移动机器人更高层次的研究。避障是智能移动机器人基本的功能,具体的实现方法多种多样。避障使用的传感器主要有激光传感器、视觉传感器、超声传感器、红外传感器等。3.1 移动机器人的避障传感器3.1.1 激光传感器激光测距传感器的方向性特别好,对一般应用可以认为是理想的直线。激光测距传感器的波束很窄,所以方向性好,因此可得到障碍物的准确位置。激光测距的精确度很高,但是激光测距的技术复杂,实现难度较大,且一些激光传感器发射的激光,对人的眼睛有伤害。3.1.2 视觉避障视觉避障的优点是探测范围广,可以获得物体的形状、速度等信息。实际应用中使用多个摄像机,或是利用一个摄像机的序列图像来计算目标的距离和速度,还可采用SSD算法,根据一个摄像机的运动图像来计算机器人与目标的相对位移,并用自适应滤波对测量数据进行处理,以减小因环境不稳定性造成的测量误差。在图像处理中,边缘锐化、特征提取等图像处理方法计算量大,实时性差,对中央处理机要求高,不适合在较小的自主移动机器人上使用。视觉测距法检测不能检测到玻璃等透明障碍物的存在,另外受视场光线强弱、烟雾的影响很大。3.1.3 超声传感器超声传感器的成本低,实现方法简单,技术成熟,是机器人避障的常用传感器。机器人是利用超声测距来探测障碍的位置,超声波测距采用时间差测距法,即超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时,根据超声波在空气中的传播速度和计时器记录的时间,就可以计算出发射点距障碍物的距离,。由于超声波在空气中的速度和空气的温度湿度有关,在比较精确的测量中,可以把温度的变化和其它因素考虑进去。超声避障实现方便,技术成熟,成本低,成为移动机器人常用的避障方法,但是单超声传感器避障存在由于超声波的方向性不好造成对障碍物的定位不精确,存在探测盲区等缺点。特别是当超声传感器和障碍形成一定角度时会产生幻影导致机器人得到错误的信息,从而发生碰撞。本文采用多个传感器的模糊避障算法来克服超声传感器的幻影干扰,实现机器人的安全避障。3.2 避障系统设计思想 移动机器人感知环境的手段是不完备的,传感器给出的数据是不完全、不连续、不可靠的,因此移动机器人的安全避障成为当今机器人研究领域的一个焦点问题和难点问题。安全避障具体的实现方法有很多种,超声避障实现方便,技术成熟,成本低,成为移动机器人常用的避障方法,但超声避障存在一些缺点,如存在探测盲区等,特别是当超声传感器和障碍形成一定角度时会产生幻影导致机器人得到错误的信息,从而发生碰撞。本文采用多个传感器的模糊避障算法来克服超声传感器的幻影干扰,实现机器人的安全避障。 3.2.1超声传感器的幻影现象超声传感器是靠发射声波信号,利用物体界面上超声反射来检测障碍物。超声波在空气中传播时如果遇到其它媒介,则因两种媒质的声阻抗不同而产生反射,因此可以根据分析检测到的反射波来获取障碍物信息。超声传感器发出的超声波,是具有一定方向性的波束,当超声传感器和障碍物形成一定角度时,会发生镜面反射,产生幻影。在图4中传感器发出的超声波发生了镜面反射,虽然障碍物和机器人很近,但是由于幻影的产生,机器人误认为障碍物很远,机器人就会和障碍物发生碰撞。图4 幻影产生示意图由于幻影的存在,实验采用多个超声传感器,消除幻影的干扰。超声传感器的位置排列如图5所示,移动机器人中间的六个超声传感器信号,即1号到6号的超声信号,每个传感器中心角度间隔为20度。根据需要,传感器的间隔角度大小还可以进行调整。图5 超声传感器位置图3.2.2 模糊避障算法设计机器人运动的环境非常复杂,而且一般情况下是未知的,因此很难建立精确的数学模型来预测障碍物的位置。采用模糊控制算法非常适合移动机器人的避障,模糊控制器的输入是超声传感器的距离信号,输出是机器人的动作,规定机器人只能有前进或旋转两种运动方式。根据一定控制策略,建立输入输出的模糊语言集合和模糊控制规则。 输入输出的模糊语言:模糊控制器的输入参数是机器人六个超声传感器检测到的距离信号。把六个超声传感器的输入信号分为左右两组,每组三个,即机器人左边三个超声传感器为左组,机器人右边三个超声传感器为右组。每次读入左组三个超声传感器测得的距离信号,选取其中最小的一个数值作为左边的输入,左边的数值用Left表示。同样,每次读入右组三个超声传感器测得的距离信号,选取其中最小的一个数值作为右边的输入,右边的数值用Right表示。距离信号的模糊语言集合如下: 近,中,远设定其相应的语言变量,并记作: ND(near distance)= 近MD(middle distance)= 中LD(long distance)= 远距离参数的隶属度函数如图6所示,图中横坐标为距离信号,单位为厘米,纵坐标是隶属度。为了计算简单,采用了线性函数,可以减少控制器的计算负担,提高数据处理速度。模糊控制器的输出为机器人旋转或前进,输出的模糊语言集合如下: 右转,稍微右转,前进,稍微左转,左转图6 输入隶属函数图设定其相应的语言变量,并记作: TR(turn right)= 右转TRL(turn right a little)= 稍微右转GA(go ahead)= 前进TLL(turn left a little)= 稍微左转TL(turn left)= 左转输出参数的隶属度函数如图7所示,图中横坐标为旋转的角度大小,向左为正方向,向右为负方向,纵坐标是隶属度。同样为了减少计算工作量,提高运算速度,采用了线性函数。图7 输出隶属函数图模糊控制规则:用DR表示机器人右侧与障碍物的距离,DL表示机器人左侧与障碍物的距离,U表示输出,机器人的避障规则如表1所示: UDLDRNDMDLDNDTRLTLLTLMDTRLGATLLLDTRTRLGA表1 模糊规则控制表用 IF,THEN 形式表示控制规则,如规则R1可写为: IF DR=ND AND DL=ND;THEN U=TRL;归纳总结其控制算法规则为R1到R9,共9条规则。4 硬件系统设计4.1超声波测距系统硬件设计超声波测距部分是机器人避障的核心部分。本设计采用AT89C52或AT89S52单片机,晶振:12M,单片机用P1.0口输出超声波换能器所需的40K方波信号,利用外中断0口监测超声波接收电路输出的返回信号,显示电路采用简单的4位共阳LED数码管,断码用74LS244,位码用8550驱动。单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。本设计包括超声波接收电路、超声波发送电路、距离显示电路组成。原理方框图如图8所示 图8 超声波测距器系统框图单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器(Microcontroller)。单片微型计算机是微型计算机的一个重要分支,也是一种非常活跃且颇具生命力的机种。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件CPU(Central Processing Unit,中央处理器)、存储器和I/O 接口电路等。因此,单片机只需要与适当的软件及外部设备相结合,便可成为一个单片机控制系统。4.2 单片机的内部结构AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可以提供许多较复杂系统控制应用场合。 AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 AT89C52单片机的内部结构如图9所示。图9 单片机内部结构4.3单片机最小系统电路 对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。AT89C52单片机最小系统的电路如图10 所示。 图10 AT89C52单片机的最小系统复位电路:由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。晶振电路:在单片机系统里晶振的作用非常大,它结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上,晶振提供的时钟频率越高,单片机的运行速度也就越快。典型的晶振取值为11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)。4.4 超声波发射系统电路超声波发射部分是为了让超声波发射换能器T1能向外界发出40 kHz左右的方波脉冲信号。40kHz左右的方波脉冲信号的产生通常有两种方法:采用硬件如由555振荡产生或软件如单片机软件编程输出,本系统采用后者。编程由单片机P1.0端口输出40kHz左右的方波脉冲信号,由于单片机端口输出功率不够, 40kHz方波脉冲信号分成两路,送给一个由74HC04 组成的推挽式电路进行功率放大以便使发射距离足够远,满足测量距离要求,最后送给超声波发射换能器T以声波形式发射到空气中。发射部分的电路,如图11所示。图中输出端上拉电阻R7,R9,一方面可以提高反向器74HC04 输出高电平的驱动能力, 另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间。图11 超声波发射系统电路4.5超声波接收系统电路上述T1发射的在空气中传播,遇到障碍物就会返回,超声波接收部分是为了将反射波(回波)顺利接收到超声波接收换能器T2进行转换变成电信号,并对此电信号进行放大、滤波、整形等处理后,这里用索尼公司生产的集成芯片CX20106,得到一个负脉冲送给单片机的R( INT0)引脚,以产生一个中断。接收部分的电路,如图12所示。可以看到,集成芯片CX20106 在接收部分电路中起了很大的作用。CX20106是一款应用广泛的红外线检波接收的专用芯片,其具有功能强、性能优越、外围接口简单、成本低等优点,由于红外遥控常用的载波频率38 kHz与测距的超声波频率40 kHz比较接近,而且CX20106内部设置的滤波器中心频率f0 可由其5脚外接电阻调节,阻值越大中心频率越低,范围为3060 kHz。故本次设计用它来做接收电路。CX20106内部由前置放大器、限幅放大器、带通滤波器、检波器、积分器及整形电路构成。工作过程如下: 接收的回波信号先经过前置放大器和限幅放大器,将信号调整到合适幅值的矩形脉冲,由滤波器进行频率选择,滤除干扰信号,再经整形,送给输出端7脚。当接收到与CX20106滤波器中心频率相符的回波信号时,其输出端7脚就输出低电平,而输出端7脚直接接到AT89C52的INT0引脚上,以触发中断。若频率有一些误差,可调节芯片引脚5的外接电阻R11 ,将滤波器的中心频率设置在40 kHz,就可达到理想的效果。图12 超声波接收系统原理图4.6 显示模块的设计方案一:选用LCD1602显示屏LCD1602液晶显示,由单片机驱动.它主要用来显示大量数据、文字、图形,能够显示的位数多,显示得清晰多样、美观。如图所示:图13 LCD1602液晶显示屏 方案二:选用点阵显示点阵显示是由八行八列的发光二极管集成在一块电路上组成,主要用来显示汉字,同时也能显示数字和少量图象,但它的焊接较麻烦,价格高,鉴于所设计的题目要求它不切实际。所以排除此方案。方案三:选用LED数码管静态显示LED数码管静态显示其电路容易理解且驱动的程序简单,多片七段译码器驱动显示,这不仅增加了成本,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难,因此不选用这种方案作为显示模块。方案四:采用LED数码管动态扫描显示LED数码管动态扫描显示价格低廉,不仅减少了对I/O口的浪费,而且能够同时驱动多个数码管。其驱动程序容易编写和理解。当显示内容不太多,可以排除;经过四种方案的比较以及本系统实际,由于该系统需要显示两个内容,上述的LCD液晶显示比较妥善,我们选择性价比相对高的LCD1602液晶。4.7机器人避障的硬件系统移动机器人硬件系统主要由电源模块、车速检测模块、直流电机驱动模块、路径模糊避障模块、显示模块、单片机模块等组成。路径模糊避障模块将采集到的路面障碍物与车体位置的信息、转速测量模块测得的车速信息通过各自的接口送到单片机。单片机则根据这些信息,通过相应的软件算法对舵机与直流驱动电机进行控制,进而完成对小车方向与速度的控制,电源模块则向各个模块提供所需的电压与电流,并要保证系统稳定安全的运行。障碍物的信息包括超声波传感器中心到障碍物的最短距离和障碍物相对于车体的方位。移动机器人运行过程中,实时采集每个方向上超声波传感器中心到障碍物的边界距离,进行比较划分找到其中最短的距离及方位作为车体到障碍物的最短距离和方位。避障算法如下:移动机器人以某一速度前进,如果某一传感器检测到的距离符合R1 R9某个规则,那么机器人就根据程序选择绕开障碍物或继续前进。避障软件实现的步骤包括主程序、测距程序、显示程序、电机转向控制,如图14所示为避障步骤图。图14 避障步骤图5 系统软件设计单片机编程产生超声波,在系统发射超声波的同时利用定时器的计数功能开始计时,接收到回波后,接收电路输出端产生的负跳变在单片机的外部中断源输入口产生一个中断请求信号,响应外部中断请求,执行外部中断服务子程序,停止计时,读取时间差,计算距离,然后通过软件译码,将数据输出P0、P1和P2口显示。程序流程图如图15,(a)为主程序流程图,(b)为定时中断子程序流程图,(c)为外部中断子程序流程图。 (a) (b) (c)图15 程序流程图根据避障规则,移动机器人以某一速度前进,如果某一传感器检测到的距离小于某个值,这个值是预定义可编程的临界距离,那么机器人以某一角度偏转,从而绕开障碍物继续前进。机器人在行驶过程中如果遇到障碍物,它的超声波测距系统马上计算出机器人与障碍物的距离d,若d<dc(避障的临界距离,其中dc为程序预设值),电机左右转向控制驱动,从而绕过障碍物实现避障的效果。程序流程图如图16所示。 图16 避障程序流程图6 结论与总结由于受环境温度、湿度的影响,超声传感器的测量值与实际值会有一些偏差,表2为超声测距系统测量值与实际值(单位: cm) 障碍物实际距离(cm) 测量距离(cm)45 55.5 60 66.9 75 83.1 100 107.2 125 131.5 150 157.3 175 182.4 200 206.4表2 超声测距系统测量值与实际值(单位: cm)从表中的数据可以看出,测量值总是比实际值大出大约7cm,经过分析原因主要有三个方面:第一方面,超声波传感器测得的数据受环境温度的影响;第二方面,指令运行需占用一定的时间而使得测量的数据偏大;第三方面,为了防止其他信号的干扰,单片机开始计数时,驱动电路发送16 个脉冲串。对于单个回声的方式,当驱动电路接收到碰到障碍物返回的第四个脉冲时就停止计数,所以最终测得的时间比实际距离所对应的时间多出四个脉冲发送的时间。为了减小测量值与实际值的偏差,我们采用最小二乘法对表1 的数据进行修正。经过拟合,我们得到下面的方程:y=1.0145x- 9.3354( 其中: y 为实际值, x 为测量值)修正后本超声波测距系统测量值与实际值的对应关系如表3 所示:障碍物实际距离(cm) 测量距离(cm)45 46.8 60 58.5 75 74.9 100 99.4 125 124.1 150 150.2 175 175.7 200 200.1表3 修正后超声测距系统测量值与实际值 (单位:cm)从修正后的数据我们可以看出, 系统的测量误差在±2%以内, 满足我们的测量要求。本课题介绍了一种基于单片机的超声波测距系统的原理和设计。给出了硬件和软件的设计方案。超声波传感器是本系统的核心器件,本论文详细地介绍了超声波传感器的原理、结构、检测方式以及它的一些特性。只有深入地了解超声波传感器的工作原理,才能更好的设计测距电路。单片机是本系统的控制部分,采用Atmel 公司生产的AT89C52 芯片。驱动超声波传感器的40kHz 的方波信号,就是由单片机编程产生的。通过对单片机产生的方波信号进行放大,以驱动传感器工作。接收电路采用的是LM741,通过接收电路对接收到的信号进行放大和整形,最终再输出负脉冲给单片机响应中断程序。本系统的LED 显示部分采用的是静态扫描方式,并用单片机软件译码。单片机内部采用C 语言编程,方波信号的产生、时间差的读取、距离的计算以及显示输出的译码都由单片机编程完成。本课题所设计的超声波测距系统具有测量精度较高、速度快、控制简单方便等优点。测距范围从20cm 到200cm,测量精度在±10cm 内。测距系统在许多工业现场和自动控制场合,都有很重要的作用。但由于经验不足,电路硬件、软件部分都有不够完善的地方,在今后的学习中会进一步改进。总体来说,最重要的是在本课题的设计过程中我学到了很多知识,从中受益匪浅。了解了超声波传感器的原理,学会了各种放大电路的分析、设计,也掌握了单片机的开发过程和利用单片机设计电路的方法。对一块电路板的设计、焊板、调试、改进等整个过程,有了更深入的理解和掌握。这些对我今后的学习和工作都会有很大帮助的。本文实现了利用超声波测距信息来实现移动机器人的顺利避障行走,是因为超声波测距仪信息处理简单、速度快,但它也具有一定的局限性,