はじめに
この記事は SLP-KBIT AdventCalendar2024 8日目の記事です。
本記事を書くにあたって、筆者はクリスマスっぽいことをしたいなと考えていました。
クリスマスといえばイルミネーションですよね?
本記事では、LEDCubeという物を使ってイルミネーションを制作していきます。
LEDCubeとは?
LEDCubeはその名前の通りLEDを立方体状に配置したものです。
Cubeに配置されたLEDの色や光るタイミングをマイコン等で操作することでアニメーションを表現することができます。
画像のCubeは筆者が数年前に制作したものです。
5 × 5 × 5 のCubeですので125個のLEDが使用されています…
ひゃ、ひゃくにじゅうご!?
今思えばとてつもない数ですね…
LED1個につき4か所のはんだ付けをする必要があるので、当時の筆者は少なくとも500か所
はんだ付けをしていたことになります。
こりゃ~はんだ付けの神が両手に宿っちまいますねぇ?
今回の制作物
タイトルにもある通りクリスマスっぽいアニメーションプログラムを作成しました。
コード
#include <FastLED.h>
#define LED_PIN 2
#define NUM_LEDS 125
#define BRIGHTNESS 255
#define LED_TYPE WS2812
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
#define UPDATES_PER_SECOND 100
CRGBPalette16 currentPalette;
TBlendType currentBlending;
void setup() {
delay( 3000 );
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
ChristmasPalette();
currentBlending = LINEARBLEND;
}
void loop() {
FastLED.setBrightness( BRIGHTNESS );
static uint8_t startIndex = 0;
startIndex = startIndex + 1;
LEDsColorChange(startIndex);
FastLED.show();
FastLED.delay(1000 / UPDATES_PER_SECOND);
}
void ChristmasPalette()
{
CRGB red = CHSV( HUE_RED, 255, 255);
CRGB green = CHSV( HUE_GREEN, 255, 255);
CRGB black = CRGB::Black;
currentPalette = CRGBPalette16(
green, green, black, black,
red, green, black, black,
green, green, black, black,
red, green, black, black );
}
void LEDsColorChange( uint8_t colorIndex)
{
uint8_t brightness = 255;
for( int i = 0; i < NUM_LEDS; i++) {
leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending);
colorIndex += 3;
}
}
LEDを赤色と緑色交互に光らせるという内容です。
プログラムの具体的な説明は割愛させていただきます。
すんません
LEDCube点灯?
さて、アニメーションプログラムもできたことですし、
さっそくLEDCubeに表示させてみましょう!
スイッチオン!ポチっ
あ、あれ?アニメーションが表示されない…
なんとLEDCubeの配線が一部断線していました。
数年ぶりにはんだ付けをする必要がありますが、両手を見てもそこにははんだ付けの神はいません。
あるのは末端冷え性でキンキンに冷えた両手だけです…
なんやかんやあって突貫工事は無事成功に終わりましたが、
アニメーションは表示されるのでしょうか…不安が残ります。
( 皆さんは制作物をきちんと保管しておきましょうね。)
LEDCube点灯!!
数年ぶりのはんだ付けを無事に終え、後は成功することを祈るのみです。
LEDCubeにアニメーションは表示されるのでしょうか?
スイッチオン!ポチっ
うおおおおおぉぉぉぉ!ちゃんと動いてるうぅう!
これに思わずスタンディングオベーション👏
どうです?クリスマス感あふれるイルミネーションじゃないですか
残念ながらQiitaに動画を張り付けることができなかったので、静止画のみですがいい感じに光ってると思います。
無事に光って良かった良かった。
最後に
いかがでしたか?
今回の記事ではLEDCubeを使ってクリスマスっぽいイルミネーションを作ってみました。
頑張って自作したものがうまく動いてくれるとやっぱり嬉しいものですね!今後の活動のモチベーションアップにもつながる良い制作になったと思います。
最後まで記事を読んでくださりありがとうございます。
皆様よいクリスマス&よい年末をお過ごしください!