基于MPU6050滤波算法的新式防盗系统
2018-07-23河北工业大学控制科学与工程学院韩福长彭一南
河北工业大学控制科学与工程学院 韩福长 彭一南 严 婷 张 萍
0 引言
随着生活水平的提高,出游的人数都在不断激增,而随之产生的行李箱失窃案件的比例也不断上升[1]。传统的防盗方法,无论密码锁还是机械锁的效果都不佳。目前国内有研究行李箱防盗器的,比如香港创世树公司推出的一种智能防盗行李箱,利用RFID射频技术,时刻检测行李箱与移动终端的距离还检测是否被盗。[2]但是,这种报警器局限在于作为移动端的人一旦发生较大的移动就会产生误报,人机交互性差,同时并未与箱体结合,集成度低。为此,设计一款能够集成于行李箱内部,人机交互性强的行李箱防盗装置是很有必要的。该产品基于陀螺仪加速计来检测箱体运动状态,传回到内嵌单片机,利用智能算法精准定位行李箱移动情况,利用APP进行人机交互,同时集成语音报警模块实时报警,最大限度地保证行李箱的安全。同原有一些产品比它解决了报警延时,精度低,限制大等缺点,大大提高了行李箱的安全性。
1 系统总体方案
为减少功耗和封装体积,本系统采用STM32单片机最小系统和MPU6050模块,用于检测行李箱的运动情况,LM317模块为最小系统提供稳定电源。当APP通过蓝牙向单片机发送警戒状态信号后,一旦检测到位移超过阈值及通过语音模块和功放发出人声警戒盗贼以及提醒物主。系统嵌套在行李箱内部,其系统整体结构框图如图1所示。
2 硬件电路设计
2.1 六轴传感器MPU-6050
MPU6050模块是InvenSense公司推出的一款6轴传感器模块。集成3轴MEMS陀螺仪,3轴MEMS加速度计,及一个可扩展的数字运动处理器DMP。
MPU-6050对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,陀螺仪可测范围为±250,±500,±1000,±2000°/秒(dps),加速度计可测范围为±2,±4,±8,±16g。
图1 系统结构框图
一个片上1024字节的FIFO,有助于降低系统功耗。高分辨度、体积小、功耗低,这些特点使MPU6050非常适合于嵌入式设备应用。MPU6050电路原理图如图2所示。
2.2 STM32最小系统
STM32F103增强型系列由意法半导体集团设计,使用高性能的ARMCortex-M3,32位RISC内核,工作频率72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和连接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和1个PWM定时器,还包含标准和先进的通信接口。本系统选用STM32F103ZET6型号的芯片,具有执行效率高,稳定性强,功耗低和成本低的优点。
图2 MPU6050电路原理图
2.3 LM317稳压芯片
为保证系统的精确稳定性,对控制系统供电电源的质量要求较高。因此,针对供电电源进行稳压处理,为此本系统采用LM317稳压芯片。LM317是应用最为广泛的电源集成电路之一,它不仅具有固定式三端稳压电路的最简单形式,又具备输出电压可调的特点。此外,还具有调压范围宽、稳压性能好、噪声低、纹波抑制比高等优点。系统电源模块采用电池12V供电,经过LM317转换5V为STM32最小系统供电,稳压电路如图3所示:
图3 LM317模块原理图
2.4 语音模块
ISD1700芯片是华邦公司推出的单片优质语音录放电路,该芯片提供多项新功能,包括内置专利的多信息管理系统,新信息提示,双运作模式,及可定制的信息操作指示音效。芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器内存等的全方位整合系统功能。正是基于上述的优点,本系统决定采用此款芯片,具体电路如图4所示。
3 测距算法
3.1 数据采集环境
物体移动后,物体离参考点的距离超过阈值距离,我们称这种状态为移动触发[3]。行李箱的移动检测通过MPU6050结合相应算法实现的。
图4 ISD1700电路原理图
因此,行李箱的摆放将影响MPU6050检测到的初始加速度值。为了简化问题。本文讨论行李箱端正摆放,也就是MPU6050的Z轴是垂直于地面的,而X轴与Y轴与水平面平行,朝向随机。
图5 行李箱摆放示意图
做物体移动数据采集实验。实验时MPU6050的朝向为Z轴垂直于水平面。而X轴和Y轴平行于水平面随机朝向。指定具体的方向,让人拖着检测装置沿指定方向在水平面上拖行指定距离。这里距离设定为1m,拖行速度与人拖行行李箱的速度相仿。
图6 实验拖行示意图
3.2 实验数据预处理
实验距离1m内采集到的数据是不能完全体现物体移动时加速度的变化的,用Newton插值法对采集到的加速度数列插值,使加速度数列能更准确的描述物体加速度的变化。令插值节点与函数值的对应关系如下:
Newton插值使n次多项式插值,其思路使将待求得n次插值多项式写成逐次生成的形式[4]。
用Pn(x)插值时,首先计算各阶商,各阶商可归结为一阶差商的逐次计算,一般地:
上面时插值多项式节点任意分布的情况。而在加速度数列中,我们遇到的是等距节点。于是Newton前插公式可变为:
经牛顿插值法处理后的加速度数列能更准确的描述物体移动的状态。
3.3 初级距离算法
在实验中得到一系列加速度数据,ax和ay。根据物理定律可计算各采样时刻的物理运动速度。对与离散的加速度数据,可通过的方法处理。对速度作积分可得位移,离散的速度数据可通过矩形法得到[5]。矩形法计算示意图如图7所示:
图7 矩形法距离计算
X方向位移计算公式:
同理可计算y方向的位移。X方向位移和Y方向位移因为垂直的关系,因此物体的实际移动距离为。
图8 实验物体X,Y方向位移和移动距离关系
初级距离计算方法使用的是通过直接使用采集到的加速度数据计算得到的。但这种方法不能排除信号漂移干扰和环境变化干扰[6]。
3.4 改进的距离计算方法
改进原因:物体在不光滑的地面拖动时会发生抖动。这些抖动是瞬间的,观察MPU6050采集到的加速度也能发现,在抖动时检测到的加速度存在突变现象,并导致加速度随时间的曲线出现尖峰[7]。这些抖动尖峰往往是瞬间的,但离散的加速度采样系统采集到尖峰的加速度后会认为该加速度将一直维持到下一次采样开始。这将放大抖动时采集到的尖峰加速度,后续的积分运算也将放大该误差,通过算数滤波能减缓这些突变加速度的干扰[8]。
滤波算法的选取:使用MPU6050采集信号过程中,硬件自身及周边环境都是干扰源。因此采集的加速度值与实际值之间是有一定偏差的。而产生偏差的主要原因是加速度漂移现象和加速度突变的脉冲噪声,通过数字滤波的方法能有效的降低这些误差对结果的影响[9],数字滤波主要有以下几种:
(1)算术平均滤波
算术平均滤波算法就是连续取n次采样值作算数平均计算。表达式为:
对于随机干扰的信号,其特点是这种信号有一个平均值,信号在该平均值上下波动。
(2)中位值平均滤波算法
中位值平均滤波算法相当于“中位值滤波算法”+“算数平均滤波算法”。它汇集了两种算法的优点:一是可消除大服务脉冲干扰引起的采样偏差,二是对周期性随机噪声有良好的抑制作用,三是其滤波后平滑度高,适用高频滤波系统。中位值平均滤波的算法流程图9所示。
对MPU6050采集到的x方向和y方向的两组组加速度别使用中位值平均滤波算法进行滤波,滤波前后对比图可见,加速度突变和漂移现象在滤波后得到有效削弱,结果如图10所示。
滤波前后的距离计算结果及对应的误差结果见表2。由此可见,中位值平均滤波算法能有效削弱抖动时加速度突变造成的误差。
表2 滤波前后距离与误差结果
图9 中位值平均滤波流程图
图10 加速度滤波前后对比图
4 结论
更安全更智能的行李箱是未来的发展趋势。本设计在未来行李箱防盗技术方面作了初探,具备参考意义。
行李箱防盗系统的距离检测算法通过中位值平均滤波法削弱了加速度值的漂移误差和脉冲突变误差,并将误差从21.88%控制到14.05%内,大大降低了行李箱安全状态的误判。
本防盗系统的算法局限性在于不能计算角速度等次要因素对测量结果的影响。但实际情况如火车转弯,行驶震动等都会带来角速度变化的影响,实际应用时安全状态误判的概率将会上升[10]。为此,行李箱防盗系统下一步将研究加速度与角速度带来的综合影响,以降低安全误判的概率。