マイクロビット(micro:bit)には、方角や磁力を測ることができるコンパス(地磁気センサー)がついています。
この記事ではコンパス(地磁気センサー)の機能と、コンパスを使った簡単なプログラムを紹介します。
方位磁針とほぼ同じ機能なのでイメージがつきやすいと思います。
コンパス(地磁気センサー)は方角や磁力を測ることができる
マイクロビットの裏面、「COMPASS」と書いてある横の小さなチップが、コンパス(地磁気センサー)です。地球の磁場を検知し、方角や磁力を測ることができます。
画像では、加速度センサー(ACCELEROMETER)と同じチップにありますが、古いものは別々になっています。どちらの場合でも機能は同じです。
「方角(°)」ブロックは方角、「磁力(μT)」ブロックは磁力の大きさを取得できます。
方角ブロック
「方角(°)」ブロックは、北を基点として、時計回りに、0~359の値を取得できます。入力カテゴリにあります。
北は0度、東は90度、南は180度、西は270度です。
たとえば、磁気センサーが270度を取得した場合は、西を向いていることになります。
磁力ブロック
「磁力(μT)」ブロックは、磁力の大きさを取得します。入力カテゴリのその他にあります。
単位はμT(マイクロテスラ)で、磁場の方向に応じてプラスやマイナスの値になり、金属や磁石があると大きな値を示します。
- x : x軸(南北)の磁力の大きさを取得。
- y : y軸(東西)の磁力の大きさを取得。
- z : z軸(上下)の磁力の大きさ取得。
身の回りで使われている例
- カーナビやスマートフォンの地図アプリ
自分が向いている方角が分かる機能。
ポケモンGOなどのゲームでも使われています。 - 金属探知機
今回のプログラム:なんちゃって金属探知機
地球の表面の地磁気はおよそ35~70μTぐらいあるそうです。
もし近くに磁石や金属類があれば、その値は大きくなります。
この性質を使って、なんちゃって金属探知機を作りました。
磁力が70μT以下の場合、磁力の値をグラフにして表示し、マイクロビットを金属に近づけた時、LEDに「おばけ」のアイコンを表示します。
MakeCodeエディターでプログラミング
MakeCode(メイクコード)エディターの画面を開いて、実際にプログラミングしてみましょう。
MakeCodeエディターの基本的な使い方は、「【マイクロビット】MakeCode(メイクコード)エディターの使い方」にまとめています。
プログラム
変数ブロック
「磁力」は変数です。変数のカテゴリで「変数を追加する」ボタンをクリックして作ってください。
変数の値を変える「変数~を~にする」ブロックも変数のカテゴリにあります。
プログラムで人間が分かるように名前をつけます。
磁力を取得するブロック
「磁力(μT)」ブロックで磁力の大きさを取得します。入力カテゴリのその他にあります。
今回は、磁力の大きさを知りたいだけで、方向を示すプラスかマイナスかは関係ありません。
なので、磁力の値を「絶対値」ブロックを使って絶対値にしましょう。「絶対値」ブロックは、計算のカテゴリにあります。
もし~ならブロック
地球の表面の地磁気はおよそ35~70μTぐらいです。
近くに金属があれば、磁力の値は大きくなるので「磁力が70より大きい」時、「おばけ」のアイコンを表示するようにします。
「もし~なら」ブロックと「○○>□□」ブロックなど、値をくらべるブロックは論理のカテゴリに、「アイコンを表示」ブロックは基本のカテゴリにあります。
「棒グラフを表示する」ブロック
でなければ(磁力が70以下の場合)、磁力の値を棒グラフで表示してみましょう。
「棒グラフを表示する」は、のLEDのカテゴリにあります。
グラフにする「値」と「最大値」を設定し、25個のLEDを目盛りに見立てて表示します。(ひと目盛りの大きさは最大値の25分の1です。)
数値を表示するより探索している感じがでますよ!
実機でテストしてみよう
プログラムをマイクロビットに転送してテストしましょう。
金属に近づけてみてください。フライパンやハサミ、スピーカーなどがオススメです。
LEDに「おばけ」が表示されたでしょうか。
方角ブロックはキャリブレーション(較正)が必要
「方角(°)」ブロックを使用している場合、コンパスのキャリブレーション(較正)が必要です。
キャリブレーション(較正(こうせい))とは、
測定器で標準通りの値を得るために、標準器などを用いてその機器の偏りを計測したり、正しい値になるよう調整したりすること。(IT用語辞典よりより)
つまり、コンパスが正しく動くように調整することです。
マイクロビットにプログラムを書き込んだ直後、LED画面に「TILT TO FILL SCREEN」と表示されるので、マイクロビット本体をグルグルかたむけて、LEDをすべて点灯させてください。
スマイルマークが表示されたらキャリブレーションは終了です。
まとめ
コンパス(地磁気センサー)の機能と、コンパスを利用した簡単なプログラムを紹介しました。
MakeCodeエディターのホーム画面にあるチュートリアル(ツール)で、「方角」ブロックを使ったコンパスを作ることができます。
こちらも作ってみることをおススメします。
他のマイクロビットの機能もまとめています。よかったらこちらもご覧ください。