久しぶりにM5Stackを使ってみた時の話を書いてみました。Qiitaは初心者なので温かい目でお願いしますm(_ _)m
また、以下のものは動作を保証するものではなく、ファームやIDEなどの設定などは割愛している部分が多いです。
概要
- 準備
- M5GOを使ったアプローチ
- ファーム入れる
- UIFlowでプログラミング
- Arduinoを使ったアプローチ
- ファームを入れる
- Arduino IDEでプログラミング
準備
まず、手元にあったM5Stackは少し前に買って遊んでいたものの、しばらく放置プレイ状態になっていたものを、久しぶりに使おうと引っ張り出してきたところから始まります。しかし、単品しか手元になかったため、Switch Science
にてM5Stack用赤外線送受信ユニット(¥728*送料込)をポチりました。
ただ、自分が持ってるM5Stack Gray
では、Groveポート
が Aタイプ のI2C通信専用で、今回のような赤外線(IR)などの部品には非対応だということが判明し、物理的につなげたのが以下の画像。非常にわかりにくくなっていますが、IN
と書かれたピンを36番ポート
に、OUT
を26番ポート
にそれぞれつなげました。どのポートに繋げればいいかは、GroveポートBタイプのピン番号の仕様を参考にしました。
M5StackをM5Goでアプローチ
ファームを入れる
ただ、いざ繋げてみて"Hello World"を書き込もうとしても全くダメだった上に、どのファームを書いたかも忘れてしまったので、ググってみたところM5Burner
を使えばうまくできるようだったので、UIFlow
(画像内一番左のもの)を入れてみました。
UIFlowでプログラミング
次に、UIFlowでプログラミングをブロック状のを組み立ててやっていきます。
この過程での話ですが、ブロック→Python
は普通に切り替えができるんですが、プログラミングした後でPython→ブロック
がダメらしく、切り替えようものならブロックで組み立てしていた時点までリセットされるという、少々めんどくさい仕様になってました。
左中程にUnits
と書かれたところがありますが、Units
から赤外線データの読み込みはあまり相性が良くないのか、アナログ・デジタル読み込みで以下のように試してみました。
こちらでは、デジタル読み込みを試してみた様子です。この時に36番ピン
に繋がっていたものを、一時的に2番ピン
に差し替えています。
以下はシリアルモニタの状況
しかし、それでも出力値が、自分の思うような結果を得ることはできませんでした。
そこで、さらに調べたところ、赤外線データはArduino
でIRremoteESP8266
を使うことで、どうやらメーカー毎に細かいデータを得ることができるらしいことがわかったため、UIFlowを使ったプログラミングはここで切り上げとなりました。(ただのカカシですな...)
ArduinoIDEでアプローチ
ファームを入れる
こっちのファームは以前入れたことがありましたが、すっかり忘れていたので慌てて調べる羽目になりました。少なくともファームは更新されてなさげだったので以前DLしたものを使いました。
この後にも、ArduinoIDEでM5Stackを使えるようにする作業が必要になったりするんですが、以前に使った時の物がすでにあったためここでは割愛しますが、ようやくArduinoIDEで書き出せるようになりました。
ArduinoIDEでプログラミング
今回は IRremoteESP8266
の IRrecvDumpV2
のスケッチ例をもとにM5Stackで使えるようにカスタマイズをします。
以下は、書き換え後(左)と書き換え前(右)のものを比較したものです。
主に変えたところは、スケッチ例の初期ではArduino仕様で書かれている部分をM5Stackに合わせて書き換えています。また、一番最後の方では、シリアルモニタで出力されたデータを、一部M5Stackの画面に表示するためのものを追記してみました。画面があまり大きくないので、一つだけのデータを出すことにして、一行にデコードされたCode
やdata
のデータが格納されたresults.value
から取り出しました。
最終的に、M5Stackで実行したものが以下の通りです。結果の数値を一部隠していますが同一の値が出ています。(M5Stack画面)
(シリアルモニタの結果)
今回はこの辺にしますが、今後はもっと色々組んでいきたいと思います。
最後に、この素人のページにわざわざ立ち寄っていただきありがとうございました。
参考文献
- https://mag.switch-science.com/2019/10/18/uiflowupdate/
- http://www.openspc2.org/reibun/M5/UI-Flow/1.3.2/
- http://ajimitei.blogspot.com/2019/09/m5stackm5stickgrove.html
- https://qiita.com/taka-murakami/items/a3c05115d5a5038ebb11
- https://lang-ship.com/blog/work/m5stack-ir-unit/
- https://wak-tech.com/archives/1627
- https://crankyoldgit.github.io/IRremoteESP8266/doxygen/html/index.html