MPU-9150
今回はモーションセンサをArduinoに接続し、AruinoとUnityを連携させて、Unity空間のオブジェクトの回転を制御してみます。
要するにPAXパワーグローブのページでやっているパワーグローブ近代化作業の要素技術確認です。
本ページで解説しているのはInvenSense社のMPU-9150についてですが、Bosch社のBNO055版の記事もあります。
必要なもの
ハードウェア
| 項目 | 説明 |
|---|---|
| Arduino Uno | 比較的小型で安価で簡単に使えるマイコンボード。 |
| MPU-9150 9軸センサモジュール | InvenSense社の3軸加速度+3軸ジャイロ+3軸コンパスのモーションセンサチップMPU-9150が載ったモジュール。&br;MPU-9150は、InvenSenseの加速度・ジャイロチップMPU-6050と旭化成のコンパスチップをAK8975を1パッケージにしたものです。&br;MPU-9150もしくはMPU-6050が搭載されているモジュールならば概ね同様だと思います。&br;これらのチップにはDMP(Digital Motion Processor)という機能があり、センサの生データではなく、センサの値からクォータニオンを算出してくれるので便利です。 |
ソフトウェア
| 項目 | 説明 |
|---|---|
| Arduino IDE | Arduino用の開発環境。オフィシャルサイトからダウンロードしてください。 |
| Unity | マルチプラットフォーム対応のゲームエンジン。簡単に3D(or 2D)ゲームを作ることが出来る。オフィシャルサイトからダウンロー ドしてください。 |
| I2C Device Library | I2Cデバイス用C++ライブラリとMPU-6050とMPU-9150のArduinoサンプルスケッチ。 https://github.com/jrowberg/i2cdevlib を開き、右側の「Download ZIP」をクリックしてダウンロードしてください。 |
| Unity用C#スクリプト | 上記サンプルスケッチの出力をUnity側で受け取ってGameObjectを制御するC#スクリプト。本ページ下部からダウンロードしてください。 |
手順
ハードウェアの準備
- MPU-9150のSCL(今回のモジュールでは3番ピン)をArduinoのSCL(Arduino UnoではA5ピン)に接続する。
- MPU-9150のSDA(今回のモジュールでは4番ピン)をArduinoのSDA(Arduino UnoではA4ピン)に接続する。
- MPU-9150のINT(今回のモジュールでは8番ピン)をArduinoのinterrupt(Arduino UnoではD2ピン)に接続する。
- MPU-9150のGND(今回のモジュールでは10番ピン)とAD0(今回のモジュールでは9番ピン)をArduinoのGNDピンに接続する。
- MPU-9150のVDD(今回のモジュールでは1番ピン)とVLOGIC(今回のモジュールでは2番ピン)をArduinoの3.3Vピンに接続する。