/a/センサー
Published on

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

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

はじめに

Raspberry Piはシングルボードコンピュータであり、多くのセンサーやデバイスと組み合わせて様々なプロジェクトを実現することができます。この記事では、加速度センサー「LIS3DH」をRaspberry Piに接続し、制御する方法について解説します。

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

1. LIS3DH加速度センサーの概要

LIS3DHは、小型で低消費電力な3軸加速度センサーです。Raspberry Piと組み合わせることで、デバイスの傾きや振動などの動きを検知することができます。このセンサーは、I2CまたはSPIを介して通信することが一般的です。

2. LIS3DHの接続

まず、LIS3DHをRaspberry Piに接続します。LIS3DHは通常、4つの線があります。

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

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

3. Pythonコードの作成

Raspberry PiではPythonがよく利用されるため、LIS3DHを制御するためのPythonコードを書きます。以下は、LIS3DHがI2Cで接続された場合の例です。

import smbus
import time

# LIS3DHのI2Cアドレス
LIS3DH_ADDR = 0x19

# I2Cのバス番号
bus = smbus.SMBus(1)

def read_acceleration():
    # 制御レジスタにアクセスし、3軸の加速度データを読み取る
    data = bus.read_i2c_block_data(LIS3DH_ADDR, 0x28 | 0x80, 6)
    
    # 16ビットの2の補数形式でデータを変換
    x = (data[1] << 8 | data[0]) >> 4
    y = (data[3] << 8 | data[2]) >> 4
    z = (data[5] << 8 | data[4]) >> 4
    
    return x, y, z

try:
    while True:
        x, y, z = read_acceleration()
        print(f"X: {x}, Y: {y}, Z: {z}")
        time.sleep(1)

except KeyboardInterrupt:
    pass

このコードは、LIS3DHから3軸の加速度データを読み取り、1秒ごとに表示する単純な例です。必要に応じてコードを拡張し、検知した加速度に基づいたプロジェクトを構築することができます。

4. コードの実行と動作確認

最後に、Raspberry Piにコードを保存し、実行してLIS3DHが正しく動作しているか確認します。コンソールに表示される加速度データが期待通りであれば、LIS3DHのRaspberry Piへの接続と基本的な制御が成功しています。

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

将 有坂

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

タグ ->