これまでM5StickCを使ってきた簡易IoTエッジデバイスをATOMに置き換えたら消費電力を更に削減できるかな、と考えました。常時稼働させるデバイスは商品電力を下げることで同時に発熱の抑制も期待できます。試しにBME280を搭載した温湿度センサーを使った装置をM5StickCからATOMへ移植しました。
ATOM Lite / Matrixをディスプレイがないだけだと甘い認識?をしていて、GROVE接続したプログラムが動かないことにはまってしまいました。
結論から言えば、GROVEのポート番号の違いをきちんとプログラムに反映していないだけでした…。
M5StickCではGROVE端子の信号線はG32, G33です。これは本体裏面に貼られているシールにもきちんと明記されています。
同じようにATOM Lite / Matrixの裏面を見ると、信号線はG26, G32となっています。
つまりGROVEで用いる信号線が違うので、M5StickCで動いていたプログラムそのままだと当然、ATOMでは動作しません。ちゃんとシールに明記されていることですし、当たり前のことなのですが、このことに気づくのに2日間かかりました…。
具体的なプログラムの修正としては以下のような行を初期化部分(GROVEを使用する前)に書くだけです。私はsetup関数の前の方(M5.begin()の直後)に書きました。
Wire.begin(26,32);