見出し画像

M5 CapsuleでLチカ

前回のつづき

  • 今までは、NeoPixel系のRGB LEDを光らせるときに、Adafruit NeoPixel Libraryというライブラリを用いていた

  • 今回は、FastLEDというライブラリを使ってみる

    • https://github.com/FastLED/FastLED

    • GitHubの説明文を読むと、簡単で効率よく、様々なLEDのチップを制御するためのライブラリ、高いパフォーマンスの8bitの数学的な演算、とあるので効率を意識したライブラリのようで、筆者の好む系統だと感じる

This is a library for easily & efficiently controlling a wide variety of LED chipsets, like the ones sold by Adafruit (NeoPixel, DotStar, LPD8806), Sparkfun (WS2801), and AliExpress. In addition to writing to the LEDs, this library also includes a number of functions for high-performing 8-bit math for manipulating your RGB values, as well as low level classes for abstracting out access to pins and SPI hardware, while still keeping things as fast as possible.

https://github.com/FastLED/FastLED

M5CapsuleのRGB LEDのピン番号を探す

  • M5CapsuleのSchematicをみてもみつからないと思っていたが、

  • M5Capsuleは、Stamps3を組み込んだもので、Stamps3にRGB LEDが実装されている

  • Stamps3のSchematicには、WS2812が書かれていて、GPIO21と接続していると読み解けた

    • こういう機会に、Schematicを読んで慣れていきたい

よくみると

  • M5Capsuleの上部の印字をよく見ると、RGB STATUS - G21と書いてあった

  • RGBの下に書かれた「STATUS」と読むのには、ルーペを使っても、苦労した(本当にSTATUSなのかは定かではない)

    • 余談だが、AIに文字認識させたら「ROB SFATUS」となった。

  • 液晶などの出力装置がないので、ステータスを表示すると便利そう

    • 赤がエラーなど


コードサンプル

  • 赤、緑、青と1秒おきに光らせるサンプルを作る

  • 任意の色を指定するときは、leds[0] = 0xFF44DD;とすればよさそうだ

#include <Arduino.h>
#include <FastLED.h>
#include "M5Unified.h"


#define NUM_LEDS 1
CRGB leds[NUM_LEDS];

void setup() {
  auto cfg = M5.config(); 
  M5.begin(cfg);

  Serial.begin(115200);

  FastLED.addLeds<NEOPIXEL, GPIO_NUM_21>(leds, NUM_LEDS);

  leds[0] = 0xFF44DD;
  FastLED.show();
}

void loop() {
  leds[0] = CRGB::Red;
  FastLED.show();
  Serial.println("RED");
  delay(1000);

  leds[0] = CRGB::Green;
  FastLED.show();
  Serial.println("GREEN");
  delay(1000);

  leds[0] = CRGB::Blue;
  FastLED.show();
  Serial.println("BLUE");
  delay(1000);
}


無事に動作した


この記事が気に入ったらサポートをしてみませんか?