logo
Published on

Arduinoに「BMG160」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Arduinoは様々なセンサーやモジュールと組み合わせて利用でき、その中でもジャイロセンサー「BMG160」は回転や傾きなどの動きを検知するのに優れたデバイスです。この記事では、ArduinoにBMG160を接続し、その動作を制御する方法について詳しく解説します。

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

1. BMG160ジャイロセンサーの概要

BMG160は、ボッシュ社が製造した3軸ジャイロセンサーで、高い感度と低消費電力が特徴です。Arduinoとの接続はI2Cプロトコルを通じて行います。このジャイロセンサーを使うことで、デバイスの傾きや回転の速度を検知できます。

2. BMG160の接続

BMG160をArduinoに接続するには、I2C通信用のピンを利用します。通常、BMG160にはVCC、GND、SDA、SCLの4つのピンがあります。これらをArduinoに接続します。

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

3. Arduinoライブラリのインストール

BMG160をArduinoで使うには、専用のライブラリをインストールする必要があります。Arduino IDEを開き、「スケッチ」 → 「ライブラリをインクルード」 → 「ライブラリを管理」を選択し、検索バーに「BMG160」を入力して対応するライブラリをインストールします。

4. Arduinoコードの作成

BMG160の値を読み取るための基本的なArduinoコードを以下に示します。

#include <Wire.h>
#include <BMG160.h>

BMG160 bmg;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  bmg.begin();
}

void loop() {
  bmg.readGyro();  // ジャイロの値を読み取る
  Serial.print("X: "); Serial.print(bmg.g.x);
  Serial.print(" Y: "); Serial.print(bmg.g.y);
  Serial.print(" Z: "); Serial.println(bmg.g.z);
  
  delay(1000);  // 1秒ごとに更新
}

このコードは、BMG160から得られる3軸のジャイロ値をシリアルモニターに表示するものです。

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

コードをArduinoにアップロードし、シリアルモニターでジャイロの値が正しく表示されるか確認します。デバイスを傾けると、対応する軸の値が変動することが確認できるでしょう。

これで、ArduinoにBMG160を接続して、ジャイロの値を取得し制御する基本的な手順が完了しました。応用として、これを利用してバランスをとるロボットや動きを制御するプロジェクトを開発することができます。