Intern

Node-REDでDMX対応の照明器具をコントロールする(1日目)

ENTEC ODE MK2をローカルエリアネットワークに接続して、Node-REDでLEDを制御した。

なお、ODEとはDMX(デジタルマルチプレクサ)信号を送受信するために使用される、イーサネットを備えたデバイスである。
ODEは、DMXに対応した照明器具やエフェクト器具などのデバイスと接続することができるため、舞台やイベントの照明制御システムに統合するのに便利なデバイスである。

事前準備

Node-REDを使ってLEDを制御するにあたって、以下をローカルコンピュータにインストールする必要がある。

  • Node-JS
  • Node-RED
  • sACN(Node-RED内)

以下では、sACNのインストール方法のみ記す。

まず、Node-RED画面の右上にあるバーガーメニューから「パレットの管理」をクリックする。

検索欄に「node-red-contrib-sacn」を入力し、一番上に出てくるものを選択し追加する。

Node-REDで動かしてみる

さっそく、Node-REDを使ってLEDを制御してみる。

Node-REDとは

ビジュアルなプログラミングアプローチを採用しており、コーディングの知識がなくても簡単にフローを作成できるため、初心者から上級者まで幅広いユーザーに利用されている開発ツール。

sACNとは

sACN(Streaming ACN)は、舞台照明やショープロダクションなどで使用されるDMXプロトコルの一種であり、DMX信号をネットワーク上でストリーミングするためのプロトコル。
これによって拡張性の高い照明制御を構築することができる。

sACNのNodeフロー①

左からinjectノード、functionノード、sACNノードを使用している。
それぞれダブルクリックすることでノードの編集が可能になるが、injectノードはスタートのきっかけとして使用しているため中身は特に触れずに進める。

functionノードには、コード部分にUniverseとChannel、Channelの値を書き込む。

msg.topic = "1/1";
msg.payload = 100; //0~255, 0:消灯 255:最大輝度

return msg;

msg.topic = “1/1″は、それぞれ”Universe/Channel”に対応しており、msg.payloadには0~255の値を入れることでLEDの点灯制御が行える。

また、Channelを変更することで、LEDのカラーを変更することができる。

sACNノードは、ODE MK2のIPアドレスとポートは5568を指定する。Transitionはinstantを選択する。
UniverseとChannelは空欄にしておくことでNode-REDのフロー(functionなどで設定したもの)から送ることができる。

次に、デプロイを行う。

Node-REDの画面右上にある「てんとう虫マーク」をクリックし、上部にあるデプロイをクリックする。
「デプロイが成功しました」と表示されたら、次にinjectノードの左側赤丸部分をクリックして実行する。

無事に成功すれば、LEDが任意の色で点灯する。

sACNのNodeフロー②

ここでは、injectノードを2つ設定しており、それぞれpayloadを255,0としてONとOFFを再現している。

次にfunctionノード(sACN DATA1)の中では、injectノードから調光レベル(dimLevel)を数値で送り、その後のfunctionノード(sACN DATA1)で、台数分の全チャンネルにdimLevelを書き込み、ENTTEC ODE MK2に送っている。

var dimLevel = msg.payload;
var fixtureNumber = 50;
var DMXValues =[];

for(i=0;i<(50*3);i++){
    DMXValues[i]= dimLevel;
}

// (string: Universe/Channel)
msg.topic = "1/1";

// DMX values
msg.payload = DMXValues;


return msg;

sACNノードは①と同じように作成し、デプロイ以降も①と同じように行うことで実行することができる。