M5Stack Core2でカラーバーを作成します。「PyQt5による温度カラーバーの作成」でパソコン上で温度カラーバーを表示させましたが、今回は、M5Stack Core2のNeoPixelを使用します。
カラーバーの表示
今回は、色相:0°から色相:240°までを9つのLEDで表示させます。「カラー値計算」を使って計算すると次のようなカラーコードが求められます。
| 色の角度 | カラーコード |
|---|---|
| 0 | FF0000 |
| 30 | FF8000 |
| 60 | FFFF00 |
| 90 | 80FF00 |
| 120 | 00FF00 |
| 150 | 00FF80 |
| 180 | 00FFFF |
| 210 | 0080FF |
| 240 | 0000FF |
これらのカラーコードをガンマ補正を行い、NeoPixelに表示させます。
カラーバーアプリの作成
作成したカラーバーアプリを次に示します。
m5core2Pixel.ino
#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を駆動
int step_num = 0;
int color[] = { 0x0000FF, 0x0080FF, 0x00FFFF, 0x00FF80, 0x00FF00, 0x80FF00,
0xFFFF00, 0xFF8000, 0xFF0000 };
int levelconv(int co2data) {
return 9;
}
void co2level(int co2index) {
for (int i = 0; i < co2index; i++) {
pixels.setPixelColor(i, pixels.gamma32(color[i]));
}
pixels.show();
delay(10);
}
void setup() {
Serial.begin(115200);
// Setup M5
M5.begin();
pixels.begin(); //NeoPixelの初期化
co2level(levelconv(5000));
}
void loop() {
}
カラーバーアプリの実行
作成したカラーバーアプリを実行します。