- UID
- 1023230
|
超声波传感器是利用超声波的特性研制而成的传感器,它在非接触性测量方面应用非常广泛,笔者根据智能玩具机器人的距离感知系统的软硬件设计过程,介绍了位差超声波传感器在智能玩具机器人中的应用,给出了位差超声波传感器与单片机系统的硬件电路接口和距离检测软件的编程思路,并通过实验,得出了其测量精度与测量距离以及与被测物体反射角之间的关系。目前国内生产的电子玩具技术含量较低,由于不具备智能化,利润空间小,受欢迎程度低。近年来,伴随计算机技术的高速发展,智能控制器的发展迅速,一些典型的智能玩具如轮式移动机器人在部分院校教学中得到推广,因为智能玩具机器人是一个典型的机电一体化系统,它融合制造技术、机械、电子、传感器、计算机和人工智能等众多先进技术,是进行工程训练、教学实验和研究的理想平台,在电子学教学领域中有着诸多的研究价值。
传感器是智能机器人获取外界数据的"感知系统",离开智能传感器的机器人大多是些功能单一,不具备思维能力,有些甚至是底盘基座固定式的,使得这些机器人只能固定在某一位置按照事先设定动作进行机械式的重复操作,其应用范围仅限于工业生产中的重复性工作,不便于普及和推广,可见基于传感器的智能控制器在实现玩具机器人的智能化的作用中不可或缺,笔者介绍了一种基于超声波原理的位差超声波传感器在智能玩具教育机器人中的应用,通过较为具体的设计过程介绍了智能玩具机器人距离测试系统的软硬件设计方法,并对位差超声波传感器的性能指标和一些关键技术作较深入地探讨,提出了一些编程控制技巧及算法。
1 硬件设计
采用"MCU+传感器+显示设备+执行机构"的总体设计方案,要求MCU对非接触式传感器获取的外部距离信息进行计算转换,将得出的智能玩具机器人与前方障碍物的距离值送到显示设备显示,并根据程序设定的距离阈值控制智能玩具机器人实现自动导航功能,系统整体框图如图1所示。
图1 系统硬件框图
其中系统MCU采用目前性价比较高的AT89C51单片机,利用"位差超声波传感器"作为距离传感器,以非接触的形式测量前方物体的距离;显示设备采用LCD1602液晶显示模块;执行机构采用PARALLAX公司生产的连续旋转伺服电机,其优点是编程控制方便且不需额外增加驱动电路,图1中超声波传感器测距的工作原理如图2所示。
图2 超声波传感器测距的工作原理
超声波传感器与单片机系统进行接口构成距离检测的硬件系统,在系统软件的控制下,单片机向位差超声波传感器发送的一个触发脉冲,位差超声波传感器被此脉冲触发后会产生一道短40 kHz的脉冲电信号,此40 kHz的脉冲电信号通过激励换能器处理以后,将转换成机械振动的能量,其振动频率约在20 kHz以上,由此形成了超声波,该信号经锥形"辐射口"处将超声波信号在空气中以每秒约1 130英尺的速度向外发射出去。当发射出去的超声波信号遇到障碍物以后,立即被反射回来。接收器接收到反射回来的超声波信号后,通过其内部转换,将超声波变成微弱的电振荡,并将信号进行放大,就可得到所需的脉冲信号,此脉冲信号再返回给单片机,表示回波被探测,这个脉冲宽度就是对应于爆裂回声返回到传感器所需时间,其时序如图3所示。
图3 位差超声波传感器工作时序图
2 软件设计
2.1 测距子程序设计
根据位差超声波传感器的时序原理图,对C51单片机内部定时/计数器编程,实现对前方物体距离的测量并将测量结果在LCD模块上显示。测距子程序的基本设计算法,用流程图表示如图4所示。
图4 测距子程序流程图
程序设计思路主要分为2步:
1)根据位差超声波传感器的控制时序图(图3),启动位差超声波距离传感器,即通过单片机编程,给超声波传感器的信号引脚提供一个持续时间为5μs的高电平,然后拉低信号引脚750μs,这样位差超声波传感器就被启动,发出超声爆裂,与此同时,启动单片机的定时器开始计数,当超声波遇到物体时会立即反射回来,位差超声波传感器的接收器接到回波时,会自动拉低其信号引脚的电平,单片机查询到此引脚的电平下降沿到来时停止定时器计数,此时定时器计数值就间接反应了超声波从反射到返回所经历的时间。
2)读出定时器的计数值除以2,便得到超声波在遇到被测物体返回的时间,根据:距离=速度×时间,就可以计算出前方物体的距离,因超声波在常温下的空气介质中传播的速度大约为344 m/s,即29.034μs超声波能传播1 cm,具体编程时在程序中用语句x=count/29.034来计算距离值,获得被测距离值后,调用LCD显示函数将距离值在LCD模块上显示出来。
2.2 超声波导航程序设计
利用位差超声波距离传感器测得的"距离"信息,可以引导智能玩具机器人实现避障行走。当智能玩具机器人距离前面障碍物小于20 cm时,它会向左拐改变行进方向,避免与物体碰撞,下面简要分析以超声波导航程序的基本设计思路,程序设计算法用流程图表示如图5所示。
图5 超声波导航程序流程图
程序通过反复调用超声波测距子程序,获取智能玩具机器人前方被测物体的距离值;判断距离是否在设定阈值以内,若大于程序设定的距离阈值,调用函数Forward(),驱动智能玩具机器人前进;若小于程序设定的距离阈值,调用Backward(),驱动智能玩具机器人后退一段距离;接着又调用Left_Turn(),驱动智能玩具机器人左拐后程序再返回重复以上过程。
3 系统调试
3.1 硬件系统的调试
硬件系统的制作与调试相对简单,其具体过程简述如下:首先根据硬件设计原理图,采用Protel DXP2004软件合理布局和布线,设计出智能玩具机器人的控制器PCB,然后用制板设备制作出PCB样板;根据元器件清单,在PCB上安装焊接好元器件,连接好直流伺服电机,将测试软件下载到智能玩具控制器的单片机存储器,接通电源开机运行,用示波器测试观察控制器的单片机最小系统运行时关键点信号波形是否正常。
3.2 系统整体调试
根据上述程序设计思路,在Keil C编译环境中用C语言编写程序代码,编译程序,将生成的HEX文件烧写到控制板上的单片机程序存储器,开机运行,智能玩具机器人按程序设定运行模式前进,当前方有物体时,在LCD显示屏上实时准确地显示出小车和前方物体之间的距离值;当小车距前方物体小于程序设定的距离阈值时,小车掉转方向继续前进,经反复实验表明:位差超声波距离传感器在下列情况下不能精确地测量距离,如图6所示。
图6 位差超声波距离传感器不能精确测量的三种情况
1)与物体距离大于3 m当被测物体距离智能玩具机器人3 m之外时,如图6(a)所示,因位差超声波传感器的发射功率不够,反射回来的信号太弱,导致LCD上显示出的距离值不能反映实际距离值。
2)被测物体不在正前方 当被测物体不在智能玩具机器人正前方,如图6(b)所示,而是有一定的偏角,因与物体的表面形成的反射角度太小,使传感器接收器接收不到反射回来的信号,导致LCD上显示出的距离值不能反映实际距离值。
3)前方被测物体横截面太小 当前方被测物体体积太小或是横截面太小,如图6(c)所示,因为没有足够强度的信号返回到传感器,导致LCD上显示出的距离值不能反映实际距离值。
4 结束语
超声波传感器在非接触性测量方面的应用非常广泛,可用于检测液体水位(特别是具有腐蚀性的液体,如硫酸、硝酸液体),汽车倒车防撞系统,金属(或非金属)探伤,机器人感知系统设计等,利用位差超声波传感器与51单片机构成智能玩具机器人的"距离感知系统",具有电路接口简单,成本低廉,稳定性好等特点,但其测量精度受到位差超声波传感器的最大测量距离以及与被测物体反射角等的限制。 |
|