2026年2月 この範囲を時系列順で読む この範囲をファイルに出力する
現場への移動が長かったので Art-Net 切替&パッチマシンのアイデアを AI の Gemini さんに投げてみました。
受信は socket で行いますが、受信したデータ(バイナリ)、受信日時、送信元のIPアドレスとMACアドレス、ユニバース番号を mmap を使ったループバッファでとにかく保存します。約2秒分の最大数を構造体配列に保存します。コンソール8台、それぞれユニバース16(使うのは8ですが、使いたいユニバースを取り溢したくないで多めに監視して16とします)、2秒分ですから88フレーム、1フレームあたり600バイトくらいとするなら6MBくらいです。PICマイコンなら厳しいですが、RaspberryPi なら楽勝です。ただし、mmap を OS がスワップ領域に移動すると困るので mlock などでメモリに常駐させる設定は必要です。受信順に保存するだけでは後処理で探しにくいのでインテックスも作ります。送信元とそこにぶら下がるユニバースやデータを階層で表し、ループバッファから目的のデータを最短手順で取り出せるようにします。データベース Access のクエリやリレーショナルデータベースの1対n関係などの参照構造を作っておくイメージです。受信データから送信元を、送信元から受信データを参照しやすくするのです。
あとは、受信、送信、エフェクト、表示、操作をプロセスやスレッドで分割するワケですが、これらはそれぞれ勝手に動作するようにします。どこかがどこかへ指示を送って返り値を得る構造ですとタイミングの管理が難しい。設定書を書き換えるだけでコール・アンド・レスポンスは使わないのです。装置はデータを加工しながら一方向に流す機構ですから、それをそのままに素直に形にすればいいのです。ユーザーは流れているデータを覗き見たり流れ方を変更しますが、覗くのは加工の邪魔をしない隙間で読み出すだけですし、設定書は書き換えて適切な場所に置いておけば加工する側が勝手に読むのでいいのです。mmap の読み書きは衝突の可能性がありますが flock をかければ事足りると思われます。
といったことを Gemini さんに投げたのですが「よいんでない?」とのこと。ただ、AI はユーザーを認めて誉める言葉が多い。「だっせーこと言ってんじゃねーよ」的な言葉があってもいいと思う。
#[Art-Net]
受信は socket で行いますが、受信したデータ(バイナリ)、受信日時、送信元のIPアドレスとMACアドレス、ユニバース番号を mmap を使ったループバッファでとにかく保存します。約2秒分の最大数を構造体配列に保存します。コンソール8台、それぞれユニバース16(使うのは8ですが、使いたいユニバースを取り溢したくないで多めに監視して16とします)、2秒分ですから88フレーム、1フレームあたり600バイトくらいとするなら6MBくらいです。PICマイコンなら厳しいですが、RaspberryPi なら楽勝です。ただし、mmap を OS がスワップ領域に移動すると困るので mlock などでメモリに常駐させる設定は必要です。受信順に保存するだけでは後処理で探しにくいのでインテックスも作ります。送信元とそこにぶら下がるユニバースやデータを階層で表し、ループバッファから目的のデータを最短手順で取り出せるようにします。データベース Access のクエリやリレーショナルデータベースの1対n関係などの参照構造を作っておくイメージです。受信データから送信元を、送信元から受信データを参照しやすくするのです。
あとは、受信、送信、エフェクト、表示、操作をプロセスやスレッドで分割するワケですが、これらはそれぞれ勝手に動作するようにします。どこかがどこかへ指示を送って返り値を得る構造ですとタイミングの管理が難しい。設定書を書き換えるだけでコール・アンド・レスポンスは使わないのです。装置はデータを加工しながら一方向に流す機構ですから、それをそのままに素直に形にすればいいのです。ユーザーは流れているデータを覗き見たり流れ方を変更しますが、覗くのは加工の邪魔をしない隙間で読み出すだけですし、設定書は書き換えて適切な場所に置いておけば加工する側が勝手に読むのでいいのです。mmap の読み書きは衝突の可能性がありますが flock をかければ事足りると思われます。
といったことを Gemini さんに投げたのですが「よいんでない?」とのこと。ただ、AI はユーザーを認めて誉める言葉が多い。「だっせーこと言ってんじゃねーよ」的な言葉があってもいいと思う。
#[Art-Net]
2026年1月 この範囲を時系列順で読む この範囲をファイルに出力する
Art-Net 切替器もパッチも基本的に同じ物として考えています。
基本構成は受信部と送信部があり、間に値を加工するエフェクターを挟みます。
内部は8ユニバースとし、これらをバスと呼称します。
ミキサーというかマージは一番若いバスのみ一般照明向けとしてHTPで考えています。演出操作用ではなく小型サブ卓による作業灯や非常灯用と割り切り、レガシーDMXの入力を1本だけマージするかもしれません(エキストラマージ)。
受信部はIPアドレスやMACアドレスで送信元を選択し、Art-Net ユニバースをバスに渡します。切替器の実体はここです。
エフェクターとはバスの値を加工します。エキストラマージ、パッチ、プロファイルカーブ、ディレイなどはエフェクターとして扱います。ここで何もしなければ単なる切替器です。
送信部はバスの値を Art-Net で送信します。
RDM には対応しません。
複数のコンソールを設置する環境ならば切替器から見てフィクスチャー側に RDM コンソールを繋いだ方が良いと思うからです。
#[Art-Net]
基本構成は受信部と送信部があり、間に値を加工するエフェクターを挟みます。
内部は8ユニバースとし、これらをバスと呼称します。
ミキサーというかマージは一番若いバスのみ一般照明向けとしてHTPで考えています。演出操作用ではなく小型サブ卓による作業灯や非常灯用と割り切り、レガシーDMXの入力を1本だけマージするかもしれません(エキストラマージ)。
受信部はIPアドレスやMACアドレスで送信元を選択し、Art-Net ユニバースをバスに渡します。切替器の実体はここです。
エフェクターとはバスの値を加工します。エキストラマージ、パッチ、プロファイルカーブ、ディレイなどはエフェクターとして扱います。ここで何もしなければ単なる切替器です。
送信部はバスの値を Art-Net で送信します。
RDM には対応しません。
複数のコンソールを設置する環境ならば切替器から見てフィクスチャー側に RDM コンソールを繋いだ方が良いと思うからです。
#[Art-Net]
現場が早く終わって空き時間。とは言っても中途半端な時間なので Art-Net の算数を少々。
切替器やパッチマシンを作るとしてコンソールは何台まで接続可能なのか?です。
今時の EtherNet の通信スペックは 1Gbps が一般的ですが、ケーブルやハブなどに古い物を使ってしまうと 100Mbps になることもあるでしょうし wi-fi を使うと 20Mbpsくらいまで下がる可能性があります。仮に 20Mbps としてコンソールを何台使えるか考えてみます。
ArtDMXのパケットは530バイトです。EtherNetの諸々のデータが貼り付いても600バイトくらい見ておけばいいかな。
EhterNetは1バイト送るのに10ビット必要です。
DMX512の送信レートは最大で44fpsくらいです。
となると、1ユニバース送るのに1秒間に 264kbps くらいの通信速度が最低必要です。DMX512の 250kbps より少し多いですがこんなもんでしょう。
単純に 20Mbps を 264kpbs で割ると 75.757・・・です。Art-Net上に 75 ユニバース存在可能となります。各コンソールから8ユニバース送り出すならコンソールは9台まで不可能ではないとなります。
今のイメージはコンソール8台、合計 64ユニバースですから収まっています。
あとは RaspberryPi の処理能力が足りるかどうかです。
44fps/64ユニバースなら1パケットあたりに許される処理時間は 355usec(0.000355秒) です。以前試作した際は1パケットの処理に150から250usec程度かかっていましたので一応収まります。
先日 AI の Gemini さんとお話をしていたらCPUコアの割り当てや占有の方法がわかったのですが、上記の時間はOSの処理も含めて1つのCPUコアで処理しての値ですから、Art-Netで占有できるCPUコアを設定出来ればもう少し軽くなるかな?
主な処理を書いて1ユニバースあたりの処理時間を計測して最大コンソール数を決めることにしましょう。現実の現場ではバックアップを入れても仕込まれるコンソールは4台くらいでしょうから大丈夫な気はしています。
つか、8台並べてテストする環境を作るのが大変かな?〇ッシュシステムの〇山さんに相談ですね(笑
#[Art-Net]
切替器やパッチマシンを作るとしてコンソールは何台まで接続可能なのか?です。
今時の EtherNet の通信スペックは 1Gbps が一般的ですが、ケーブルやハブなどに古い物を使ってしまうと 100Mbps になることもあるでしょうし wi-fi を使うと 20Mbpsくらいまで下がる可能性があります。仮に 20Mbps としてコンソールを何台使えるか考えてみます。
ArtDMXのパケットは530バイトです。EtherNetの諸々のデータが貼り付いても600バイトくらい見ておけばいいかな。
EhterNetは1バイト送るのに10ビット必要です。
DMX512の送信レートは最大で44fpsくらいです。
となると、1ユニバース送るのに1秒間に 264kbps くらいの通信速度が最低必要です。DMX512の 250kbps より少し多いですがこんなもんでしょう。
単純に 20Mbps を 264kpbs で割ると 75.757・・・です。Art-Net上に 75 ユニバース存在可能となります。各コンソールから8ユニバース送り出すならコンソールは9台まで不可能ではないとなります。
今のイメージはコンソール8台、合計 64ユニバースですから収まっています。
あとは RaspberryPi の処理能力が足りるかどうかです。
44fps/64ユニバースなら1パケットあたりに許される処理時間は 355usec(0.000355秒) です。以前試作した際は1パケットの処理に150から250usec程度かかっていましたので一応収まります。
先日 AI の Gemini さんとお話をしていたらCPUコアの割り当てや占有の方法がわかったのですが、上記の時間はOSの処理も含めて1つのCPUコアで処理しての値ですから、Art-Netで占有できるCPUコアを設定出来ればもう少し軽くなるかな?
主な処理を書いて1ユニバースあたりの処理時間を計測して最大コンソール数を決めることにしましょう。現実の現場ではバックアップを入れても仕込まれるコンソールは4台くらいでしょうから大丈夫な気はしています。
つか、8台並べてテストする環境を作るのが大変かな?〇ッシュシステムの〇山さんに相談ですね(笑
#[Art-Net]
ちょっと忙しい1月です。
仕事があるのは喜ばしいことですが、妄想は出来ても工作の実作業は出来ません。設計という名の妄想をキッチリやらないといけませんのである意味いいのですけどね。
最近の妄想はGoogle検索よりもAIさんたちに聞くことで進めることが多くなりました。AIさんから結論をもらうというより代わりに検索してもらってレポートを頂戴する感じです。
そんなやりとりの中で「C言語は高級アセンブリ言語である」という言葉がありました。ハードウェアを隠蔽してサービスに特化するいわゆる高級言語ではなく、ハードウェアに依存しないアセンブラ言語を示すってことらしいです。自分はハードウェアを動かすことに趣向が向いています。自分のベースはPIC16のアセンブラですが、書いているウチに「C言語はCPUにごとに違うアセンブラを汎用化して書きやすくしたモノだと思えば自分にとって自然だな」と感じていたので妙に納得した言葉です。
何をしたいかによるので「C言語が絶対正義」とは思いませんが、昨今流行りのプログラム言語の大半はC言語を基礎としてして作られていますので原典とも言える存在です。高級言語を書いているとC言語が見え隠れしますので、C言語を知っていた方が理解し易いように思います。今どきの高級言語はC言語の方言と言ってもいいのかもしれません。自分はPIC16アセンブラの後にPython3に行ったのですが、むしろPythonだけを見て煮詰まったことがC言語を習得することで解決したように思います。高級言語とはC言語を楽に使うためのマクロ言語と捉えることが自然な気すらします。FORTRAN・COBOL・BASICなどのC言語と同時期に研究・開発された高級言語は少し違う感じがしますが、今主流の開発言語の大半はC言語の方言なのでしょう。
私のように「物理的な装置を作ること」に趣向を持つ方は少ないと思いますが、コンピュータはマシンコードで動くのですから、マシンコードを汎用的に表現するC言語はハードウェアを直接動かす存在なのでしょう。名前が似通ったC++やC#(C++++)はそれとは違った感じがしますけど。
#C言語
仕事があるのは喜ばしいことですが、妄想は出来ても工作の実作業は出来ません。設計という名の妄想をキッチリやらないといけませんのである意味いいのですけどね。
最近の妄想はGoogle検索よりもAIさんたちに聞くことで進めることが多くなりました。AIさんから結論をもらうというより代わりに検索してもらってレポートを頂戴する感じです。
そんなやりとりの中で「C言語は高級アセンブリ言語である」という言葉がありました。ハードウェアを隠蔽してサービスに特化するいわゆる高級言語ではなく、ハードウェアに依存しないアセンブラ言語を示すってことらしいです。自分はハードウェアを動かすことに趣向が向いています。自分のベースはPIC16のアセンブラですが、書いているウチに「C言語はCPUにごとに違うアセンブラを汎用化して書きやすくしたモノだと思えば自分にとって自然だな」と感じていたので妙に納得した言葉です。
何をしたいかによるので「C言語が絶対正義」とは思いませんが、昨今流行りのプログラム言語の大半はC言語を基礎としてして作られていますので原典とも言える存在です。高級言語を書いているとC言語が見え隠れしますので、C言語を知っていた方が理解し易いように思います。今どきの高級言語はC言語の方言と言ってもいいのかもしれません。自分はPIC16アセンブラの後にPython3に行ったのですが、むしろPythonだけを見て煮詰まったことがC言語を習得することで解決したように思います。高級言語とはC言語を楽に使うためのマクロ言語と捉えることが自然な気すらします。FORTRAN・COBOL・BASICなどのC言語と同時期に研究・開発された高級言語は少し違う感じがしますが、今主流の開発言語の大半はC言語の方言なのでしょう。
私のように「物理的な装置を作ること」に趣向を持つ方は少ないと思いますが、コンピュータはマシンコードで動くのですから、マシンコードを汎用的に表現するC言語はハードウェアを直接動かす存在なのでしょう。名前が似通ったC++やC#(C++++)はそれとは違った感じがしますけど。
#C言語
不調のムービングライトを検査したところステッピングモーターに電圧がかかっていない様子。ステッピングモーターは電圧がかかっていれば保持力が強く指では回せませんから、それが軽く回るならば電圧がかかっていないと予想できます。基板からモーターまでの配線は正常に導通しており、別なドライバ回路に差し替えると動きますからモーター自体は生きている様子です。となると、制御基板に何か障害があるのでしょう。ドライバICに制御マイコンから間違った信号(ディセーブル信号など)が行っているかドライバICが飛んでいると思われます。これまで動いていたのですからドライバICが飛んでいるのが濃厚でしょう。
ドライバICの検査は大変なので交換してみます。SS8841Tと刻印があり、中華電機にありました。1個200円くらいです。表面実装のICですから外すのも付けるのも難しいのですがなんとかなるっしょ。
ドライバICは今月末の入荷予定です。
#器具の修理
ドライバICの検査は大変なので交換してみます。SS8841Tと刻印があり、中華電機にありました。1個200円くらいです。表面実装のICですから外すのも付けるのも難しいのですがなんとかなるっしょ。
ドライバICは今月末の入荷予定です。
#器具の修理
ホール増員でしたが操作盤の置物でしたので 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] #器具の製作
TourZCAM/ETZという防滴のLEDスポットを使っています。この手ではかなり初期の製品ですが、使い勝手が良く便利です。
ですが不動品が出てきました。経年で動作しなくなる場合は電源に起因することが多く、電源モジュールを交換すればいいのですが、全く同じ電源モジュール(OBM-U65S24)は中華電機(Aliexpress)にありません。近しい物でもいいのですが、やたらと小型というか筐体スペースが狭いために入る物がありません。
調べたところ、英国のサウンドハウスみたいなお店で取り扱いはありますが、送料を加えると1個1万円を超える価格。これは高い。
中華電機(Aliexpress)の従妹みたいなTaobaoと呼ばれるポータルサイトにありました。75元(1,680円程度2026/1現在)です。送料も37元(878円程度2026/1現在)とのことですからアリです。PayPalが使えないことは残念ですケド。
ところが、サイトの言語が中文のみなのでブラウザの翻訳機能を使っても登録手順がイマイチわからず右往左往してる内に1日のログイン試行回数を越してしまい今日のところは発注まで至らず。アカウント登録は出来ているみたいなので明日再挑戦です。
追記
Taobaoは使い方がイマイチわかりませんでした。
少しお値段は高くなりましたが、yoycart.comに依頼しました。5個で110USD(送料含む)くらい。EU方面よりは安いみたいだからいいかな。
#雑記
ですが不動品が出てきました。経年で動作しなくなる場合は電源に起因することが多く、電源モジュールを交換すればいいのですが、全く同じ電源モジュール(OBM-U65S24)は中華電機(Aliexpress)にありません。近しい物でもいいのですが、やたらと小型というか筐体スペースが狭いために入る物がありません。
調べたところ、英国のサウンドハウスみたいなお店で取り扱いはありますが、送料を加えると1個1万円を超える価格。これは高い。
中華電機(Aliexpress)の従妹みたいなTaobaoと呼ばれるポータルサイトにありました。75元(1,680円程度2026/1現在)です。送料も37元(878円程度2026/1現在)とのことですからアリです。PayPalが使えないことは残念ですケド。
ところが、サイトの言語が中文のみなのでブラウザの翻訳機能を使っても登録手順がイマイチわからず右往左往してる内に1日のログイン試行回数を越してしまい今日のところは発注まで至らず。アカウント登録は出来ているみたいなので明日再挑戦です。
追記
Taobaoは使い方がイマイチわかりませんでした。
少しお値段は高くなりましたが、yoycart.comに依頼しました。5個で110USD(送料含む)くらい。EU方面よりは安いみたいだからいいかな。
#雑記
珍しく年末年始休みですが、いざとなると暇すぎ。
ならばとAIのGeminiさんと会話。Art-Net機器の開発に関してです。ぶっちゃけChatGPTより頼もしい回答。色々解決しました。
#[Art-Net] #C言語
ならばとAIのGeminiさんと会話。Art-Net機器の開発に関してです。ぶっちゃけChatGPTより頼もしい回答。色々解決しました。
#[Art-Net] #C言語
新年明けましておめでとうございます
本年もボチボチよろしくお願いします。
#雑談
本年もボチボチよろしくお願いします。
#雑談
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