LEDテープ部屋の周りに貼ってクラブにしてみた
(上の画像はイメージです)
最近LEDテープ中毒になりつつあるCubeです。
LEDテープを部屋の周りに貼って部屋をクラブにしてみました。
楽しいので作り方をまとめておきます。
LEDテープで遊んでみたい人のための指南書になればいいなと思っており。
用意するもの
毎度おなじみAliexpressで集めました。
LEDテープ
前回noteにまとめたときに使ったテープは WS2812B という規格でしたが
今回は長ーいLEDテープを使用するため電圧降下しにくい WS2815 を使用します。
WS2812B は 5V で動きますが WS2815 は 12V で動きます。
またデータ線が2本あるので1本が断線してももう一本がつないでくれるので安心安全です。
信号についてはWS2812Bと同様の信号が使われています。
スイッチング電源
長ーーーーいLEDテープを使用するのでバカデカ電力が必要です。
AC/DCアダプタだと電力が足りないので、今回はスイッチング電源(大容量電源)を使います。
22A消費するので 12V 20Aのものを買いました。
Arduino Uno
Nanoを使う予定でしたが流石に力不足なのでUnoを使用しました。
Amazonで1200円くらいで互換品が買えます。
(Arduinoはオープンソースハードウェアなので決して怪しいコピー中華製品ではない。自作できる)
DCプラグの導線むき出しのやつ
LEDテープとの電源接続に使います。
DCケーブル延長コード
天井まで伸ばすので必須
AC100V電源ケーブル
家庭用コンセントから大容量電源ユニットに接続するケーブル
US Plugを選択してください
フォーク端子
大容量電源ユニットにネジ止め接続するためのもの
あったら楽って感じなのでなくても良い
圧着ペンチとかが必要なのですが100均のペンチでゴリ押し圧着した
手にハンパないダメージを負うのでおすすめしない。
SV 1.25-4あたりがちょうどよかった。
デュポンケーブル
本当は自作したほうがいいのですが、めんどくさいので長いデュポンケーブルを繋げまくります。
※追記※
これやってみたんですが品質悪すぎて外れやすいので長いケーブルを自作したほうが良いです。詳しくはググってね
4ピンコネクタ
LEDテープの末端に次のLEDテープにつなぐための4ピンコネクタがあるので必要ないのですが、末端のコネクタを使わずに接続したい場合に使います。
(一応私も買ったのですが未だに届いてない)
DCジャック付き +/- 変換ケーブル
LEDテープにつけるやつ
LEDテープへの電源供給
DCプラグの導線むき出しのやつ、AC100V電源ケーブルにフォーク端子を圧着します(ない場合は長くむき出して巻きつける)
スイッチング電源の横にある110V - 220V切り替えスイッチで110Vに切り替えます(ケースの奥にある場合ドライバー等を穴にいれて切り替えよう)
スイッチング電源のLNの部分にAC100V電源ケーブルを接続します
どちらに挿しても自動的に切り替えてくれます。多分。
LEDテープの赤線と黒線(4ピン以外の線)の動線をむき出しにしてDCジャック付き +/- 変換ケーブルを取り付けます
DCプラグの導線むき出しのやつの赤線を V+ に、黒線を V- に接続します。
そこから延長コードを使って先程LEDテープにつけたDCジャック付き +/- 変換ケーブルに接続します
最終的に大容量電源の配線はこんな感じ
これでLEDテープへの電源供給は以上です。
Arduinoの配線
Arduinoのデジタルピン(PMW)にLEDテープの青、緑どちらかを接続します
どのデジタルピンに挿してもよいのですがどこに挿したか覚えておいてください。
白をArduinoのGNDに接続してください。
FastLEDライブラリでテスト。
ライブラリの管理からFastLEDをインストール。
インストールしたら[スケッチ例]にあるFastLEDからDemoReel100を選択。
LED_TYPEをWS2812Bに。
DATA_PINをArduinoで配線したピン番号に。
NUM_LEDSにLEDの個数を入力。
書き込んで正常に光ったら成功です。
Prismatikの導入
プログラムを自分で組むのならここまでで良いのですがせっかくなのでPrismatikを使ってみます。
Arduinoに以下のスケッチを書き込みます。https://github.com/Wifsimster/adalight_ws2812/blob/master/Adalight_WS2812.ino
NUM_LEDS にLEDの個数、DATA_PIN に先程LEDと接続したピン番号を入力します。
ここで注意なのですが256個以上のLEDを使用する場合以下のようにコードを修正しなければなりません。
(実際に躓いた場所。解決まで導いてくれた外人ニキありがとう)
まず17行目のコードを以下のように書き換えます
uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk;
uint16_t i;
次に67行目
for (i = 0; i < NUM_LEDS; i++) {
これで修正完了です。正常に全LEDが動くはず。
(一応githubのissuesページ載せておきます。
https://github.com/psieg/Lightpack/issues/369)
シリアル通信のボーレートは4000000に設定します。
ここからPrismatikの非公式フォーク版をダウンロードしてインストールしてください。
https://github.com/psieg/Lightpack/releases
ここのページを参考に初期設定をしてください。
https://note.com/cubezeero/n/n8ef5c0d42251#qP9vs
ボーレートを指定する画面が出てきますが、ボーレートは手動で設定するのでどれでも良いです。
Winキー + Rで[ファイル名を指定して実行]を起動し [Prisnatik] と入力し設定フォルダを開きます。
main.conf をメモ帳等で開きBaudRateの部分を4000000に変更します。
これで60fpsくらいでLEDテープが動くと思います。
これで君の部屋がクラブになりました。
以上。
この記事が気に入ったらサポートをしてみませんか?