APP下载

基于PWM的室内LED可见光定位系统设计

2019-11-20杨世权张谦述

关键词:接收端测距投影

杨世权 张谦述 胡 玥

(西华师范大学电子信息工程学院, 四川 南充 637000)

GPS在室外的定位效果较好,在室内则由于卫星信号受墙壁等障碍物的阻挡而衰减,定位精度较低。因此,实现对室内的精准定位是亟待解决的难题。LED可见光具有可用频带宽、不受电磁场干扰、设备搭建容易、误码率低等优点,并且LED响应快,可以高频调制,又是绿色能源,使用范围广泛,因此,基于LED可见光的定位技术将成为提高室内定位精度的重要选择。

在这方面,国内外已经有许多研究成果。文献[1]提出了一种基于图像传感器的可见光定位系统,可以测量目标端的位置。不过,图像处理技术和算法较复杂。文献[2]提出了一种基于TDOA的室内可见光定位方法,通过测量接收不同信号的时间差来实现定位。但参考节点之间需要进行时间同步,对硬件设备要求较高。文献[3]提出的基于采集指纹的定位算法,需要采集大量指纹信息,工作量大。文献[4]提出利用OFDM技术,基于三角形定位算法来实现定位,证实了可见光实现定位的可行性。文献[5]中介绍的选用高速相机接收信号,基于莱文伯格-马夸特(LM)算法实现定位的方法,最大误差小于10 cm。但此方法对相机的性能要求高,而且误差仍然较大。文献[6]提出的基于 CDMA调制的室内可见光定位技术,可克服光源间的干扰,但编码过程较复杂。文献[7]提出了基于视觉信息的室内可见光定位方法,但没有考虑背景光及噪声的影响。文献[8]提出了改进的加权三边定位算法,但没有进行测试验证。文献[9]提出了一种利用室内照明LED发光强度实现室内可见光定位的方法,并对定位设计方案进行了测试,但其测试空间(80 cm×70 cm×40 cm)较小。

本次研究,通过借鉴有关研究成果,提出一种利用脉宽对LED光源的ID进行编码传输、基于RSSI来估测收发端投影距离的三灯定位方法。

1 算法实现

1.1 RSSI测距

基于RSSI测距,即根据接收信号强弱指标来估测收发两端投影距离。理论上,光信号由发送端向外传播的过程中,其强度是逐渐变小的。因此,可以通过测量接收端光电压值与收发端的投影距离数据,用MATLAB拟合出光源的测距函数模型。依据该测距函数模型,只要获得接收端接收的光电压值,即可求出收发两端对应的投影距离。拟合测距函数如式(1)所示。

(1)

式中:d—— 收发两端对应的投影距离,cm;

H—— 光源的高度,cm;

U(0,0) —— 光源中心光电压,mV;

U(x,y) —— 待测点的光电压,mV。

1.2 三边定位

假设:给定3个发送端的底面投影坐标为O1(a1,b1)、O2(a2,b2)和O3(a3,b3);接收端P到投影点的距离分别为d1、d2、d3,可根据式(1)获得。由此,建立3个底面投影圆的方程组,方程组的解即为接收端的位置坐标。方程组为:

(2)

室内定位模型如图1所示。设待求点P的坐标为(x,y)。解方程组(2),可求出待测点的坐标。

图1 室内定位模型

2 系统总体结构

2.1 系统总体框架

室内可见光定位系统主要由发送端和接收端两

部分组成。系统采用STM32F4单片机作为控制芯片。在发送端,首先单片机对3个LED的ID进行脉宽编码,然后经时分复用发送给驱动电路放大,驱动LED发送光信号。在接收端,探测器把接收的光信号送给放大电路进行放大,然后送至单片机AD端口进行解码与测压;再将解码的坐标和测压转化后的距离代入式(2),求出待测点坐标,并用LCD显示出来。系统总体框架如图2所示。

2.2 发送端设计

2.2.1 发送端电路

发送端选用STM32F407作为处理芯片。它为 32位ARM处理器,最高频率为72 MHz,闪存1 Mkb,SRAM为192 kb。内部定时器共有14个,每个定时器最多4个用于输入捕获输出比较PWM或脉冲计数通道。该芯片优势突出,用于系统的脉宽调制和后续接收端对脉宽的捕获,能够满足两端需求。

图2 室内可见光定位系统框架

因为LED正常工作需150 mA电流驱动,故发送端选用NPN三极管来放大经单片机编码的输出信号。发送端电路原理如图3所示。

图3 发送端电路原理

2.2.2 发送端程序

发送端程序设计流程为:开机启动,进行初始化配置,选用定时器3的1、2、3通道,设置好psc(时钟预分频数)。然后,通过改变arr(自动重装值),产生3路不同的PWM波。第一路PWM波输出后,对LED1进行控制。接着时分复用,依次输出其余两路PWM波形,分别对LED2、LED3进行控制[10]。3路PWM波输出完毕后,进入下一轮循环。发送端程序流程如图4所示。

2.3 接收端设计

2.3.1 接收端电路

图4 发送端程序流程

图5 接收端电路原理图

2.3.2 接收端程序

接收端程序设计流程为:首先开机启动,进行程序初始化。接着开启输入捕获,同步后,检测灯的ID。获得检测结果之后,开启AD转换,读取对应灯的光电压值,代入测距函数模型,求出收发两端距离。3个灯的距离都求出后,代入三边定位算法方程,求出待测点位置坐标,并在LCD上进行显示。接收端程序流程如图6所示。

3 PWM编码与解码

考虑到调制的信号在空间传输中失真度要低、抗干扰能力要强、易实现等要求,本系统采用脉宽调制方式。脉宽调制(PWM)原理:通过控制电路开关器件的通断,输出一系列幅值相等的脉冲;通过对各脉冲的宽度按一定规则进行调制,改变输出电压和频率[11]。与其他调制技术相比,PWM技术易于用脉宽实现编码,在无线信道中传输较稳定,同时易于实现解码。

图6 接收端程序流程

为了使接收到的数据准确,本系统设计的数据帧由6位构成,脉宽调制的帧格式如图7所示。

图7 脉宽调制的帧格式

帧中第一位为同步位,第二位为ID位。识别不同的LED光源,通过不同的脉宽对应不同的ID号来实现。第三位为ID反码,校验前面接收到的ID是否正确。第四、五位为测压区,根据电压幅值高低代入测距函数模型,估测收发端距离。第六位为停止位,用低电平表示,用来分隔下一个数据帧。脉宽调制的软件实现过程是:利用单片机的定时器3的任意3个通道,产生3路不同的PWM波形,在设置好psc(时钟预分频数)后,通过改变arr(自动重装值)来控制占空比,最后用三个IO口输出。

3.2 解码

解码采用STM32的TIM5输入捕获来实现。具体配置过程为:先进行时钟的初始化,将PA0复用为TIM5,定时器采用向上计数、上升沿捕获;再设置psc、arr;最后开启定时器,使能中断,抢占优先级设为0级。当码型的上升沿到来时,开启定时器5,计量时间即脉宽;下降沿来临时,关闭计时。脉宽若与同步码脉宽一致,则表示已同步。继续捕获下一脉冲,进行ID位识别,匹配LED光源。接着捕获下一脉冲,进行ID反码校验。校验成功,则表示ID识别正确,调用RAM中预先存储的位置坐标信息。接着关闭定时器,开启AD转换,读取脉冲电压平均值,代入测距函数模型测距(即收发端的投影距离)。

4 实验与结果分析

实验测试场景如图8所示。发送端由单片机、驱动电路、LED组成,接收端由光电管、放大电路、单片机、LCD等组成。

图8 实验测试场景

MATLAB画出光源的测距函数模型,如图9所示。

从图9可看出,实测电压点落在拟合的测距函数曲线上及其附近,说明两者之间误差小,测距函数拟合效果好。因此,可以用拟合的测距函数式(1)来估测收发两端的投影距离。

4.2 PWM编码验证

3路编码信源经探测器接收后的输出波形,如图10所示。从图中可看出,3路信号在不同的时间段循环发送、互不干扰,放大电路工作正常,信号输出稳定,频率为1 kHz。

图9 测距函数模型

4.3 定位精度验证

已知探测器测量精度为5 cm。搭建80 cm×80 cm×80 cm的测试空间(见图8),将3个灯的位置按等腰三角形固定:LED1(-35,30,80),LED2(35,30,80),LED3(0,-30,80)。以底面的中心为坐标原点,建立三维坐标系。在底面选取90个点进行实测。实验环境的最大信噪比为23 dB,最小信噪比为14 dB,满足通信要求。根据方程组式(2)估测目标点位置,并用MATLAB将每个测量点的误差用高度表示出来。实测数据中,最大误差为3.7 cm,最小误差为1.42 cm,平均误差为3.38 cm,均方差为1.57 cm。三灯底面投影区域内实测定位误差分布,如图11所示。从图可知,靠近三角形中心的位置定位精度较高,远离三角形中心的位置定位精度较低。通过基于PWM技术的三灯定位算法,可以把误差由5 cm降为3.7 cm。

图10 3路信源输出波形

图11 实测定位误差分布

5 结 语

在现实的三灯定位系统中,光信号在空间传输过程中易受外界环境干扰,从而影响定位精度。为解决这个问题,我们提出了脉宽编码的解决方法。用此方法,可有效抵抗环境干扰,光信号传输距离远、失真度小,而且易于后续解码。基于RSSI技术,采集收发两端不同距离的光电压数据,拟合出收发两端距离与光电压的关系函数模型,用来计算测量距离。在80 cm×80 cm×80 cm定位空间中进行实验测试,实测定位误差为3.7 cm,表明此方法是可行的。本次研究,只对不同LED光源的ID进行了编码传输;对灯的位置坐标进行编码传输是下一步研究的方向。

猜你喜欢

接收端测距投影
基于扰动观察法的光通信接收端优化策略
顶管接收端脱壳及混凝土浇筑关键技术
解变分不等式的一种二次投影算法
基于多接收线圈的无线电能传输系统优化研究
基于最大相关熵的簇稀疏仿射投影算法
类星体的精准测距
手机无线充电收发设计
找投影
找投影
浅谈超声波测距