MPU6050 + Raspberry Pi Pico(Arduino) -> PCで3Dのキューブを回転表示

前回の記事「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開発環境構築については↓を参照ください。
Raspberry Pi PicoをArduino開発環境で使うためのメモ

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

反応を速くしたい場合

上に載せているTwitterに投稿した動画を見てもらえばわかりますが、追従が少し遅いと思います。
用途によっては精度が若干悪くなってももう少し速く追従させたい場合もあると思います。
その場合は以下の記事を参考にしてください。
Madgwickライブラリの収束を速くする 【Arduino/MPU6050】

Raspberry Pi PicoとMPU6050は↓で購入できます。

■Raspberry Pi Picoの関連記事
Raspberry Pi Pico+Arduinoでサーボをたくさん動かしたい
会話ができる「ぴよロボ」作りました! (Raspberry Pi + Pico + ChatGPT)
Raspberry Pi Pico W でPCとBluetooth(シリアル)接続する
Raspberry Pi Pico/Pico WをArduino開発環境で使うためのメモ
超音波距離センサー + Raspberry Pi Picoで潜水艦ソナー風
コップの水がこぼれない台 MPU6050 + Raspberry Pi Pico(Arduino)
MPU6050 + Raspberry Pi Pico(Arduino) -> PCで3Dのキューブを回転表示

本格派対局将棋 ぴよ将棋
本格派対局将棋アプリ ぴよ将棋
[Android] [iOS]

かわいい「ひよこ」と対局する将棋アプリ。かわいいけどAIは本格派!
対局後の検討機能や棋譜管理機能も充実!棋譜解析機能も搭載!

コメントを残す

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