/a/センサー
Published on

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

1856文字4分で読めます–––
閲覧数
Authors
  • avatar
    Name
    将 有坂
    short bio
    ラズパイやArduinoで電子工作をしてます。

はじめに

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

※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚

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コードを使用して制御するための基本的な手順が完了しました。自分のプロジェクトに組み込んで、様々なアプリケーションに活用してみてください。

※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
avatar

将 有坂

電子部品専門家 / ラズベリーパイのプロ / 数多くのセンサーやモジュールの導入実績
ラズベリーパイやArduinoの電子工作に関わるソフトウェアエンジニア。これまで100種類以上のセンサーやモジュールの導入を行い、その知識と経験を活かして、多くの人々に電子工作の楽しさを伝えることを使命としている。

タグ ->