1)MPU6050 と arduino の半田付け
arduino_pro_microとMPU6050を、4本の線で半田付けして、繋ぐだけです。
2)arduino に MPU6050用プログラムを書き込む
装置を作るまでは簡単ですが、ArduinoとMPU6050を接続した後、MPU6050を扱うためのプログラム(スケッチ)をarduinoに書き込むのがちょっと面倒です。
以下の作業は、作成したモーションセンサーをパソコンにつないだ状態で行ってください。
まずarduinoダウンロードサイトからArduino software(IDE)をダウンロード、インストールします。
ライブラリマネージャーから「MPU6050」を検索し、MPU6050 by Electronic...をインストールします。ファイルメニューの「スケッチの例」から「MPU6050のIMU_Zero」を開きます。ツールメニューからボードをarduinoの機種に合わせて、「マイコンボードに書き込み」して、シリアルモニターから、MPU6050固有の校正値を取得します。
そのあとMPU6050のMPU6050_DMP6_using_DMP_V6v12を開きます。
これがモーションセンサーのデータを読み込むためのプログラムです。これを少し書き換えます。
まず、先ほど得た値を下記6行の部分に入力します。
// supply your own gyro offsets here, scaled for min sensitivity
mpu.setXGyroOffset(51);
mpu.setYGyroOffset(8);
mpu.setZGyroOffset(21);
mpu.setXAccelOffset(1150);
mpu.setYAccelOffset(-50);
mpu.setZAccelOffset(1060);
次に、以下の2行を探しだして、
#define OUTPUT_READABLE_YAWPITCHROLL
//#define OUTPUT_TEAPOT
の2行をそれぞれ
//#define OUTPUT_READABLE_YAWPITCHROLL
#define OUTPUT_TEAPOT
と書き換えて、OUTPUT_TEAPOTの方を有効にします。
さらに、//wait for ready という行を探し、その下の4行をコメントアウトします。
// wait for ready
// Serial.println(F("\nSend any character to begin DMP programming and demo: "));
// while (Serial.available() && Serial.read()); // empty buffer
// while (!Serial.available()); // wait for data
// while (Serial.available() && Serial.read()); // empty buffer again
また更に下記の3行を探してコメントアウトします
// mpu.CalibrateAccel(6);
// mpu.CalibrateGyro(6);
// mpu.PrintActiveOffsets();
「マイコンボードに書き込み」から、このソースをArduinoに書き込むと、モーションセンサー装置の完成です。
3)永島医科の赤外線眼振装置にセンサー装置を取り付ける
このセンサー装置を永島医科の赤外線カメラに取り付けたところです。カメラの映像はデジ造(LPCA-DAV4)でUSB変換しています。パソコンと繋げば、眼振頭位記録システムの出来上がりです。
モリタ製作所など、他社の赤外線眼振カメラにも取り付けられると思います。