前々から、プラモデルを完全制御したフルカラーLEDで照らしたいと思っていた。
実際、何年か前にフルカラーLEDとフルカラーLEDドライバICとArduinoを使って作り出したことがある。 その時には、はんだ付け時にLEDを焼いたり、ドライバICの使い方が腐っていてLEDを焼いたりした上に、コードを置いていたHDDが消し飛んでしまったので放置になってしまった。
最近、とても面白くて便利なフルカラーLEDモジュールを知ったので、これを機に目的を達成したいと思う。
どうせならIoT的な感じを最終形としたい。 が、まずはLチカから。
とりあえずこんな感じで光った。
元々光らせたかったのは悟空じゃない(そもそもこれは最近のプラモだし)けれど、スーパーサイヤ人エフェクトできたら面白そうだなぁ。と思って試してみた。 とりあえずイマイチだった。
色々工夫のしどころはありそう。
LEDテープ以外の部材
お手軽にIoTデバイスを作るにはESP8266がよい。 Arduino互換でプログラムもかけてとても良い。 しかも安い。
電源はUSBバッテリーが取り回しがいいのでMicroUSBから取りたい。
ESP8266は3.3V駆動なので、USBから電源をとる場合は降圧しないといけない。 しっかりとした降圧回路はかけないので、出来合いモジュールを使いたい。 ついでに、LEDへの5Vの入力も取れるとなおよい。 さらに、開発時のマイコンへの書き込みなんかもできると最高だ。
というわけで、ESP8266の開発ボードを使うことにした。 コストメリットは大分消えるけれど、失敗のリスクが減ってよい。
自分はぬるいので開発用のピン実装済のものを使う。
あとは、LEDへの電源共有を安定させるためのコンデンサ(どのくらいの容量がいいのか分からん)と、 LEDへのデータ信号にかませる抵抗(470オームがいいようだ)を調達すれば最低限は揃う。
ブレッドボードといくらかのジャンパ線も用意しておこう。
コンデンサの容量
densi_6 先駆者の記事を見ると、サンプルスケッチに1000μFのコンデンサを入れろと書いてあるようだ。
これだ。
Adafruit_NeoPixel/strandtest.ino at master · adafruit/Adafruit_NeoPixel · GitHub
// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across // pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input // and minimize distance between Arduino and first pixel. Avoid connecting // on a live circuit...if you must, connect GND first.
uxcell アルミ電解コンデンサ 電解キャパシター ラジアルリードタイプ 16V 1000uF 15個入り
- 出版社/メーカー: uxcell
- メディア:
- この商品を含むブログを見る
サンプルコードでLチカ
Arduino IDE に ESP8266 向けのボードを追加して、 NeoPixel 向けのライブラリを追加して先のサンプルコードをコピペしたらLチカした。
ハード
お粗末なはんだ付け。
- 5VとGNDにコンデンサを挟む
- 1000 uF がいいらしい
- DINに抵抗を付ける
- 300 ~ 500 Ω がいいらしい
- 5VとVOUTをつなぐ
- USBバッテリーをつなげば大体5Vが出る
- DINと適当なGPIOをつなぐ
- 今回は0番(IO0)
ソフト
コードはこちらのリポジトリを育てていく予定。
参考
回路図というか実装の鳥瞰図がわかりやすい。
次やりたいこと
とりあえずLチカしたので最小限の満足は得られた。
とはいえ、もともとやりたかったことを達成するにはもう少し頑張らなくてはならない。
プラモ飾りの台座の一種にターンテーブルというものがある。 これの周りにぐるっとフルカラーLEDを回して斜め下から照らしたい。
- 出版社/メーカー: GSIクレオス
- 発売日: 2011/02/13
- メディア: おもちゃ&ホビー
- 購入: 2人 クリック: 10回
- この商品を含むブログを見る
あとは、地道にいい感じに照らせるような光らせ方を調整したい。