logo
Published on

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

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは小型で高性能なシングルボードコンピューターであり、様々なセンサーやモジュールを組み合わせて利用することができます。この記事では、加速度センサー「BMG160」をRaspberry Piに接続し、制御する方法について解説します。

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

1. BMG160の概要

BMG160は、Bosch Sensortecが提供する三軸加速度センサーであり、高い精度で動きを検知することができます。I2C通信プロトコルを使用してデータを取得することができ、Raspberry Piと組み合わせて様々なプロジェクトに利用されています。

2. BMG160の接続

BMG160は一般的に、VCC、GND、SCL(クロック)、SDA(データ)の4本のピンから構成されています。これらをRaspberry Piに接続します。例えば、SCLをRaspberry Piのピン3(GPIO2)、SDAをピン5(GPIO3)に接続します。

3. Raspberry Piコードの作成

Raspberry PiではPythonやC言語を使用してBMG160を制御することができます。以下は、Pythonを使用した例です。

Pythonコード例:

import smbus
import time

# BMG160のI2Cアドレス
BMG160_I2C_ADDR = 0x69

# BMG160のレジスタアドレス
BMG160_REG_X_LSB = 0x02

# I2Cバスの初期化
bus = smbus.SMBus(1)

def read_bmg160_data():
    data_x = bus.read_i2c_block_data(BMG160_I2C_ADDR, BMG160_REG_X_LSB, 6)
    x = (data_x[1] * 256 + data_x[0]) / 1.0
    return x

try:
    while True:
        acceleration_x = read_bmg160_data()
        print(f"Acceleration X: {acceleration_x}")
        time.sleep(1)

except KeyboardInterrupt:
    pass

このコードはBMG160からX軸方向の加速度データを読み取り、1秒ごとに表示します。適宜、他の軸のデータを取得するためにコードを修正することができます。

4. コードの実行と確認

最後に、書いたPythonコードを実行してBMG160からのデータを確認します。正しく接続されていれば、Raspberry PiからBMG160の加速度データが取得できるはずです。

これで、Raspberry PiにBMG160を接続し、Pythonを使用して制御する基本的な手順が完了しました。BMG160のデータを活用して、傾きや動きを検知するさまざまなプロジェクトを開発することができます。