2025年9月 この範囲を時系列順で読む この範囲をファイルに出力する
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]
防滴の LED-PAR を修理していたのですが、表示のカバーのアクリルが割れている物がありました。折れているのではなく割れです。
アクリル用の接着剤は浸透性がいいので接着出来ましたし、接着剤の痕は研き剤で落とせましたが、パッキンゴムに押されて割れの部分が曲がります。バケツにドボンでも今のところ浸水はありませんが、何かをキッカケに割れてしまいそうな感じがするので一枚板から作り直した方が良さそうです。
#器具の修理
アクリル用の接着剤は浸透性がいいので接着出来ましたし、接着剤の痕は研き剤で落とせましたが、パッキンゴムに押されて割れの部分が曲がります。バケツにドボンでも今のところ浸水はありませんが、何かをキッカケに割れてしまいそうな感じがするので一枚板から作り直した方が良さそうです。
#器具の修理
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]
DMX切り替え機が仕上がりました。
ただ、作業途中に不思議なことがありました。
以前正常に動いたファームウェアをマイコンに書き込んだら動かない。あれやこれやとチェックしたのですが、元に戻したら正常に動いた。3時間も堂々巡り。なんでかな???
#器具の製作
ただ、作業途中に不思議なことがありました。
以前正常に動いたファームウェアをマイコンに書き込んだら動かない。あれやこれやとチェックしたのですが、元に戻したら正常に動いた。3時間も堂々巡り。なんでかな???
#器具の製作
基板の在庫を整理していてしばらく前にした断捨離の大間違いを発見!
DMXスプリッターを自作して使っていますが、なんと正しい基板を捨てて間違った基板が在庫されていました。なんてこったい!!
覆水盆に戻らず、無い物は仕方ありません。作り直すことにします。スプリッターとして使うだけでなく、ちょっとした製作の補助回路として使うこともあるので無いのは困るのです。
ちょっとショックでしたが、ちゃんとしておきたい品物ですから気合いを入れてやりましょう。
ただ、チップ抵抗やコンデンサに1608サイズを使うことは止めようと思います。1608とは1.6×0.8mmのことで、言うまでもなく老眼者には表記が見えない小ささです。
追記
ふと気になって稼働品の中を確認したのですが在庫の基板が使われてました。トランジスタの使い方(エミッタフォロア)に問題はあるものの正常に使えています。枚数があるので使うことにします。
#器具の製作
DMXスプリッターを自作して使っていますが、なんと正しい基板を捨てて間違った基板が在庫されていました。なんてこったい!!
覆水盆に戻らず、無い物は仕方ありません。作り直すことにします。スプリッターとして使うだけでなく、ちょっとした製作の補助回路として使うこともあるので無いのは困るのです。
ちょっとショックでしたが、ちゃんとしておきたい品物ですから気合いを入れてやりましょう。
ただ、チップ抵抗やコンデンサに1608サイズを使うことは止めようと思います。1608とは1.6×0.8mmのことで、言うまでもなく老眼者には表記が見えない小ささです。
追記
ふと気になって稼働品の中を確認したのですが在庫の基板が使われてました。トランジスタの使い方(エミッタフォロア)に問題はあるものの正常に使えています。枚数があるので使うことにします。
#器具の製作
知人に頼まれた装置を作ってました。DMXの経路を切り替える物です。フェスで複数の卓から一つを選択するために使います。以前2台作ったのですが追加1台です。
次の現場の準備は昨日のウチに終わりにしたので有給休暇を取って引き籠り。夏休みの宿題は終わりが迫ってから睡眠時間を削ってやってた子供でしたが半世紀経ってもそれは同じ。納品を数日後に控えて慌ててやっております。
言い訳をするなら、ここ半年くらい目頭の痛みが酷い状態が続いていまして細かい作業が出来なかったのです。幸い、ビタミンB12を多く含んだ目薬をさし、ピップエレキバンを目のツボに貼るなどで改善する方法を見つけたので細かい作業が出来るようになりました。
ともかく物理的な工作は終わり。あとはマイコンにファームウェアを書き込んで動作チェックをし、ケースにネームランドの貼り込みです。これは現場上がりでもあと2日間で何とかなりそうです。基板の半田付けに間違いが無ければですけど。
#器具の製作 #自分を修理しよう!『指圧の世界』へようこそ!?
次の現場の準備は昨日のウチに終わりにしたので有給休暇を取って引き籠り。夏休みの宿題は終わりが迫ってから睡眠時間を削ってやってた子供でしたが半世紀経ってもそれは同じ。納品を数日後に控えて慌ててやっております。
言い訳をするなら、ここ半年くらい目頭の痛みが酷い状態が続いていまして細かい作業が出来なかったのです。幸い、ビタミンB12を多く含んだ目薬をさし、ピップエレキバンを目のツボに貼るなどで改善する方法を見つけたので細かい作業が出来るようになりました。
ともかく物理的な工作は終わり。あとはマイコンにファームウェアを書き込んで動作チェックをし、ケースにネームランドの貼り込みです。これは現場上がりでもあと2日間で何とかなりそうです。基板の半田付けに間違いが無ければですけど。
#器具の製作 #自分を修理しよう!『指圧の世界』へようこそ!?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131