7.3 指南针
Contents
30. 7.3 指南针#
micro:bit主板带有一个指南针,可以精确的根据地球磁场判断方向(根据初始化情况而定),每次调用前都需要初始化模块,如果你需要设计制作气象站,可以根据此模块计算风向。
30.1. 指南针API#
API | 描述 |
---|---|
microbit.compass.calibrate() |
初始化指南针模块,详情见温馨提示。 |
microbit.compass.is_calibrated() |
如果指南针已成功校准吗,返回True否则返回False。 |
microbit.compass.clear_calibration() |
撤销校准,使指南针再次校准。 |
microbit.compass.get_x() |
根据磁场力,给出X轴上的读数,返回值为正整数或者负整数。 |
microbit.compass.get_y() |
根据磁场力,给出y轴上的读数,返回值为正整数或者负整数。 |
microbit.compass.get_z() |
根据磁场力,给出z轴上的读数,返回值为正整数或者负整数。 |
microbit.compass.heading() |
根据上述数值,计算出方向,以度为单位表示,顺时针方向,正北方返回值为0,范围为0~360度。 |
microbit.compass.get_field_strength() |
测量设备周围磁场强度,返回值为整数。 |
***温馨提示:***每次使用指南针之前都需要初始化校准,校准是一个小游戏,旋转移动micro:bit使LED屏上完成一个圆,校准成功会显示一个笑脸。
30.2. 示例:简易的指南针#
用指南针模块和点阵显示屏模块完成一个简单的指南针,还记得在点阵显示屏那一章中提到了内置图像有
clocks
时钟类型,时钟的时针就像是指南针的表针一样,可以用这个来表示北方。
from microbit import *
compass.calibrate() #初始化指南针模块
while True:
sleep(100)
needle = ((15 - compass.heading()) // 30) % 12 #处理指南针模块返回参数
display.show(Image.ALL_CLOCKS[needle]) #根据参数needle,显示ALL_CLOCKS列表中的图像来指示北方方向