【PlatformIO】M5Atom S3 liteの内蔵LEDでLチカ

M5Atom S3 lite

導入

先日、M5Atom S3 liteを購入しました。
M5Atomの後継であるM5Atom S3の、ディスプレイなどがない小型版が、このM5Atom S3 liteです。

・公式ページ
AtomS3 Lite ESP32S3 Dev Kitshop.m5stack.com

・スイッチサイエンス
ATOMS3 Litewww.switch-science.com

M5Stackシリーズは、機種によって微妙にライブラリの使い方が違います。 M5Atom S3 liteは、M5Atom S3と同じっぽいですが、備忘録として、動作した基本的なプログラムを残しておきます。

サンプル

実際に使ったプロジェクトは、こちらのリポジトリに公開しています。

github.com

環境設定

PlatformIOのBoard設定では、「Espressif ESP32-S3-DevKitC-1-N8(8 MB QD, No PSRAM)」を使用しました。
プロジェクトのパスに日本語が入っていると、ビルド時にファームウェアがないみたいなエラーが出ることがあるので、注意しましょう。

AtomS3 lite使用時の設定

コード

実際のコードは以下です。

#include <M5AtomS3.h>
#include <FastLED.h>
#include "M5Unified.h"
#include <M5GFX.h>

void setup() {
    AtomS3.begin(true);  // Init AtomS3Lite.
    AtomS3.dis.setBrightness(100);
}

//ボタンを押すたび、消灯>赤>緑>青を繰り返す
int count = 0;
int color = 0;
void loop() {
    if(AtomS3.BtnA.wasPressed()){
        count = (count+1)%4;
    }
    switch (count % 4)
    {
    case 0:
        color = 0x000000;
        break;
    case 1:
        color = 0xff0000;
        break;
    case 2:
        color = 0x00ff00;
        break;
    case 3:
        color = 0x0000ff;
        break;
    default:
        break;
    }
    AtomS3.dis.drawpix(color);
    AtomS3.update();
    delay(100);
}

詳しく説明

使用しているライブラリですが、基本はM5AtomS3を使用します。 それだけでビルドしようとすると、コンパイル時に、FastLED, M5Unified, M5GFXも追加する必要があるという旨のエラーが出たので、追加しています。 (本当はなぜ必要かをちゃんと知るべきですが、ひとまず動作確認なので飛ばします。)

多くのM5Stack製品では、M5.hogehogeと書くことが多かったように思いますが、M5AtomS3では、AtomS3.hogehogeで各種M5の機能を呼び出しています。

今回使っているのは、以下の4つですね。

#初期化
AtomS3.begin(true);

#内蔵LEDの明るさ設定
AtomS3.dis.setBrightness(100);

#内蔵LEDの色設定
AtomS3.dis.drawpix(color);

#内蔵ボタンへの入力などを更新
AtomS3.update();

動作確認

動きました!

動作の様子