バーチャル輪投げ

画面の的に向かって輪を投げる、ハイテク縁日ゲームです。 Pro Micro と MPU6050 を入れた輪っか型デバイスでジャイロの動きを読み取り、画面内の輪の初速ベクトルへ変換する方針で試作を進めています。

試作準備中 ジャイロ 線形回帰

1. 目的

手に持って振る輪っか型デバイスから、投げる方向と強さを推定します。 最初は 3×3 の的のどこへ投げたかを当てる分類で始め、集めたデータが増えたら 3 次元速度ベクトルの回帰へ発展させます。

入力 MPU6050 のジャイロ3軸 gx, gy, gz の時系列
出力 画面内の輪に渡す vx, vy, vz, strength
学習 PC 上の Python で線形モデルを学習
推論 Pro Micro に係数を埋め込み、シリアルで結果を送信

2. 操作フロー

  • 1

    ボタンを押し込む

    1つのボタンを押した瞬間から、ジャイロ3軸の時系列を記録します。
    開始
  • 2

    手前にまっすぐ引く

    最初の短い区間でジャイロ平均を取り、投げ動作の基準にします。
    基準取り
  • 3

    的に向けて前へ振る

    ジャイロ3軸の大きさのピークを仮想リリース点として、ピーク値・積分・平均・最大最小を特徴量にします。
    投げ動作
  • 4

    振り終わったらボタンを離す

    ボタンを離すと1投分の測定を終了します。推論時は内部でピークを探し、RING,vx,vy,vz,strength を送信します。
    安全

3. 開発パイプライン

Phase 0 開発者 1 人のデータで、ファーム、Web 収集、Python 学習、Arduino 推論までを通します。
Phase 1 3×3 グリッドのデータ収集ツールで、投げ動作のジャイロ時系列と正解ラベルを CSV 化します。
Phase 2 Python で特徴量を抽出し、まず 9 マス分類の線形モデルを学習します。
Phase 3 生成した係数ヘッダを Pro Micro 用スケッチに入れ、デバイス単体で推論します。

4. プロトタイプ

データ収集から推論までを通すための最小構成を用意しています。 収集ページは Web Serial API を使うため、Chrome または Edge で HTTPS か localhost から開きます。

データ収集ページ ringtoss-collect.html
軌跡プレビュー ringtoss-trajectory.html
収集ファーム prototypes/ringtoss_data_collector/ringtoss_data_collector.ino
学習スクリプト tools/ringtoss_train.py
推論ファーム prototypes/ringtoss_inference/ringtoss_inference.ino
データ収集ページを開く 軌跡プレビューを開く 手順メモを見る