HN 日本語サマリー

← 一覧へ戻る
プログラミング

Steam Controller Auto-Charge – CV を使用して磁気充電ドックへ誘導

Steam Controller Auto-Charge – pilot to magnetic charging puck using CV (github.com)

184 pointsby zdw46 コメント

要約

Steam Controller Auto-Charge は、オープンソースのウェブアプリケーションです。これは、コンピュータビジョン(光学フロー)と WebHID テレメトリを使用して、Steam Controller を磁気充電ドックへ自動的に誘導します。光学フロー追跡、触覚フィードバックによるナビゲーション、バッテリー状態のポーリングなどの機能を備えています。

全文翻訳

Steam Controller Auto-Charge Steam Controller Auto-Charge は、光学フローコンピュータビジョンと WebHID テレメトリを使用して、Steam Controller を磁気充電ドックへ自動的に誘導するように設計されたオープンソースのウェブアプリケーションです。 機能 光学フロー追跡: OpenCV.js を利用して、オーバーヘッドカメラ経由でコントローラーと充電ドック上のユーザー選択ポイントを追跡します。 WebHID テレメトリ & 触覚ナビゲーション: WebHID を介して Triton Controller にネイティブに接続し、入力とテレメトリ(レポート 67)をストリーミングします。内部デュアルリニア共振アクチュエータ(LRA)を介して 70Hz の非対称触覚パルスを発火させることで、コントローラーをドックへナビゲートします。 近接クリープモード: コントローラーがドックから 150 ピクセル以内に近づくと、触覚パルス周波数を 50% 自動的にカットし、穏やかな磁気ドッキングを保証します。 バッテリー状態ポーリング: レポート ID 121(0x79)をインターセプトして磁気充電の成功を確認し、レポート ID 67(0x43)を解析してライブバッテリー残量とバッテリーセル電圧(mV)を表示します。 セットアップ要件 Nix パッケージマネージャー: 必要なビルド依存関係はこれだけです。Windows、Mac、Linux でシームレスに動作します。 WebHID API をサポートする Chromium ベースのブラウザ。 デスクを見下ろすオーバーヘッドウェブカメラ。 ウェブカメラをデスクの上に直接設置します。 単一のコマンドでプロジェクトを開始します(これにより依存関係が自動的に取得され、WASM モジュールがビルドされます): nix-shell --run "npm install && npm run dev" 使用方法 ウェブカメラをデスクの上に直接設置します。 Steam Controller Auto-Charge ドックをデスクに置きます。 Steam Controller をデスクに立てて置きます。 ウェブインターフェースを開き、「Connect Steam Controller」をクリックして WebHID 経由でペアリングします。 「✨ Auto-Track」をクリックして自動追跡を開始します。ボタンがハイライトされてアクティブであることが示され、ページ再読み込み時に自動的に追跡が再開されます。解除するには再度クリックします。 コントローラーは、オブジェクト回避機能を備えた Lucas-Kanade 光学フローループと、ブラウザ内 Rust/WASM CNN を使用して、自律的にドックへナビゲートします。(注:手動追跡も引き続き利用可能です。ドックをクリックし、次にコントローラーの上部、次にコントローラーの下部をクリックしてください)。 アーキテクチャ App.vue: カメラストリーム、UI 反応性、PID 追跡ループ、および OpenCV.js Lucas-Kanade 光学フロー(calcOpticalFlowPyrLK)を処理する Vue 3 アプリケーションロジック。 steamController.ts: 標準 API 呼び出しを、LRA パルスとバッテリー状態ポーリングの Steam Controller の特定のバイトペイロードにマッピングする WebHID 抽象クラス。 objectDetector.ts & objectWorker.ts: オブジェクト検出を Web Worker にオフロードし、メイン追跡ループがスムーズに動作するようにします。 wasm-object-detect/: 高性能な画像処理のために WebAssembly にコンパイルされた Rust 実装。 謝辞 Very Lazy Pixel に、このプロジェクトのインスピレーションを与えてくれたことに多大な感謝を捧げます!彼らのビデオはこちらでご覧いただけます: https://www.youtube.com/watch?v=g-8S8zk4dn8 ライセンス このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルをご覧ください。