タグ「Art-Net」を含む投稿[134件]
ホール増員でしたが操作盤の置物でしたので Art-Net の装置を作るための情報整理をやってました。情報量が多いので終わってませんが、これまでに実験したこと、AIさんたちに聞いたことなどです。
ソースコードも大切ですが、今日はOSのセッティングについてです。Art-Net を扱うのに不要なこと、つまりはOSから無駄を省きたいのです。
まずは Art-Net は IPv4 を用いますので IPv6 は不要です。
NIC は Art-Net の IN/OUT と作業用の3つを使いますが、Art-Net の IN/OUT 側は Art-Net 以外の通信をしないようにした方が良さそうです。
これらのセッティングをしてからプログラミングを進める方針です。
また、RaspberryPi の CPU にはコアが4つありますが、このウチの2つか3つを Art-Net にのみ割り振ろうと思います。こんなことが出来るんだと驚きましたが、出来るみたいですね。
土台をキチンと作って処理に「待ち」を持たせないようにしたいものです。
#[Art-Net] #器具の製作
ソースコードも大切ですが、今日はOSのセッティングについてです。Art-Net を扱うのに不要なこと、つまりはOSから無駄を省きたいのです。
まずは Art-Net は IPv4 を用いますので IPv6 は不要です。
NIC は Art-Net の IN/OUT と作業用の3つを使いますが、Art-Net の IN/OUT 側は Art-Net 以外の通信をしないようにした方が良さそうです。
これらのセッティングをしてからプログラミングを進める方針です。
また、RaspberryPi の CPU にはコアが4つありますが、このウチの2つか3つを Art-Net にのみ割り振ろうと思います。こんなことが出来るんだと驚きましたが、出来るみたいですね。
土台をキチンと作って処理に「待ち」を持たせないようにしたいものです。
#[Art-Net] #器具の製作
珍しく年末年始休みですが、いざとなると暇すぎ。
ならばとAIのGeminiさんと会話。Art-Net機器の開発に関してです。ぶっちゃけChatGPTより頼もしい回答。色々解決しました。
#[Art-Net] #C言語
ならばとAIのGeminiさんと会話。Art-Net機器の開発に関してです。ぶっちゃけChatGPTより頼もしい回答。色々解決しました。
#[Art-Net] #C言語
ホール管理の増員です。
あと一週間ほどすると閑散期に入りますのでネタの整理をしています。
常駐の者と話したのですが、会場設備のArt-Netを使ってもRDMを使う人はこれまで全く居なかったとのこと。不用とは言いませんが、私が作ろうとしているArt-Net機器にRDMを対応させる必要があるかは微妙です。対応するかしないかで処理量が格段に違いますし、自分にとって便利な機器を作ることが開発方針ですから背伸びはいけません。思い返せばRaspberryPi縛りのトライアルとして始めたことですから、RaspberryPiで役不足ならそもそもが違ってきます。
課題はArt-Netの切替機とディレイ機能を持ったバッチマシンです。中規模なフェスを対象とし、DMXを8ユニバースくらい扱えればと思っています。
追記
ChatGPTに聞いたりして考えてみましたが、RDMには対応せずで良いと思います。何よりもRDMに対応したフィクスチャーが手元にありませんから自分にとってはあっても無くても変わりません。
RDMは仕込みが一定のアミューズメント施設などでは効果があると思いますが、仮設においては微妙です。
てなわけで、ブロードキャストのArtDmxだけ扱う切替機、パッチマシンを作りましょう。
#[Art-Net]
あと一週間ほどすると閑散期に入りますのでネタの整理をしています。
常駐の者と話したのですが、会場設備のArt-Netを使ってもRDMを使う人はこれまで全く居なかったとのこと。不用とは言いませんが、私が作ろうとしているArt-Net機器にRDMを対応させる必要があるかは微妙です。対応するかしないかで処理量が格段に違いますし、自分にとって便利な機器を作ることが開発方針ですから背伸びはいけません。思い返せばRaspberryPi縛りのトライアルとして始めたことですから、RaspberryPiで役不足ならそもそもが違ってきます。
課題はArt-Netの切替機とディレイ機能を持ったバッチマシンです。中規模なフェスを対象とし、DMXを8ユニバースくらい扱えればと思っています。
追記
ChatGPTに聞いたりして考えてみましたが、RDMには対応せずで良いと思います。何よりもRDMに対応したフィクスチャーが手元にありませんから自分にとってはあっても無くても変わりません。
RDMは仕込みが一定のアミューズメント施設などでは効果があると思いますが、仮設においては微妙です。
てなわけで、ブロードキャストのArtDmxだけ扱う切替機、パッチマシンを作りましょう。
#[Art-Net]
Art-Net切替器の構成メモ
・マザーボード:EtherNet-Portを2つ、Wi-fiを1つ持つ RaspberryPi (CM4 + Dual Ether Boardなど)
・Ether Hub:ごく普通の EtherNet-Hub × 2
・NICの設定:OEMコードとMACアドレスからIPv4アドレスを定義しこれを基本アドレスとする
・ネットワークの構成:ネットワークはArt-Net切替器を挟んで卓側とノード側の2ゾーン構築する。この2ゾーンは全く同じ構成とする。Wi-fiは操作用のスマホやタブレットなどを接続するアクセスポイントとする。
・IPアドレスの工夫:手打ちやArtPollを用いてネットワーク上のArt-NetデバイスのIPアドレスを取得し、卓側ゾーンのArt-NetデバイスのIPアドレスをノード側ゾーンのエイリアスとして設定し、ノード側ゾーンのArt-NetデバイスのIPアドレスを卓側ゾーンのエイリアスとして設定する。
追記
必要になりそうなコードをChatGPTに聞いたところそれらしいモノが出てきました。これで動いたらこの上なく便利ですね。雛形であってもChatGPTと10分もやりとりするだけで得られるのは生産性が無茶苦茶いい。IPアドレスのエイリアスを一覧の状態にするコードを尋ねたのですが自分ですべて書いたら何日かかったでしょう。
こういった手段でC言語の関数ライブラリを増やしていけばいいのかもしれません。
ただ、概要を理解して質問しないと求める答えに近づくには時間が掛かるようです。
追記の2
「IPv4アドレスの配列から「0.0.0.0」と重複を削除する」とか
「4バイトのchar配列からIPv4アドレスの文字列配列を作る」とか
「IPv4アドレスの文字列配列から4バイトのchar配列を作る」などの一見地味だけど絶対必要になる処理は chatGPT で一発解決。先人が作った関数ライブラリがあれば簡単ですが、自作するには案外時間がかかったりする代物かもしれません。得られたコードを整理して関数ライブラリ化しヘッダーファイルまで作っておけば便利に使えそうです。この他にも使いそうなローレベルの関数を chatGPT に質問してコレクションしています。IPv4アドレスの一覧からIPアドレスのエイリアスをNICに定義する処理も得ましたが、Google検索だけで自作するには数週間かかったかもしれません。これは本当に凄い。Google検索で先人たちの成果を参考に書いていた時とやっていることは同じですが、より答えに近いところに短時間で到達出来るので生産性は良さそうです。別にC言語を身に着けたいのではなく、C言語でないと処理速度を確保出来ないから仕方なくC言語で書いているだけですからね。
ただ、やってて思ったのですが、全体のアルゴリズムを chatGPT にまとめてもらうにはプロの設計さん並みの知識と説明力が必要かもしれません。求める結果と状況を適切な言葉で簡潔に表さないといけないからです。AIはこちらの求めていることを推測しようとしてくれますが、説明が足りなければ、AIからの提案を理解出来なければ、その先に進むことは出来ません。いや、無料で得られる範囲では限度があると思うべきでしょう。
#器具の製作 #[Art-Net] #C言語
・マザーボード:EtherNet-Portを2つ、Wi-fiを1つ持つ RaspberryPi (CM4 + Dual Ether Boardなど)
・Ether Hub:ごく普通の EtherNet-Hub × 2
・NICの設定:OEMコードとMACアドレスからIPv4アドレスを定義しこれを基本アドレスとする
・ネットワークの構成:ネットワークはArt-Net切替器を挟んで卓側とノード側の2ゾーン構築する。この2ゾーンは全く同じ構成とする。Wi-fiは操作用のスマホやタブレットなどを接続するアクセスポイントとする。
・IPアドレスの工夫:手打ちやArtPollを用いてネットワーク上のArt-NetデバイスのIPアドレスを取得し、卓側ゾーンのArt-NetデバイスのIPアドレスをノード側ゾーンのエイリアスとして設定し、ノード側ゾーンのArt-NetデバイスのIPアドレスを卓側ゾーンのエイリアスとして設定する。
追記
必要になりそうなコードをChatGPTに聞いたところそれらしいモノが出てきました。これで動いたらこの上なく便利ですね。雛形であってもChatGPTと10分もやりとりするだけで得られるのは生産性が無茶苦茶いい。IPアドレスのエイリアスを一覧の状態にするコードを尋ねたのですが自分ですべて書いたら何日かかったでしょう。
こういった手段でC言語の関数ライブラリを増やしていけばいいのかもしれません。
ただ、概要を理解して質問しないと求める答えに近づくには時間が掛かるようです。
追記の2
「IPv4アドレスの配列から「0.0.0.0」と重複を削除する」とか
「4バイトのchar配列からIPv4アドレスの文字列配列を作る」とか
「IPv4アドレスの文字列配列から4バイトのchar配列を作る」などの一見地味だけど絶対必要になる処理は chatGPT で一発解決。先人が作った関数ライブラリがあれば簡単ですが、自作するには案外時間がかかったりする代物かもしれません。得られたコードを整理して関数ライブラリ化しヘッダーファイルまで作っておけば便利に使えそうです。この他にも使いそうなローレベルの関数を chatGPT に質問してコレクションしています。IPv4アドレスの一覧からIPアドレスのエイリアスをNICに定義する処理も得ましたが、Google検索だけで自作するには数週間かかったかもしれません。これは本当に凄い。Google検索で先人たちの成果を参考に書いていた時とやっていることは同じですが、より答えに近いところに短時間で到達出来るので生産性は良さそうです。別にC言語を身に着けたいのではなく、C言語でないと処理速度を確保出来ないから仕方なくC言語で書いているだけですからね。
ただ、やってて思ったのですが、全体のアルゴリズムを chatGPT にまとめてもらうにはプロの設計さん並みの知識と説明力が必要かもしれません。求める結果と状況を適切な言葉で簡潔に表さないといけないからです。AIはこちらの求めていることを推測しようとしてくれますが、説明が足りなければ、AIからの提案を理解出来なければ、その先に進むことは出来ません。いや、無料で得られる範囲では限度があると思うべきでしょう。
#器具の製作 #[Art-Net] #C言語
現場に出るまで少し時間があったので Art-Net切替器について考えてみました。
Art-Net切替器を挟んで物理的なネットワークゾーンが二つある状態になります。片方には卓が数台居て、片方にはノードが数台居ます。これらを全く同じ構成に見えるようにしたらどうかなと。Art-Net切替器の卓側のネットワークインターフェースにはノードのIPアドレスを持ったエイリアスを作り、ノード側のネットワークインターフェースには卓のIPアドレスを持ったエイリアスを作るのです。それぞれのゾーンは見た目が全く同じになり、エイリアスのIPアドレスへの通信はArt-Net切替器で受信されます。もちろん、エイリアスであってもネットワークインターフェースに実在するIPアドレスですからsocketによる通信は普通の手段で可能なハズです。
DMXのレベルデータを扱うArtDmxだけなら不用かもしれませんが、出来るだけクソ真面目にやってみようかなと。
ちょっと面倒ではありますが、こういうことでいいのかな?
#器具の製作 #[Art-Net]
Art-Net切替器を挟んで物理的なネットワークゾーンが二つある状態になります。片方には卓が数台居て、片方にはノードが数台居ます。これらを全く同じ構成に見えるようにしたらどうかなと。Art-Net切替器の卓側のネットワークインターフェースにはノードのIPアドレスを持ったエイリアスを作り、ノード側のネットワークインターフェースには卓のIPアドレスを持ったエイリアスを作るのです。それぞれのゾーンは見た目が全く同じになり、エイリアスのIPアドレスへの通信はArt-Net切替器で受信されます。もちろん、エイリアスであってもネットワークインターフェースに実在するIPアドレスですからsocketによる通信は普通の手段で可能なハズです。
DMXのレベルデータを扱うArtDmxだけなら不用かもしれませんが、出来るだけクソ真面目にやってみようかなと。
ちょっと面倒ではありますが、こういうことでいいのかな?
#器具の製作 #[Art-Net]
なんとなく RDM について調べを進めてみました。
ArtDmx はブロードキャストによる一方通行の通信ですが、RDM はユニキャストによる双方向通信です。
ArtDmx の中継は簡単ですが、RDM の中継はどうやりましょうってのが現在の懸念。
切替器のIPアドレスは卓やRDMノードとは無関係なIPアドレスを用います。中継するのですから卓やRDMノードからの送信を一度受信して送信しなおすことになりますが、全く関係ないIPアドレスを持つ切替器でどうやってそれらからの送信を受信するかが懸念というか課題となっています。
ArtpollでRDMノードを確認して対応したソケットをすべて作るか、ネットワークキャプチャで通信をすべて読んでフィルタするかになりそうですが、どうするにせよ今の知識の範囲では対応できません。
追記
TCP/IPでは条件がややこしくなりますが、UDP/IPならばC言語のsocketではポートを指定してすべてのIPアドレスから受信が簡単に出来るそうな。送信元IPアドレスとポートを指定しても送信もできるそうな。
もっと調べないとわからないけど、この方向で対応出来そうな気がする。
追記の2
socketはネットワークインターフェースに設定されていないIPアドレスは扱えない様子。
ネットワークインターフェースにエイリアスドレスを設定すれば良いのかもしれない。
#器具の製作 #[Art-Net]
ArtDmx はブロードキャストによる一方通行の通信ですが、RDM はユニキャストによる双方向通信です。
ArtDmx の中継は簡単ですが、RDM の中継はどうやりましょうってのが現在の懸念。
切替器のIPアドレスは卓やRDMノードとは無関係なIPアドレスを用います。中継するのですから卓やRDMノードからの送信を一度受信して送信しなおすことになりますが、全く関係ないIPアドレスを持つ切替器でどうやってそれらからの送信を受信するかが懸念というか課題となっています。
ArtpollでRDMノードを確認して対応したソケットをすべて作るか、ネットワークキャプチャで通信をすべて読んでフィルタするかになりそうですが、どうするにせよ今の知識の範囲では対応できません。
追記
TCP/IPでは条件がややこしくなりますが、UDP/IPならばC言語のsocketではポートを指定してすべてのIPアドレスから受信が簡単に出来るそうな。送信元IPアドレスとポートを指定しても送信もできるそうな。
もっと調べないとわからないけど、この方向で対応出来そうな気がする。
追記の2
socketはネットワークインターフェースに設定されていないIPアドレスは扱えない様子。
ネットワークインターフェースにエイリアスドレスを設定すれば良いのかもしれない。
#器具の製作 #[Art-Net]
Art-Net の実験を始めた当初、複数の卓からの Art-Net をごく普通の Ether-Hub を通じて RaspberryPi で受信し、特定のIPアドレスからの Artdmxパケットを送り出す実験をしました。主機能はコレの延長線でいいのだと思います。
必要なのはそれらしい操作環境です。web操作が一番コストがかかりませんし、以前 RaspberryPi を web画面で操作したことがありますので経験はあります。やったことがないのは CGI と主機能を結びつける方法としてローカルループバックでソケット通信をすることですが、難しかったら全体が構成出来ませんのでナンとかなるっしょ。以前は RAMディスクをこさえてファイル経由でデータを共有してました。これも悪くないのですが、ソケット通信の方が直球かなと。
#器具の製作 #[Art-Net]
必要なのはそれらしい操作環境です。web操作が一番コストがかかりませんし、以前 RaspberryPi を web画面で操作したことがありますので経験はあります。やったことがないのは CGI と主機能を結びつける方法としてローカルループバックでソケット通信をすることですが、難しかったら全体が構成出来ませんのでナンとかなるっしょ。以前は RAMディスクをこさえてファイル経由でデータを共有してました。これも悪くないのですが、ソケット通信の方が直球かなと。
#器具の製作 #[Art-Net]
Art-Net 切替器は選択した卓からの ArtDmxパケットを通すことを主機能としますが、RDMパケットは ArtDmx とは別に卓を選択出来るようにしようと思います。もちろん双方向です。
残念ながら RDM に対応した卓もフィクスチャーもありませんのでチェックする環境を作れませんが、これは照明器具の販売やコンサルを生業にされている知人に協力を仰ぎましょう。
一番の問題は私の時間と気力です。今のところこれらの在庫が切れています・・・。
#器具の製作 #[Art-Net]
残念ながら RDM に対応した卓もフィクスチャーもありませんのでチェックする環境を作れませんが、これは照明器具の販売やコンサルを生業にされている知人に協力を仰ぎましょう。
一番の問題は私の時間と気力です。今のところこれらの在庫が切れています・・・。
#器具の製作 #[Art-Net]
DMX切り替え機を引き渡しました。
ちょっと一息です。
オーダーしてくれた知人と話をしたのですが、DMXのチャンネル数が増えてきたのでもっと沢山のユニバースを扱いたいとのこと。
ならば Art-Net の切り替え機がイイんぢゃないかと。卓を複数使いそうな現場で使う卓なら Art-Net くらい出すでしょうし。
これなら妄想中の Art-Net パッチの簡易版的に構成するだけです。ソケットで受信した特定のIPアドレスからのパケットをそのまま送り出すだけで、デコード/エンコードもパッチも、よもやディレイも必要ありません。製作する物理回路はほぼ無く、本機能は RaspberryPi 1個で完結します。その気になれば3日あれば書けてしまいそうなアプリです。ケース作りは別な話ですけど。
手間暇かかりそうなのは「パケットを中継する送信元IPアドレス(卓)を選択する機能」です。物理的な操作盤を作るのは面倒でコストもかかりますので、操作頻度が少ない装置ですからwifi経由のブラウザ操作でいいでしょう。操作のweb画面と本体アプリにソケット通信するCGIを書くだけです。
追記
装置の構成図です。

操作盤を物理キーとモニタにすれば Art-Net パッチそのものです。
#器具の製作 #[Art-Net]
ちょっと一息です。
オーダーしてくれた知人と話をしたのですが、DMXのチャンネル数が増えてきたのでもっと沢山のユニバースを扱いたいとのこと。
ならば Art-Net の切り替え機がイイんぢゃないかと。卓を複数使いそうな現場で使う卓なら Art-Net くらい出すでしょうし。
これなら妄想中の Art-Net パッチの簡易版的に構成するだけです。ソケットで受信した特定のIPアドレスからのパケットをそのまま送り出すだけで、デコード/エンコードもパッチも、よもやディレイも必要ありません。製作する物理回路はほぼ無く、本機能は RaspberryPi 1個で完結します。その気になれば3日あれば書けてしまいそうなアプリです。ケース作りは別な話ですけど。
手間暇かかりそうなのは「パケットを中継する送信元IPアドレス(卓)を選択する機能」です。物理的な操作盤を作るのは面倒でコストもかかりますので、操作頻度が少ない装置ですからwifi経由のブラウザ操作でいいでしょう。操作のweb画面と本体アプリにソケット通信するCGIを書くだけです。
追記
装置の構成図です。

操作盤を物理キーとモニタにすれば Art-Net パッチそのものです。
#器具の製作 #[Art-Net]
今日の現場で EoC に Art-Net 通してみます。
倉庫で数十時間のランニングテストをしましたので大丈夫だと思いますが、現場での初使用は怖いものです。
願わくば光ケーブルで10Gbpsくらいの帯域を確保したいところですが光ケーブルはデリケートで高価です。その点、同軸ケーブルは機械強度が高く安価なのでウチの会社に向いていると思います。
スループットはカタログ値で100Mbpsですが8ユニバースくらいなら扱えそうなのでこれもウチの会社には手ごろです。
現実的な機能を出来る限り安価に確保することが大切だと思っています。
追記
感動も不満も何事もなく平然と動きます。
タイムラグがあるような気もするけどホール灯体の遅れに比べたら気が付かないレベル。
えーんでないか。
#[Art-Net]
倉庫で数十時間のランニングテストをしましたので大丈夫だと思いますが、現場での初使用は怖いものです。
願わくば光ケーブルで10Gbpsくらいの帯域を確保したいところですが光ケーブルはデリケートで高価です。その点、同軸ケーブルは機械強度が高く安価なのでウチの会社に向いていると思います。
スループットはカタログ値で100Mbpsですが8ユニバースくらいなら扱えそうなのでこれもウチの会社には手ごろです。
現実的な機能を出来る限り安価に確保することが大切だと思っています。
追記
感動も不満も何事もなく平然と動きます。
タイムラグがあるような気もするけどホール灯体の遅れに比べたら気が付かないレベル。
えーんでないか。
#[Art-Net]