🦁

M5Stack BasicとCore2用ポート拡張モジュールでIOを使う

2023/01/17に公開

1. 概要

フローセンサ3つ(デジタル入力でパルスの数を計測)を使用することになったのでM5Stackを使ってみました。

理由は、

  • センサからの入力があるかが確認しやすい
  • コネクタで抜き差ししやすい

からです。

M5Stack Basic(LCDがあるので値を確認しやすい)にCore2用ポート拡張モジュール(Grove用ケーブルで接続できる)を使ってGROVEコネクタで接続できるようにしました。
初めてM5Stackを使うので使えるIOなどが分からずちょっと詰まったのでメモ。

2. 機材

GROVEケーブルは信号線が白と黄色2本ありますが、フローセンサ1つにケーブル1本をつなげたいので黄色1本のみを使用する想定です。

3. GROVEポートの確認

M5Stack BasicにはPORT-Aがあり、拡張モジュールをつけるとB、C、D、Eが使えるようになる

Port名
PORT-A(RED) G22(I2C) G21(I2C) 5V GND
PORT-B(BLACK) G36 G26 5V GND
PORT-C(BLUE) G13 G14(LCD CS) 5V GND
PORT-D(LIME GREEN) G34, G22, G3 G35, G21, G1 5V GND
PORT-E(YELLOW) G27(LCD R/S), G2, G0 G19(SD MISO), G25(Speaker), G2 5V GND
  • D, EはDIPスイッチで切替可能

とはいえ、いろいろなピンと共用されているので、そのまま使おうとしても使えないことが多かった。

4. 各種機能の無効化

https://github.com/m5stack/m5-docs/blob/master/docs/ja/api/system.md
上記のドキュメントを参考に、LCD以外のSDカード、I2CをOFFにした。

M5.begin(true, false, false, false); /// void begin(bool LCDEnable=true, bool SDEnable=true, bool SerialEnable=true,bool I2CEnable=false);

これでPORT-Aが使えるようになり、PORT-Bももともと使えたので問題なく、PORT-CはLCDに使っているので使えず、PORT-DはG35で使用可能でした。
ただPORT-EについてはG19もG2も何故か使えず。G25は使えたけどスピーカーから入力値の大きさに応じた音が出るので使わずです、、。

結局PORT-A(G21)、PORT-B(G26)、PORT-D(G35)の3ポートを使用しました。
PORT-Eについてはよく分からず。なにか分かれば更新します。

Discussion