M5StackやM5StickCに自作回路を接続するためのGroveポート用Protoユニットを手に入れた。
M5StackやM5StickのGroveポートに自作回路を接続して使うためのものだ。
筐体に丸い穴が2つ開いているのだが、これはLEGOの穴のサイズになっており、LEGOのパーツと組み合わせて好きなように取り付けたりできるようになっている。
中はユニバーサル基板になっていて、片側は大きく口があいている。
大きさはあまり大きくないので大した回路中に入らない。高さも低い。
とりあえず、4ピンをそのまま出して、I2Cのセンサーをいろいろ取り換えて取り付けて実験するのに使っている。
というか、Groveのケーブルにユニバーサル基板をはんだ付けでくっつけてしまうとか、直接コネクタをつけてしまってもよかったような気がする。
温度センサーのTMP102とかを繋いで動かして実験してみた。
あと、赤外線センサーアレイAMG8833を使ってサーモグラフィーをするのに使ってみた。
M5Stackでは、この方法でI2Cにつないだセンサーを普通に動かすことができた。内蔵のI2CバスのピンがそのままGroveポートにも出ているから、普通にI2C用のコードを書けばよい。
M5StickCの場合には、内蔵I2CバスのピンとGroveポートのピンとが異なっている。(HATポートのピンも異なっている。) そのため、Wire.begin();の処理を書くときに、Wire.begin(SDA_PIN,SCL_PIN);という書き方をしてピンを指定してやらなければならない。
そのかわり、内蔵されているセンサーとはI2Cのアドレスの衝突は起こらない。といっても衝突しそうなのはIMU(ジャイロセンサー+加速度センサー)だけなので、普通なら衝突は問題にはならない。
複数のIMUをM5StickCに繋げて動かすというのを試してみたいと考えているので、その場合には衝突を避けられるのは助かる。ただし、複数のIMUの数を増やそうとすると結局は衝突の問題は避けられない。
つづく。