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() { }
カラーバーアプリの実行
作成したカラーバーアプリを実行します。