| OSOYOOストアで購入 | 米国Amazonで購入 |
このチュートリアルでは、MPU6050 慣性計測ユニット(IMU)を使用して OSOYOO V3 ロボットカーの自律走行能力を高め、目標方向を維持する方法を解説します。MPU6050 は 3 軸モーションセンサーで、角速度(ジャイロスコープ)と線形加速度(加速度計)のデータを提供し、ロボットが進行方向を自動補正できるようにします。このレッスンでは、センサーフュージョン技術と PID 制御アルゴリズムを使った安定した直進走行の実現方法を学びます。
このレッスンでは次のコンポーネントが必要です。作業を始める前にご用意ください。
| 番号 | 画像 | デバイス | 数量 | アクセサリ | リンク |
| 1 | ![]() |
MPU6050 3軸ジャイロスコープ | 1 | こちらから購入 |
MPU6050 は 3 軸ジャイロスコープと 3 軸加速度計を統合したセンサーです。ジャイロスコープは角速度を測定し、ロボットの X、Y、Z 軸まわりの回転速度を提供します。このデータを時間積分すると角変位(例:ヨー角)が得られます。ただし、ジャイロスコープの生データはドリフトが生じやすく、時間とともに小さな誤差が蓄積します。加速度計は線形加速度を測定し、重力に対するデバイスの向きを求めるために使用できます。加速度計は長期的には安定していますが、振動や急激な動きに非常に敏感であるため、生の姿勢データにはノイズが多くなります。

ステップ 1:ロボットカー レッスン 1の説明に従って基本的なハードウェアを組み立ててください。レッスン 1 をすでに完了している場合は、そのままにしておいてください。

ステップ 2:以下の図のように、MPU6050 モジュールをロボットシャーシにしっかり固定してください。(MPU6050 は I2C プロトコルで Arduino と通信します。必要な配線は SDA(シリアルデータ)と SCL(シリアルクロック)の 2 本のデータ線と、電源(VCC)とグランド(GND)のみです。)

| オープンソース Arduino ソフトウェア(IDE) |
![]() |
こちらからソフトウェアをダウンロード: https://www.arduino.cc/en/Main/Software?setlang=en |
| 7-Zip は ZIP ファイルを 解凍する無料ツールです |
![]() |
7-Zip を無料でダウンロード: https://www.7-zip.org/ |
1. Arduino IDE のセットアップ:最新版の Arduino IDE を https://www.arduino.cc/en/Main/Software?setlang=en からダウンロードしてインストールしてください。

2. サンプルコードのダウンロード:レッスン 2 のサンプルコードをここからダウンロードしてください。解凍すると v3car-lesson2 フォルダ内に v3car-lesson2.ino ファイルが見つかります。v3car-lesson2.ino を Arduino IDE で開いてください。

3. ライブラリのインストール
まず、以下のリンクからライブラリの ZIP ファイルをダウンロードしてください:
https://osoyoo.com/driver/2wd/MPU6050_light.zip
https://osoyoo.com/driver/2wd/PID.zip
ZIP ファイルは解凍しないでください。Arduino IDE を開き、スケッチ -> ライブラリをインクルード -> .ZIP 形式のライブラリをインストール を選択し、ZIP ファイルを 1 つずつ追加してください。

4. ボードとポートの選択:OSOYOO Basic Board(Arduino UNO 互換)を USB ケーブルでコンピューターに接続します(重要:ボードを PC に接続する前に、ロボットカーの電源スイッチが OFF になっていて、バッテリーが取り外されていることを確認してください)。Arduino IDE を起動し、ツール > ボードで Arduino Uno を選択します。次にツール > ポートで正しいシリアルポートを選択してください。ポートがわからない場合は、OS のデバイスマネージャーを確認してください。

5. コードのアップロード:「マイコンボードに書き込む」ボタン(右矢印アイコン)をクリックして、スケッチをコンパイルし OSOYOO Basic Board に書き込みます。

6. Arduino が MPU6050 を認識しているか確認する
Arduino IDE 右上のシリアルモニタを開き、ボーレートを 9600 に設定すると、以下のように MPU6050 Found! と表示されるはずです。おめでとうございます!Arduino が MPU6050 を認識しています。カーをテストする準備ができました。

注意:「Failed to find MPU6050 chip」と表示された場合、MPU6050 の配線に問題があります。次の点を確認してください:
1)MPU6050 の VCC/GND/SDA/SCL が、OSOLINK Wi-Fi/BLE I/O シールドに説明書どおり正しく接続されているか
2)Arduino の A4/A5 ピンと SDA/SCL ピンに他のケーブルが接続されていないか(ラインセンサープロジェクトでは A4/A5 がセンサーに使用されている場合があります)
1)Move() 関数はカーの動きとステアリングをどのように制御しますか?
このレッスンで使用する OSOYOO ロボットカーは、差動ステアリング方式を採用しています。move(speedL, speedR) 関数は、左右のホイールの回転速度を表す speedL と speedR の 2 つのパラメータを持ちます。速度値は -255 から +255 の範囲で、正の値が前進回転、負の値が後退回転を意味します。例えば、move(-50, 100) は左ホイールが速度 50 で後退、右ホイールが速度 100 で前進することを意味し、カーは急激に左折します。
2)MPU6050 プログラミング入門
初期化後、MPU6050 ジャイロスコープはロボットの方向を出発時の向きを基準に常時追跡します。ロボットカーがこの初期方向からずれると、MPU6050 はそのずれ量を Arduino に報告します。
コード内の Direction 変数は、カーを床に置いた瞬間の向きを表します(前を向いていると仮定し、Direction を 0 に設定します)。
loop() 関数の最初の数行の計算の後、カーの現在の向きが 129 行目の currentAngle 変数に格納されます。
これら 3 つの問いへの回答を組み合わせることで、PID コントローラーは滑らかで効率的なステアリング補正を行います。
PID_v1.h ライブラリとコードに直接結びつけてみましょう。setup() 内):// We tell the PID controller what to watch and what to control.
PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);
Direction = 0; // Our TARGET is to have an angle of 0 degrees.
myPID.SetMode(AUTOMATIC); // Turn on the controller.
loop() 内):// 1. We get the sensor reading and put it into the Input variable.
Input = currentAngle;
// 2. We call the compute function. This is where the PID magic happens!
myPID.Compute();
// 3. We use the result to control the motors.
int speedL = baseSpeed - Output;
int speedR = baseSpeed + Output;
move(speedL, speedR);
myPID.Compute() 関数はすべての計算を内部で処理します。呼び出されるたびに(ライブラリが SetSampleTime に基づいてタイミングを管理)、次の処理を行います:Output が +15 の場合、ロボットは 15 単位の補正が必要です。片方のモーターを減速させ(baseSpeed - 15)、もう片方を加速させる(baseSpeed + 15)ことで、ロボットを旋回させて誤差を減らします。ロボットが完全に直進している場合、Input は 0、誤差は 0、Output は 0 となり、両モーターが baseSpeed で動作します。4)Kp、Ki、Kd の調整方法(安定した走行のために)
Ki = 0.0、Kd = 0.0 に設定します。Kp 値を見つけます。おそらく 1.5 未満です。deadband)を追加します。Kp が安定したら、残りのオーバーシュートを減らすために Kd をゆっくり増やします。Ki をゆっくり増やします。これらのガイドラインに従い、基本原理を理解することで、OSOYOO V3 ロボットカーを自律ナビゲーションのための優秀なプラットフォームに変え、より高度なロボティクスプロジェクトへの基礎を築くことができます。
DownLoad Url osoyoo.com