logo
Published on

Raspberry Piに「ITG-3200」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは、小型で手軽に利用できるシングルボードコンピュータで、様々なセンサーやモジュールを組み合わせて利用することができます。この記事では、「ITG-3200」と呼ばれる3軸ジャイロセンサーをRaspberry Piに接続し、制御する方法について解説します。

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

1. ITG-3200の概要

ITG-3200は、3軸のジャイロセンサーであり、角速度を計測することができます。このセンサーは、慣性センシングや姿勢制御などのアプリケーションで利用されています。Raspberry Piと組み合わせることで、自己安定化ロボットや傾き検知システムなどのプロジェクトを実現することができます。

2. ITG-3200の接続

ITG-3200は、通常、4つのピンがあります。

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

これらのピンをRaspberry Piに接続します。Raspberry PiのGPIOピンに対応するように接続しましょう。

3. Raspberry Piの設定

Raspberry PiでI2Cを有効にする必要があります。以下のコマンドを使用して、I2Cを有効にします。

sudo raspi-config

「Interfacing Options」→「I2C」を選択し、有効にします。再起動後、I2Cが有効になります。

4. Pythonコードの作成

次に、Pythonコードを使用してITG-3200を制御します。以下は、smbusライブラリを使用した例です。

import smbus
import time

# I2Cアドレス
ITG3200_ADDRESS = 0x68

# ITG-3200レジスタ
ITG3200_REG_XOUT_H = 0x1D
ITG3200_REG_YOUT_H = 0x1F
ITG3200_REG_ZOUT_H = 0x21

# スケールファクター(±2000度/秒の場合)
ITG3200_SCALE_FACTOR = 14.375

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

# ジャイロデータの読み込み
def read_gyro_data():
    x = bus.read_i2c_block_data(ITG3200_ADDRESS, ITG3200_REG_XOUT_H, 2)
    y = bus.read_i2c_block_data(ITG3200_ADDRESS, ITG3200_REG_YOUT_H, 2)
    z = bus.read_i2c_block_data(ITG3200_ADDRESS, ITG3200_REG_ZOUT_H, 2)
    return (combine_bytes(x), combine_bytes(y), combine_bytes(z))

# 16ビットの2つのバイトを結合
def combine_bytes(data):
    return (data[0] << 8) | data[1]

try:
    while True:
        # ジャイロデータの取得
        gyro_x, gyro_y, gyro_z = read_gyro_data()

        # 角速度の計算
        gyro_x /= ITG3200_SCALE_FACTOR
        gyro_y /= ITG3200_SCALE_FACTOR
        gyro_z /= ITG3200_SCALE_FACTOR

        # 結果の表示
        print(f"Gyro X: {gyro_x} deg/s, Gyro Y: {gyro_y} deg/s, Gyro Z: {gyro_z} deg/s")

        # 1秒待機
        time.sleep(1)

except KeyboardInterrupt:
    # キーボード割り込みで終了
    pass
finally:
    # バスを閉じる
    bus.close()

このコードは、ITG-3200から角速度のデータを読み取り、それを度数に変換して表示する単純な例です。

5. コードの実行と確認

Pythonコードを保存し、実行してITG-3200からのデータを確認します。正しく接続されていれば、ジャイロのX、Y、Z方向の角速度が表示されるはずです。

これで、Raspberry PiにITG-3200を接続し、Pythonコードを使用して制御するための基本的な手順が完了しました。自分のプロジェクトに組み込んで、様々なアプリケーションに活用してみてください。