运动
你的 micro:bit 带有加速度计,可测量三个方向上的运动:
- X — 左右倾斜
- Y — 前后倾斜
- Z — 上下移动
每个轴都有对应方法,返回正数或负数,单位是 milli-g(毫 g)。读数为 0 表示该轴方向「水平」。
简易水平仪
例如用 get_x 测量 X 轴是否水平:
from bibo import *
while True:
reading = accelerometer.get_x()
if reading > 20:
display.show("R")
elif reading < -20:
display.show("L")
else:
display.show("-")
平放 micro:bit 时应显示 -;向左或向右倾斜则分别显示 L 和 R。
程序需要持续响应变化,所以用无限 while 循环。循环里先把 X 轴读数存进 reading。加速度计很灵敏,这里把「水平」定在 ±20 以内,因此用 > 20 和 < -20 判断左右;否则显示 -。
Y 轴有 get_y,Z 轴有 get_z。
手机能根据方向旋转屏幕,靠的也是加速度计——和游戏手柄里用来控制方向的传感器是同一类原理。
音乐大乱斗
BiBoPython 在 micro:bit 上的一大乐趣,是把不同能力串联起来。例如把它变成(某种)乐器。
若使用外接扬声器,可像 音乐 教程那样,用鳄鱼夹把 pin 0 和 GND 接到扬声器正负极(接扬声器时不分正负)。也可以直接用 micro:bit 内置扬声器。

若把加速度计的读数当作音高会怎样?试试看:
from bibo import *
import music
while True:
music.pitch(accelerometer.get_y(), 10)
关键就在最后一行:把 Y 轴读数嵌套进 music.pitch 作为频率,每个音只持续 10 毫秒,这样倾斜时音高变化很快。无限循环让程序一直跟着 Y 轴变化走。
前后倾斜 micro:bit,Y 轴读数为正时,音高会随之改变。
想象一整排 micro:bit 组成「管弦乐队」——能「演奏」出曲调吗?你会怎样改进程序,让声音更「像音乐」?
你已学完本批基础教程。加速度计还能识别摇晃、自由落体等手势——那是另一套很有意思的玩法。