当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]引 言 目前,使用超声波技术进行空间测量和定位已相当普遍。有的运用超声波的反射特性,有的综合运用红外和超声波传感器采取三边测距的定位方法,前者因为超声波传输介质的

引 言

目前,使用超声波技术进行空间测量和定位已相当普遍。有的运用超声波的反射特性,有的综合运用红外和超声波传感器采取三边测距的定位方法,前者因为超声波传输介质的影响使测量精度无法提高,超声波衰减特性使其传播的距离有限,再利用反射特性更加缩短了传播的距离。后者虽然精度有所提高,测量的距离增加了,但是出现了测量盲区的问题,待测目标在某些位置不能同时检测到3个以上的超声波信号时,使系统无法定位。本文在第2种方法的基础上在系统中加入了光电编码器测距定位原理,消除其定位盲区的问题。

1 定位原理

1.1 红外超声三边测距定位原理

首先在室内建立一直角坐标系,规定好原点、X轴、Y轴、和Z轴。在室内上空固定位置设立3个参考点A、B、C,坐标分别为(x1,y1,z1)、(x2,y2,z2)、(x3,y3,z3)。使用红外超声系统测出目标点到3个参考点的距离L、M、N为:

由式(1)~式(3)解出目标点的坐标值(x,y,z)。这就是红外超声的定位原理,简单且容易编程实现。下面说明目标点与参考点间距离的测量原理。光速与超声波速度在量级上的极大差值是实现测距功能的基础。测距原理见图1。

超声波和红外光的传播速度为常量,其传播距离与时间的曲线均为直线,直线斜率即波速,易知曲线①为红外光曲线,曲线②为超声波曲线。指定距离D,设红外光与超声波在0时刻同时从某一参考点出发,红外光经t1时间走完指定距离,超声波经t2时间走完指定距离,则D=vt2,式中v为超声波速。令t=t2-t1,可得D=v(t+t1)。已知红外光速为3×108m/s,超声波在空气中速度为3.4×102m/s,在室内这样的距离范围,近似认为t1=0,得到D=vt。

系统在每个参考点安装单片机控制的红外和超声波发射管,在目标点安装红外和超声波接收管,同样连接单片机。某一时刻参考点发射红外和超声信号,目标点在接收到红外信号时启动单片机的内部计数器、在接收到超声信号时停止计数器,这样二者的时间差t被记录下来,将t与超声波速相乘就得到待测距离D。实际上,信号处理总是有延时的,由此带来的测量误差必须补偿,最终得到算式为:d=vt+n。式中:d为距离测量值;v为超声波速;t为单片机记录的红外光和超声披到达目标点的时间差值;n为系统器件延迟误差补偿项。

1.2 光电编码器测距定位原理

光电编码器是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器,这是目前应用最多的传感器,由光栅盘和光电检测装置组成。

光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘(称为译码轮,见图2)与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号。发光二极管和光敏传感器组成光电耦合器。光敏传感器内部沿垂直方向排列有2个光敏晶体管A和B。由于译码轮有间隙,故当译码轮转动时,红外发光二极管发出的红外线时而照在光敏传感器上,时而被阻断,从而使光敏传感器输出脉冲信号。光敏晶体管A和B被安放的位置使得其光照和阻断的时间有差异,从而产生的脉冲A和脉冲B有一定的相位差。利用这种方法,就能测出码盘滚轴滚动方向。滚轴每转动一个小角度,车轮位置计数器加1,每隔一定时间,单片机把车轮位置计数器的值读出,通过计算得出车轮移动的位移(当小车转弯时为弧线长度和弧线切线方向),再把位移信息发送给上位机。

基于以上原理,在同轴二轮驱动小车(同轴二轮驱动小车的2个轮子的运行轨迹总是平行的)的2个驱动轮子的正上方一定高度的a、b这2点安装红外超声定位单元,绝对定位每个点的坐标。在2个轮子各自轴上安装光电编码器测距单元,用来测量2个定位时刻点间轮子移动的距离和前进倒退情况。

对移动小车的定位分为3种情况:

a) 在某一定位时刻a、b这2点能够同时检测到3个参考点的信号(地面是平的,进行平面二维定位时只需2个信号),就用红外超声绝对定位方法计算移动小车的位置,计算出它们中点的位置(即移动小车的位置),并根据前一时刻a、b这2点的坐标、2个轮子间的固定距离判断出轮子相对于所建坐标系的运行方向。

b) a、b中只有1点能够同时检测到3个参考点的信号,则根据前一时刻a、b这2点的坐标、光电编码器测得2个轮子的移动距离长短比较、2个轮子间的同定距离计算出移动小车的位置和运行方向。

c) a、b这2点都不能同时检测到3个参考点的信号,则根据前一时刻a、b这2点的坐标、2个轮子的固定距离、光电编码器测得2个轮子的移动距离计算出小车的坐标和运行方向。

下面给出第2种情况的求解方法,见图3。通过比较光电编码器所测2个轮子的移动距离,可得出小车向移动距离短的轮子一侧转弯,已知红外超声测得的a′、b′、b点的坐标,2个轮子的间距d,线段aa′和bb′平行,ab和小车的运动方向垂直,根据几何知识可以求出a点的坐标和小车的移动方向,其他情况亦然。

2 系统的硬件结构

系统主要由超声波信标节点(参考点)、一个红外发射管、一个超声波发射头及各自的驱动电路和微控制器SST89E564RD(以下简称564RD)8位单片机组成。普通节点(目标点)由8个红外接收管、8个超声波接收头及各自的驱动电路和8个564RD组成红外超声接收单元,每一个红外接收和超声波接收为一对,用一个564RD控制,分成2组,每组4对,在每个轮子的上方一定高度间隔90°与水平面成45°夹角向上分布。因为测量的目标点是移动物体,所以采用多通道同时接收的方法缩短每次测量所用的时间,提高定位精度。光电编码器测距单元由译码轮、光电偶合器和一片564RD组成。用1片564RD作为主控芯片,与8个超声波接收单元、2个光电编码器测距单元使用串口进行通信,主控制器渎取各个单元的测量数据,完成定位运算,同时起到同步各个单元工作的作用。564RD的晶振都为40 MHz。图4给出单个红外管和超声波发射电路,图5给出单个红外管超声波接收电路。超卢波的发射管为T40-16(对应接收管为R40-16),中心频率为40 kHz。红外发射管为SE303A(对应接收管为PH302),564RD用2个I/O口分别输出载频为40 kHz、调频为5 kHz的方波信号驱动红外发射管,以及载频为40 kHz、调频2 kHz的方波信号驱动超声波发射管。

3 系统的软件设计

系统上电后各单元进行初始化,各部分工作如下:

a) 超声波信标节点不断向外发射红外和超声波信号,每个节点的红外与超声波信号编码相对应,并且与其他节点的信号编码不同。

b) 普通节点每隔1 s(可以改变,但不能太长,否则小车出现拐弯时运行轨迹可能不平行)进行一次定位,主控制器通过串口向各个单元发出定位信号并启动内部定时器,延时100 ms后依次读取8个超声测距单元所测得的a、b这2点到参考点的距离信息和2个光电编码器测距单元记录的位移信息,计算出移动小车的位置和运行方向。定时器定时到1 s后重复此过程。主控制器的软件流程如图6所示。

c) 2个光电编码器测距单元初始化后立刻开始记录轮子的位移,串口收到定位信号后,将记录的位移信息存到指定位置,等待主控制器读取,并从0开始继续记录位移情况。

d) 普通节点检测到定位信号后,接收红外和超声波信号,记录一组相对应的红外超声信号的超声波传输时间,存到指定的位置,等待主控制器读取。在串口接收到定位信号的开始100 ms时间内有这样的信号,则把第1次接收到对应的时间存人指定的位置就不再检测接收了,如果100 ms时间内没有检测到相应的信号,就送数据0到指定的位置。

4 系统误差分析及实验测距结果

定位误差主要有以下5方面:超声波器件的形状和安装位置造成坐标系参考点和待测目标点的位置偏差;系统电路器件延迟产生的误差;小车是不断运动的,由于超声波传输速度比较慢,请求定位时刻到定位完成,小车已经移动了一定的距离;在不能连续检测到足够参考点信号时,位置的确定依靠前一时刻的测量,会造成累计误差;温度条件对超声波的影响。

图7给出了在室温20℃、超声波速度为340m/s、小车2个轮子间距离为0.2 m、移动速度为0.2 m/s、平面二维定位实验测量的一段轨迹,实验通过对前3个方面误差补偿计算,使定位精度达到3 cm。

5 结束语

因为光电编码器测距定位依靠前一测量点的信息,必然导致定位误差的累积;而红外超声三边测距法是一种只依靠当前测量点信息的绝对位置定位方法。此系统综合了这2种方法,消除了累积误差,并解决了定位盲区的问题,对移动小车有一个较准确的定位。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

在数字信号处理和通信系统中,编码器扮演着至关重要的角色。它负责将原始数据转换为字符序列或二进制码序列,以实现信息的有效传输和处理。而在编码器的众多组成部分中,BAT(电池)信号不仅提供了编码器运行的必要电源,还承载着多种...

关键字: 数字信号 编码器 BAT
关闭
关闭