查看: 305|回复: 4

[入门教程] 掌控板计步器【三轴加速度传感器系列2】

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

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

       掌控板三轴加速器分别有X轴、Y轴和Z轴方向的加速度,我们应该取哪个轴的加速度呢?,我们不能单独取哪个轴的加速度来进行判断,因为人们往哪个方向走都有可能。因此,经过多次测试,我们取这三轴的矢量和进行判断。三轴加速度矢量和计算公式如下:
202002211754..png
所以使用图形化代码表示这个公式就是
202002211638..png
注:此次实验我们使用的是mPython 0.5.1-beta4版本,所以三轴加速度的矢量和需要我们自己编写。而使用mind+软件则可以直接使用“三轴加速度的强度”即可


掌控板计步器怎么做呢?

1. 定义新变量step,表示当前已经走过的步数,初始值为0.
202002215990..png
2. 判断三轴加速度的矢量和是否大于1,如果大于1,说明已经走了一步,则表示变量的步数累加1.
202002213041..png
3. 在屏幕上使用“仿数码管44像素”显示当前步数
202002212881..png
4. 一直重复执行上面的代码就可以简单的实现了,贴出上面完整代码。
202002216569..png
到了这里,计步器原理已经实现了。如果您这是简单的研究,到这里就可以结束了。
但是想要这个计步器更顺溜,还需要优化。请接着往下看:

我们观察上面的代码:

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

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

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

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

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

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

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

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

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

        优化后代码如下:
202002219908..png
到这里,一个较为实用的计步器已经产生了。



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

















风悠扬0539  中级技师

发表于 2020-2-21 16:20:31

非常的好啊,研究一下学习学习
回复

使用道具 举报

DFrJ5KYVQaH  中级技匠

发表于 2020-2-22 10:27:14

好贴,收藏学习中
回复

使用道具 举报

glwz007  中级技师

发表于 2020-2-22 19:26:47

谢谢分享!
回复

使用道具 举报

gada888  版主

发表于 2020-2-23 11:45:21

满有意思
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2020 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail