🗐 電装工芸日記 - 舞台照明機器の製作とか -

能登半島地震で被災された方々にお見舞い申し上げます。

or 管理画面へ

タグ「Art-Net」を含む投稿[93件]

Icon of admin
 トランクにモニタとSFX電源を入れた物がまとまりました。RaspberryPi トランクとでも呼ぶことにします。
20240405102804-admin.jpg 202404051028041-admin.jpg 202404051028042-admin.jpg 202404051028043-admin.jpg
 RaspberryPi と EtherNetHub を実装して ArtNetPatch の開発環境とします。

#電子工作 #[Art-Net]
Icon of admin
 ホール管理の増員で置きダヌキ。
 こういう時はArt-Netパッチの設計を進めるのがいい。いつでも作業を切れるって意味でも不便がありません。
 構造においてはマルチプロセス化することがとても重要です。RasperryPi4Bは4コアありますが手続き型処理はもちろんマルチスレッドでも1コア動作が原則。Art-Netの入力、パッチ処理、出力、フロントエンドの処理を同時並行で行いたいのですが、複数のコアで動くかはOS次第とはいえプロセスを分散しておけば1コアだけに負担がかかることは無くなるので良いかなと思うのです。
 現在の研究課題はプロセス間通信です。例え一つのアプリケーション内でもプロセスを分けてしまうと同じ変数を触ることが出来ません。これを解消するのがプロセス間通信で、SharedMemory、Pipe、Queueなどの手法があります。それぞれに得手不得手があり、扱いが楽な手法は受け渡しが遅く、受け渡しが速い手法は扱いが難しい傾向があります。このどれを使うかで処理構造が違ってくるので、全体の設計を進める上ではどの手法で繋げるかを予め決めておかないと後が面倒なようです。
 注意する点は読み書きのタイミングとデータ枠が可変するかどうかです。勉強中なので説明するのは難しいのですが、この辺りを十分に整理して手段を吟味しているところです。

#C言語 #[Art-Net]
Icon of admin
 先週末は現場が被りまくりでオロオロしてましたが、今週は比較的ヒマなので少しはネタを進められそうです。
 プロセス間の共有メモリの読み書き管理はフローチャートレベルではまとまりました。デフォルトでは読み書きを禁止しておき、認証プロセス(スレッド)へ要求を出し読み書きの許可を得るものです。どちらかがアクセスしている間は他方の処理を待たせます。いわゆるセマフォです。
 この方法で本当にいいのか、タイムアウトなどの例外処理は必要か、その辺りは今後吟味です。
 主処理の実験は以前の試作で済んでいますので、こういった周辺機能をキチンと書くのが今の課題です。

#C言語 #[Art-Net]
Icon of admin
 今週末はホール管理の増員です。これといってやる事のない置きダヌキです。
 Art-Netパッチの処理構造を妄想。
 C言語でドライバ部、Pythonでユーザーインターフェース部を作る棲み分けですが、今はドライバ部の構成を整理しています。
 これまでの試行錯誤から処理フローを図式化。基本の流れは見えたと思います。
 ただ、C言語の構造体を用いた配列処理をもっと突っ込んで覚える必要があります。Art-Netのデータは、レベル値だけでなくメタデータとも言えるインデックスが重要で、カード型データ構造と言ってもいいでしょう。これの追加、削除、抽出、修正を延々と繰り返すので構造体配列を自在に扱えることは必須技能です。
 C言語での配列は少し不器用で、私の理解が間違っていなければ、配列をデータベースに見立てたとしてレコードの追加や削除は出来ません。出来ると言えば出来るのですが、特定のレコードを除いた配列全体を新たな配列としてコピーするような操作が必要です。追加も似た様な操作になります。
 少しややこしいのですが、次のサイトでは面白い事を書いてます。
C言語 構造体を使ってリスト構造を作るプログラム
 C言語の配列に頼らずリスト構造を構成してます。言うなれば手作業で配列操作をするのです。
 また、変数名を使わずメモリ領域を確保してポインタで管理しています。一見不合理な使い方に見えますが合理的かも。アセンブラっぽいので私には違和感はありません。
 オレメモ
C言語:構造体のメンバのアドレス
C言語 ポインタ同士の引き算
 配列が格納されるアドレスとピッチがわかればポインタで配列にアクセス出来ます。処理の内容によってはこの方が速いかも。
 この他にも、以前はどうも理解しきれなかったC言語のマルチプロセスや共有メモリ(mmap)のことが理解できた。
Linuxプロセスの生成と実行 fork/exec
C言語でmmap()を用いてプロセス間で変数を共有する
 以前の試作でイマイチだったところが解決しそうな期待感。

#[Art-Net]
Icon of admin
 ここ数か月全く進んでいませんが、Art-Netパッチを作っています。
 で、思い付く。
 回路名のプロファイルを使えたらどうかと。パッチ画面に回路の名称も併記するのです。パッチ操作ではDMXアドレスだけより名称もあった方が扱いやすいと思うからです。仮設現場でも回路名が表示されていればメンテナンス性がいいでしょうし。
 あと、パッチマシンはC言語で全部書くのではなく、受送信パッチ処理はC言語で書き、ユーザーフロントエンドの部分はPythonで書いた方が良さそうです。C言語でドライバを作りPythonで操作する感覚です。繋げる部分の記述は面倒っちゃ面倒ですが、C言語とPtyhonで得意分野を分けた方が生産性がいいかもしれません。

#[Art-Net] #器具の製作
Icon of admin
 「Open DMX USB」について考えていたのは移動中アタマが空いていたからです。
 学園祭への機材レンタルで搬送をしていたのですが、片道1時間半くらいかかるので考え事をするには丁度良い時間でした。

 そんな中で Art-Net Patch も思い出す。余りに難しく、数日アタマを全振りしないと進められないネタのために止まっています。
 ミキサー(マージ)、プリディレイ(入力に施す)、プリプロファイルカーブ、パッチ、ポストプロファイルカーブ、ポストディレイ(出力に施す)が主な機能ですが、これらの処理(エフェクターと呼称)は参照して計算、参照して計算、参照して計算をひたすら繰り返します。一つ一つはとても簡単な処理ですが、タイミング良く群のデータを短時間で処理しないといけないので構成が難しく、僅かな無駄が後からボディブローの様に効いてきます。

 年齢が年齢なので経験量に対し学習量が少ないなぁ~と思いつつも、オブジェクト指向やマルチスレッドなどが普通に使える様になってきますと今までと違った構成がアタマに浮かんできます。全体を一度に見ると難しい処理ですが、構成を分解・整理すれば分割したライブラリとして進められるんじゃないかと。
 厄介なのはミキサーとディレイですが、これらを実現するには最大遅延時間分の過去を送信元分保存しておく必要があります。このデータ構成を良く考え、エフェクターの出入りを一般化して進めれば機能単位での製作が可能になりそうな気がします。

 目的に対しその環境や言語をどう使えばいいか具体的な見込みを付けてからデータ構造と処理アルゴリズムの本構成を考えることが大切だと思う今日この頃。
 開発のプロからしたら当たり前過ぎることなんでしょうけど。

#[Art-Net] #C言語 #器具の製作
Icon of admin
 DMX Delay を発見!(知人に教えてもらいました)
 DMXdelayer (alpha version)

 同じことに取り組んでいる方がいらっしゃることが何より嬉しいです。

#Art-Net
Icon of admin
 EoCの試験の続きでArt-Netを通してみました。全く問題なく動きます。繋いだだけで動いたので試行錯誤は無し。
 接続は次の通りです。配線が汚いのはテストなのでご勘弁を。

20230823104137-admin.jpg

 [MAdot2]
  ↓ Cat5e
 [Ethernetハブ]
  ↓ Cat5e
 [PoEインジェクタ] ← <AC100v>
  ↓ Cat5e(PoEとして電源供給線も兼ねるので細いケーブルは非推奨)
 [EoCレシーバ]
  ↓ A2V1B(3C相当) 50m
 [EoCトランスミッタ]
  ↓ Cat5e
 [Ethernetハブ]
  ↓ Cat5e
 [Art-Net Node]
  ↓ XLR 5P
 [DoctorMA]
  ↓ USB2.0
 [パソコン]

 エフェクトエンジンのデータで半日くらい様子を見てみます。

 トランスミッタとレシーバは逆にしても動きます。
 DMXのモニターにはDoctorMXを使っていますが、信号の遅れなのかDoccorMXの遅れなのか、ほんのわずかに遅れを感じるかもしれません。

 しばらく先になりますが、現場で使えるパッケージも考えないといけません。これらを毎回組んでいたら面倒ですからね。
 箱の中にそれぞれの用品を固定し、パネルに取り口を付けようと思います。これにUPSやインカムのパワーサプライも同居させたら便利かなと。
 EoCのレシーバとトランスミッタはそこそこ熱を持つのでパッケージにおいては冷却を考慮した方がいいですね。こうったバラバラの物をパッケージする際はベース板を合板にした方が楽ですが、底板をアルミにした筐体放熱も検討の余地ありです。

#[Art-Net]
Icon of admin
 EoCは割り切った仕様で好みです。
 ただ、youtubeの視聴でテストをしていたのですが一度だけ通信が落ちていたことがあります。 原因はわかりませんが、十分に検証する必要はありそうです。
 原因はEoC、LAN、インターネット、パソコン、youtubeなどの構成するすべてとその組み合わせにまで可能性あるだけに絞り込むのは困難でしょう。何かに問題があっても実用レベルで動けばいいのですけどね。そもそも、即応性は二の次として開発されたEthernetでライブ制御をするのですから潜在的な問題だと思いますが・・・。
 現時点ではパソコンをインターネットに接続する試験でしたので、卓からのArt-Netでノードを動かす試験をします。パソコンがインターネットに繋がるなら動くと思いますケド。

 現時点のコストですが、設備用の5C-FBが19,800円/100m、カナレさんのA2V1Bが59,800円/100m、カナレさんのDMX203が19,800円/100mです。
 100mbpsでArt-Netを通せるなら実用域は8ユニバース以上です。何を基準に評価するかですが、仮に4ユニバースとして、DMX203を4本に対しArt-Net&EoCシステム、同軸ケーブルのコストを比較すると若干EoCに分があります。
 コストに大差がなく配線長に優位性があるならEoCを研究する価値があるように思います。

#[Art-Net]
Icon of admin
 EoC のアダプタが入荷しました。翌日お届け恐ろしい。
 まずはパソコンで試していますがネットワークが普通に繋がります。
 購入品は次の2品。
● EoC トランスミッタ&レシーバ
「LINOVISION 同軸LANコンバーター POE対応 電源不要型 1000mまで配線可能 100Mbps最大通信速度 既存の同軸ケーブルでIPカメラ ルーターなどのネットワーク機器を配線可能」
● PoE インジェクター(普通の Ethernet を PoE にする電源アダプタみたいな物)
「REVOTECH ギガビット PoE インジェクター アダプター、IEEE 802.3af/at パッシブ PoE+ 、PoE 48V 0.5A 出力電力、10/100/1000Mbps ギガビット速度、IP カメラ/AP/PTZ/テレビ電話用、プラグ アンド プレイ (D05A-G)」
 主ケーブルはカナレさんの A2V1B の 50mです。3C相当の同軸回線×1、平衡音声回線×2の複合ケーブルです。

 接続は次の通り。

 [パソコン]
  ↓ Cat5e
 [PoEインジェクタ] ← <AC100v>
  ↓ Cat5e
 [EoCレシーバ]
  ↓ A2V1B(3C相当)
 [EoCトランスミッタ]
  ↓ Cat5e
 [Ethernetハブ]
  ↓ Cat5e
 [LAN]

 といった具合です。
 EoCトランスミッタには同軸ケーブルから電源共有されますのでPoEインジェクタは不要です。
 EoCのレシーバとトランスミッタの違いは電源を供給するデバイスがレシーバってだけみたいです、データに方向性は無く、途中に同軸ケーブルが挟まったLANケーブルと見なして良さそうです。
 BNRで計測するとキッチリ100Mbps出ています。今時からすれば速くはありませんがArt-Netには十分な速度ですし、いわゆるLANケーブルの制限長は100mなので、最大ケーブル長1000mには魅力があります。

#[Art-Net]

■当面の課題

桜のライトアップの季節です。花粉症の季節でもあります。
自分は平気ですが、花粉症の部下は死にそうな顔をしています。

編集

■全文検索:

複合検索窓に切り替える

■複合検索:

  • 投稿者名:
  • 投稿年月:
  • #タグ:
  • カテゴリ:
  • 出力順序:

■日付検索:

■カレンダー:

2024年4月
123456
78910111213
14151617181920
21222324252627
282930

■カテゴリ:

■最近の投稿:

最終更新日時:
2024年4月23日(火) 06時55分35秒