logo
Published on

Arduinoに「MPU-6050」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

「MPU-6050」は、加速度センサーとジャイロスコープが一体化された6軸の慣性計測ユニットです。この記事では、ArduinoとMPU-6050を接続し、そのデータを取得・解析して制御する方法について解説します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

1. MPU-6050の概要

MPU-6050は、小型で高性能な慣性計測ユニットで、3軸の加速度センサーと3軸のジャイロスコープを備えています。これにより、物体の傾きや動きを高精度に検知することができます。Arduinoと組み合わせることで、ロボットや姿勢制御などのプロジェクトに利用されます。

2. MPU-6050の接続

MPU-6050には、VCC、GND、SCL(Serial Clock)、SDA(Serial Data)などのピンがあります。これらをArduinoに接続します。

  • VCC(赤色): 5Vの電源
  • GND(茶色): 接地
  • SCL(緑色): I2C通信のクロックライン
  • SDA(青色): I2C通信のデータライン

3. Arduinoライブラリの導入

ArduinoでMPU-6050を利用するには、Wire ライブラリと MPU6050 ライブラリを使用します。これらのライブラリをArduino IDEに組み込む必要があります。

4. Arduinoコードの作成

次に、Arduino IDEを開いてMPU-6050を制御するためのコードを書きます。以下は、MPU-6050から加速度とジャイロのデータを取得し、シリアルモニターに表示する簡単な例です。

#include <Wire.h>
#include <MPU6050.h>

MPU6050 mpu;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  
  mpu.initialize();
  
  if (!mpu.testConnection()) {
    Serial.println("MPU6050 connection failed.");
    while (1);
  }
}

void loop() {
  float ax, ay, az;
  float gx, gy, gz;

  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

  Serial.print("加速度:");
  Serial.print("X = "); Serial.print(ax);
  Serial.print(" Y = "); Serial.print(ay);
  Serial.print(" Z = "); Serial.println(az);

  Serial.print("ジャイロ:");
  Serial.print("X = "); Serial.print(gx);
  Serial.print(" Y = "); Serial.print(gy);
  Serial.print(" Z = "); Serial.println(gz);

  delay(1000);
}

5. コードのアップロードと動作確認

コードを書いたら、ArduinoにアップロードしてMPU-6050が正しく動作しているか確認します。シリアルモニターには、加速度とジャイロのデータが表示されるはずです。

これで、ArduinoとMPU-6050を接続してデータを取得し、制御するための基本的な手順が完了しました。MPU-6050のデータを利用して、さまざまなプロジェクトを実現することができます。