设为首页收藏labplus社区产品资料库
151
积分值+2
64
掌控币+1
0  关注
79  粉丝
54  帖子
luyi
2020年02月21日

#基础使用#掌控板计步器【三轴加速度传感器系列2】

      计步器一种计量工具,是通过统计步数、距离、速度、时间等数据,测算卡路里或热量消耗,用以掌控运动量,防止运动量不足,或运动过量。想知道自己每天走了多少步吗?想知道自己消耗了多少卡路里吗?作为一名创客,我们可以自己做出一个计步器来。


       掌控板自带的三轴加速传感器,就可以做一个炫酷的计步器。关于掌控板三轴加速传感器的介绍,欢迎翻翻我上一篇帖子《掌控板制作水平仪【三轴加速度传感器系列1】》

       掌控板三轴加速器分别有X轴、Y轴和Z轴方向的加速度,我们应该取哪个轴的加速度呢?,我们不能单独取哪个轴的加速度来进行判断,因为人们往哪个方向走都有可能。因此,经过多次测试,我们取这三轴的矢量和进行判断。三轴加速度矢量和计算公式如下:


所以使用图形化代码表示这个公式就是


注:此次实验我们使用的是mPython 0.5.1-beta4版本,所以三轴加速度的矢量和需要我们自己编写。而使用mind+软件则可以直接使用“三轴加速度的强度”即可

掌控板计步器怎么做呢?

1. 定义新变量step,表示当前已经走过的步数,初始值为0.


2. 判断三轴加速度的矢量和是否大于1,如果大于1,说明已经走了一步,则表示变量的步数累加1.


3. 在屏幕上使用“仿数码管44像素”显示当前步数


4. 一直重复执行上面的代码就可以简单的实现了,贴出上面完整代码。


到了这里,计步器原理已经实现了。如果您这是简单的研究,到这里就可以结束了。但是想要这个计步器更顺溜,还需要优化。请接着往下看:

我们看上面的代码:

      

不足1:显示部分直接放在“一直重复执行”里面,不管人是否在走路,它都会执行“显示清空”、“显示生效”等操作。

       不足2 :我们知道人走路是有一定的速度的,期间有一定的间隔。如果我们总是不间断地重复执行判断加速度,可能会引起重复计数。

       不足3 :当步数小于10时,一位数字显示在最左边;当步数大于9且小于100时,只显示两位数字,最右边位置是空白的;只有当步数大于99时,步数显示才是完整的。

思考一下,上面这三个问题,是不是这样的呢?

因此,我们还要对代码进行优化

优化1,将显示部分封装成函数,放在“如果……执行……”内部,当加速度的矢量和a不变的时候,显示器不执行操作。

优化2,在“一直重复执行”内部,增加等待时间,减少重复计算可能。

优化3,对当前步数step进行逻辑判断,如果不足3位数,在前面补0。

经过不断地优化,才使得掌控板计步器更加实用。

优化后代码如下:


到这里,一个较为实用的计步器已经产生了。我们一起看下视频

[media=x,500,375]]

同时,我们也可以添加更多的功能,比如说,用户连续按A键,可以连续切换屏幕显示“步数”、“消耗热量/卡路里”、“快跑/慢跑步数”等等功能。这就需要我们对收集的数据进行更加细致的分析。那么,如何实现呢?大家一起先来试试吧!

5

点赞

1326 次阅读3 条评论5 人赞
3条评论