28196| 7
|
[入门教程] 掌控板计步器【三轴加速度传感器系列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。 经过不断地优化,才使得掌控板计步器更加实用。 优化后代码如下: 到这里,一个较为实用的计步器已经产生了。 同时,我们也可以添加更多的功能,比如说,用户连续按A键,可以连续切换屏幕显示“步数”、“消耗热量/卡路里”、“快跑/慢跑步数”等等功能。这就需要我们对收集的数据进行更加细致的分析。那么,如何实现呢?大家一起先来试试吧! |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed