バーチャル輪投げ
画面の的に向かって輪を投げる、ハイテク縁日ゲームです。 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 |