M5Stackにいろいろなセンサをつないでみたいと思い、M5Stack用のセンサユニットをいくつか購入しました。

M5Stack用のユニットなので、当然M5Stackにはつながるものと、あまり深く考えずに購入したのですが、早速つないでみようと思ったところ、それぞれのセンサには対応するGROVEポートのタイプがあることに気づきました。
具体的には、GROVEポートのタイプには、「PORT.A I2C」、「PORT.B I/O」、「PORT.C UART」の3種類があります。

それに対し、私の持っているM5Stack Basic本体には「PORT.A I2C」のポートしかありません。つまり、M5Stack Basicには、「PORT.A」タイプのセンサユニットしかつなぐことができません。「PORT.A」タイプ以外のセンサユニットをつなぎたければ、M5Stack Fireなど、より高価格なM5Stackを用意しなければなりません。
私は特に、アナログ信号を出力するセンサをGROVEポートにつなぎたいと思っていたので、これはとても残念です。
何か対策はないかと調べていたところ、「M5Stack PLUSエンコーダモジュール」というものを見つけました。
いくつかの機能をもったM5Stack用の拡張モジュールなのですが、これには「PORT.B」、「PORT.C」のGROVEポートがついています。M5Stack本体にスタックすることで、M5Stack Basicでも、これらのポートを使えるようになります。
今回の目的には、うってつけのモジュールです。
そんな訳で、早速「M5Stack PLUSエンコーダモジュール」を購入し、試してみることにしました。
このようなモジュールです。


これをM5Stackにスタックすることで、各タイプのGROVEポートが使えるようになります。


このように、「M5Stack PLUSエンコーダモジュール」には2種類のGROVEポートがついているので、元々M5Stack BasicについているGROVEポートとあわせて、合計3種類になります。

ところで、私が購入した「M5Stack PLUSエンコーダモジュール」は、以下のように、上側のポートに「UART」、下側のポートに「GPIO」と印字されていますが、これは逆で、実際は上側の黒いポートが「PORT.B I/O」、下側の青いポートが「PORT.C UART」です。

最初、何も気にせず、印字のとおりにセンサユニットをつないでしまったため、正常動作せず、しばらくなやんでしまいました。
なお、現在のM5STACK社のホームページに掲載されている写真を見ると、印字は修正されているようです。

これで、全てのM5Stack用センサユニットが、M5Stack Basicで使えるようになりました。
なお、私がM5Stack、M5StickCの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
ごく基本的なところから、かなり複雑なスケッチや、ネットワーク接続など、比較的高度なものまで、つまづかずに読み進めていけるような構成になっており、大変わかりやすい本です。