1. 元件清單:Micro:bit主板×1,電池盒×1。

2. 實(shí)用功能:小bit上有一個(gè)厲害的功能——加速度計(jì)。它可以實(shí)現(xiàn)很多好玩的功能,現(xiàn)在我們利用這個(gè)功能制作一個(gè)計(jì)步器。
3. 編程思路:
錯(cuò)誤的思路:組件中有默認(rèn)的振動(dòng)監(jiān)測(cè)積木,直接的編程思路是當(dāng)振動(dòng)時(shí)步數(shù)變量加1。但實(shí)際使用你會(huì)發(fā)現(xiàn)測(cè)量數(shù)值非常不準(zhǔn),必須有較大的振動(dòng)才會(huì)記錄,且計(jì)量間隔也過長(zhǎng),走快點(diǎn)就會(huì)漏計(jì),沒有實(shí)用價(jià)值。
改進(jìn)思路:為了準(zhǔn)確計(jì)步我們需要合理提高靈敏度保證走步的振動(dòng)被記錄同時(shí)也要忽略更小的振動(dòng)。還要合理控制測(cè)量間隔時(shí)間,避免一步被記錄成兩步或者兩步被并作一步。Micro:bit能夠精確獲取本身的重力加速度值,我們按一定時(shí)間間隔計(jì)算兩次加速度值的差值,如果該差值的絕對(duì)值大于某個(gè)合適值就認(rèn)為走了一步,步數(shù)變量加1。
按A鍵顯示步數(shù)值即可。
編程后需要通過實(shí)際測(cè)量反復(fù)修改最終確定時(shí)間間隔和加速度差值,通過調(diào)試完善程序的監(jiān)測(cè)效果。
時(shí)間間隔可以用走100步測(cè)量平均時(shí)長(zhǎng)的辦法預(yù)先估算,我自己的平均時(shí)長(zhǎng)是半秒左右。
加速度差值最終確定在100到200之間比較合適,太大容易漏步,太小容易計(jì)多。
4. 編程實(shí)現(xiàn):
(1) 設(shè)置變量:步數(shù)、X1、X2,用于記錄兩次加速度值。
(2) 初始化:步數(shù)為零,X2記錄初始加速度值一次。
(3) 無限循環(huán):記錄加速度值X1,計(jì)算X1和X2差值的絕對(duì)值,判斷大于150即計(jì)算一步。
(4) 將X2的值設(shè)為X1,作為新一次計(jì)算的基礎(chǔ)。
(5) 暫停550ms,等待下一次循環(huán)。
(6) 按A鍵顯示當(dāng)前步數(shù)。
5. 調(diào)試:
將hex文件傳輸進(jìn)Micro:bit,連接電池盒,實(shí)際測(cè)量幾次,看看數(shù)值設(shè)置是否合理并根據(jù)自己的情況進(jìn)行優(yōu)化。