EDTracker DIY (ヘッドトラッキング)
EDTracker はヘッドトラッキングデバイスです。製品として販売されている EDTracker Pro と 自作できる EDTracker DIY の二種類があります。
この記事は EDTracker DIY を作ってみようという趣旨で書かれています。
DIY
パーツ
EDTracker DIY を作るのに必要なものは以下の通りです。うまくいけば 1,000円程度で作れると思います。
Pro Micro は手持ちのものを使いました。5V 版が必要です。
センサーは UNO の学習で使った MPU-6050 でもいいのですが、MPU-9150 や MPU-9250 の方が精度の点でオススメだそうです。私は MPU-9250 を使いました (購入時価格: ¥480)。
[MPU-9250 (I2C / SPI): ジャイロ / 加速度 / 地磁気センサー]
[MPU-9150 (I2C): ジャイロ / 加速度 / 地磁気センサー]
[MPU-6050 (I2C): ジャイロ / 加速度センサー]
その他の部材はお手持ちの物があればそれを使ってください。なお、EDTracker DIY の基板が販売されていますが、これらを使って作るととても割高になってしまいます。
配線
配線は以下の通りです。センサーボードと I2C 接続しているだけですね。AD0 は I2C アドレスを決定するピンなので、必ず GND に接続しなければなりません。タクトスイッチは 10 (と GND) に接続します。
VCC | VCC |
GND | GND |
AD0 |
7 | INT |
3 | SCL |
2 | SDA |
ユニバーサル基板を以下のように配線します。タクトスイッチも取り付けておきます。
ヘッダピンを使って以下のように連結します。ピンはニッパ等で短く切り揃えてください。
できました!フットプリントは Pro Micro と同じです。
実はちょっと失敗しています。まぁ、失敗という程のものでもないのですが、本家 EDTracker DIY と同じにするには、MPU-9250 の取付方向が 180°逆なのです。
重量は 7.2g でした。
ソフトウェア
EDTracker2 GUI でファームウェアを書き込む
ファームウェアを書き込むには EDTracker2 GUI を使います。
- Arduino IDE をインストールした事がないのであれば、Arduino の USB ドライバを先にインストールする必要がある。
- EDTracker2 GUI をダウンロードし、適当な場所に解凍。
- EDTrackerUI4.exe を右クリックし [管理者として実行] で起動。
- 最初のコンボボックスで使用センサーに対応する EDTracker を選択。例えば MPU-9250 ならば EDTracker_9250 を選択。次のコンボボックスは COM ポートを選択。

- Flash ボタンを押すとファームウェアが書き込まれる。
Arduino IDE でファームウェアを書き込む
Arduino IDE でファームウェアを書き込む事もできます。
- Custom hardware device files for Arduino IDE を ZIP で取得し、Arduino の Hardware フォルダに格納。
- Arduino IDE を起動。
- [ツール | ボード] で使用センサーに対応する EDTracker を選択。例えば MPU-9250 ならば EDTracker 9250 を選択。

- [ツール | シリアルポート] で COM ポートを選択する。
- EDTracker2 ファームのソース を ZIP で取得し、適当な場所に解凍する。
- Arduino IDE で使用センサーに対応するスケッチを開く。例えば MPU-9250 ならば EDTracker_9250.ino を開く。
- スケッチをコンパイルして転送する。
ファームウェアが正常に書き込まれると、EDTracker DIY は三軸の HID ジョイスティックとして認識されるようになります。
キャリブレーション (校正)
実の所、EDTracker DIY はキャリブレーション (校正) を行わないとちゃんと使えません。キャリブレーションには EDTracker2 GUI を使います。
- EDTracker DIY をテープ等で机に固定する。
- EDTracker DIY を PC に接続する
- EDTracker2 GUI を起動
- EDTracker DIY に接続されていない (NOT CONNECTED) のならば、[Scan Ports] ボタンを押すか、正しいシリアルポートを選択した状態で [CONNECT TO TRACKER] ボタンを押す。

- [Auto Gyro Bias] ボタンを押す。ゲージの走るダイアログが表示されるので消えるまで待つ。

- テープをはがす。
- EDTracker DIY の向きを決定する。[Rotate Mounting Axis] ボタンを何度か押して希望の方向を決定する。

EDTracker DIY の向きとセンサーボードの向きの関係は以下のようになっている (画像での上が前)。

USB Front というのは Pro Micro の USB コネクタが前方にある事を意味するが、当方の作例では取付方向が逆なので USB コネクタの位置も逆になっている。公式の図の通りに作っても 180°向きが違う。配線した後に折りたためば正しいのかもしれないが。そもそもチップの配置次第でこの向きは変わるのだから、Pro Micro から見た Front / Rear / Left / Right という名称は不適当だと思う。
- Yaw Scaling / Pitch Scaling / Smoothing を 5.00 / 5.00 / 50 程度に設定する。Yaw Scaling / Pitch Scaling の端数は [Fine Adjust] にチェックを入れると変更できる。

Yaw Scaling / Pitch Scaling の値は大きすぎると頭をちょっと振っただけで大きく移動してしまう。また、正確にトラッキングを行いたいのであれば 1.0 / 1.0 (スケーリングなし) に設定する必要がある。Response Mode は [Linear] のままにしておく。
- [Magnetometer] タブをクリックし、磁気センサーのキャリブレーションを行う

- [Sensitivity] スライダーを右に移動させ、感度を上げる

- EDTracker DIY を手に持ち、球をイメージしてあらゆる方向に向ける。Points がカンスト (1999) するまで行った方がいい。

- [Save Calibration] ボタンを押すと校正が保存され、キャプチャされたポイントが表示される。キレイな二重の球になっていなかったら [Restart] ボタンを押してやり直した方がいいかもしれない。

- EDTracker2 GUI を終了。
よくわからなくなってしまったら [Restore Factory Defaults] ボタンを押して最初からやり直しましょう。
確認
コントロールパネルにある [USB ゲームコントローラーのセットアップ] で動作を確認する事ができる。
- [ファイル名を指定して実行] に joy.cpl と入力して Enter。

- [ゲームコントローラー] に Arduino Leonardo があるのを確認、選択して [プロパティ] ボタンを押す。

- [テスト] タブで動作を確認できる。EDTracker DIY 上のスイッチを押せばそこがニュートラルポジションとなる。

See Also:
オマケ
以下が EDTracker2 GUI の表記と矛盾しない配線です。
ヘッダピンを使って以下のように連結します。ピンはニッパ等で短く切り揃えてください。
折角なのでもう一台作ってみました。
この向きだと EDTracker2 GUI の表記と一致するようです。
ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。