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

この記事ではコンパス(地磁気センサー)の機能と、コンパスを使った簡単なプログラムを紹介します。

コンパスは、方位や磁力を測ることができる機能です。

小学校の頃に使った方位磁針とほぼ同じ機能なのでイメージがつきやすいのではないでしょうか。

 

スポンサーリンク

コンパス(地磁気センサー)とは

加速度センサーとコンパス

マイクロビットの裏面、「COMPASS」と書いてある横の小さなチップがコンパス(地磁気センサー)です。

コンパスは、地球の磁場を検知し、方位磁力を測ることができます。

画像では、加速度センサー(ACCELEROMETER)と同じチップにありますが、古いものは別々になっています。

どちらの場合でも機能は同じです。

 

身の回りで使われている例

地図アプリ

  • カーナビやスマートフォンの地図アプリ
    自分が向いている方角が分かる機能。
    ポケモンGOなどのゲームでも使われています。
  • 金属探知機

 

スポンサーリンク

今回作ったプログラム ~なんちゃって金属探知機~

なんちゃって金属探知機

地球の表面の地磁気はおよそ35~70μTぐらいあるそうです。

もし近くに磁石や金属類があれば、その値は大きくなります。

この性質を使って、なんちゃって金属探知機を作りました。

磁力が70μT以下の場合、磁力の値をグラフにして表示し、マイクロビットを金属に近づけた時、LEDに「おばけ」のアイコンを表示します。

 

MakeCodeエディターでプログラミング

MakeCode(メイクコード)エディターの画面を開いて、実際にプログラミングしてみましょう。

MakeCodeエディターの基本的な使い方は、下の記事にまとめています。

 

プログラム

プログラムの内容は下の画像のようになります。

金属探知機プログラム

 

変数ブロック

変数「磁力」

「磁力」は変数です。変数のカテゴリで「変数を追加する」ボタンをクリックして作ってください。

変数の値を変える「変数~を~にする」ブロックも変数のカテゴリにあります。

変数とは、データを一時的に覚えておくための入れ物のことです。
プログラムで人間が分かるように名前を付けます。

 

 

磁力を取得するブロック

磁力を取得

「磁力(μT)」ブロックは磁力の大きさを取得します。入力カテゴリのその他にあります。

単位はμT(マイクロテスラ)で、磁場の方向に応じてプラスやマイナスの値になり、金属や磁石があると大きな値を示します。

  • x : x軸(南北)の磁力の大きさを取得。
  • y : y軸(東西)の磁力の大きさを取得。
  • z : z軸(上下)の磁力の大きさ取得。

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

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

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

 

もし~ならブロック

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

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

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

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

 

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

棒グラフを表示

でなければ(磁力が70以下の場合)、磁力の値を棒グラフで表示してみましょう。

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

グラフにする「値」「最大値」を設定し、25個のLEDを目盛りに見立てて表示します。(ひと目盛りの大きさは最大値の25分の1です。)

数値を表示するより探索している感がでますよ!

 

実機でテストしてみよう

キャリブレーション(較正)する

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

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

マイクロビットにプログラムを書き込んだ直後、コンパスのキャリブレーション(較正)が必要になります。

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

測定器で標準通りの値を得るために、
標準器などを用いてその機器の偏りを計測したり、
正しい値になるよう調整したりすること。(IT用語辞典より)

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

LED画面に「TILT TO FILL SCREEN」と表示されるので、マイクロビット本体をグルグルかたむけて、LEDをすべて点灯させてください。

スマイルマークが表示されたらキャリブレーションは終了です。

 

金属に近づけてみる

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

キャリブレーションが終了したら、実際に金属に近づけてみましょう。

フライパンやハサミ、スピーカーなどがオススメです。

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

 

まとめ

コンパス(地磁気センサー)の機能と、コンパスを利用した簡単なプログラムを紹介しました。

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

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

 

 

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