2025年10月 この範囲を時系列順で読む この範囲をファイルに出力する
自宅のネット回線が不調です。繋がりません。
この書き込みは自宅のLANからなので書けていますが、さてどうしたものか。
以前にも同様のことがあった時はONUをしばらく休ませると治ったのですが、今回は少し違う感じがします。
#雑談
この書き込みは自宅のLANからなので書けていますが、さてどうしたものか。
以前にも同様のことがあった時はONUをしばらく休ませると治ったのですが、今回は少し違う感じがします。
#雑談
2025年9月 この範囲を時系列順で読む この範囲をファイルに出力する
小さな野外フェスです。
オペを部下に任せて3D-CADで設計。
スモークマシンのリキッドのボトルの注ぎ口です。
無くても仕事に支障はない地味な品物ですが、ネジがS38と思われる注ぎ口は市販品に見当たらないし、ちゃんとしとくに越したことない要素ですし、これまでネジをプリントしたことがないので新しい3Dプリンタのトライアルにちょうどいい。
#器具の製作
オペを部下に任せて3D-CADで設計。
スモークマシンのリキッドのボトルの注ぎ口です。
無くても仕事に支障はない地味な品物ですが、ネジがS38と思われる注ぎ口は市販品に見当たらないし、ちゃんとしとくに越したことない要素ですし、これまでネジをプリントしたことがないので新しい3Dプリンタのトライアルにちょうどいい。
#器具の製作
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時間も堂々巡り。なんでかな???
#器具の製作
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