制作坊Micro:Bit较精确的运动数据录入与分析(计步器升级版) 专区
Micro:Bit较精确的运动数据录入与分析(计步器升级版)

简介用Micro:Bit主板实现更准确地计步。(内附.hex文件、JavaScript源码、Python源码)
计步效果相对于检测振动准确。
改编自https://mc.dfrobot.com.cn/thread-30010-1-1.html
开启Micro:Bit后显示爱心即为计步中,触摸徽标查看运动数据(包含:步数、速度(Time/Steps)与数据评价)。
以下源代码已使用MakeCode成功编译。
Python源码:
def on_logo_pressed(): basic.clear_screen() led.stop_animation() basic.show_number(Steps) basic.show_string("steps ") basic.show_number(input.running_time() / 1000 / Steps) basic.show_string("s/steo") if input.running_time() / 1000 / Steps < 1: basic.show_icon(IconNames.HAPPY) else: basic.show_icon(IconNames.SAD) basic.pause(2000) basic.show_icon(IconNames.HEART) input.on_logo_event(TouchButtonEvent.PRESSED, on_logo_pressed) x2 = 0 Steps = 0 basic.show_icon(IconNames.HEART) Steps = 0 x1 = input.acceleration(Dimension.X) def on_forever(): global x2, Steps, x1 x2 = input.acceleration(Dimension.X) if abs(x1 - x2) >= 350: Steps += 1 x1 = input.acceleration(Dimension.X) basic.pause(500) basic.forever(on_forever)
JavaScript源码:
input.onLogoEvent(TouchButtonEvent.Pressed, function () { basic.clearScreen() led.stopAnimation() basic.showNumber(Steps) basic.showString("steps ") basic.showNumber(input.runningTime() / 1000 / Steps) basic.showString("s/steo") if (input.runningTime() / 1000 / Steps < 1) { basic.showIcon(IconNames.Happy) } else { basic.showIcon(IconNames.Sad) } basic.pause(2000) basic.showIcon(IconNames.Heart) }) let x2 = 0 let Steps = 0 basic.showIcon(IconNames.Heart) Steps = 0 let x1 = input.acceleration(Dimension.X) basic.forever(function () { x2 = input.acceleration(Dimension.X) if (Math.abs(x1 - x2) >= 350) { Steps += 1 } x1 = input.acceleration(Dimension.X) basic.pause(500) })
