モーションセンサー装置の作り方

  • HOME »
  • モーションセンサー装置の作り方

1)MPU6050 と arduino の半田付け




小さなarduino_pro_microの上に、MPU6050を載せています。

2)arduino に MPU6050用プログラムを書き込む

装置を作るまでは簡単ですが、ArduinoとMPU6050を接続した後、MPU6050を扱うためのプログラム(スケッチ)をarduinoに書き込むのがちょっと面倒です。
まずarduinoダウンロードサイトからArduino software(IDE)をダウンロード、インストールします。
次にJrowberg氏のライブラリを(i2cdevlib-master/ページ右のDownloadZIP)からダウンロードして、解凍してできるi2cdevlib-masterの中の、arduinoフォルダの中のI2CdevとMPU6050の2つのフォルダを、インストールしたArduino software(Arduinoフォルダ)のlibrariesフォルダーにコピーします。そこでArduinoを起動してファイルメニューの「スケッチの例」からMPU6050_DMP6を開きます。これがモーションセンサーのデータを
読み込むためのプログラム(スケッチ)です。この中から以下の2行を探しだして、
#define OUTPUT_READABLE_YAWPITCHROLL
//#define OUTPUT_TEAPOT

の2行をそれぞれ
//#define OUTPUT_READABLE_YAWPITCHROLL
#define OUTPUT_TEAPOT

と書き換えて、OUTPUT_TEAPOTの方を有効にします。
そして、ツールメニューでマイコンボードをarduino-nanoに設定して、「マイコンボードに書き込み」で、このソースをArduino-nanoに書き込むと、とりあえず、モーションセンサー装置の完成です。

センサーは起動時20秒ほどドリフトして安定します。その間に自分の校正値を取得するようです。この間にセンサーが動いてしまうと、校正が上手くいかず、センサーがまともに動きません。
起動時から安定したセンサー装置にするには、下の “MPU6050-offset値を取得するプログラム” で、各々のMPU6050のオフセット値を取得する必要があります。下記をご覧ください。

MPU6050-offset値を取得するプログラム

MPU6050は各チップ固有の校正値を持っており、MPU6050_DMP6にはその値を設定する所があります。以下の4行がそれです。ここに校正値を設定してMPU6050_DMP6を書き込むと、センサー値が起動直後から安定します。
// supply your own gyro offsets here, scaled for min sensitivity
mpu.setXGyroOffset(29);
mpu.setYGyroOffset(26);
mpu.setZGyroOffset(26);
mpu.setZAccelOffset(1688); // 1688 factory default for my test chip

各チップの校正値を調べるプログラムが、 MPU6050 calibration sketch のページの MPU6050_calibration.zip です。このプログラムをarduino-nanoに書き込んで実行すると、各チップの較正値 gyroX, gyroY, gyroZ, accelX, accelY, accelZ を取得できます。
得られた4値を書き込んだMPU6050_DMP6をarduino-nanoに再度書き込みむと、安定したセンサー装置の完成です。

3)永島医科の赤外線眼振装置にセンサー装置を取り付ける


このセンサー装置を永島医科の赤外線カメラに取り付けたところです。カメラの映像はデジ造(LPCA-DAV4)でUSB変換しています。パソコンと繋げば、眼振頭位記録システムの出来上がりです。
モリタ製作所など、他社の赤外線眼振カメラにも取り付けられると思います。

PAGETOP
Copyright © くろだ耳鼻咽喉科医院フリーソフト All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.