[M5Stack Core2 for AWS] ArduinoでLED (Adafruit NeoPixel フルカラーLED) を点灯してみました

2021.07.12

1 はじめに

IoT事業部の平内(SIN)です。

以前、Core2 for AWS IoT EduKit BSPの動作確認の中で、M5Stack Core2 for AWSにマウントされているLEDを操作してみました。

今回は、これをArduinoから利用する要領を確認してみました。

最初に、動作している様子です。

なお、作業は、下記で作成したプロジェクトからのものです。新規プロジェクト作成や、M5Core2のライブラリ追加は、こちらをご参照ください。

2 Adafruit NeoPixel

BSPから制御していた、SK6812は、NeoPixel のフルカラーLEDです。 こちらのLEDは、Arduinoから利用できるようにライブラリが提供されていますので、こちらを組み込みます。

PlatformIOのLibrarysから、「NeoPixel」などで検索するとAdafruit NeoPixelを見つけることができますので、こちらをプロジェクトに追加します。

platformio.ini

GPIOは、25番で接続されています。
https://edukit.workshop.aws/en/api-reference/sk6812.html

3 LEDの配置

確認したところ、M5Stack Core2 for AWSにマウントされているNeoPixelのLEDは、時計回りに配置されており、片側に0から3、もう一方が、5〜8となっていますした。(4番は無いみたい)

4 コード

作成したコードは、以下の通りです。

NeoPixelは、LED数を9、制御のGPIOを25番として初期化しています。

1秒ごとに、0番から順にLEDを緑に点灯させています。

main.cpp

#include <M5Core2.h>
#include <Adafruit_NeoPixel.h>
#define PIN 25 
#define NUMPIXELS 9 //LEDの数を指定
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); //800kHzでNeoPixelを駆動

void setup() {
  pixels.begin(); //NeoPixelの初期化
  M5.begin(true, true, true, true);
  M5.Lcd.setTextSize(3);
}

void loop() {
  pixels.clear(); // NeoPixelのリセット

  for(int i=0; i<9;i++){
    pixels.setPixelColor(i, pixels.Color(0, 150, 0)); // i番目に緑を設定
    pixels.show();   //LEDに色を反映
    M5.Lcd.setCursor(0, 0);
    M5.Lcd.printf("LED Sample %d",i);
    delay(1000); //1000ms待機
  }
}

5 最後に

今回は、Arduinoで、LEDの点灯を確認してみました。

Adafruit NeoPixel Libraryは、非常に贅沢にメソッドが用意されていて、超使いやすそうです。
https://github.com/adafruit/Adafruit_NeoPixel

6 参考リンク


Visual Studio Code + PlatformIO 環境で M5Stack Core2 for AWS でHello Worldしてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してLEDを光らせてみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してディスプレイに表示してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して仮想ボタンの動作を確認してみました
[M5Stack Core2 for AWS] LVCLを使用してディスプレイ上のボタンの動作を確認してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して電源を操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してスピーカーを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用して静電容量式タッチパネルを操作してみました
[M5Stack Core2 for AWS] Core2 for AWS IoT EduKit BSPを使用してジャイロセンサーを操作してみました
[M5Stack Core2 for AWS] PlatformIO を使用して、ArduinoでHello Worldしてみました
[M5Stack Core2 for AWS] ArduinoでLED (Adafruit NeoPixel フルカラーLED) を点灯してみました
[M5Stack Core2 for AWS] Arduinoで仮想ボタンを作成してみました
[M5Stack Core2 for AWS] ArduinoでMQTT接続してみました
[M5Stack Core2 for AWS] Arduinoでオーディオファイルを再生してみました
[M5Stack Core2 for AWS] Arduinoでマイクの利用方法を確認してみました
[M5Stack Core2 for AWS] ArduinoでGroveポートのGPIOを使用しててみました