【编程学习】Micro:bit做个实用计步器

2020年2月14日 17 : 23

1. 元件清单:Micro:bit主板×1,电池盒×1。

2. 实用功能:bit上有一个厉害的功能——加速度计。它可以实现很多好玩的功能,现在我们利用这个功能制作一个计步器。

3. 编程思路:

错误的思路:组件中有默认的振动监测积木,直接的编程思路是当振动时步数变量加1。但实际使用你会发现测量数值非常不准,必须有较大的振动才会记录,且计量间隔也过长,走快点就会漏计,没有实用价值。

 

改进思路:为了准确计步我们需要合理提高灵敏度保证走步的振动被记录同时也要忽略更小的振动。还要合理控制测量间隔时间,避免一步被记录成两步或者两步被并作一步。Micro:bit能够精确获取本身的重力加速度值,我们按一定时间间隔计算两次加速度值的差值,如果该差值的绝对值大于某个合适值就认为走了一步,步数变量加1。

A键显示步数值即可。

编程后需要通过实际测量反复修改最终确定时间间隔和加速度差值,通过调试完善程序的监测效果。

时间间隔可以用走100步测量平均时长的办法预先估算,我自己的平均时长是半秒左右。

加速度差值最终确定在100到200之间比较合适,太大容易漏步,太小容易计多。

 

4. 编程实现:

(1)设置变量:步数、X1、X2,用于记录两次加速度值。

(2)初始化:步数为零,X2记录初始加速度值一次。

(3)无限循环:记录加速度值X1,计算X1和X2差值的绝对值,判断大于150即计算一步。

(4)X2的值设为X1,作为新一次计算的基础。

(5)暂停550ms,等待下一次循环。

(6)A键显示当前步数。

5. 调试:

hex文件传输进Micro:bit,连接电池盒,实际测量几次,看看数值设置是否合理并根据自己的情况进行优化。


分享到: