- Published on
Raspberry Piに「LSM6DS3」を接続し制御する
1908文字4分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは豊富なGPIOピンを搭載しており、様々なセンサーやデバイスを制御するのに理想的なプラットフォームです。この記事では、優れた加速度計とジャイロスコープを組み合わせた「LSM6DS3」センサーをRaspberry Piに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. LSM6DS3センサーの概要
LSM6DS3は、加速度計とジャイロスコープを1つのチップに統合した高性能なIMU(慣性計測装置)です。3軸の加速度計と3軸のジャイロスコープが搭載されており、小型でありながら高い精度を提供します。このセンサーを使用することで、Raspberry Piで傾きや回転などの動きを検知できます。
2. LSM6DS3の接続
まず、LSM6DS3をRaspberry Piに接続します。通常、以下のようなピンがあります。
- VDD: 3.3Vの電源
- GND: 接地
- SCL: I2Cのクロックライン
- SDA: I2Cのデータライン
これらを対応するRaspberry Piのピンに接続します。I2C通信を使用するため、Raspberry Pi上のI2Cピン(通常はGPIO2とGPIO3)を使用します。
3. Pythonコードの作成
Raspberry PiでPythonを使用してLSM6DS3を制御します。まず、smbus
モジュールを使ってI2C通信を有効にし、その後、LSM6DS3からデータを読み取る簡単なスクリプトを作成します。
import smbus
import time
# LSM6DS3のI2Cアドレス
LSM6DS3_ADDR = 0x6A
# Register addresses
CTRL1_XL = 0x10
CTRL2_G = 0x11
OUTX_L_XL = 0x28
OUTY_L_XL = 0x2A
OUTZ_L_XL = 0x2C
# Initialize I2C
bus = smbus.SMBus(1)
def setup():
# Set accelerometer and gyroscope configuration
bus.write_byte_data(LSM6DS3_ADDR, CTRL1_XL, 0x40) # Accelerometer: 416 Hz, ±2g
bus.write_byte_data(LSM6DS3_ADDR, CTRL2_G, 0x40) # Gyroscope: 416 Hz, ±125dps
def read_sensor_data():
# Read accelerometer data
x_accel = bus.read_i2c_block_data(LSM6DS3_ADDR, OUTX_L_XL, 2)
y_accel = bus.read_i2c_block_data(LSM6DS3_ADDR, OUTY_L_XL, 2)
z_accel = bus.read_i2c_block_data(LSM6DS3_ADDR, OUTZ_L_XL, 2)
# Convert data to acceleration values
x_accel_value = (x_accel[1] << 8 | x_accel[0]) / 16384.0
y_accel_value = (y_accel[1] << 8 | y_accel[0]) / 16384.0
z_accel_value = (z_accel[1] << 8 | z_accel[0]) / 16384.0
return x_accel_value, y_accel_value, z_accel_value
if __name__ == "__main__":
setup()
try:
while True:
x, y, z = read_sensor_data()
print(f"X-Accel: {x:.2f} g, Y-Accel: {y:.2f} g, Z-Accel: {z:.2f} g")
time.sleep(1)
except KeyboardInterrupt:
print("\nProgram terminated by user.")
4. スクリプトの実行と動作確認
上記のPythonスクリプトをRaspberry Piに保存し、実行します。LSM6DS3からの加速度データが表示されるはずです。傾きや振動など、異なる動きに応じてセンサーが正しく動作することを確認してください。
これで、Raspberry PiにLSM6DS3を接続し、Pythonコードを使用してセンサーデータを取得する基本的な手順が完了しました。この情報を活用して、さまざまなプロジェクトやアプリケーションを開発することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚