Pi Pico で6軸センサーのMPU-6050を使ってみる


MPU-6050  は加速度(3軸)・角速度(3軸)や内部温度も計測できるセンサーです。

コーディングにはMicroPython を使ってみます。ファームウェアをPico にセットしておきます。

Pico にPicroPython の環境をセット

 

元ネタ Interfacing MPU6050 with Raspberry Pi Pico & MicroPython

 

開発環境はThonny IDE (インストール済み)、母艦はラズパイ4 Model B を使います。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Wiring(配線)

 

 

 

 


6軸データを取得

 

 

 

 

 

 

 

 

 

 

 

Thonny を起動して、以下の2つのコードをPico側に書き込みます。

 

 

 

 

 

 

 

 

 

 

 

ライブラリーコード

mpu6050.py

 

実行コード

main.py

 

 

 

 

 

 

 

 

 

 

 

 

 


傾斜角  Pitch, Roll, Yaw を計測

 

 

 

 

 

 

 

 

 

 

以下のコードは、加速度計のデータを使用して傾斜角を計算します。 ただし、ピッチ、ロール、ヨーの計算には通常、カルマン フィルターや相補フィルターの使用など、より複雑なアルゴリズムとセンサー フュージョンが必要であることに注意することが重要です。 ジャイロスコープ データは絶対角度ではなく角速度を提供するため、これらの角度を計算するにはジャイロスコープ データだけでは不十分であり、角度を取得するためにジャイロスコープ データを統合すると、時間の経過とともに大きなドリフトが発生する可能性があります。

ピッチ、ロール、ヨーの値を計算するには、加速度計とジャイロスコープのデータを組み合わせる補完フィルターを使用して、計算された角度の精度を向上させることができます。 以下は、補完的なフィルター実装を含む更新された「main.py」コードです。

Thonny Shell コンソールでは、加速度計、ジャイロスコープ、温度値、および X、Y、Z 軸の傾斜角を確認できます。 これとは別に、ピッチとロールの値も表示されます。 しかし、ヨー値はまだ存在しないままです

上記のコードは相補フィルターを使用してピッチ角とロール角を計算することに注意してください。 ただし、ヨー角の計算には方位情報が含まれるため、磁力計が必要です。これは、加速度計とジャイロスコープだけでは正確に導き出すことができません。

MPU-6050 には磁力計が内蔵されていないため、MPU-6050 だけを使用してヨーを正確に計算することはできません。 ヨーを計算したい場合は、HMC5883L などの追加センサーを使用するか、MPU-9250 や MPU-9255 などの磁力計が内蔵された IMU を使用する必要があります。

 

 

 

 

 

 

 

 

 

 

 

 

 


Appendix

Arduino IDE 版はこちら

マイコンボードで6軸センサーのMPU-6050を使ってみる

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*