年始の立て込んだ仕事が片付いたので,先週,入手したM5Paper V1.1を触ってみました.こんな面白デバイスが1万円ちょっとで手に入るんですからね...素晴らしい時代です.
M5シリーズは色々と触ったことがあったのでArduino IDEでお気楽に書き込めるものと思ってサンプルでも書き込もうとはじめました.1日何も進まなかったのですが,ドライバを入れ替えたら全部,うまくいきました.以下,結論だけ書きます.
私の環境は以下の通りです.
M1 Mac 2020,macOS12.1,Arduino IDE 1.8.17,です.
USB−Cケーブルには気をつけよう
まず,USB−Cケーブルは気をつけるべきとは思います.ぐぐって調べていたときに,昔に自分が書いたブログにたどり着いたりしました.過去に経験しているようです.ケーブルを刺して/dev/tty.usbmodem***と表示されればとりあえず認識していると思います.これが出ない場合はケーブルが適してない可能性が高いので別のケーブルを用意するといいと思います.
ちゃんとドライバを入れよう
中華Arduinoとかのドライバが最近のmacOSでは標準添付されるようになりました.M5Paperもドライバをいれなくても動きましたよってことを書いている記事も見かけました.また,M5Stackの公式のドライバページを見ると,上に出てくるのが「CP210x_VCP_MacOS」なので,普通はこれをいれるじゃないですか...しかもこのDMGファイルにはドライバが新・旧入っていて,これら両方をいれてもどちらも動作しなかったんです...こりゃドライバのせいじゃないと思うわけです.結局,ヒントになった記事がこちらでM5Paperの話ではないのですが,CH9102_Mac_Driver.zipを入れて/dev/cu.wchusbserial.... を選ぶと書き込みができるようになって問題が解決したと書いてあったんですね.M5Paperの公式ページにもちゃんとこのドライバがあるんです.一番下にね...これをいれてください.これで全てうまくいきますから.
Arduino IDEでM5Paperのサンプルを動かすときにはエラーが出るのでライブラリのソースコードを手で直す必要があります
Arduino IDEを立ち上げて,スケッチ例ーM5EPDーBasicsーHelloWorldを選択して開きまして,Arduino IDEの検証ボタン(左上のチェックマークボタン)を押すとコンパイルが始まるのですが,なぜか2箇所でエラーがでます.以下,エディタで直します.Arduinoフォルダがデフォルト(書類)にあるとします.
~/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp をテキストエディタで開きます.
この66行目を以下のように修正します.「(uint32_t)」を追加する感じですね.
Wire.begin(21, 22, (uint32_t)400000); //(uint32_t)を追加します
あとは上から3行目の下に「#include "soc/adc_channel.h"」を追加します.追加後のソースは以下のようになります.
#include "M5EPD.h"
#include "driver/gpio.h"
#include "driver/adc.h"
#include "soc/adc_channel.h" //この行を追加します
これでビルドが通ってM5Paperに転送できるはずです.ちなみに転送するにはボード種別とシリアルポートを合わせる必要があります.
ボード種別とシリアルポートをあわせよう
これはあちこちのページに書かれているのでわざわざ書く必要はないかもしれませんが,まず,Arduinoのボード種別を設定するためにボード情報のURLを設定します.
Arduino IDEのメニューからPreferencesを選択して,追加のボードマネージャのURLに「https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json」を追加します.その他,ESP32系のJSONファイルも指定していたのですが,どうやら,これ1つを設定しておけばいいようなことが書かれたページがありました.2つ設定するとうまく行かなかったのでそうかもしれません.変更後,Arduino IDEを再起動します.
それから,ツールーボードーボードマネージャを選択して,検索窓にpaperといれると M5Stack が出てきますので,これがインストールされていなければインストールボタンを押します.私は 2.0.2 が最新でしたのでこれをインストールしました.これでボード種別にM5 Paperが選択できるようになります.
で,お決まりですが,ツールからボードとシリアルポートを選択して,以下のようにします.シリアルポート名はマシンやケーブルを接続したUSBポートの位置によって変わります.
これで,Arduino IDEからソフトウェアの書き込みができるようになるはずです.めでたしめでたし.
ちなみに,上記のようにソフトウェアを書き込むと,それまでにあったメニューは綺麗さっぱりなくなります.復活する場合は,M5Stack公式のページからM5 Burnerをダウンロードして,M5 Paper用のFactoryTestをBurnすればもとに戻ります👍
分かっている人にはどーってことないことなんでしょうけど,これ探すだけでも結構時間かかるので...その短縮になればいいかなと思います.
さて,何して遊ぼーかなぁ😁