注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ ここ]をクリックして今すぐ参加しましょう!
MPU6050
概要
このチュートリアルでは、GY-87 IMUモジュールをArduino Unoと接続し、MPU6050センサーに焦点を当てて学びます。MPU6050の初期化と、加速度計、ジャイロスコープ、温度データをシリアルモニターに表示する方法をカバーします。このレッスンは、ロボティクス、ジェスチャー制御デバイス、インタラクティブなアートインスタレーションなど、運動と温度センシングが必要なプロジェクトに不可欠です。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
キットを丸ごと購入すると便利です。リンクはこちらです:
名称 |
このキットのアイテム数 |
リンク |
|---|---|---|
Elite Explorer Kit |
300+ |
また、以下のリンクから個別に購入することもできます。
コンポーネント紹介 |
購入リンク |
|---|---|
- |
|
- |
配線図
回路図
コード
注釈
ファイル
09-gy87_mpu6050.inoを直接elite-explorer-kit-main\basic_project\09-gy87_mpu6050のパスから開くことができます。または、このコードをArduino IDEにコピーしてください。
注釈
ライブラリをインストールするには、Arduino Library Managerを使用し、 「Adafruit MPU6050」 を検索してインストールしてください。
コード解析
ライブラリのインクルード
センサーのインターフェースと通信のために、
Adafruit_MPU6050,Adafruit_Sensor,Wireライブラリが含まれています。#include <Adafruit_MPU6050.h> #include <Adafruit_Sensor.h> #include <Wire.h>
センサーオブジェクトの初期化
Adafruit_MPU6050 クラスのオブジェクトを作成し、MPU6050 センサーを表します。
Adafruit_MPU6050 mpu;
セットアップ関数
シリアル通信を初期化し、MPU6050 センサーを初期化する関数を呼び出します。
void setup() { Serial.begin(9600); initializeMPU6050(); }
ループ関数
MPU6050 のデータを表示する関数を繰り返し呼び出し、各呼び出しの間に 500 ミリ秒の遅延を入れます。
void loop() { printMPU6050(); delay(500); }
MPU6050 の初期化関数
MPU6050 が接続されているかを確認し、加速度計とジャイロの範囲を設定し、フィルタの帯域幅を設定します。
void initializeMPU6050() { // Check if the MPU6050 sensor is detected if (!mpu.begin()) { Serial.println("Failed to find MPU6050 chip"); while (1) ; // Halt if sensor not found } Serial.println("MPU6050 Found!"); // set accelerometer range to +-8G mpu.setAccelerometerRange(MPU6050_RANGE_8_G); // set gyro range to +- 500 deg/s mpu.setGyroRange(MPU6050_RANGE_500_DEG); // set filter bandwidth to 21 Hz mpu.setFilterBandwidth(MPU6050_BAND_21_HZ); Serial.println(""); delay(100); }
MPU6050 データ表示関数
MPU6050 から加速度、ジャイロスコープ、温度データを読み取り、シリアルモニターに表示します。
void printMPU6050() { Serial.println(); Serial.println("MPU6050 ------------"); /* Get new sensor events with the readings */ sensors_event_t a, g, temp; mpu.getEvent(&a, &g, &temp); /* Print out the values */ Serial.print("Acceleration X: "); Serial.print(a.acceleration.x); Serial.print(", Y: "); Serial.print(a.acceleration.y); Serial.print(", Z: "); Serial.print(a.acceleration.z); Serial.println(" m/s^2"); Serial.print("Rotation X: "); Serial.print(g.gyro.x); Serial.print(", Y: "); Serial.print(g.gyro.y); Serial.print(", Z: "); Serial.print(g.gyro.z); Serial.println(" rad/s"); Serial.print("Temperature: "); Serial.print(temp.temperature); Serial.println(" degC"); Serial.println("MPU6050 ------------"); Serial.println(); }