基于ADXL202的计步器

2004-03-14 21:32牟为华
电子世界 2004年2期
关键词:步数滤波峰值

庞 晶 牟为华

随着社会的发展,人们越来越注重自己的健康,跑步成为一种方便而又有效的锻炼方式。但是如何知道自己跑了多少步,多远的路程?计步器可以帮助人们实时掌握锻炼情况。它的主要功能是检测步数,通过步数和步幅可计算行走的路程。步幅信息可通过行走固定的距离如20m来计算或是直接输入,高级的计步器还可以计算人体消耗的热量。但这些计算的主要依据是步数的检测。下面介绍一种加速度传感器ADXL202在步数检测中的应用。

计步器原理

要实现检测步数首先要对人走路的姿态有一定了解。行走时,脚、腿、腰部,手臂都在运动,它们的运动都会产生相应的加速度,并且会在某点有一个峰值。从脚的加速度来检测步数是最准确的,但是考虑到携带的方便,我们选择利用腰部的运动来检测步数。如图1所示,行走时腰部有上下的垂直运动,每步开始时会有一个比较大的加速度,利用对加速度的峰值检测可以得到行走的步数。

图2是将计步器佩戴在腰间采集到的垂直加速度曲线图,从图上可以清楚地看出有四个峰值,代表行走了四步,说明利用腰部的垂直加速度来检测步数是可行的。

根据资料显示,人行走的垂直加速度在±1g之间(1g为9.8m/s即重力加速度),考虑到还有重力加速度的影响,可选择测量范围在±2g之间的加速度传感器ADXL202来实现计步器。ADXL202是美国AD公司的一种低功耗、二维加速度传感器,输出如图3所示占空比(T1/T2)与加速度成一定比例的数字信号,因此信号可以直接用单片机的计数器来测量,无需AD转换电路或是其它特殊电路。

硬件设计

计步器的整机原理框图如图4所示,ADXL202采集加速度信息并将数据送到单片机进行处理;单片机控制整个系统的工作并从数据中检测出步数送到LCD进行显示;外部控制按键进行开关机控制以及功能选择等。

本文不对电源转换、LCD显示等电路做详细介绍,重点介绍ADXL202芯片的电路设计。ADXL202可以输出X、Y两路信号,由于我们只测量垂直方向上的加速度,只用一路信号即可,需要注意的是,设计PCB时要摆放好芯片位置,保证使用时此路与水平面垂直。从图5可以看出ADXL202的电路设计并不复杂,在使用时我们要得到有用的信号需要设定它的采样频率和采样带宽。上述两个量是由电路图中的电阻Rset和电容Cx的取值所决定的。

采样频率过低,不能准确反应数据的变化情况;过高则引入很多无用信息,增加了系统运算量,需要根据实际情况选择合适的采样频率。根据资料显示,人行走的频率一般在110步/分钟(1.8Hz),跑步时的频率不会超过5Hz,选择100Hz的采样频率可以比较准确地反应加速度变化。1/T2即为数据的采样频率,计算方法为T2=RSET(Ω)/125MΩ。RSET的范围可从500kΩ~2MΩ,这里我们选择RSET=1.25MΩ,采样频率为100Hz。

滤波带宽定义为需要检测的最高频率, 由滤波电容Cx设定,带宽的设定会影响噪声的大小和分辨率。从附表中可以看出,带宽越小,噪声就越小,而分辨率会越高,减小滤波带宽对减小噪声和提高分辨率都是有利的。但是,图2的数据曲线中越尖的地方含有的高频分量就越多,滤波带宽减小,采集到的数据曲线就变光滑,峰值相应变小,这对我们进行峰值检测是不利的。因此我们折中取滤波带宽50Hz,根据公式F-3dB=1/(2π(32kΩ×C(x,y))计算,Cx选择0.10μF。

设定了采样频率和滤波带宽,按芯片手册连好电路图,应该得到如图3所示的数据波形,此时T2为10ms。

软件设计

根据得到的X轴数据通,过软件处理可以获得我们需要的加速度信息。

加速度的计算公式如下:

一般情况下0g(即加速度为零)时的占空比为50%,1g时的占空比为12.5%,则A(g)=(T1/T2-0.5)/0.125。

从芯片手册上可以看出0g时的占空比芯片个体差异很大,从25%~75% 都有可能,要准确地计算加速度必须对0g和1g时的占空比进行校准。另外,计算加速度需要进行两次除法运算。以上两个因素使加速度的获取需要经过复杂的计算,考虑到我们的最终目的是检测加速度的峰值个数,而对加速度的具体值究竟是多少并不关心,T1完全可以反应加速度的变化趋势,因此选择对T1进行测量和检测峰值即可得到我们所需的步数。

T1的测量可利用单片机的中断和计数器来实现。如图3所示,在上升沿Ta时刻开始计数,下降沿Tb时刻停止计数,读取数据并将计数器清零等待下一次上升沿再次开始计数。得到T1的数据,通过单片机进行峰值检测就可以确定步数。

峰值的检测通过门限判断实现。判断门限的选择非常关键,选择偏高会造成漏判;而偏低会造成误判。单一门限要实现准确的判断并不是很容易,解决的方法是如图6所示选择两个门限A和B,当数据大于门限B并且接下来变化小于门限A时判为一步,这样可以有效地排除干扰影响。

结语

本文介绍了利用人行走时腰部产生的加速度变化来检测步数的计步器实现方案,利用加速度传感器ADXL202设计简单,实现方便。该芯片也可以扩展到其它需要测量加速度的应用场合,具有广阔的应用前景。

猜你喜欢
步数滤波峰值
应用于农业温度监测的几种滤波算法研究
楚国的探索之旅
微信运动步数识人指南
“每天步数过万”是一种善意提醒
国人运动偏爱健走
基于非下采样剪切波变换与引导滤波结合的遥感图像增强
云南省民用汽车保有量峰值预测
中国能源CO2排放峰值方案及政策建议
基于正则化的高斯粒子滤波算法
合成孔径雷达图像的最小均方误差线性最优滤波