EyeTrack · SW16LCD · STM32F407 · 計画 2026-09-29
スタッフ限定 / 計画書(実装前)
EyeTrack の位置・向きの設定を、ファームの書き換えではなくパソコンからの遠隔操作で合わせられるようにする。ファームの現状を読んで、何をどの順で直すかをまとめた。
実現できる。基本の部品は基板とファームにすでにある。 足りないのは次の 3 つだけ。
PC 側は、LjStudio にすでにある校正の仕組み(校正シーン・逆算)をそのまま使える。EyeTrack 側を改修して初めて、現場で「合わせる→書き込む」が PC だけで終わる。
確認済み はソースを読んで確かめた事実。未確認 は実機で見ないと分からない点。
| 項目 | いまの状態 | |
|---|---|---|
| マイコン | STM32F407VG(フラッシュ 1MB/RAM 128KB+64KB)。改修に使える余裕は大きい。 | 確認済み |
| 有線 LAN | W5500 のドライバと 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 が載っているか | ソースからは分からない。機体ごとに違う可能性がある。 | 未確認 |
現場の流れは次のとおり。ファームの書き換えは要らない。
| 項目 | いまの置き場 | 計画 |
|---|---|---|
| 器具の位置 X・Y・Z | fixtures_*.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 モードで値が違うので、モード名を必ず添えて持たせる。
Art-Net の標準の道具を使い、新しい規格は作らない。詳細なパケット形式は、実装の段階で Art-Net 4 の仕様書に合わせて確定する。
| 用途 | Art-Net の何を使うか | 向き |
|---|---|---|
| EyeTrack を見つける | ArtPoll に ArtPollReply で応える。ノード名は「EyeTrack」、ファーム版数も載せる | PC⇄EyeTrack |
| 校正中の Pan/Tilt を直接指定 | ArtDmx を受信。調整モードの間だけ、追尾の計算より優先して出力へ反映 | PC→EyeTrack |
| 調整値の読み出し・書き込み | ArtCommand(文字列コマンド)で get/set/save/revert。応答は ArtPollReply の状態欄か ArtDiagData | PC⇄EyeTrack |
set)→確認→保存(save)」の 2 段にする。保存前に電源が落ちれば前の値に戻る。各段は、前の段が済んでから進む。どの段でも、いまの現場機と同じ動きをすることを最初に確かめる。
現場機・試験機で、W5500 が載っているか、起動処理を有効にすると何が起きるかを見る。EEPROM の容量と、調整値を入れられる空きも測る。追尾ループ(約 16ms 周期)に通信処理を足して間に合うかも見る。
完了条件:載っている機体の一覧と、空き容量・処理時間の数字が揃う。
定数の配列を、RAM 上の構造体に置き換える。初期値はいまの定数と同じ。符号・ずれの欄はまだ 0 のまま。追尾の計算はこの表を読む。
完了条件:既存の 12 灯・4 灯の構成で、Pan/Tilt の DMX 値が改修前と一致する。(UE5 シミュレーターとの突き合わせに使った、器具×狙い点の組で確かめる。)
シーンの領域と重ならない場所に、調整値を入れる。先頭に識別子・版数・チェックサムを付け、壊れていれば既定値で起動する。二重に書いておき、片方が壊れてももう片方で復元する。工場出荷値への復帰操作も付ける。
完了条件:電源断・書き込み途中の抜き差しの試験で、前の値か既定値のどちらかで必ず起動する。
起動処理を、ビルドの切り替え(例:ARTNET_ENABLE)で有効にできるようにする。既存の現場構成(外部の DMX→Art-Net 装置を使う機体)は、無効のまま動くようにしておく。ArtPollReply と ArtDmx の受信を入れる。
完了条件:Art-Net モニターで EyeTrack が見え、追尾の周期・DMX 出力が乱れない。
キー操作で調整モードへ入る。get/set/save/revert、範囲の検査、LCD 表示、通信断での自動復帰を入れる。校正中は ArtDmx の Pan/Tilt を優先する。
完了条件:PC から値を読み、変え、保存し、電源を入れ直しても残ることを、実機で確かめる。
発見→読み出し→校正シーン→逆算→書き込み→検証、を 1 つの流れにする。使う部品は次の 07 にある。
完了条件:実機 1 台で、わざとずらした位置・向きを PC の操作だけで直せる。
現場機 1 台で試し、既存機体への書き込み手順(ファームの版数・元に戻す方法)を決めてから配る。旧ファームの機体も、これまでどおり動き続ける。
完了条件:現場機で、校正前後の狙いのずれを数字で比べて、良くなっていること。
LjStudio には、追尾の位置合わせに使う部品がもう入っている。EyeTrack 用に作り直すのではなく、つなぐ先を EyeTrack にするのが基本。
calscene)。calib mark/solve/apply)。関係する取扱説明書
注意:いまの逆算が解くのは位置 3+ヨー 1で、取付の傾き(前後・左右)は解かない。数値実験では、傾きが 1.5° を超えると顔の高さで 24cm ほど外れる結果が出ている(未検証の理想条件での試算)。傾きのある吊り込みには、傾きも解く逆算を LjStudio 側に足す必要がある。EyeTrack の追尾の計算も、傾きに対応する拡張が要る。
| 項目 | 内容 | どう確かめるか |
|---|---|---|
| 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 参照) |