M5Stackと NeoPixel で Art-Net DMX を使った LED エフェクト実験

M5Stack

こんばんは。

そろそろイルミネーションの季節が来たので、フルカラー LED の出番がやってまいりました。
去年からやってみたと思っていて先延ばしにしていたのですが、ついに実現できました!
今回はかなりスゴイですよ!!!

M5Stack ( ESP32 搭載 )と NeoPixel LED ( WS2812B )を組み合わせて、Art-Net DMX で WiFi コントロールしてみました。
しかも、MIDI コントローラーも使って、DJ ( VJ? )っぽい LED ショーエフェクトができるようになりました。

スポンサーリンク


今回は Windows パソコンが必要になりますが、とりあえず動画をご覧ください。

いかがでしょうか。
MIDI を介しているので、多少タイムラグがあるのは仕方ありません。
レスポンスを高速化したいのであれば、プログラムや設定を工夫せねばなりません。
それは今後の課題とします。
でも、お遊びで、DMX レベルデータを文字表示に置き替えたら、意外と面白い効果が出ました。
工夫次第でいろいろ遊べそうです。
これだけのエフェクトを自分で作ろうと思うと、気が遠くなるほどのプログラムを組まねばなりません。
でも、Art-Net DMX の受信処理だけのプログラムを M5Stack ( ESP32 ) に書き込むだけで、エフェクト処理は全てパソコンソフトに任せれば、複雑なエフェクトや演出が可能です。
これを使えば、クリスマスイルミネーションもいろいろできそうですね。

この記事を作る前、Art-Net と ESP32 および M5Stack で制御する方法を探していたところ、kitazakiさんという方の以下の記事を見つけました。

ArtNet DMX で Lチカしてみた。

おー!
既に試している方がいらっしゃるではありませんか。
kitazakiさんの情報に感謝いたします。
m(_ _)m

私は、まず、ESP32 で Art-Net が動くかどうか確かめたかったので、シリアルモニターで確認するだけのスケッチ(プログラム)を入力して試してみました。

そうしたら、あっさり動いて、拍子抜けしてしまいました。
素晴らしい!
意外と簡単に Art-Net で ESP32 や M5Stack と連携する目途が立ちました。

では、NeoPixel Ring 12連も持っていたので、あっさり動くだろうと思い、Adafruit のライブラリを久々にダウンロードして動かしてみました。
そうしたら、なぜか、ESP32 や M5Stack の WiFi を使う時だけ、LEDの明るさをゼロにしているのにフリッカー(点滅)する現象が出ました。
これについては、ライブラリを別の物に変えることで解決したのですが、詳しくは後で述べます。
そして無事に NeoPixel 不具合問題も解決して、Art-Net DMX 制御がうまくいき、LED エフェクト表示もサクサク動くようになりました。

ということで、これの作り方を説明していこうと思います。

因みに私は独学アマチュア素人です。
誤っていたり、勘違いしていることも有り得ます。
この記事に書いてあることやソースコードは一切保証しません。
ただ、何かありましたコメント投稿等でご連絡いただけると助かります。

    【目次】

  1. Adafruit のライブラリによる NeoPixel 動作の不具合?
  2. Art-Net および DMX について
  3. DMX や Art-Net を使えるソフトやアプリは、エフェクト制御が豊富で MIDI が使えることが多い
  4. 使ったもの
  5. Arduino core for the ESP32 のインストール
  6. ArtnetWifi ライブラリのインストール
  7. FastLED ライブラリのインストール
  8. 自作ライブラリのインストール
  9. 日本語東雲フォントを micro SDHC カードに保存しておく
  10. NeoPixel Ring にピンヘッダをハンダ付けしておく
  11. NeoPixel Ring と M5Stack を接続する
  12. M5Stack に四角形を12個表示させるサンプルスケッチ(プログラム)の入力
  13. M5Stack のディスプレイに日本語ひらがな表示を Art-Net で制御するスケッチ(プログラム)
  14. コンパイル書き込み実行
  15. ENTTEC NMU (Node Management Utility) をインストールして、Art-Net 通信の動作チェック
  16. スマホから Art-Net でコントロールする
  17. LED 演出用のパソコン用ソフト(アプリ)について
  18. Jinx! – LED Matrix Control の使い方
NeoPixel ( WS2812B ) 144個の LED テープや、光ファイバーを使っても面白いものができました。
以下の記事も参照してみてください。

https://www.mgo-tec.com/blog-entry-led-tape-neopixel-esp32-artnet.html

 

Adafruit のライブラリによる NeoPixel 動作の不具合?

先ほど述べたように、ESP32 や M5Stack で Adafruit ライブラリを使って NeoPixel を動かす時、なぜか WiFi を使う時だけ明るさをゼロにしていてもランダムにフリッカー(点滅)する現象が出ます。
以下の動画をご覧ください。

WiFi を ON にしたことによって、電源や信号線にスパイクノイズが乗ったのかな?
と思って、フィルター回路を組んでみたりしましたが、全く効果無しでした。

Twitter でつぶやくと、ある方から別のライブラリならば問題無く動いているという情報を頂きました。

その後、ネット検索でいろいろ調べると、海外の方々でどうやら Adafruit ライブラリで同じ症状で悩んでいる投稿を見つけました。
更に辿ってみると、RMT を使った FastLED ライブラリというものを使えば解決するということを突き止めました。
そう言えば、先ほど紹介した以下の記事
ArtNet DMX で Lチカしてみた。
でも FastLED ライブラリが使われていたことを思い出しました。

それで、実際に使ってみると、フリッカーが全て消え、全く問題無く動作しました。
ということで、これからは NeoPixel には FastLED を使っていこうと思います。

Art-Net および DMX について

Art-Net とは、ググれば沢山出てきます。
正直、私は詳しくありませんので、間違えていたらコメント投稿等でご連絡ください。

Art-Net は、Ethernet で通信するもので、主に多量の照明機器を制御する用途に使われています。
舞台やライブハウス、スタジオ、アリーナ級のエンターテインメントステージで多用されています。
そこでは、ムービングスポットライトなどが使われており、モーター制御でも使用されています。

Art-Net はイギリスの Artistic License 社が制定した、ロイヤリティーフリーの通信規格だそうです。
製品に組み込んだりする場合には、OEMコード取得などの制限があるようですので、以下の本家 Webサイトを参照してください。

https://art-net.org.uk/

簡単にザッと言うと、DMX プロトコルを Ethernet の UDP プロトコル上に載せて通信するものと思えば良いと思います。
UDP ですから、認証などの面倒な手続き不要で、データ送受信に特化していて、転送スピードが速いです。

Ethernet ですから、パソコンから LAN 回線を通して直に通信できますし、Wi-Fi ルーターに接続すれば、無線で飛ばすこともできます。

そして、DMX回線よりも遙かに高速通信なので、DMX 信号を高速で多量に送ることができます。

ならば、DMX とはなんぞや?
ということになると思いますが、これもザッと簡単に言うと、0~255 段階のデータ( 8bit=1byte )を 1 ch( チャンネル )として、512 ch 分のデータを繰り返し連続して送る信号です。

転送速度は、250kbps ( 1秒間に250000 bit ) です。
周波数でいうと、250kHz というところでしょうか。

512ch 分を最速の設定で 1秒間に約40回送ることができるそうです。
かなり昔からある規格で、ハイテクの世の中の現在も現役で使われているプロトコルです。
MIDI のように、自由に使うことが出来、全世界で使われていますね。
これについては、以下の記事がとっても詳しく説明されています。
DMX機器の相性問題とか、とても分かりやすく書かれています。

http://www.tamatech.co.jp/tamada/benkyo03.php

これより、DMX を使えば、明るさを 0~255 段階で調節できる照明機器を一度に 512台制御することが可能です。
ですから、ライブハウスや舞台照明などの多量の照明機器を扱うところで使われているのでしょう。

DMX は、DMX専用ケーブルで DMX 機器と接続しますが、1本のケーブルで最大 512ch しか送ることができず、意外と高価です。
Art-Net にすれば、LAN ケーブルや Wi-Fi に載せることが出来るので、断然便利です。
しかも、512ch × 256 も送ることができるそうです。
131072 ch という膨大な数字です。

業界では 512ch 分を 1 Universe ( ユニバース )と言うそうです。
Art-Net の上位規格 Art-Net3 の場合は 32768 ユニバースも送ることができるそうです。
そうすれば、アリーナクラスやドーム球場クラスの照明機器が扱えるのではないでしょうか?

ムービングスポットライトとかは、明るさだけではなく、カラーやモーター制御もあり、スポット1台だけで数十チャンネル使うと思いますので、大規模なエンターテインメントでは多量のチャンネルが重宝すると思います。

というわけで、私の「にわか知識」によるザッとした解説でした。

DMX や Art-Net を使えるソフトやアプリは、エフェクト制御が豊富で MIDI が使えることが多い

Windows や Mac 上で動作する、DMX や Atr-Net 対応アプリやソフトは、多数の LED pixel のレインボー色変化や、スクロール変化、映像投影など、簡単に効果的に演出できるように作られているものが多いです。
テレビで見る舞台演出などの複雑な LED コントロールは、とっても高価なソフトを使っていると思います。

それを使えば、M5Stack や ESP32 などのマイコンには、簡単なプログラミングを書き込むだけで、演出用のプログラムを書き込む必要がありません。
そして、それらは MIDI プロトコルも使用できる物が多いです。

ということは、DMX 用のコントローラーを使わなくても、MIDI コントローラーがあれば DMX や Art-Net 機器を制御できるということです。
ですから、マイコンを Art-Net で制御できれば、エンターテインメント分野と親和性が高くなります。
音声ファイルに MIDI データを打ち込んで、そのタイムラインと Art-Net と同期すれば、音楽に合わせて LED を点滅させたり、ムービングスポットライトを動かすことができます。

オリンピックスタジアムや、ドーム球場、アリーナ会場などで、観客に WiFi フルカラー LED を持たせて、MIDI と Art-Net を使ってブロードキャストすれば、客席のLEDが音楽と同期して変化するなんていう演出も可能かと思います。
これを考えた人はスゴイですね。
尊敬してしまいます。
そんなようなことが、家の中で実現できてしまうことが今回のテーマです。
クリスマスのイルミネーション演出もイケますよ!

では、次では準備するものを説明します。

コメント

タイトルとURLをコピーしました