はじめに
ジャイロセンサー(MPU6050)を使ってピッチとロールを測定してみました。
配線図

こんなに簡単でええの?て思います。が、ADOをGNDに接続する必要があることに気づくのにかなり時間がかかりました。本当は秘密にしておきたい気分です(笑)
スケッチ
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
void setup() {
Serial.begin(9600);
Wire.begin();
mpu.initialize();
if (mpu.testConnection()) {
Serial.println("MPU6050 接続成功");
} else {
Serial.println("MPU6050 接続失敗");
while (1);
}
}
void loop() {
int16_t ax, ay, az;
int16_t gx, gy, gz;
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
// 単純な傾きの計算
float angleX = atan2(ay, az) * 180 / PI;
float angleY = atan2(-ax, sqrt(ay * ay + az * az)) * 180 / PI;
Serial.print("Pitch (X): ");
Serial.print(angleX);
Serial.print(" °, Roll (Y): ");
Serial.print(angleY);
Serial.println(" °");
delay(500);
}
おわりに
これで、シリアルモニタ上にX軸の傾きとY軸の傾きが計測できました。次回は、今回の結果と前回の記事(DFplayerをArduino Nanoで動かしてみた)を組み合わせて、ジャイロセンサーの傾きにより再生する音声を変えることに取り組んでみます。


コメント