基于STM32和多照度传感器融合照度测量系统
摘要针对新型数字照度传感芯片BH1750FVI的精度的不足,通过多个BH1750FVI模块采集到的照度数据,在STM32主控芯片进行自适应加权融合算法处理,从而实现更高精度测量。经测试表明,相比单个传感器,系统测试精度明显提高,且在单个传感器发生故障时,系统具有更强的容错特性。
【关键词】BH1750FVI STM32 自适应加权融合
目前,针对照度测量,传统采集元件光电三极管和光电池,由于信号放大电路和模数转换电路必不可少而导致其在功耗、便捷使用等方面受到限制。新型数字照度传感芯片BH1750FVI较好地解决了传统照度元件的弊端,其优良光谱灵敏度特性、简单易用、价格低廉而广泛应用于便携式设备、温室大棚等环境的照度检测。但在精度测量要求较高的环境中,照度传感芯片BH1750FVI的精度却不能满足要求,但其测量精度相对误差较高,在要求较高精度场合却达不到要求。考虑到其价格低廉、简单易用,对多个传感器测得的照度数据通过算法融合来实现精度提高是一种可行的方案。本文采用高性能、低成本、低功耗的STM32处理芯片控制采集,并将采集的多组数据进行自适应加权融合处理,实现了更高精度的测量。
1 系统硬件设计
系统硬件构架如图1,以STM32F103作为核心控制芯片,与3路BH1750FVI照度模块通过IIC总线协议实现照度采集控制和数据传输,由于充分利用STM32F103丰富的片内资源,大大简化复杂的外围电路,只设计必须的显示与存储等外围电路,降低系统的功耗的同时也提高了系统的稳定性。
系统采用的主控芯片STM32F103是基于ARMCortex-M3内核的32位处理芯片,该芯片主频为72MHZ,运算能力强、运算速度快,能快速数据处理和算法运行,保证了数据采集的实时性。芯片具有丰富的I/O端口,设置普通IO口模拟多路IIC时序,从而实现分别控制各BH1750FVI传感模块采集照度值。
照度传感器采集模块电路图如图2所示,该模块以BH1750FVI芯片为核心,通过电源转换给芯片供给3.3V工作电压,内置了16 bit AD转换器,采用IIC总线通讯,实现了照度数字值直接输出和大照度范围测量(1-65536lux),完全满足一般环境的下量程范围的照度测量。
2 系统软件设计与算法实现
2.1 系统软件设计
系统运行软件的设计主要在对多个BH1750FVI模块在照度数据的采集和对采集到的多组照度数据进行自适应加权融合算法运算从而到精度更高的照度值,并将照度值显示于LCD显示屏上,主流程图如图4。由于STM32F103主控芯片有只有一个硬件IIC通讯端口,而本系统需要四个IIC通讯端口。系统通过软件模拟IIC时序,实现设置普通I/O口而实现照度模块与主控芯片的通讯。
本文采用自适应加权融合算法理论上采集的数据越多,其处理后得到的值与真实值的误差越小,因此系统采集照度的频率越高越好,但BH1750FVI照度模块在不同分辨率模式下都需要一定的采集时间,因此在不同的照度采集范围下可采用不同的模式进行采集:
(1)预采集到的照度X≤100时,采用高分辨率模式1,对每个照度模块采集2次;
(2)预采集到的照度100
2.2 自适应加权融合算法
本系统采用的自适应加权融合算法,其基本原理是根据三组照度传感器采集到的多种照度值,在总均方误差最小的最优条件下,以自适应的方式寻找各个传感器对应的最优加权因子,使得融合后的结果达到最优,其具体算法如下:
设三路照度传感器BH1750FVI采集到的照度后分别设为X1、X2、X3,其加权因子分别为 w1、w2、w3,设每个传感器的方差分别为σ1、σ2、σ3,其算法结构图5,
则根据算法其融合后的的值应满足:
(1)
X1、X2、X3彼此独立,X为无偏估计,故其总均方差为:
(2)
要想使式(2)在(1)情况下最小,则可得:
再根据实际测量值可得到最优值为:
3 实验分析与结论
经过试验测试,如图6,单个BH1750FVI照度传感器采集值与高精照度仪采集的标准值对比,其最大相对误差在±7.2%。针对算法处理的误差如图7,使用普通的均值处理后的最大相对误差在±5.1%,而使用自适应加权融合算法处理后,其最大相对误差下降到±3.7%,从而明显提高了精度,达到了预期提高精度的目的。而根据自适应加权融合算法的特点,数据的误差越大,该数据所占加权因子越小,即便在单个照度传感器发生故障而采集到错误数据时,经算法处理后错误数据带来的误差任然很小,因此其容错性更强。
4 结束语
本文针对照度传感芯片BH1750FVI的价格低廉、易用使用等优势和精度的不足的特点,通过算法实现对其精度的提高,实现了一种基于STM32的高精度照度测量的系统。采用的自适应加权融合算法不仅针对本文照度传感器精度提高实用,在其他价格低廉却精度不高的传感器在精度提高上同样具有一定的借鉴意义。
参考文献
[1]王建,毛腾飞,陈英革.基于BH1750芯片的测光系统设计与实现[J].常熟理工学院学报,2011(2).
[2]何安科.基于STM32与光强传感器BH1750的无线路灯控制系统.企业科技与发展[J],2011(20) .
[3] 刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2013(6).
[4]ROHM.BH1750FVI光强度传感器数据手册[EB/OL].http://www.rohm. com.2012(2).
[5]李战明,陈若珠,张保梅.同类多传感器自适应加权估计的数据级融合算法研究[J].兰州理工大学学报,2006(8).
作者简介
赵齐,北京林业大学自动化系10级本科生,主要研究方向为传感检测、信号处理。
许彦峰,博士,北京京林业大学工学院副教授,主要研究方向为信号与信息处理。
作者单位
北京林业大学工学院北京市100083