当前位置:首页 期刊杂志

基于单片机设计的可见光室内定位通信装置

时间:2024-05-20

徐 勇

(中国计量学院,杭州 310018)

基于单片机设计的可见光室内定位通信装置

徐 勇

(中国计量学院,杭州 310018)

本装置由定位和通信双系统构成,分别以MK60和STM32F407ZGT6单片机为核心。定位系统中以OV7725摄像头为主要传感器,通过图像二值化算法等方法实现了精确的定位。通信系统中信息通过PWM波编码,由LED光珠的光源作为信息载体。光敏三极管作为接收传感器使光信号转化为电信号,信号筛选、放大、比较、识别等处理最终较好的实现了单工数据通信。

MK60;STM32F407ZGT6;OV7725摄像头;图像二值化;PWM波编码

1 设计要求

1.1 基本要求

在80*80*80五面封闭的箱体中完成以下要求:

(1) 当传感器位于区域A ,测量电路能完成坐标值的测量并在LCD屏上显示出数值(绝对误差<=10cm)且显示所在区域字母 。

(2)将传感器分别置于区域 B、C, D,E,测量电路能完成坐标值的测量并在在LCD屏上显示出数值(绝对误差<=10cm) 且显示所在区域字母 。

(3)测量电路 LCD 显示坐标值,显示分辨率为 0.1cm。

1.2 拓展要求

(4)将传感器置于底部平面任意一个区域,能精确测量并显示其位置坐标值,绝对误差<= 3cm。

(5)LED 控制电路可由键盘输入阿拉伯数字,在正常照明和定位 (误差满足基本要求(2)或(4)的情况下,测量电路能接收并显示3 个 LED 发送的数字信息。

(6)LED 控制电路采用+12V 单电源供电,供电功率不大于 5w。

2 方案论证

2.1 系统框图与组成

如图3所示,该装置由定位和通信系统构成,由单一的电源进行供电,通过稳压模块实现了装置所需电源和功率的供给。

系统之间相互独立互不干扰。其中定位系统中主要部件:LCD液晶显示屏、OV7725摄像头及主控MK60。通信系统主要部件:点光源控制电路,光敏三极管接收模块,OLED显示屏。

2.2 系统分析

2.2.1 定位系统

(1)定位原理。本系统中的OV7725摄像头因FIFO存储器的存储量有限,故采取的图像分辨率为240320。

同时在装置的设计上,是将多个LED点光源集中到一处区域内,经过成像处理后可在串口助手上显示出一个略微带毛刺的白色亮圆。因为OV7725摄像头输出时为一帧一帧的输出,且图像里的像素一般遵循从左到右从上到下的扫描顺序,故可通过图像二值化处理将数据转存入一个二维数组,便于我们去处理。

经过多次将摄像头摆放到箱底四个角落与中心点进行图像及数据采集测试后推得摄像头正放在灯光下时的空间位置(二维数组序列号),记此序列号为(,)。并经过大量实验估算得到:每实际距离移动5cm与数组中序列号数值变化的比例,记该比例为“λ”。

假定白点为“1”,黑点为“0”,由MK60单片机对所得到的二维数组进行(自左向右,从上到下)处理。当单片机对二维数组内的数据进行逐行扫描时,将第一个碰到 “1”的坐标号记为(X1,Y1),记这行最后一个“1”的坐标号为(X2,Y2),跳转到下一行扫描时第一个碰到的 “1”的坐标号记为(X3,Y3),且记这行最后一个“1”坐标号为(X4,Y4),分别比较Y1和Y3的大小,Y2与Y4的大小。若Y1>Y3,则将(X3,Y3)数组坐标号缓存下来,并继续与下一个Yi值作比较,反之则保留(X1,Y1)。Y2和Y4则与之相反,若Y2>Y4,则将(X2,Y2)数组坐标号缓存下来,反之保留(X4,Y4)。当扫描完所需处理的数组后,即可得到两个不同的数组坐标号记为(,)和(,)。则偏移后圆的圆心即为:。设实际X,Y偏移距离分别为和,则两者之间存在如下等式:

并且由于图像中圆点的移动方向与实际移动的方向刚好相反,因此最终还需要通过程序进行判断处理才能显示在LCD屏幕上。

(2)测试结果及其误差分析。根据图4显示:实际距离与理论距离的相对误差Δ在2cm处徘徊,除极个别点超出要求外,其他点均满足要求的相对误差<=3cm,从而实现了较高精度的空间定位。

误差产生原因:

1)在由于太阳光的漫反射导致图像出现光斑,因而导致光点坐标判断失误。造成相对坐标偏差严重。

2)摆放摄像头时未摆正,导致镜头倾斜图像生成错位。

3)人手动扶持,易容易产生抖动,使得圆心生成偏差。

2.2.2 通信系统

(1)通信流程。本系统分别由发送和接收两个模块组建成。核心为STM32F407ZGT6单片机板,根据要求将所需要发送的10个阿拉伯数字分别对应10个按键,由STM32F407通过检测相应端口高低电平的跳变产生的跳变沿判断按键是否按下,如若按下则产生相对应的PWM波,并由控制电路将LED光珠光源发出的可见光转变为信息载体。在接收部分通过光电传感器来实现光信号到电信号的转变,经过滤波放大后输入到解调模块中,通过解调即可还原初始信息,从而显示到OLED屏幕上。

(2)发射端和接收端原理。发射端由3个LED灯珠组成,以3个L298N作为电路驱动。当按键模块中的某个按键按下,STM32F407单片机端口产生相应的PWM波,并将其作为输出与L298N的一个输入端想接,另一端则与地相连。当输入为高电平时L298N内正常工作电路被导通有电流产生,LED灯珠灯亮。当输入为低电平时电路为断路,LED灯珠熄灭。灯珠的亮灭就是电信号转化为光信号的途径。由此可以通过改变PWM波的占空比来控制灯珠的亮灭时间的长短从而实现光信号的调制。

关于PWM波的占空比改变主要是使用STM32F4系列的官方库函数。其中最主要的是stm32f4xx_tim.h头文件和stm32f4xx_tim.c文件。通过更改自动重载寄存器和预分频器寄存器内的数值来控制周期。

并通过设置捕获/比较寄存器来调控高电平在一个周期所占比例。在实验中我们设定了周期都为1kHz,但占空比不同的10个PWM波。

光敏三极管是作为接收端的光电传感器来使用。它的灵敏度相较于光敏二极管来说更高,对于入射光信号的响应时间为,因此适合做信号的采集。

光敏三极管又称光电三极管,它不仅具有电流放大作用,同时可以由光辐射来加以控制。基本原理是当有光照射到PN结上时,光敏三极管吸收光能并转变为电能。当光照射到发射结时基极处会产生光生电流并且由基极进入发射极,因此集电极回路中就产生了倍的电流信号。由于这个电流信号存在着许多无用的杂波故设计了带通滤波器(中心频率为1kHz,Q=5,增益为1的巴特沃斯2级接续的BPF)进行筛选。经过该窄带滤波器滤波后就可以得到所需频段(1KHz左右)的信号,但由于信号的电压非常微小,在进行比较前还需将它通过电压放大模块放大一百倍。放大后连续不规则的电压信号通过电压比较器整流成占空比不同的方波信号,并进一步输入到管脚口上,在管脚口上STM32F407单片机捕获信号的上下跳变沿来判断方波的高电平时间,最后经过校对在OLED屏幕上显示出相应的数值。实现了单工数据通信。

(3)测试结果及分析。误差分析:

1)由于光敏三极管受到光的影响较大,室内阳光直射的干扰导致电压信号出现偏差使得信号丢失。

2)硬件基础比较单薄,线路中存在问题。

3)光信号在空气中传输的过程中受到干扰导致频率发生了变化,在经过窄带滤波时由于不满足要求被滤除了导致信息空缺。

表1 通信系统验证结果

2.3 改进方案

为了提高精准度,实验中我们在镜头上加装了滤光片有效的滤除了干扰光,软件算法改换成为了二次扫描法。第一次扫描结束后,MK60将对扫描出来的数组坐标号进行第二次的扫描判断。虽然牺牲了时间,但是定位的精准度有了显著的提高。通过跟换更精准的光敏传感器并将电路制作成pcb板子减少了外部导线的连接,使得光通信方面得到了较大的提升。

3 结论

本文可见光室内定位通信装置基于MK60和STM32F407ZGT6单片机,在系统设计过程中,力求硬件线路简单,充分发挥软件编程方便灵活的特点,巧妙的利用摄像头像素的精确定位、并以LED光源为信息载体进行单工数据通信,较好的完成了基本部分的要求并对扩展部分进行深入研究,实现了定位与通信相结合。

[1]王旭东,胡晴晴,吴楠.高精度室内可见光定位算法[A].1005-0086,2015(07):05-0862.

[2]沈芮,张剑.基于可见光通信的室内定位方法[A].1671-0673,2014(05):01-0041.

[3]王涛.基于51单片机的LED可见光通信系统[J].电视技术,2013,37(09).

[4]丁德强,柯熙政.可见光通信及其关键技术研究[J].半导体光电,2006(02):15-18.

[5]都文和,陈晨.基于 PWM 的可见光通信系统设计[J].电视技术,2016,40(11):50-53.

10.16640/j.cnki.37-1222/t.2018.01.112

徐勇(1997-),男,浙江丽水人,本科。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!