ステッピングモーターを使ったPlotcarは、距離や回転が正確なので様々なところで活用されています。ただ、micro:bit上のマトリックスLEDが同時使用できない仕様になっています。
なぜ、このような仕様になっているかというと、micro:bit上のI/Oポートが足りないためなんです。
こちらが、micro:bitの入出力の配置図です。フリーに使えるのが、P0,P1,P2,P13,P14,P15,P16の7個しかありません。
そこで、マトリックスLEDを制御しているI/Oポート(P3,P4,P6,P7,P9,P10(V2ではP9は使用せず))をPlotcarへ振り分けて、そのかわりにmicro:bitのマトリックスLEDを禁止しています。
(ちなみに、このようにI/Oポートが不足した場合には、シフトレジスタやマルチプレクサ、I/OエキスパンダーなどのICを使用して増やすことも可能ですが、価格の面や回路などの面も考えて、Plotcarは使用していません)
では、どうにかしてセンサーの値を確認する方法はないのでしょうか。ここでは、2つの方法について解説します。
方法1 シリアル通信で、パソコン上で確認する
micro:bitとパソコンがUSBケーブルで接続している場合、簡単にmicro:bitのデーターを取り込みできます。たとえば、Plotcar上の右ラインセンサーの値を表示させるには、次のようなプログラムを組みます。そして、ダウンロード後に表示される「データを表示 デバイス」をクリックするとリアルタイムなデーターが表示されます。非常に速く表示されるので、センサー値などを調べる場合は特に役立ちます。
方法2 I2C通信を使ってOLEDディスプレイに表示させる方法
Plotcar上には、I2C用の5ピンが設置されています。
このピンにディスプレーやAIカメラ、センサーなどを並列に接続して増設していくことが可能です。そこで、こちらにOLEDディスプレイを取り付けてみました。
接続は、G,SDA,SCL,3Vの表示を見ながら、4線を間違いないようにPlotcarとOLED間で結ぶだけです。
あとは、MakeCodeエディタの拡張機能から、「OLED」を検索してインストールします。ただ、この際にいろいろ出てきますが、文字が大きく表示できるのは下に表示した「OLED12864_I2C」でしたので、これを使用します。
次のようにプログラムをして、ラインセンサーの右の値を表示させました。
(余計な部分も含まれています)
うまくやると、グラフィックも表示可能です。
micro:bitのマトリックスLEDは気軽に数や文字を表示できるので便利ですが、変化する値を確認するには遅すぎますし、一度に表示させるデーターも限られます。シリアル通信やOLEDディスプレイを使うと、情報量が飛躍的に増えるので、何か開発したい時などにはとても役立つ方法です。I2Cに接続できるデバイスはいろいろあるので、みなさんもチャレンジしてみてください。