freedomhit

ADI夏令营——计步器

0
阅读(2972)

 

    ADI公司每年都会举办夏令营和冬令营活动,一般情况下只要报名就有机会参加。这个活动对学生的帮助很大,大家可以随时关注ADI公司官网ADI大学计划,有机会一定要去啊~现在我把夏令营最后一个题目——计步器的东西总结一下,分享给大家。

     在我们走路的过程中,如果带着加速度计,那么我们观测一下三个轴加速度的变化量,肯定有一个轴的变化量要比另外两个轴的变化量大,这样我们就可以根据判断,首先剔除两个变化波动比较小的变化量,然后根据剩下这个比较大的量来进行计步计算。比如是这个情况,我们先把红线和黑线代表的方向的加速度给去掉,只根据绿线代表的波形来进行检测,每检测到一次波形就可以计数加一,从而实现计步。

    一般情况下,我们在跑步过程中,脚步交替的频率是不会改变太大的,如果一直以当前跑步的频率,我们可以设置一个固定的阈值,但是当步伐改变的时候,我们就没办法在进行判断,所以我们要设置一个变化的阈值,这个阈值我们可以根据我们刚刚某一时间段的值进行采样,首先对过去的100个时钟频率对线上所有的点都进行采样,我们在对其取平均值,这样我们就能得到这个波形的中间的值,也就是相当于正弦曲线的相角为0°时的x轴曲线,然后我们在对过去50个最大的峰值进行平均计算,这样就会得到一个最大值,再把这个最大值和这个中值做个平均计算,这样就算作是上界的阈值,然后同样的道理,把最小值在求个平均值,然后在和中值求个平均值,这样作为下界,这样就得到以个不断变化的动态阈值了,这样我们可以做个算法,当这个曲线每经过一次上界和一次下界,我们就计算为一步,计数器加一。这样,我们就完成了计步器的算法。