M5Stack ATOM Matrix を買ってみた

M5Stackは、以前プリン泥棒IoTを見た時から少し気になっていました。 RaspberryPiラジコンがひと段落したところで、ネットで見つけました。 news.livedoor.com

完全に衝動買いです。

開封の儀

SwitchScienceさんの箱に入って郵送されてきました。
f:id:camelrush:20200416231716j:plain

中にはプラスチックのケース
f:id:camelrush:20200416231729j:plain

出ました!
f:id:camelrush:20200416231512j:plain
ちっさ!

電源は USB Type-C で供給するようです。つないでみたところLEDが光りました。表面がボタンになっており、押すと色が変わります。 f:id:camelrush:20200416232548g:plain

改めて、M5Stack ATOM Matrixとは

M5Stack ATOM Matrixは、マイコンジュール「M5Stack」シリーズの小型版です。RaspberryPiがGPIOなどで外部センサー、アナログスイッチと接続していくのに比べ、M5Stackの場合は小さな装置自体にいくつかの部品がすでに内蔵されていることが特徴です。 www.switch-science.com

仕様 ( switch sience より )

  • USB Type-C
  • ESP32 PICOベース
  • 4 MBフラッシュメモリ
  • 2.4G SMDアンテナ:Proant 440
  • MPU6886 6軸センサ
  • 25 x RGB LED(WS2812B)
  • 1 x 赤外線LED
  • 1 x プログラム可能なボタン
  • 1 x リセットボタン
  • 6 x GPIOピン
  • Grove互換インターフェース
  • プログラムプラットフォーム:Arduino、UIFlow
  • 電源入力:5 V / 500 mA
  • 動作環境温度:0 ~ 40 ℃
  • 製品サイズ:24 x 24 x 14 mm
  • 製品重量:14 g

プログラムのアップロードなどは、USB-Type Cで行うようです。

https://d2air1d4eqhwg2.cloudfront.net/images/6260/original/c7abc607-10b1-4852-adc9-f45279a49d0a.jpg

赤外線LEDがついているんですね。テレビやエアコンといった赤外線機器を制御して、スマートホームの実験などに使えそうです。GPIOは6つあるので、ブレッドボードとモータードライバを介すれば、DCモーターなども動かせそう ← ラジコン発想^^;
ESP32 PICOというチップセット?によってWiFiBluetoothといった無線の送受信のほか、I2Cなどの各種インターフェイスに対応しているようです。ここはもう少し勉強が必要そう。

Raspberry Pi Zero を下回る安さ

非常に低価格であり現時点で1,397円。送料込みで1,600円弱でした。最近はピン配置付きの Raspberry Pi Zero WHが 2,000円を超えるので、それを下回ります。

初期セットアップ

開発に入る前に、まずはWifiに接続してみようとおもいます。まだ出回って数日しかないため、情報が少なく、公式ドキュメントをまじめに読んでいくことにします。

docs.m5stack.com

UIFlow Online Mode

英文がわからないところがありましたが、おおよそ手探りで動かしてみました。ご参考までに。

  • 最初にM5Bunnerというアプリケーションをダウンロードします(M5Stackのファームウェアを更新する、ROMライターのようなもの、と解釈しました)
    m5stack.com

  • 以下が、M5Bunnerを起動した画面です。 f:id:camelrush:20200417001241p:plain

  • 左のリストからイメージを選択してダウンロードし、Wifi用のSSID、Passwordを入力後、左のSeriesに「ATOM Matrix」を選んで「Burn」を押します。書き込みが100%まで進むと、LEDの点灯が赤→青→緑に遷移します。
    f:id:camelrush:20200417005531p:plain
    (この時、赤のままの場合は、SSIDやPasswordが間違っている可能性がありますので、再設定後に「Burn」を押して書き込みしなおしましょう)

  • LEDが緑になったら、一度ケーブルを抜きます。表面のLEDを押しっぱなしにしてケーブルをさすと、最初に緑のLEDが表示された後、黄色に遷移します(マニュアルでは、これを「Wifi構成モード」と呼んでいるようです)
    f:id:camelrush:20200417010035p:plain

  • この状態でPCのWifi接続先を確認すると「M5Stack-xxxx」というアクセスポイントが表示れます。
    f:id:camelrush:20200417004837p:plain

  • このアクセスポイントに接続後、ブラウザから 192.168.4.1 にアクセスすると、SSID、Passwordを入れる画面が表示されます。最初に、上部の「M5FLOW-xxxxxxxx」の後ろの値を控えましょう。この値はAPIKeyといい、後で機器に接続するために必要です。なぜだかもう一度SSID設定が必要そうなので、これらを入力後、Configureボタンをクリックします。
    f:id:camelrush:20200417004856p:plain

  • しばらくすると、「Wifi Connection success」と表示されます。もう一度電源を抜き差しします。LEDは緑点滅になります。PCのWifi接続先も、いつもの接続先に戻します。
    f:id:camelrush:20200417004940p:plain

  • この状態でブラウザから以下のURLにアクセスします。最初に表示される画面でAPIKeyを入力すると、M5Stackに接続されます。
    http://flow.m5stack.com/

  • M5Stack の UiFlow画面に遷移します。ここで動作プログラムを作成することができます。Scratchのようですね。上部のボタンを押すと、MicroPython言語にも変換できるようです。
    f:id:camelrush:20200417013125p:plain

  • 例として、ボタンを押したときだけLEDがつく画面を表示させます。
    f:id:camelrush:20200417014045p:plain

  • 動かしてみるとこのようになりました。見た目通り動くのはわかりやすくてよいですね。
    f:id:camelrush:20200417014149g:plain

所感

まだまだ遊ぶ余地はありそうですが、今日はここまでにしておきます。最後のプログラムも直接USBからデータ転送してたようだし、Wifiにつないだ理由がよくわからなくなってしまったな…。