之前有一篇文章简单的实现了一个计步器app,今天我们将会从理论上剖析下计步器的实现原理。
计步器(pedometer)是一个配戴在身上,用來计算走路步数的小配件。从公共卫生与健康医学的角度看,计步器的功能是在累积一定时间的走路步數,借着步数的累计,了解身体的活动水准,提升携带者的活动动机,以增进健康为最终目的。
计步器的原理是利用机械运动带动感应器,并由电子电路完成计数后的后续工作,如:计数、储存、计算、显示等。
感应器的原理一般都是用一个可随意移动的小型重锤,利用装置移动时物理的惯性來产生装置与重锤间的相互运动,再用感测元件來检查其动作,感测器可以用机械开关(让兩片金属片开或关、也可以用光电开关、或者在重锤上附加一个磁铁以霍尔元件來检出。
市面上除了单纯计步的计步器之外,有的计步器还可输入携带者的体重,然后结合步数,计算所花的卡路里数目。
一个人走路一定时间之后,可知走了几步,消耗多少卡能量。如果走了一个小时,消耗了300大卡,佩带者就能够设定目标,累积所走的卡路里,作为减重的重要参考数据,如累积消耗7700大卡就相当于一公斤的脂肪的能量。一天一万步的走路,相当于一天300~400大卡的热量。
表 1.1 不同走路速度的能量消耗
走的速度感 | 时速 | 消耗300大卡需要时间 | 每分钟消耗热量 | 燃烧一公斤脂肪所需分钟数 |
蹒跚地走 | 3.0 | 110min | 2.7大卡 | 2852 |
缓慢地走 | 3.6 | 100min | 3.0大卡 | 2567 |
自然的走 | 4.5 | 90min | 3.3大卡 | 2333 |
快步走 | 5.4 | 70min | 4.2大卡 | 1833 |
全力走 | 7.2 | 38min | 7.9大卡 | 975 |
慢跑 | 6.5 | 55min | 5.5大卡 | 1400 |
还有一种计步器是装上加速器的。装上加速器的计步器,可适当的反映出所走的步数与能量消耗量。同样一步,消耗的卡路里是不同的。尤其大步走一步的能量消耗,不会同于小步走一步时的能量消耗。因此,配上加速器的计步器,理论上比起单独使用步数,对于能量消耗量的估计,是较准确的。当然,加速器的计步器,对于能量消耗的评价,准确性还比不上佩带气体分析器(如无线遥测之K4B2)来得准确。
最早大多数的计步器使用加速度数据,基于阈值来检测步伐,检测技术,不论是硬件还是软件,都不能满足高精度的定位系统,尤其是在缓慢步行的情况下。特别是在一个陌生的环境,或者使用者是视力受损的人群,室内导航表现的更糟糕,在缓慢的行走速度中表现不佳。低速表现不佳的主要原因是:低速行走时,重力加速度几乎为固定值,而且加速度计反应迟缓,再加上这些算法不能采用分级的阈值。
因而现在手机设备都采用陀螺仪来计步,他能够在室内定位中识别出人类步行状态,相对于重力加速度更加精确。
带有陀螺仪的设备,当设备放在裤袋里,通过设备陀螺仪的单值数据(陀螺仪数据有3个值,分别为x,y,z轴数据)就可以追踪大腿的运动,从而进行计步检测。
高通的计步器使用的是mpu6515 Sensor,这是一个陀螺仪传感器,我们接下来会继续分析高通的Sensor架构部分,届时我们会详细分析陀螺仪计步器的具体算法原理,欢迎关注。