前回の記事「MPU6050 + Raspberry Pi Pico(Arduino) -> PCで3Dのキューブを回転表示」の続きです。
前回はジャイロ・加速度センサー(MPU6050)の値を読み込んでPC上で3Dのキューブを回転表示しましたが、
今回はサーボ2つを使用して、「常に水平になる台」を作成してみました。
サーボ2台を直交させて接続しますが、お手軽にラズパイカメラ用2軸マウント(A838)を使用しました。
このカメラマウントは、サーボに定番の小型サーボSG-90を使用するようになっています。
(今回はSG-90の互換サーボを使用しました)
ラズパイカメラ用2軸マウント(A838)の組み立て方法は以下を参考にさせていただきました。
https://python-academia.com/raspberrypi-camera-mount/
上の写真のように接続しました。
Pico MPU6050 Pin6 GP4 -> SDA Pin7 GP5 -> SCL Pin36 3V3(OUT) -> VCC Pin3 GND -> GND Pin4 GP2 -> サーボ1 Pin5 GP3 -> サーボ2
プログラムはMadgwickAHRSで推定した角度でサーボを動かしています。
Raspberry Pi Pico側はArduino開発環境を使用しました。
Arduino開発環境にはearlephilhower版を使用しました。
Raspberry Pi PicoのArduino開発環境構築については↓を参照ください。
Raspberry Pi PicoをArduino開発環境で使うためのメモ
以下のライブラリを使用しています。
GitHubからZIP形式でダウンロードして、Arduino IDEの「スケッチ」->「ライブラリをインクルード」->「zip形式のライブラリをインクルード」でインストールします。
〇角速度・加速度から角度を推定 -> MadgwickAHRSフィルタ
https://github.com/arduino-libraries/MadgwickAHRS
〇タイマー割込み
https://github.com/khoih-prog/RPI_PICO_TimerInterrupt
ソース(Arduino開発環境用)はこちらに置いています。
https://github.com/ponta1/HorizontalTable
コップの水がこぼれない様子
※サーボが小型のためパワーがなくてダイソーのおちょこぐらいしかのせられませんでした
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のキューブを回転表示
初めまして 石伏です
姿勢制御の勉強をしようこちらへたどり着きました
そして、書き込みをしたところ下記のエラーにぶつかりました
’class Madgwick’ has no member named ‘setGain’
解決方法があれば教えていただけますでしょうか。
Arduinoを初めて1か月です
よろしくお願いします。
setGain()関数はMadgwickを改造して追加したものです。
改造方法は以下の記事を参照ください。
Madgwickライブラリの収束を速くする 【Arduino/MPU6050】
https://blog.studiok-i.net/2489.html
または、少し反応が遅くなりますが、setGain()の行をコメントアウトしてもOKです。
ラズピコが加速度センサーデータを受け取ってくれません どうしたらいいですか?
あとプログラムが知りたいです