MPU6050センサーは、シングルチップ上で多くの機能を備えています。これは、MEMS加速度計、MEMSジャイロ、および温度センサーで構成されています。このモジュールは、チャネルごとに16ビットのアナログ-デジタルコンバーターハードウェアを備えているため、アナログ値をデジタルに変換する際に非常に正確です。このモジュールは、x、y、zチャネルを同時にキャプチャすることができます。ホストコントローラーと通信するためのI2Cインターフェースを備えています。このMPU6050モジュールは、加速度計とジャイロの両方を備えたコンパクトなチップです。これは、ドローン、ロボット、モーションセンサーなどの多くのアプリケーションにとって非常に便利なデバイスです。ジャイロスコープまたは3軸加速度計とも呼ばれます。
今日この記事では、このMPU6050ジャイロスコープをArduinoとインターフェースし、16x2LCDでの値を示します。
必要なコンポーネント:
- Arduino Uno
- MPU-6050
- 10Kポット
- ジャンパー線
- ブレッドボード
- USBケーブル
- 電源
MPU6050ジャイロセンサー:
MPU-6050は、シングルチップの8ピン6軸ジャイロおよび加速度計です。このモジュールはデフォルトでI2Cシリアル通信で動作しますが、レジスタを構成することでSPIインターフェイス用に構成できます。I2Cの場合、これにはSDAおよびSCLラインがあります。ほとんどすべてのピンが多機能ですが、ここではI2Cモードピンのみを使用しています。
ピン構成:
Vcc:-このピンは、グランドに対してMPU6050モジュールに電力を供給するために使用されます
GND:-これはグランドピンです
SDA: -SDAピンはコントローラーとmpu6050モジュール間のデータに使用されます
SCL: -SCLピンはクロック入力に使用されます
XDA:-これは、外部センサーを構成して読み取るためのセンサーI2C SDAデータラインです((オプション)この場合は使用されません)
XCL:-これは、外部センサーを構成して読み取るためのセンサーI2C SCLクロックラインです((オプション)この場合は使用されません)
ADO: -I2CスレーブアドレスLSB(この場合は適用されません)
INT:-データ準備完了を示すための割り込みピン。
説明:
この記事では、ArduinoでMPU6050を使用して、LCDで温度、ジャイロ、および加速度計の読み取り値を示しています。このモジュールは、出力に行の値と正規化された値を提供しますが、行の値は安定していないため、ここではLCD上に正規化された値を示しています。加速度計の値だけが必要な場合は、Arduinoで加速度計ADXL335を使用することもできます。
このプロジェクトでは、最初にLCDに温度値を表示し、10秒後にジャイロ値を表示し、10秒後に下の画像に示すように加速度計の読み取り値を表示します。
回路図と説明:
MPU6050とArduinoをインターフェースするための回路図は、ここではLCDとMPU6050を使用して非常に単純です。そして、ここではラップトップのUSB電源を使用しました。LCDの明るさを制御するために10kポットが使用されます。MPU6050に関連して、MPU6050の3.3v電源とアースをArduinoの3.3vとアースに接続する5つの接続を行いました。MPU6050のSCLピンとSDAピンは、ArduinoのA4ピンとA5ピンに接続されています。また、MPU6050のINTピンはArduino(D2)の割り込み0に接続されています。LCDのRS、RW、およびENは、Arduinoの8、gnd、および9に直接接続されています。データピンはデジタルピン番号10、11、12、13に直接接続されています。
プログラミングの説明
このプロジェクトではプログラミング部分も簡単です。ここでは、このMPU6050ライブラリを使用してArduinoとインターフェイスしました。そのため、まず、GitHubからMPU6050ライブラリをダウンロードして、ArduinoIDEにインストールする必要があります。
その後、例の中にサンプルコードを見つけることができます。ユーザーは、コードをArduinoに直接アップロードすることでそのコードをテストでき、シリアルモニターで値を確認できます。または、ユーザーは記事の最後に記載されているコードを使用して、LCDやシリアルモニターにも値を表示できます。
コーディングには、MPU6050やLCDなどの必要なライブラリが含まれています。
#include
では 、セットアップ 機能、我々は両方のデバイスの初期化LCDを超えると書き込み歓迎メッセージを
void setup(){lcd.begin(16,2); lcd.createChar(0、度); Serial.begin(9600); Serial.println( "Initialize MPU6050"); while(!mpu.begin(MPU6050_SCALE_2000DPS、MPU6050_RANGE_2G)){lcd.clear(); lcd.print( "デバイスが見つかりません"); Serial.println( "有効なMPU6050センサーが見つかりませんでした。配線を確認してください!"); delay(500); } count = 0; mpu.calibrateGyro(); mpu.setThreshold(3);では ループ 機能は、我々はすべてのために10秒で3つの機能を求めている、と読んで加速度計、温度、ジャイロを表示するLCDに。これらの3つの関数は 、tempShow 、 gyroShow 、および accelShow です。これらの関数は、この記事の最後に記載されている完全なArduinoコードで確認できます。
void loop(){lcd.clear(); lcd.print( "Temperature"); long st = millis(); Serial.println( "Temperature"); while(millis()
MPU6050ジャイロと加速度計はどちらも、デバイスの位置と向きを検出するために使用されます。ジャイロは地球の重力を使用してx、y、z軸の位置を決定し、加速度計は動きの変化率に基づいて検出します。次のような多くのプロジェクトで、Arduinoで加速度計をすでに使用しています。
- 加速度計ベースのハンドジェスチャ制御ロボット
- Arduinoベースの車両事故警報システム
- Arduinoを使用した地震検知器アラーム