【マイクロビット×メイクコード】コンパス(地磁気センサー)を使った簡単なプログラムを作ってみよう

マイクロビット(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)」ブロックで磁力じりょくの大きさを取得しゅとくします。入力カテゴリのその他ほかにあります。

今回は、磁力じりょくの大きさを知りたいだけで、方向を示しめすプラスかマイナスかは関係かんけいありません。

なので、磁力じりょくの値ねを「絶対値ぜったいち」ブロックを使って絶対値ぜったいちにしましょう。「絶対値ぜったいち」ブロックは、計算のカテゴリにあります。

プラス(+)やマイナス(-)といった、数の符号ふごうをとった数字の部分を絶対値ぜったいちといいます。
たとえば、+3の絶対値ぜったいちは3、-7の絶対値ぜったいちは7になります。

 

もし~ならブロック

もし磁力が70より大きかったら

地球の表面の地磁気ちじきはおよそ35~70μTぐらいです。

近くに金属きんぞくがあれば、磁力じりょくの値あたいは大きくなるので「磁力じりょくが70より大きい」時、「おばけ」のアイコンを表示ひょうじするようにします。

「もし~なら」ブロックと「○○>□□」ブロックなど、値あたいをくらべるブロックは論理ろんりのカテゴリに、「アイコンを表示ひょうじ」ブロックは基本きほんのカテゴリにあります。

 

「棒グラフを表示する」ブロック

棒グラフを表示

でなければ(磁力じりょくが70以下いかの場合)、磁力じりょくの値あたいを棒ぼうグラフで表示ひょうじしてみましょう。

「棒ぼうグラフを表示ひょうじする」は、のLEDのカテゴリにあります。

グラフにする「値あたい」と「最大さいだい値ち」を設定せっていし、25個このLEDを目盛めもりに見立てて表示ひょうじします。(ひと目盛めもりの大きさは最大さいだい値ちの25分の1です。)

数値すうちを表示ひょうじするより探索たんさくしている感じがでますよ!

 

実機でテストしてみよう

プログラムをマイクロビットに転送してテストしましょう。

「磁力じりょく(μT)」のブロックは、シミュレーターで確認かくにんすることができません。

金属きんぞくに近づけてみてください。フライパンやハサミ、スピーカーなどがオススメです。

金属に近づけてテストする

LEDに「おばけ」が表示ひょうじされたでしょうか。

 

方角ブロックはキャリブレーション(較正)が必要

「方角(°)」ブロックを使用している場合、コンパスのキャリブレーション(較正こうせい)が必要ひつようです。

キャリブレーション(較正(こうせい))とは、

測定器そくていきで標準ひょうじゅん通りの値あたいを得えるために、標準器ひょうじゅんきなどを用いてその機器ききの偏かたよりを計測けいそくしたり、正しい値あたいになるよう調整したりすること。(IT用語辞典ようごじてんよりより)

つまり、コンパスが正しく動くように調整することです。

マイクロビットにプログラムを書かき込こんだ直後、LED画面に「TILT TO FILL SCREEN」と表示ひょうじされるので、マイクロビット本体をグルグルかたむけて、LEDをすべて点灯てんとうさせてください。

スマイルマークが表示ひょうじされたらキャリブレーションは終了しゅうりょうです。

 

まとめ

コンパス(地磁気ちじきセンサー)の機能きのうと、コンパスを利用りようした簡単かんたんなプログラムを紹介しょうかいしました。

MakeCodeエディターのホーム画面にあるチュートリアル(ツール)で、「方角」ブロックを使ったコンパスを作ることができます。

こちらも作ってみることをおススメします。

 

他ほかのマイクロビットの機能きのうもまとめています。よかったらこちらもご覧らんください。

タイトルとURLをコピーしました