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

5.Color LEDの明るさで探す!
   磁力が 強い=明るい : 弱い=暗い 

n:bitⅡのColor LED(WS2812B)を使用する例です。
磁力の強弱を、Color LEDの明るさの変化で、磁石を探知するプログラムです。

※黄色以外の色でも試してみましょう。

n:bitのColor LEDは、micro:bitのP1端子に繋がっています。
「最初だけ」ブロックで、変数stripにColorLEDの接続端子と個数を設定して、neopixelの初期設定をします。
変数stripはオブジェクト変数(クラス)と呼ばれるもので、データの構造や定義などいろいろな要素の骨格みたいな入れ物です。stripに明るさの値や色が直接入るわけではないのです。

つぎに、変数magに磁力の絶対値を入れています。

なお、ColorLEDは1個だけですが、n:bitにはミニプラグ端子が付いており複数個のColor LEDを繋げることもできます。


応用1:Color LEDの色と明るさで探す!

磁力の強弱を、Color LEDの色と明るさの変化で、磁石を探知するプログラムです。

RGB色作りの方法によって、色と明るさの両方を変化させますが、X,Y,Zの方向を色のRGBの値としているので、いろいろなことがColorLEDによって分かるようになります

・R: 横方向xの磁力による赤色の明るさ
・G: 縦方向yの磁力による緑色の明るさ
・B: 裏表方向zの磁力による青色の明るさ

磁力の方向によって色が決まります。また、磁力よってその色の明るさが決まります。
これによって、色と明るさ変化で、磁石の位置まで特定できるようになるかもしれません。


【ミニ知識5】磁気センサの測定範囲
3軸地磁気センサ(MAG3110)は、その名前の通り、元は弱い磁力線である、地磁気を測定するセンサです。
MakeCodeには、方位センサ(コンパス)として使うための「方位(°)」ブロックが用意されています。
このブロックは、北を0°南を180°として、359°までの値を取得します。

3軸地磁気センサは、電子部品仕様としては0から1000μT程度の磁力(μT)を測定範囲としています。
地磁気はせいぜい50μTなので、本来は1000μTまで測れれば十分なはずですが、このテキストでも書いている通り、実際には5000μT以上の値を得ることができています。
これは、本来の仕様書には、地磁気センサとして使うために必要な誤差も含めた、正確な磁力を測定できる範囲を、仕様として書いているためなのです。
このテキストでの実習も実際には、磁石の有り無しが分かれば十分なので、特に気にはしません。
5000μTの磁力が、仕様範囲外で100μT違っても困ることはありません。
作った磁力測定プログラムで、5000μTと5100μTの違いを測ってみるとわかると思います。