前回に引き続き、M5Stack Core2を使ってチャーハンを輝かせるべく、プログラムを書いていきます。
今回は、LEDの制御部分を作ります。
LEDは制御が簡単なNeoPixelを、さらに配線がスッキリするので、M5StackとGROVEで接続できるものを選定しました。
M5Stack用NeoPixel互換 LEDテープ 50 cm[A035-C]www.switch-science.com
50cmのテープに72個のフルカラーLEDが付いています。
加速度センサとの結合は後回しで良いので、まずは36個ずつ2つのグループに分けて交互に光らせてみようと思います。
Adafruit_NeoPixel というNeoPixel制御用のライブラリがあるのでこちらを使ってサクッと実装します。
ソースコード
#include <M5Core2.h> #include <Adafruit_NeoPixel.h> #define LEDPIN 32 #define PIXELS_LENGTH 72 #define DELAY 100 Adafruit_NeoPixel pixels(PIXELS_LENGTH, LEDPIN, NEO_GRB + NEO_KHZ800); int shiftIndex = 0; void setup() { pixels.begin(); M5.begin(); M5.Lcd.fillScreen(BLACK); M5.Lcd.setTextColor(WHITE, BLACK); M5.Lcd.setTextSize(16); } void loop() { pixels.clear(); M5.update(); for (int i = 0; i < PIXELS_LENGTH / 2; i++) { int index = i * 2 + shiftIndex; pixels.setPixelColor(index, pixels.Color(255, 255, 255)); pixels.show(); M5.Lcd.setCursor(0, 0); M5.Lcd.printf("%d", index); } if (shiftIndex == 0) { shiftIndex = 1; } else { shiftIndex = 0; } delay(DELAY); }
DEMO