熊おふし五郎が行く

主にマイコンボードを動かした記録を書いています

北、南、東、西の方角を示す

概要

Micro:bitボードを水平に持ってUSBコネクタがある向きの方角をLEDディスプレイに表示します。Micro:bitに搭載されている地磁気センサが方角を検出し、LEDディスプレイに北(N)/南(S)/東(E)/西(W)を表示します。

f:id:bear_9973:20200613094943p:plain:w400
概要図

関数一覧

地磁気センサの値を読込む関数を使います。

compass.heading()

コンパスの方位を0〜360の範囲の整数を出力します。北を0として時計回りに度数で表します。

プログラム

プログラムを以下に示します。

from microbit import *

# コンパスの初期化
compass.clear_calibration()
while not compass.is_calibrated():
    compass.calibrate()
    sleep(100)

# LEDディスプレイの初期化
display.clear()

# 方位をLEDディスプレイに表示
while True:
    sleep(100)
    direction_num = compass.heading()
    if direction_num > 45 and direction_num <= 135:
        display.show("E")
    elif direction_num > 135 and direction_num <= 225:
        display.show("S")
    elif direction_num > 225 and direction_num <= 315:
        display.show("W")
    else:
        display.show("N")

結果

Micro:bitが方角を示していることを確認できました。ただ、なぜか東の方角が正しく向いていないようです。
ドローンにも地磁気センサが使われているそうですが、なぜ必要なのかなんとなくわかったような気がします。

f:id:bear_9973:20200613095140j:plain:w300
動作結果