前回の記事「Madgwickライブラリの収束を速くする 【Arduino/MPU6050】」の続きです。
角速度(ジャイロ)・加速度センサーMPU6050の角度をPC上で表示するプログラムを作ってみました。
Raspberry Pi Pico(Arduino開発環境)でMPU6050から読み取った角速度・加速度からMadgwickで角度を推定しPCへ送り、PC上で受け取った角度で3Dのキューブを回転させ表示します。
今回はRaspberry Pi Picoを使用しましたが、Arduino UNOなどでも接続ピンが変わるのとタイマーのところを変更すれば行けると思います。
プログラムはGitHubで公開しています。
■Raspberry Pi Pico側
PicoとMPU6050は上の写真のように接続しました。
Pico MPU6050 Pin6 GP4 -> SDA Pin7 GP5 -> SCL Pin36 3V3(OUT) -> VCC Pin3 GND -> GND
Raspberry Pi Pico側はArduino開発環境を使用しました。
Arduino開発環境にはearlephilhower版を使用しました。
Raspberry Pi Pico側のプログラム(Arduino)
MPU6050/MPU6050.ino
以下のライブラリを使用しています。
GitHubからZIP形式でダウンロードして、Arduino IDEの「スケッチ」->「ライブラリをインクルード」->「zip形式のライブラリをインクルード」でインストールします。
〇角速度・加速度から角度を推定 -> MadgwickAHRSフィルタ
https://github.com/arduino-libraries/MadgwickAHRS
〇タイマー割込み
https://github.com/khoih-prog/RPI_PICO_TimerInterrupt
■PC側
MPU6050.py
Pythonで作成しています。
COM_PORT変数は適切なポートに書き換えてください。
以下のライブラリを使用しています。
〇pyserial
PCとPicoのシリアル通信のためにpyserialを使用しています。
以下のコマンドでインストールしてください。
pip install pyserial
〇Panda3D
3D表示のためにPanda3Dを使用しています。
以下のコマンドでインストールしてください。
pip install Panda3D
こちらの関連記事もご覧ください