ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【ESP32】M5 Atom Matrixの環境構築をしてサンプルを動かしてみる

 M5 Atom Matrixという商品は以下のようにスイッチサイエンスなどで購入できます。
www.switch-science.com

 実物を見てみるとわかるのですが、チロルチョコを2つ重ねた程度の大きさでかなり小さいです。この大きさでESP32 Picoチップを内蔵しており、Wi-fiBluetooth機能、少ないですがGPIO、Groveのコネクタ、5×5のRGBマトリックスLEDも備わっているのでかなり色々遊べます。

 今回はそんなM5 Atom Matrixの環境構築とサンプルの動作確認までの備忘録です。


 では始めます。


1:ESP32が使える環境を構築する
 M5 Atom MatrixはESP32 Picoチップをベースとしたものが使われているので、まずはESP32の開発環境を構築する必要があります。ArduinoでのESP32の環境構築は以下に記事を書いているので、それに従ってESP32を使えるようにします。


2:必要なライブラリをインストールする
 Arduino IDEでESP32が使えるようになったら、M5 Atom Matrix用のライブラリをインストールしていきます。

 Arduino IDEを開いてメニューの「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を選択します。
f:id:rikoubou:20200820161913p:plain

 ライブラリマネージャが開くので、右上の検索欄に「m5 atom」と入力して出てきた中の「M5Atom」の方の「インストール」ボタンをクリックします。
f:id:rikoubou:20200820162327p:plain

 インストールが終わると「INSTALLED」の文字が表示されます。
f:id:rikoubou:20200820162543p:plain

 続いてLED用のライブラリも入れていきます。

 検索欄に「fastLED」と入力して出てきた中の「FastLED」の「インストール」ボタンをクリックします。
f:id:rikoubou:20200820162802p:plain

 インストールが終わると「INSTALLED」の文字が表示されます。
f:id:rikoubou:20200820162935p:plain

 これで必要なライブラリは全部入ったのですが、M5 Atomのライブラリの方に不具合があるのでそれを修正します。


3:M5 Atomのライブラリを修正する
 M5 Atomライブラリがインストールされているフォルダを開いて、その中にある「src」→「utility」→「LED_DisPlay.cpp」ファイルをエディタで開きます。
f:id:rikoubou:20200820163538p:plain

 103行目を以下のように書き換え、上書き保存します。

xSemaphoreTake(_xSemaphore, portMAX_DELAY); // 修正前

xSemaphoreTake(_xSemaphore, 100); // 修正後

 これでライブラリの修正は完了です。

 ちなみにこの修正を行わない場合、今回のLEDを使ったサンプルは動かなかったので必ず修正してください。


4:M5 Atom Matrixのサンプルを動かす
 ライブラリの準備ができたので。PCとM5 Atom Matrixを繋ぎます。Windowsの場合、初めて繋ぐとドライバが自動的にインストールされます。

 M5 Atom Matrixを繋いだらArduino IDEを開いてメニューの「ファイル」→「スケッチ例」→「M5 Atom」→「Basics」→「LEDDisplay」を選択します。
f:id:rikoubou:20200820164933p:plain

 サンプルコードが開きます。
f:id:rikoubou:20200820165423p:plain

 サンプルを開いたら「ツール」→「ボード」で「M5Stick-C」を選択し、該当のシリアルポートを選択します。その他はデフォルトの値のままでOKです。
f:id:rikoubou:20200820171336p:plain

 準備ができたので、書き込みボタンを押して書き込みます。
f:id:rikoubou:20200820171505p:plain

 書き込み終了後、M5 Atom Matrixのリセットボタンを押すと、LEDに「ATOM」の文字が流れるように表示されます。


 以上がM5 Atom Matrixの環境構築とサンプルの動作確認までの方法です。

 公式ページのやり方だけではわからなかったり、ライブラリを書き換える必要があったりと色々戸惑う場面があったので、ライブラリを早く修正してほしいですね…。


・参考資料