週末はOpenSiv3DでLチカに挑戦!
こんばんは、めのんです!
先日TwitterでArduinoを使ったLチカの動画をアップされていた方がいらっしゃいました。 私もそういうのは好きなので、久々にやってみたくなりました。
ご存じない方のために補足しておくと、「Lチカ」というのはLED(発光ダイオード)をチカチカさせることです。 略して「Lチカ」です。
私は以前はハード屋でしたので、回路図を書いて結線してとやることを考えたと思うのですが、今はソフト屋ですのでちょっと違うアプローチをしてみようと思います。 どういうことかというと、業務用のLED器具を制御するのと同様の方法でLチカをやってみることにします。
業務用の照明器具というのはDMX512-A(通称DMX)という規格で制御します。 実態はRS-485で通信プロトコルが決まっています。
とはいえ、本物のLED器具を用意しようと思うとコストも馬鹿になりませんし、場所も取ります。 なので、今回はOpenSiv3Dを使ってLED器具をエミュレーションしようと思います。 それなら何台も並べることができそうです。
制御信号はDMXを直接だとエミュレーションしにくいので、イーサネットでDMXの情報を送る方法を取ろうと思います。 いくつかのプロトコルがあるようで、有名なものではArt-NetやsACNというのがあります。 今回は比較的シンプルなsACNを使おうかと思います。
sACNの概要については下記ページの説明がわかりやすかったのでリンクを貼っておきます。
sACNではUDPのマルチキャストを使います。 今回はsACNの受信側でLED器具何台かのエミュレーションを行い、送信側では簡単な操作画面を作れたらと思います。
OpenSiv3Dは少なくともLED器具エミュレーション側で使います。 送信側はどうやって実装するかは別途考えることにします。
ところで、OpenSiv3DはUDPをサポートしていないそうです。 生ソケットでもいいのですが、せっかくなのでC++の勉強もかねて、今回はBoost.Asioに挑戦しようかと考えています。
そんなに大したものはできませんが、C++を勉強するのにちょうどいい題材が見つかってよかったです。
それでは!!