NeoPixel互換のLEDテープを入手したので、M5Stackで点灯してみました。
M5StackのGroveコネクタに接続し、AdafruitのNeoPixelライブラリを使用すれば簡単に制御できます。
M5Stack BasicのGroveコネクタで20cmのLEDテープを使用するための最小限の設定をメモしました。
M5Stack用NeoPixel互換 LEDテープ
スイッチサイエンスで買えます。実は昨日のSORACOM Discovery 2019の展示会場での販売で目にしてつい買っちゃいました。
M5Stack用NeoPixel互換 LEDテープ 20 cm スイッチサイエンス
SK6812搭載です。WS2812B互換のLEDチップだそうで、NeoPixelコンパチなLEDです。
入手したLEDテープは20cmで29個のLEDが付いていました。
M5Stackに接続する
NeoPixel互換LEDテープDに関する公式ドキュメントはこちら
M5 Stack docs: Unit RGB LED
M5StackのGroveコネクタにGroveケーブルで接続します。
点灯プログラム
Arduino IDEは v1.8.3を使用しました。
Adafruit NeoPixelライブラリのインストール
ライブラリマネージャで Adafruit NeoPixel をインストールします。 v1.2.3 でした。
サンプルプログラム
[ファイル] – [スケッチ例] – [カスタムライブラリのスケッチ例] -[Adafruit] – [Simple] を開くと
LEDを順に16個まで500msec間隔で緑色に点灯するサンプルです。
こちらはM5StackのGroveコネクタで使用する場合は PIN を 21 に変更します
NUMPIXELS もLEDの数に合わせて変更します。
#define PIN 6 // On Trinket or Gemma, suggest changing this to 1
#define NUMPIXELS 16 // Popular NeoPixel ring size
指定した番号のLEDを0-255のRGB値で点灯する命令がこちら。緑色に点灯しています。
// pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(0, 150, 0));
RGBの順に点灯するプログラム
せっかくなので、3色で順に点灯させてみました。
#include <Adafruit_NeoPixel.h>
#define PIN 21 // M5Stack Grobe Pin
#define NUMPIXELS 30 // Enough for 29 LEDs
#define DELAYVAL 100 // Time (in milliseconds) to pause between pixels
// RGB config
int led_color[3][3] ={{10,0,0},{0,10,0},{0,0,10}};
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin();
}
void loop() {
pixels.clear();
for(int i=0; i<NUMPIXELS; i++) {
int rgb = i%3;
pixels.setPixelColor(i, pixels.Color(led_color[rgb][0],led_color[rgb][1],led_color[rgb][2]));
pixels.show();
delay(DELAYVAL);
}
}
点灯実行
無事RGBの順に点灯しました。
M5Stack用NeoPixcel互換 LEDテープを買ったのでRGBを順に点灯してみた。調光調色すると楽しめそう。#M5Stack pic.twitter.com/SqlSkDswlZ
— Tomohisa Yamazoe/MFTokyo I-07-11 (@zoe6120) July 3, 2019
タイミングや調光調色をプログラムすれば色々楽しめそうです。
ESP32の場合
(2019-07-09 追記)
ESP32-DevKitCでも点灯しました。当たり前ですが。
上のプログラムそのままでESP32用にビルドすればOK。
Arduino IDE設定
ボード:“ESP32 Dev Module”を指定します。
ESP32-DevKitCとの接続
テープLED G – Grove黒 – ESP32 GND
テープLED + – Grove赤 – ESP32 3.3V
テープLED S – Grove白 – ESP32 IO21
上記のプログラムをそのまま使うために同じIO21 pin に接続します。