磁力センサーを使ってみる

マイクロビットにはコンパス(方位磁石)の機能がありますが、方位磁石で使う磁力センサーのみを利用することも出来、面白い機能を作る事が出来ます。


例えば、



車のおもちゃに磁石を搭載することで、車が近づいてきた事を認識するようなセンサーを作る事が可能です。


磁力センサーについて詳しく見ていきます。




MakeCodeを開き、



のコードをマイクロビットにフラッシングしてみます。


MicroPythonのコード

from microbit import *

# コンパスのキャリブレーション
compass.calibrate()

while True:
    if compass.get_x() > 0:
        display.show(Image('00900:'
				'00900:'
				'99999:'
				'00900:'
				'00900'))
    else:
        display.show(Image('00000:'
				'00000:'
				'99999:'
				'00000:'
				'00000'))

磁力(μT)xブロックのx(MicroPythonではcompass.get_x()の箇所)ですが、

※画像:Movement data logger | micro:bitより引用


マイクロビットの横方向の磁力を感知するようになります。


コンパスを調整するブロック(MicroPythonではcompass.calibrate()の箇所)ですが、最初に方位磁石用の磁力センサーの調整を行い磁力の測定の精度を高めます。

※コンパスの調整を行わなくても、磁力の測定は可能です

※マイクロビットのバージョンによって、コンパスの調整が不要になります。

※確認方法はコンパスの調整のブロックにカーソルを当てると不要の有無の表示があります


マイクロビットにフラッシング後に



のように文字列がスクロールした後にディスプレイの中心が点灯したら、マイクロビットを色んな方向に傾けてすべてのLEDを点灯させたら調整(キャリブレーション)は終了です。


調整後にx方向に磁石を近づけてみると、



磁石のN極をマイクロビットに近づけた場合はディスプレイにマイナスが表示され、磁石のS極を近づけるとディスプレイにプラスが表示されます。




磁力(μT)xブロックと同じようにyの挙動も確認してみます。


MakeCodeのコード


MicroPythonのコード

from microbit import *

# コンパスのキャリブレーション
compass.calibrate()

while True:
    if compass.get_y() > 0:
        display.show(Image('00900:'
				'00900:'
				'99999:'
				'00900:'
				'00900'))
    else:
        display.show(Image('00000:'
				'00000:'
				'99999:'
				'00000:'
				'00000'))




磁力(μT)zブロックの挙動も確認してみます。


MakeCode


MicroPython

from microbit import *

# コンパスのキャリブレーション
compass.calibrate()

while True:
    if compass.get_z() > 0:
        display.show(Image('00900:'
				'00900:'
				'99999:'
				'00900:'
				'00900'))
    else:
        display.show(Image('00000:'
				'00000:'
				'99999:'
				'00000:'
				'00000'))

京都の東本願寺で開催されているプログラミング教室で講師をしています。
詳しくはTera schoolを御覧ください。
大阪府高槻市でプログラミング教室を開設しています。
同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。