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() {
}

カラーバーアプリの実行

作成したカラーバーアプリを実行します。