見出し画像

LEDポールの作成、制御をしました(TouchDesigner他)

こんにちは、Saloonです。映像を作るのが趣味の大学生です。サイリウムを使ったダンス動画に、LEDポールを使う機会がありました。LEDポール光を制御するシステムを作ったので、その記録をまとめます。一番最後の参考の欄に、作成中にお世話になったサイトを全部まとめてあるので、是非そちらもご覧ください。間違えや、不明瞭なことがあればお気軽にコメント下さい。

できた映像

こちらの映像は、Legend Tokyo CHRONICLEの30秒クリエイター部門、準本戦エントリー動画です。本記事では、ダンサーの後ろで光っている二本のLEDポールについて、まとめます。

ダンサーは彼です。

全体図

使ったもの(2本作ってだいたい2万円くらい)

LEDテープ(WS2812B、1Mに60LEDのを使用)   ×2

アルミフレーム(カバーは、乳白色を使用)   ×2

・100均の園芸用のポール(ダイソーで購入、120cmで太めのやつ)  ×2

ESP32

3Pinケーブル(LEDテープ同士をつなぐ)   ×4

・USBケーブル(PCからESP32にコードを書き込む用)

・PC(使用ソフト:TouchDesigner,Aruduino IDE,Davinci Resolve)

ブレッドボードジャンプワイヤーなど(ESP32とLED点灯のテスト用、撮影当日は使わなかった)

はんだづけに使うもろもろ

・LEGO(ポールが自立するように足をつけた)

・Wifi(携帯回線のデザリングでも動いた)

LEDポールの作成

まず、LEDポールを作る。購入したLEDテープにはシリコンのカバーが付いてたので、それをはさみで切り取った。むき出しになったテープ(LEDの付いた基盤)を、アルミフレームに入れて、園芸の柱にセメダインでくっつけてポール完成。その後、自立させたかったので足をLEGOで作った。

次に、ESP32と3Pinケーブルをはんだでくっつけた。

最後に、LEDポール同士やESP32とを3Pinケーブルでつないで完成。

ESP32のコード準備

そもそもAruduinoやESP32について何も知らなかったので、このサイトに沿って、インターネット経由でLEDを制御することを勉強。その後、LEDポール用に以下のコードを準備。

Arduino IDEを使用して、ArtNet WifiライブラリとFastLEDライブラリをダウンロードする。Arduinoのスケッチ例から、ArtnetWifiFastLEDを開く。コードのうち、変更したところは、Wifi settingsとLED settingsのところ。

// Wifi settings
const char* ssid = "";
const char* password = "";

ssidに名前、passwordにパスワードを入れる。

// LED settings
const int numLeds = 120; // CHANGE FOR YOUR SETUP
const int numberOfChannels = numLeds * 3; // Total number of channels you want to receive (1 led = 3 channels)
const byte dataPin = 4;
numLedsにLEDの数、dataPinにESP32のボードの何番のピンをLEDにつないだかを入れる。

このコードをESP32に書き込むが、書き込むときに注意点がある。書き込みの前に、IODのボタンを押しっぱなしのままENを押して離す。そのまま(IODは押したまま)書き込みを始める。コンパイルが終わり書き込みが始まったタイミングで、IODを押していた指を離して、書き込み終了を待つ。

TouchDesigner内のシステム

今回のダンス動画の撮影は、あらかじめ曲に合わせてLEDの発光パターンを決めた。Davinci Resolveで音に合わせた発光パターンを動画として書き出して、その動画をTouchDesignerで読み込む。その後、TouchDesignerで、色や光の調整をしてESP32にDMXとして情報を送るというシステムを考えた。

システム全体は、LEDpatternPage、ColorPage、GeneralPage、PreviewPage、TOPtoESP32Pageと後その他に分かれる。それぞれのPageの受け渡しは、TOPで行った。

簡単にそれぞれ説明する。

LEDpatternPage - 光の動き、点滅のパターン生成(白黒)

   発光パターンを表した動画をMovieFileInで、読み込むだけ。ただ、パターンが決まる前は、発光テスト用にいくつかTouchDesigner内でパターンを生成した。Constant ChopをCropするなどして、光の上下移動や点滅などのパターンを作った。

ColorPage - パターンの色を決定する

   受けとったTOPに、LevelTopで色をつける。

GeneralPage - 光の強さやコントラストなどを調整

   受けとったTOPを、LevelTop等で調整する。

TOPtoESP32Page - TOPの情報として入力されたパターンをDMXに変換

   ここの部分は、このサイトのサンプルファイルを参考にした。

UI設計

UIは下のようにした。

UI案

実際の画面

LEDパターンと色のところは、クリックで切り替えをする。コントローラーのところは、GeneralPageの光の強さなどをいじるパネルを置いた。また、パターン毎に変数として欲しい値も、ここにパネルを置いていじった。

一番苦労したのが色のUI。9つのパネルから選択されたものをその隣の「現在の色パネル」に表示。「現在の色パネル」の下のRGBバーをいじって色を変更できるようにした。変更した値は、右側のパネルにも出力され、その色を記憶できるようにした。

こんな感じ

部屋で点灯テストしている様子は以下の動画で。

TouchDesigner内の詳しい内容は聞いていただければ、喜んでお答えします。twitterの方まで是非

当日の様子

最後に

電子工作等、全くやったことない身でしたが、ネット上の先人方の記事のおかげで、無事完成させることができました。この場をお借りして感謝申し上げます。今回、妥協した点はいくつかあります。

1、ESP32の電源をPCから直接とったこと

スマホのモバイルバッテリーでやろうとしましたがうまくいかなかったです。カメラの画角にPCが入らなければよいので、ケーブルをできるだけ伸ばす方法に落ち着きました。

(参考:ダイソーの3000mAhでたった500円のモバイルバッテリーを電子工作に使ってみた(検証あり)

2、多分これ以上LEDポールを増やせない

DMXが512チャンネルまでの情報をおくるので、170LED(=512/3)くらいまでしか制御できない(このシステムでは)(RGBにそれぞれ1チャンネル)。解決策はわかりませんが、より壮大なLED制御の機会があれば、考えようと思います。

今後もTouchDesignerを使って作品を作ります。最後まで読んでいただきありがとうございます。

参考

ESP32の使い方入門【20個のチュートリアル】

ピクセルマッピングでLEDテープライト制御 NeoPixel+ESP32+TouchDesigner

ArtNet DMX で Lチカしてみた。(ESP8266/ESP32 + NeoPixel LED)

ArduinoでNeopixel操作

60LED/60pxのLEDバー Super ScenografixをTouchDesignerから使う

DMX-512であなただけの照明制御システムを構築しよう! [テープLED/フルスペクトル LED]

DMX講座

オシャレな間接照明の極意

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