LEDマトリクスコントロールプログラム Jinx! の使い方

タイトル

LEDマトリクス用のコントロールプログラム Jinx! を使ってみます。
スクリプトも使えて自由度が高いです。最初のLEDの設定がかわかりづらいでしょう。

アドレッサブルRGB LEDテープを使ってビデオ撮影用証明を作ろうと始めましたが、ビデオネタとしてLEDマトリクスにして好きなエフェクトを表示させる方法を紹介してきました。


ESP32にWLEDプロジェクトを書き込むとWiFiでコントロールできるLEDコントローラーが簡単に作れます。

WLEDを使うと照明用ネットワーク・プロトコルを受信できるようになるのでリモートでLEDのエフェクトをコントロールしやすくなります。照明用ネットワーク・プロトコルの一つE1.31を送信するLEDコントロールプログラムも多いです。
今回はそんなLEDコントロールプログラムの一つのJinx!を使ってみます。
Jinx! – LED Matrix Control
http://www.live-leds.de/
このホームページは暗号化通信httpsに対応していないようです。
Jinx!はLEDマトリクスを使う前提のLEDコントローラーです。好きなサイズのマトリクスを設定してエフェクト表示できます。
ですがマトリクスの設定が難しいです。何も表示できず諦めた方も多いでしょう。

Jinx!はとてもおもしろいプログラムです。でも名前が一般的すぎてSEO的に目立たないですね。検索しても情報へたどり着きません。検索する時は”Jinx"と"LED"をキーワードにすると良いでしょう。

Jinx!でLEDマトリクスを設定する

Jinx!は照明用ネットワーク・プロトコルの送信プログラムです。Jinx!ではLEDを直接コントロールしません。LEDマトリクスは照明用ネットワーク・プロトコルを受信できるコントローラーに繋がなくてはなりません。その受信コントローラーの一つが上で紹介したESP32で動かすWLEDプロジェクトです。ESP32にLEDマトリクスを接続しWLEDプロジェクトを書き込むと照明用ネットワーク・プロトコルを受信しLEDが光ります。

照明用ネットワークプロトコルには何種類かありますが、今回はE1.31を使います。WLED側でE1.31を受信する設定をします。

Jinx!にはどんなLEDを接続しているかを設定します。何をコントロールするのかを教えなくては動くはずがありません。
この設定がわかりずらいです。

最初にLEDマトリクスのサイズを設定します。今回は16x16ドットです。自分のマトリクスサイズに合わせてください。
Setup → Matrix Options を開きます。

LEDマトリクスの設定
Matrix Dimensionでサイズを設定します。WidthとHeightに16を入れます。最大サイズは48000個の最大LED数で決まります。480x100とかですね。

次にLEDの並びを設定します。アドレッサブルRGB LEDは数珠つなぎに接続しますが、マトリクスのLEDがどんな順番でつながっているかを設定します。右から左なのか上から下なのか接続の順番はLEDマトリクスの作りで異なります。
今回私が使うLEDマトリクスはLEDが次のように並んでいます。
LEDの並び
右下スタートです。右下から左へ、そして左端で上へつながり右へ、というふうにジグザグにつながっています。右上まで全部で256個が数珠つなぎになっています。

E1.31ではユニバースという単位で複数の照明機器をコントロールします。512チャンネルが使えます。チャンネルとは8ビットのパラメータひとつだと思ってください。つまり512バイトのデータを一つのユニバースで送れます。
アドレッサブルRGB LEDは一つのLEDの中に赤緑青の3つのLEDが入っています。RGBそれぞれをひとつのチャンネルでコントロールします。つまり3チャンネルで一つのLEDの色が決まります。
1ユニバースは512チャンネルなので3で割り切れる510チャンネルが最大です。すると170個のLEDをコントロールできます。
前述のLEDの並びに合わせるとこのチャンネル番号の割当は次のようになります。
チャンネル割当
まずはこの設定をします。
Setup → Output Devices → Add
Device Universe1

BroadcastはオフにしてWLEDのIPアドレスを入れます。
Universeは1にします。
Data Channelsは510にします。

次にチャンネルの割当をします。一番たいへんなところです。
Setup → Output Patch を開きます。
ここではLEDマトリクスのチャンネル設定をします。場所とRGBのチャンネル番号を一つ一つ設定して行きます。とても大変ですね。
そこで Fast Patchという補助機能を使います。
fast patch
LEDの接続の順番に合わせてチャンネル番号を自動で割り振ってくれます。ですが、長方形領域の割当しかできないので中途半端な領域は手動で割り当てなくてはなりません。

まずはユニバース1の一番広い四角い領域をFast Patchで割り当てます。
7行目1列を選択してFast Patchを開きます。
Patch Areaは Xに16 Yに10 です。
Patch ModeではLEDの接続の順番が選べます。ジグザグはSnakelinesです。そしてどこからスタートするか、今回は右下ですので、
Snakelines starting Bottom-Right
を選びます。

Pixel OrderはRGB LEDの順番を指定します。LEDによってRGBの順番が異なります。また、E1.31の送信コントローラによっても色の順番が異なります。ここを間違えるとRGBのチャンネル割当が入れ替わり思った色で光らなくなります。うまく行かないときは何度も試すことになるでしょう。

First Channelは1です。

Patch Deviceには追加したユニバース1のデバイスを指定します。

OKを押すと16列10行の割当がされます。チャンネル番号が合っているか確認します。

残りの10個のLEDの割当をします。
6行目7列を選択してFast Patchを開きます。
Patch Areaは Xに10 Yに1 です。
Patch Modeは右から始まるものを選びます。
First Channelはさっきの続きなので480です。

この設定ができたら
Setup → Start Output
で送信が始まります。エフェクトを変えて見てみましょう。
ユニバース1の出力

上側の残り86個をユニバース2として割り当てます。
Setup → Output Devices → Add
でUniverseは2にします。
Universe1と同じようにチャンネル番号を割り当てます。
ユニバース2のチャンネル
デバイスをユニバース2のものにするのを忘れずに。

Jinx!を終了するとせっかく設定したPatchが消えてしまいます。保存しておきましょう。
どんなエフェクトがあるかはビデオを御覧ください。

ビデオ



コメント

最近のコメント

Threaded Recent Comments will be here.