EyeTrack · SW16LCD · STM32F407 · 計画 2026-09-29

EyeTrack をネットワーク+Art-Net 対応にして、
PC からキャリブレーションする計画

スタッフ限定 / 計画書(実装前)

EyeTrack の位置・向きの設定を、ファームの書き換えではなくパソコンからの遠隔操作で合わせられるようにする。ファームの現状を読んで、何をどの順で直すかをまとめた。

現場でパソコンとタブレットからムービングライトを制御し、ゲームパッドで操作するイメージ
※ イメージ図(AI生成のコンセプト画。実際の画面・機材ではありません)
この計画の出発点(本人の回答) 将来 EyeTrack システムにも、この機能を追加するには、EyeTrack をネットワーク&Art-Net 対応に改修し、パソコンでリモート接続してキャリブレーションし、パラメーター調整ができるように改修したいと思っています。キャリブレーションができれば、微調整が画期的に楽になります。

01結論

実現できる。基本の部品は基板とファームにすでにある。 足りないのは次の 3 つだけ。

  1. 調整値を実行時に変えられるようにする。 いまは器具の位置・向き・可動範囲が、ビルド時に決まる定数になっている。
  2. 調整値を本体に保存する。 電源を切っても残り、壊れても元に戻せる。
  3. Art-Net の受信と、調整専用のやり取りを足す。 有線 LAN のチップと送受信の下書きは入っているが、いまの製品では無効になっている。

PC 側は、LjStudio にすでにある校正の仕組み(校正シーン・逆算)をそのまま使える。EyeTrack 側を改修して初めて、現場で「合わせる→書き込む」が PC だけで終わる。

02いまのファームで分かったこと

EyeTrack本体を斜めから見た3D表示。フェーダー6本・LCD・ボタン・左右のジョイスティック
※ EyeTrack 本体のイメージ(3D 表示)

確認済み はソースを読んで確かめた事実。未確認 は実機で見ないと分からない点。

項目いまの状態
マイコンSTM32F407VG(フラッシュ 1MB/RAM 128KB+64KB)。改修に使える余裕は大きい。確認済み
有線 LANW5500 のドライバと Art-Net の送信コードが入っている。ただし起動処理は#if 0で無効。理由はコメントに「外部 DMX→Art-Net I/F 使用のため」とある。確認済み
Art-Net 受信受信関数はあるが、受け取るだけで中身の処理が無い。送信は Universe 15 固定・ブロードキャスト。確認済み
IP アドレス固定(末尾 248)。設定画面や DHCP は無い。確認済み
調整値の置き場器具の位置(X,Y,Z)・基準 Pan 角(base_pan)・Pan/Tilt 可動範囲・ジョイスティック向きは、fixtures_*.h の定数。変えるにはビルドして書き込み直す。確認済み
本体の保存領域I2C の EEPROM。中身は「シーン」(DMX 値と狙いの座標)だけ。調整値を入れる場所は無い。確認済み
DMX の出し方USART から DMX を出す。追尾の計算(Pan/Tilt の 16bit 値)は calculatePanTiltDMX16bit にまとまっている。確認済み
現場の機体に W5500 が載っているかソースからは分からない。機体ごとに違う可能性がある。未確認

03目指す形

パソコン LjStudio 校正シーン・逆算・書き込み EyeTrack(SW16LCD) STM32F407 + W5500 追尾の計算 調整値(RAM)⇄ EEPROM 「リモート調整中」表示 ムービング器具 Pan / Tilt / 色 / 絞り Art-Net UDP 6454 DMX 実線=今回足す道 点線=いまもある道

現場の流れは次のとおり。ファームの書き換えは要らない。

  1. PC が LAN 上の EyeTrack を見つけ、いまの調整値を読む。
  2. PC が校正用の光(マーカーを狙う向き)を EyeTrack 経由で出させ、実際の向きを見て狙いを合わせる。
  3. PC が逆算で位置・向きを求め、EyeTrack に書き込む。EyeTrack は保存する。
  4. 追尾に戻して、狙いが合ったかを確かめる。合わなければ手順 2 に戻る。前の値へ 1 操作で戻せる。

04PC から合わせられるようにする項目

項目いまの置き場計画
器具の位置 X・Y・Zfixtures_*.h の配列実行時に変えられる表にする。既定値はいまの定数
基準 Pan 角(向き・ヨー)同上(base_pan)同上
Pan/Tilt 可動範囲PAN_MAX・TILT_MAX 定数器具ごとに変えられるようにする。GDTF の「モード別の値」を入れる
Pan/Tilt の向きの符号・ずれコードの中に埋め込み新設。実機の Pan/Tilt がどちらへ回るか、中心が何度ずれているかを持たせる
Tilt 基準(水平=DMX 中央)コードの中器具ごとのずれとして持たせる
取付の傾き(前後・左右)無し後回し。LjStudio の逆算も、いまは位置 3+ヨー 1 だけを解く(下の 07 参照)
ジョイスティックの向きJOY_DIRECTION 定数操作者の立つ側を変えられるようにする(低い優先度)

器具の型ごとの Pan/Tilt 可動範囲と「正面」の向きは、GDTF を見て決める。同じ器具でも DMX モードで値が違うので、モード名を必ず添えて持たせる。

05通信の設計(案)

Art-Net の標準の道具を使い、新しい規格は作らない。詳細なパケット形式は、実装の段階で Art-Net 4 の仕様書に合わせて確定する。

用途Art-Net の何を使うか向き
EyeTrack を見つけるArtPoll に ArtPollReply で応える。ノード名は「EyeTrack」、ファーム版数も載せるPC⇄EyeTrack
校正中の Pan/Tilt を直接指定ArtDmx を受信。調整モードの間だけ、追尾の計算より優先して出力へ反映PC→EyeTrack
調整値の読み出し・書き込みArtCommand(文字列コマンド)で get/set/save/revert。応答は ArtPollReply の状態欄か ArtDiagDataPC⇄EyeTrack

安全のための決まり

06改修の段階

各段は、前の段が済んでから進む。どの段でも、いまの現場機と同じ動きをすることを最初に確かめる。

段 0

実測(コードは書かない)

現場機・試験機で、W5500 が載っているか、起動処理を有効にすると何が起きるかを見る。EEPROM の容量と、調整値を入れられる空きも測る。追尾ループ(約 16ms 周期)に通信処理を足して間に合うかも見る。

完了条件:載っている機体の一覧と、空き容量・処理時間の数字が揃う。

段 1

調整値を実行時の表にする

定数の配列を、RAM 上の構造体に置き換える。初期値はいまの定数と同じ。符号・ずれの欄はまだ 0 のまま。追尾の計算はこの表を読む。

完了条件:既存の 12 灯・4 灯の構成で、Pan/Tilt の DMX 値が改修前と一致する。(UE5 シミュレーターとの突き合わせに使った、器具×狙い点の組で確かめる。)

段 2

EEPROM に保存する

シーンの領域と重ならない場所に、調整値を入れる。先頭に識別子・版数・チェックサムを付け、壊れていれば既定値で起動する。二重に書いておき、片方が壊れてももう片方で復元する。工場出荷値への復帰操作も付ける。

完了条件:電源断・書き込み途中の抜き差しの試験で、前の値か既定値のどちらかで必ず起動する。

段 3

Art-Net の受信と発見

起動処理を、ビルドの切り替え(例:ARTNET_ENABLE)で有効にできるようにする。既存の現場構成(外部の DMX→Art-Net 装置を使う機体)は、無効のまま動くようにしておく。ArtPollReply と ArtDmx の受信を入れる。

完了条件:Art-Net モニターで EyeTrack が見え、追尾の周期・DMX 出力が乱れない。

段 4

調整モードと読み書き

キー操作で調整モードへ入る。get/set/save/revert、範囲の検査、LCD 表示、通信断での自動復帰を入れる。校正中は ArtDmx の Pan/Tilt を優先する。

完了条件:PC から値を読み、変え、保存し、電源を入れ直しても残ることを、実機で確かめる。

段 5

LjStudio 側の「EyeTrack 校正」

発見→読み出し→校正シーン→逆算→書き込み→検証、を 1 つの流れにする。使う部品は次の 07 にある。

完了条件:実機 1 台で、わざとずらした位置・向きを PC の操作だけで直せる。

段 6

現場での試験と配布

現場機 1 台で試し、既存機体への書き込み手順(ファームの版数・元に戻す方法)を決めてから配る。旧ファームの機体も、これまでどおり動き続ける。

完了条件:現場機で、校正前後の狙いのずれを数字で比べて、良くなっていること。

07PC 側(LjStudio)で使えるもの

LjStudio には、追尾の位置合わせに使う部品がもう入っている。EyeTrack 用に作り直すのではなく、つなぐ先を EyeTrack にするのが基本。

▶ 動いているところを映像で見る:LjStudio 追尾操作説明(2K・フル) EyeTrack で目指す形は、この LjStudio の校正シーン・逆算のしくみをそのまま使う(最新デモ・2026-09-29)

関係する取扱説明書

LjStudio ― 一斉追尾とキャリブレーション 校正シーン(calscene)・A で記録して次へ・Rig setup の[校正から計算…](calib solve/apply)を、実画面つきで手順どおりに説明。EyeTrack の調整モードも同じ考え方になる想定。 LjStudio ― Visualizer の使い方 Rig setup(器具の吊り位置・取付ヨー)と校正マーカーの表、器具を絵の上でクリックして選ぶ操作など、PC 側の画面まわり全般。 LjStudio 取扱説明書 画面ヘルプを兼ねた総合の取扱説明書。個別の操作の用語や画面の場所に迷ったときの入口。

注意:いまの逆算が解くのは位置 3+ヨー 1で、取付の傾き(前後・左右)は解かない。数値実験では、傾きが 1.5° を超えると顔の高さで 24cm ほど外れる結果が出ている(未検証の理想条件での試算)。傾きのある吊り込みには、傾きも解く逆算を LjStudio 側に足す必要がある。EyeTrack の追尾の計算も、傾きに対応する拡張が要る。

08未確認・リスク

項目内容どう確かめるか
W5500 の搭載機体ごとに載っていない可能性。載っていなければ基板の改造か、別方式(USB・外部装置)段 0 で機体を洗い出す
既存の外部 DMX→Art-Net 装置現場で使っている構成と、EyeTrack 自身の Art-Net 出力が、ぶつからないか段 3 のビルド切り替えで、現行構成は無効のまま
追尾周期への影響通信処理を足しても、約 16ms の周期と DMX の出力が乱れないか段 0・3 で処理時間を測る
EEPROM の書き込み1 バイトずつの書き込みで、調整値を保存する間、追尾が止まる保存は調整モード中だけにする。段 0 で時間を測る
Pluto 550 の実機Tilt 基準など、実機での確認が未了段 5 の実機 1 台で確認
器具の正面と可動範囲GDTF の Yoke の回転と、DMX モード別の値に依る。器具型ごとに違う調整値の表に、器具型とモード名を添える
Art-Net に認証が無いLAN 上の別機器から書き換えられる恐れ調整モードは本体キーで入る(05 参照)

09最初にやること

  1. 段 0 の実測。手元の試験機で、W5500 の有無・起動処理の有効化・EEPROM の空き・処理時間を確かめる。
  2. 実測の結果を、この計画の 08 に書き戻す(「未確認」を「確認済み」へ)。
  3. 段 1(調整値の実行時化)に進む。ここは通信が無くても済み、現場機の動きが変わらないことを数字で示せる。
ソース確認日 2026-09-29。この計画は、実機での実測をまだ行っていない机上の設計。「未確認」の項目は段 0 で確かめてから確定する。
← 一覧に戻る