ARDUINO GY87 複合センサー テスト スケッチ
導入
あなたが熱心な製作者またはロボット工学愛好家なら、この小さくても強力なモジュールに出くわしたことでしょう。熱心な製作者またはロボット工学愛好家なら、この小さいながらも強力なモジュール BMP085 気圧計に出くわしたことでしょう。 GY-87 IMU モジュールは、自動バランス ロボットやクアッドコプターなどのプロジェクトにモーション センシングを追加する優れた方法です。
しかし、GY-87 IMU モジュールの実験を始める前に、それを Arduino ボードに接続する方法を知る必要があります。 そこでこのブログの登場です! 次の段落では、GY-87 IMU モジュールの基本、セットアップ方法、およびセンサー データを読み取るための Arduino コードの記述方法について説明します。 また、一般的な問題をトラブルシューティングするためのヒントとリソースも提供します。
始める準備ができたら、GY-87 IMU モジュールと Arduino のインターフェースについて学びましょう!
GY-87 IMU MPU6050とは
GY-87 のような慣性測定ユニット (IMU) モジュールは、MPU6050 加速度計/ジャイロスコープ、HMC5883L 磁力計、BMP085 気圧センサーなど、多くのセンサーを 87 つのパッケージに組み合わせています。 したがって、GY-6050 IMU MPU9 は、3 軸ジャイロスコープ、3 軸加速度計、3 軸磁力計、およびデジタル モーション プロセッサを組み合わせたオールインワンの XNUMX 軸モーション トラッキング モジュールです。 方向と動きを正確に測定および追跡できるため、クワッドコプターやその他の無人航空機 (UAV) などのロボット プロジェクトでよく使用されます。 また、ナビゲーション、ゲーム、仮想現実などの他のアプリケーションでも使用されています。
ハードウェアコンポーネント
GY-87 IMU MPU6050 HMC5883L BMP085 モジュールと Arduino を接続するには、次のハードウェアが必要です。
コンポーネント | 価値 | 数量 |
アルドゥイーノ | – | 1 |
MPU6050 センサモジュール | GY-87 | 1 |
ブレッドボード | – | 1 |
ジャンパーワイヤー | – | 1 |
Arduinoを搭載したGY-87
GY-87 について理解できたところで、次は Arduino とのインターフェイスに取り掛かります。 GY-87 を理解したところで、次は Arduino とのインターフェースです。 そのためには、以下に従ってください
回路図
以下の回路図に従って接続してください。
GY-87 IMU MPU6050 HMC5883L BMP085 Arduino配線・接続
アルドゥイーノ | MPU6050 センサー |
5V | VCCC の |
グランド | グランド |
A4 | SDA |
A5 | SCAA の |
Arduino IDE のインストール
まず、公式から Arduino IDE ソフトウェアをインストールする必要があります。 webサイトArduino。 ここでは、「Arduino IDE のインストール方法」に関する簡単なステップバイステップ ガイドを紹介します。
ライブラリのインストール
コードのアップロードを開始する前に、次のライブラリを /Program にダウンロードして解凍します。 Files (x86)/Arduino/Libraries (デフォルト) は、Arduino ボードでセンサーを使用するためのものです。 これは、「Arduino IDE でライブラリを追加する方法」に関する簡単なステップバイステップのガイドです。
- MPU6050
- Adafruit_BMP085
- HMC5883L_シンプル
コード
次のコードをコピーして、Arduino IDE ソフトウェアにアップロードします。
#include “I2Cdev.h” #include “MPU6050.h” #include #含むMPU085 アクセルジャイロ; Adafruit_BMP5883 bmp; HMC6050L_Simple コンパス; int085_t ax、ay、az; int5883_t gx、gy、gz; #define LED_PIN 16 ブール点滅状態 = false; void setup() { Serial.begin(16); Wire.begin(); // デバイスの初期化 Serial.println(“I13C デバイスの初期化中…”); // bmp9600 を初期化する if (!bmp.begin()) { Serial.println(“有効な BMP2 センサーが見つかりませんでした。チェック (!bmp.begin()) { Serial.println(“有効な BMP085 センサーが見つかりませんでした。 check Serial.println(accelgyro.testConnection() ? “MPU085 connection successfully” : “MPU085 connection failed”); accelgyro.setI6050CBypassEnabled(true); // ゲートウェイのバイパス モードを hmc6050L に設定 // hmc2l を初期化 Compass.SetDeclination(5883, 5883, 'E'); Compass.SetSamplingMode(COMPASS_SINGLE);
Compass.SetScale(COMPASS_SCALE_130);
Compass.SetOrientation(COMPASS_HORIZONTAL_X_NORTH); // アクティビティをチェックするために Arduino LED を設定します pinMode(LED_PIN, OUTPUT); ボイドループ() {
Serial.print(“温度 = “); Serial.print(bmp.readTemperature());
Serial.println(” *C”); Serial.print(“圧力 = “);
Serial.print(bmp.readPressure()); Serial.println("パ"); // '標準' 気圧を仮定して高度を計算します // 1013.25 ミリバールの圧力 = 101325 パスカル Serial.print(“Altitude = “); Serial.print(bmp.readAltitude()); Serial.println(“メートル”); Serial.print(“海面気圧 (計算値) = “);
Serial.print(bmp.readSealevelPressure()); Serial.println("パ");
Serial.print(“実際の高度 = “); Serial.print(bmp.readAltitude(101500));
Serial.println("メートル"); // デバイス accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz) から生の加速度/ジャイロ測定値を読み取ります。 // タブ区切りの加速度/ジャイロの x/y/z 値を表示する Serial.print(“a/g:\t”); Serial.print(ax);
Serial.print(“\t”); Serial.print(ay); Serial.print(“\t”); シリアル.print(az);
Serial.print(“\t”); Serial.print(gx); Serial.print(“\t”); Serial.print(gy);
Serial.print(“\t”); Serial.println(gz); 浮動見出し =
Compass.GetHeadingDegrees(); Serial.print(“見出し: \t”); Serial.println(見出し); // アクティビティを示すために LED を点滅させますblinkState = !blinkState;
digitalWrite (LED_PIN、blinkState); 遅延(500); }
テストしてみましょう
コードをアップロードしたら、回路をテストします。 Arduino プログラムのコードは、ライブラリを使用してセンサーとやり取りします。これにより、センサー データを読み取り、センサーのさまざまな構成を設定できます。 次に、センサー データをシリアル ポート経由で出力します。 LED は、回路が何かを行っていることを示すために使用されます。 これは、ループ関数が実行されるたびに LED が点滅することを意味し、コードがアクティブにセンサー値を読み取っていることを示します。
作業説明
コードは、回路の動作の基礎となる主要なものです。 それでは、コードを理解しましょう。
- まず、センサーとインターフェースするためのいくつかのライブラリが含まれています。
- 「I2Cdev.h」と「MPU6050.h」は、MPU6050 6 軸加速度/ジャイロセンサー用のライブラリです。
- 「Adafruit_BMP085.h」は、BMP085 気圧センサー用のライブラリです。
- 「HMC5883L_Simple.h」は、HMC5883L 磁力計センサー用のライブラリです。
- 次に、MPU6050 accelgyro、Adafruit_BMP085 bmp、および HMC5883L_Simple Compass の XNUMX つのセンサーのグローバル オブジェクトを作成します。
- 次に、MPU6050 の加速度計の ax、y、az などのセンサー値を格納し、HMC5883L の磁力計に向かういくつかの変数を定義します。 また、LED_PIN 定数とblinkState 変数を定義します。
- setup()関数は、シリアル通信を開始し、I2C 通信を開始します。 次に、XNUMX つのセンサーを初期化します。
- BMP085 センサーは、begin() メソッドを呼び出すことによって初期化されます。 これが false を返し、センサーが見つからなかったことを示す場合、プログラムは無限ループに入り、シリアル ポート経由でエラー メッセージを出力します。
- MPU6050 センサーは、initialize() メソッドを呼び出して、正しく動作しているかどうかを確認することによって初期化されます。 また、MPU2 の I6050C バイパスを有効に設定しました。
- HMC5883L センサーは、SetDeclination、SetS などの関数を呼び出すことによって初期化されます。ampセンサーのさまざまな構成を設定するための lingMode、SetScale、および SetOrientation。
- loop() 関数では、コードは XNUMX つのセンサーからデータを読み取り、シリアル ポート経由で出力します。
- センサーから温度、気圧、高度、海抜気圧を読み取ります。
- これは、MPU6050 センサーから生の加速度とジャイロスコープの測定値を読み取ります。
- HMC5883L センサーから方位を読み取ります。これは、センサーが指している方向と磁北が位置する方向との間の角度です。
- 最後に、LED を点滅させてアクティビティを示し、しばらく待ってからセンサーを再読み取りします。
ドキュメント / リソース
![]() |
ARDUINO GY87 複合センサー テスト スケッチ [pdf] ユーザーマニュアル GY87 複合センサー テスト スケッチ、GY87、複合センサー テスト スケッチ、センサー テスト スケッチ、テスト スケッチ |