- Published on
Raspberry Piに「LIS3DH」を接続し制御する
1203文字2分で読めます–––
閲覧数
- Authors
- 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 🚚