【簡単】Arduinoで角度を取得しよう!



はじめに

今回はArduinoと、加速度、ジャイロ(角速度)を取得できるセンサーであるMPU6050を使用して、角度を取得してみます。

専用のライブラリを作成したので、とても簡単に使えるようになると思います!

用意するもの

・Arduino UNO
【永久保証付き】Arduino Uno

・MPU6050
MPU-6050 使用 3軸ジャイロスコープ・3軸加速度センサー モジュール

・ジャンパケーブル
ジャンパーワイヤ(メス-オス)(20cm)40本

・ブレットボード
サンハヤト SAD-101 ニューブレッドボード

回路図

 

Arduino MPU6050
5V VCC
GND GND
SCL A5(SCL)
SDA A4(SDA)

 

Arduino UNOにはAREFの上にSCL、SDAがありますが、これらはA5、A4とそれぞれ繋がっているのでどちらに接続しても問題ありません。


ライブラリをインクルード

加速度、ジャイロを元に1から正しい角度を取得するプログラムを書こうとするとけっこう大変です。

そこで、今回は簡単に各情報を取得できるライブラリを作成したので、それを使用していこうと思います。

まずはライブラリをダウンロードします。

以下のURLにアクセスし、

https://github.com/Tockn/MPU6050_tockn

右側にある緑色のボタン「Clone or download」をクリック、そして「Download ZIP」をクリックしてください。

 

ZIPファイルがダウンロードされると思います。これをインクルードします。

Arduino IDEを開き、上部の「スケッチ」→「ライブラリをインクルード」→「.ZIP形式のライブラリをインクルード…」をクリックし、先ほどダウンロードしたZIPファイルを選択してください。

これでライブラリのインクルードが完了しました。


プログラム

ライブラリの使用例も用意したので、それを使ってみましょう!

「ファイル」→「スケッチの例」から、下矢印にカーソルを合わせて下へスクロール

「MPU6050_tockn」が現れるのでクリック→「GetAngle」をクリック!

すると角度を取得できるスケッチが開かれると思うので、それをArduinoへ書き込みましょう。

書き込み後、シリアルモニターを開きましょう!

シリアルモニタのボーレートは9600bpsに設定してください。(右下)

最初、できるだけ正確なジャイロセンサーの値を取得するために、キャリブレーションという処理を行っています。この時はMPU6050に触れたりせず、動かさないようにしてください!

キャリブレーションが終わると、各値が出力されると思います。

 

上手く行けばある程度正確な角度が表示されると思います!

試しにグリグリ動かしてみてください。

さいごに

上手く動いたでしょうか?ライブラリを使用したので凄く簡単にできたと思います。

使用したスケッチを書き換えれば、様々なことに応用できると思います。

ちなみに今回使用したプログラムでは、相補フィルターというフィルターを使用することでより良い値が出力されるよう計算しています。

詳しい仕組みについては私が以前書いた

ESP32 (ESP-WROOM-32)でMPU6050を使おう!(i2C) (Arduino IDE)

この記事を参考にしてください!

質問、ご指摘はコメントでどうぞ!

それでは!!


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です