ゆるエンジニアはいろいろ遊びたい

FAエンジニアが週末にいろいろ遊ぶブログです

Atom Matrixを使ってみた。基本のLチカ

電子工作についてWEBで検索していると、RaspberryPiの他にArduinoという言葉を良く目にします。
FA業界は長いこといるのでだいたいわかるのですが、電子工作は素人なので全くわかりません。
Arduinoってなに?みたいな状態ですが、電子工作ではラズパイよりもArduinoを使う人が多い印象を感じました。
ラズパイ5はホームサーバー専用機として運用していてこれ以上何かして壊れると困ります。違うマイコンで、動くものを作りたいと思っていたところAtrom Matrixで倒立振子を作っている記事を目にしました。
非常に面白そうだったので、Atom Matrixを購入して使ってみました。

とても小さいAtom Matrix

スイッチサイエンスさんからAtom Matixを購入したのですが、想像以上に小さくで驚きました。

消しゴムくらいの大きさで、これでいろいろ制御できるのはすごいですね。
Atom Matrixは「ESP32ベースの小型IoT開発ボード」でArduino IDEやUiFlowで制御できるようです。
ということなので、とりあえずArduino IDEをインストールします。
Arduino IDEで検索するとすぐにでてきます。最新のバージョンは2.3.7のようです。

https://www.arduino.cc/en/software/


インストールして起動すると、いろいろ許可しますか?みたいに聞かれるので、全て許可します。
多分ドライバ関係をインストールするときにセキュリティに引っかかっているのかな?
日本語化は「File」から「prefarence」を選択し、「Language」を日本語にすると設定できます。

ボードのインストール

続いて、「ツール」から「ボード」→「ボードマネージャ」を選択し、「ESP」で検索してESP32 by Espressif Systemsをインストールします。

Atom Matrixを接続し、ボードを選択します。「atom」を検索し、M5Atomを選択、また、接続されているUSBのCOM番号を選択してOKします。

スケッチ

はじめにM5Atomのライブラリをインストールします。
「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を選択し、検索にM5Atomと入力します。
「M5Atom by M5Stack」が出てくるのでインストールします。
AtomMatrixは本体にLEDを内蔵しているので、これを光らせてみます。

#include <M5Atom.h>

void setup() {
  M5.begin(true, false, true);  
  M5.dis.setBrightness(20);   // 輝度を20に設定(推奨20〜40)
}

void loop() {
  M5.dis.fillpix(CRGB::Red);  // 全LEDを赤色で点灯
  delay(1000);

  M5.dis.clear();             // 消灯
  delay(1000);
}

書き込みをすると、自動的にRUNします。


ラズパイはOSが入っているのでラズパイ内にいろいろなpythonスクリプトを入れて、好きな時に好きなプログラムを走らせるのが簡単です。
サーバーとして機能しながら、OLEDディスプレイの表示をしたり、さらに合成音声の再生をさせたりと非常に柔軟な使い方ができます。
一方、AtomMatrixは1つしかプログラムを走らせることができないので、単一プログラムで動く電子工作などに適しているなと感じました。
コンパイルからデータ転送まで地味に時間がかかるので、pythonみたいにサクサク実行してデバッグを繰り返す事ができないのが難点かな。

とりあえず動作できる環境が作れたので良かった。