ドローンを中心としたメカトロ自作品の紹介

メカトロDIYチャレンジ(Mechatro DIY Challenge)

ジャイロセンサー Arduino 電子工作

MPU6050をArduinoで使う③ライブラリを使う

更新日:

これまでの記事では、①とにかくデータを出す、②最低限データを出力するということをやってきました。
この調子で自前構築で一通りの処理が出来るようになればいいのですが、6軸値を元に「姿勢を出す」や「姿勢を3DCGで出力する」というところまでやろうとすると、かなりの手間と知識が必要になります。
ライブラリを使用すれば、自前でコードを書かなくても簡単に・正確にデータ取得・表示が可能になります。
今回は、有名どころなI2Cdevというライブラリを活用してデータを取得し、更にProcessingに3Dモデル表示をするところまでをやっていきたいと思います。

■Arduino用ライブラリの設定とサンプルスケッチ動作

ライブラリの取得

ArduinoでMPU6050のデータ取得するうえで有名なのはI2CDEVです。
I2Cデータ処理・MPU6050からのデータ取得・Processingのサンプルと一通りそろっています。
↓にアクセスして、「Dowonload zip」で一式をダウンロードしますhttps://github.com/jrowberg/i2cdevlib

ライブラリのインストール

ダウンロードしたら解凍して、「i2cdevlib-master\Arduino\I2Cdev」と「\i2cdevlib-master\Arduino\MPU6050」をArduinoのライブラリ用フォルダ(変更していなければユーザーディレクトリ下の「\Documents\Arduino\libraries」)にコピーします。

ファイルを移動する

サンプルプログラムの実行

MPU6050_DMP6を起動します。
一括ダウンロードした場合、以下のフォルダに格納されています。

実行するとこのようにデータが出ます

Teapod demoの出力

デモスケッチの取得

teapod demoを動かしてみましょう。Teapod demは、Processngで作られていて、3Dデモを動かすことができます。
以下のフォルダの、Processingフォルダ内に入っている「MPUTeapot」というProcessing用のスケッチを実行します。

画像に alt 属性が指定されていません。ファイル名: MCS0013_MV_C06-01_ABOUT_MPU9250-02-コピー-1024x576.jpg


MPU6050_DMP6の内容変更

MPU6050_DMP6内の、プログラムを一部変更します。以下の5個の定義をコメントアウトで切り替えることで、5種類のデータ形式で出力することが可能です。
今回は、「OUTPUT_TEAPOT」を有効にし、ほかをすべてコメントアウトします。

#define OUTPUT_READABLE_QUATERNION
#define OUTPUT_READABLE_EULER
#define OUTPUT_READABLE_YAWPITCHROLL
#define OUTPUT_READABLE_REALACCEL
#define OUTPUT_TEAPOT

実行する

MPU6050_DMP6をArduinoに書き込み、その後MPUTeapotをProcessingで実行すると、下の様に動かすことができます

はまったポイント

参考に残します

「i2cdevlib-master」をDLした後、そのままファイルをZIP形式のインクルード機能で入れたら、「MPU6050」が入らず(i2cdevのみインストールされる)エラーになった

「i2cdevlib-master」の中に「MPU6050」が入っていることに気づかず、ネットで別途「MPU6050」を探して入れたら、バージョンが違ったためエラーになった

-ジャイロセンサー, Arduino, 電子工作

Copyright© メカトロDIYチャレンジ(Mechatro DIY Challenge) , 2022 All Rights Reserved Powered by STINGER.