n:bit 磁力センサでお宝をさがせ!

4.棒グラフで探す・・・
  磁力が強い=バーが多い : 弱い=バーが少ない

磁力の強弱を、micro:bitのLED画面に棒グラフ表示して、磁石を探知するプログラムです。

 

「棒グラフを表示する」ブロックは、値と最大値に基づいて、縦方向の棒グラフをLED画面に表示します。
値が0のときはLED画面の1dot(1個)だけ点灯し、値が増えるにつれて点灯するLEDの数が増えていきます。「最大値」を超えると全dotが点灯します。

このプログラムでは最大値を3000としたので、3000μT以上の磁力のときは全点灯するグラフになります。

なお、このブロックの面白い機能として、「最大値」に0に設定しておくと、「最大値」を自動調整してくれます。
試しに、このプログラムで「最大値」を0にして磁石探しをしてみました。
すると、弱い磁石にもうまくグラフ表示するようでした。
磁石探しをするだけなら、この機能を使っても良さそうですね。

他に注意したいのは、「アイコンを表示」や「数を表示」ブロックと同じように、「棒グラフを表示する」ブロックを実行したときに表示更新する、ということです。
グラフを連続変化させたいときは、このブロックを頻繁に実行する必要があります。
更新間隔がながいと、パラパラ表示にみえるので、何回か試してタイミングを調整します。

【ミニ知識4】磁気センサ
micro:bitでは磁力を3軸地磁気センサ(NXPセミコンダクタ社製MAG3110)を使って測定します。磁力(μT)は基板裏面から見た時、左右・上下・表裏方向を、それぞれXYZ軸方向の+-値として取得します。
ここまでのプログラムでは、「磁力(μT)絶対値」のみを使ってきました。これはセンサを中心に全方向の磁力値の最大値を取得するという意味です。
磁力があるかどうかは、この方法を使うのが一番適しているでしょう。
一方、磁力には方向があり、「磁力(μT) x」などはプラスやマイナスの値が出力されます。x,y,z空間の中の、磁力線の向きと力を測定します。
x,y,z,のそれぞれの値をしらべることで、磁石のある方向もわかります。

MAG3110はセンサ電子部品のメーカー型番のことで、用途や性能によって型番が違ってきます。
センサ性能を説明したドキュメントのことを仕様書と呼びます。
仕様書にはセンサ部品の性能や使い方の他に、注意事項や禁止事項などいろいろ書かれています。
ハードウェア制作の時には必ず必要で、もちろんプログラムを作る時も重要です。
ただし、MakeCodeでプログラムを作る場合は、この仕様に準じてブロックが用意されているので、こまかい所は気にしなくてよいつくりになっています。
それでも、センサの最低感度、最大値、誤差、などの情報は仕様書で確認しておくとよいでしょう。