コスプレで魔法詠唱中の演出で、オーブを光らせるにあたって色をどうしようかと考えた。
赤色オーブだから基本的に赤か無色になってしまうのだが、どのくらいの差があるのか試してみる。
実験のたびにLEDと抵抗を付け替えていては手間がかかるので、フルカラーLEDを差し込んでどのような見た目になるか確認することにした。
フルカラーLEDの仕様
秋月で売ってたコレを使う。
マイコン内蔵RGB 5mmLED PL9823−F5: LED(発光ダイオード) 秋月電子通商 電子部品 ネット通販
PL9823-F5
基盤モジュールが品切れだったので仕方なくこうなったのだが……。
実際にコスプレ小物に組み込んで動かすときは基盤モジュールのほうが都合がよさそう。
実装面積も小さいし、抵抗やパスコンを付ける手間も省けるので。
さて、このLEDを光らせる方法はデータシートに丁寧に書いてくれている。
それぞれの仕様書から読み取れる内容と最終的な仕様を列挙。
適当に流し読みしたので間違ってるかもしれません。
LEDの仕様
http://akizukidenshi.com/download/ds/rita/pl9823.pdf
- 4.5~6Vで駆動する
- コントローラはDIN端子につないでね
- 外付け部品は不要
- 数珠つなぎにできるよ。DoとDinをつないでね。
- 数珠つなぎにのブロック図に抵抗とコンデンサが見える(たぶんパスコン)
- 制御信号の0と1のデューティー比の定義
LEDに内蔵されているマイコンの仕様
http://akizukidenshi.com/download/ds/worldsemi/WS2811.pdf
- 数珠つなぎにしたLEDに個別に色情報を設定するプロトコル
- 色情報の伝送方式(MSB-First)
- LEDとの接続図
というわけで、適当につないでいく。
外部パーツいらないとは書かれてるけど、とりあえずパスコンと抵抗入れておく。
本当に外部パーツがいらないかどうか謎なので、もし知ってる人いたら教えてください。
同種のラインナップで基盤モジュールのほうは抵抗とパスコンが実装されているのが見えている。このモジュールの使い方が本当にこれであってるのか謎。
プログラム
デューティー比とか考えながらプログラム書くの大変だなぁと思いつつ調べてたら、今回使うLED内蔵マイコンに対応したライブラリがあるらしい。
Adafruit_NeoPixel
ダウンロードして早速動かしてみる。
サンプルコードもわかりやすい。
ライブラリの中身覗いてみるとアセンブラでした。
それぞれの命令の実行ステップをもとに出力ピンのHigh/Lowを制御してるみたいだけど、詳しいことはよくわからない。
気を付けるとすれば、割り込み関連で競合が起きそうな予感。
実験結果
とりあえず光った。思ったよりキレイ♪