pdf-icon

Arduino入門

2. デバイス&サンプル

Stamp-S3 Arduino プログラムのコンパイルとアップロード

1. 準備

  • 1.Arduino IDEのインストール: Arduino IDEインストールガイドを参照して、IDEのインストールを完了してください。
  • 2.ボードマネージャーのインストール: 基本環境構築ガイドを参照して、M5Stackのボードパッケージをインストールし、開発ボードとしてM5StampS3を選択します。

2.ダウンロードモード

Stamp-S3 の G0 ボタンを長押ししたまま、USB ケーブルでデバイスをコンピュータに接続します。この時、コンピュータ上でポートが認識されれば、デバイスがダウンロードモードに入ったことを示します。

3.ポートの選択

デバイスがポートを正常に認識するまで待ち、Arduino IDE で対応するデバイスのポートを選択してください。

4. プログラムのコンパイルとアップロード

Arduino IDE の作業スペースに以下のコードを入力し、アップロードボタンをクリックすると、プログラムのコンパイルと書き込みが自動的に行われます。

説明:
本サンプルはFastLEDライブラリをベースに実装されています。使用前にライブラリマネージャーからFastLED依存ライブラリをインストールしてください。
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
#include <Arduino.h>
#include <FastLED.h>

#define PIN_BUTTON 0
#define PIN_LED    21
#define NUM_LEDS   1

CRGB leds[NUM_LEDS];
uint8_t led_ih             = 0;
uint8_t led_status         = 0;
String led_status_string[] = {"Rainbow", "Red", "Green", "Blue"};

void setup() {
    Serial.begin(115200);
    Serial.println("Stamp-S3 demo!");

    pinMode(PIN_BUTTON, INPUT);

    FastLED.addLeds<WS2812, PIN_LED, GRB>(leds, NUM_LEDS);
}

void loop() {
    switch (led_status) {
        case 0:
            leds[0] = CHSV(led_ih, 255, 255);
            break;
        case 1:
            leds[0] = CRGB::Red;
            break;
        case 2:
            leds[0] = CRGB::Green;
            break;
        case 3:
            leds[0] = CRGB::Blue;
            break;
        default:
            break;
    }
    FastLED.show();
    led_ih++;
    delay(15);

    if (!digitalRead(PIN_BUTTON)) {
        delay(5);
        if (!digitalRead(PIN_BUTTON)) {
            led_status++;
            if (led_status > 3) led_status = 0;
            while (!digitalRead(PIN_BUTTON))
                ;
            Serial.print("LED status updated: ");
            Serial.println(led_status_string[led_status]);
        }
    }
}

コードをアップロードすると、Stamp-S3 デバイスの RGB LED が自動的に点灯します。ボタンを押すことで、LED の表示色を循環して切り替えることができます。同時に、デバイスはシリアルポートを介して現在のライト状態情報(色値やモードなど)を出力するため、デバッグと対話型フィードバックが容易になります。

On This Page