M5Stack用センサをM5Stack Basicに繋げたら使えなかった話

これはCPS Lab Adbent Calendar 2019 の17日目の予定だった記事です

はじめに

こんにちは。えもTです
大遅刻で申し訳ない…
本当に何を書けばいいのか思いつかなかったのでセンサをいじっていて感じたことをなんとなく書いていきます

内容

センサには様々な種類がありますがその中にはM5Stack用センサとして売られているものもあります。

私は土中水分を測りたかったのでこのM5Stack用土壌水分センサユニットを使ったのですがその時にちょっとした勘違いをしていました。
まずこの製品の箱の中にはGrove端子のついているセンサとGrove用のケーブルが中に入っています。
そしてM5Stackには元から側面にGroveコネクタが付いています。

画像3

ということはそのまま繋げられるじゃない!やったね!
さっそく繋げてサンプルコードを書き込んでみるわけですね!
はい…動きません…M5Stackなのに…なぜ…?

どうしてダメだったのか

このとき使っていたのはM5Stack Basicだったのですが、これについているのはI2C用のポートが一つだけです。しかしながらちゃんと確認してみるとこのセンサはアナログピンまたはデジタルピンからデータを読み取るものでした。だから使えなかったわけですね。
これをBasicで使う場合は側面についているピンヘッダ/ピンソケットにつなげることになります。とりあえず繋げてみたのがコチラ

画像1


M5Stack用とは

ここで素朴な疑問。なぜそのままくっつけて使えないのに名前がM5Stack用センサなのでしょうか?ここで少し別のM5Stackの話になります

M5Stackの種類の中にM5Goという種類のものがあります。

画像2


レゴ互換の接続パーツが裏についているのが特徴ですね。
またピンソケットがなくなっている代わりに上側にグローブコネクタが追加で二つ付いています。そう、元からあったI2CのAポートに加えてI/OのBポート、UARTのCポートが追加でくっついているのです。

先ほどBasicでグローブ接続できないじゃないのと言っていたセンサはこちらのポートに接続するためのものだったわけですね。

おわりに

今回一番最初に動かない…?となってしまったのですがそもそもちゃんと製品の説明やサンプルのソースコードを確認しておけば間違えることはなかったでしょう。同じM5Stack用のユニットでもそれぞれどのポートにつなげるかは違うのでちゃんと事前に確認しておくことが重要だなと思いました。

CPS Labの皆さんはとても落ち着いているし賢いので心配していませんが焦って同じようなミスをしないように気を付けましょう。