logo
Published on

Arduinoに「LSM6DS3」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Arduinoを使用して様々なセンサーやデバイスを制御することは、IoTやロボット工学などの分野で一般的です。この記事では、「LSM6DS3」と呼ばれる加速度計とジャイロスコープを組み合わせたセンサーモジュールをArduinoに接続し、制御する方法について解説します。

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

1. LSM6DS3センサーモジュールの概要

LSM6DS3は、加速度計(Accelerometer)とジャイロスコープ(Gyroscope)を統合したモジュールです。これにより、デバイスの傾きや振動を検知することができます。このセンサーをArduinoに接続し、取得したデータを利用することで、様々なプロジェクトを実現することが可能です。

2. LSM6DS3の接続

LSM6DS3モジュールは通常、I2C通信を使用してデータを送受信します。接続するためには、以下のピンが存在します。

  • VCC(電源): 3.3Vまたは5V
  • GND(接地): GNDに接続
  • SDA(データライン): ArduinoのA4ピンに接続
  • SCL(クロックライン): ArduinoのA5ピンに接続

3. Arduinoコードの作成

Arduino IDEを開いて、I2C通信を扱うためのライブラリをインストールし、次に以下のような基本的なコードを作成します。

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM6DS3.h>

Adafruit_LSM6DS3 lsm6ds3;

void setup() {
  Serial.begin(9600);
  if (!lsm6ds3.begin()) {
    Serial.println("Could not find LSM6DS3 sensor, check wiring!");
    while (1);
  }
}

void loop() {
  sensors_event_t accel, gyro, temp;
  lsm6ds3.getEvent(&accel, &gyro, &temp);

  Serial.print("Accelerometer: ");
  Serial.print(accel.acceleration.x);
  Serial.print(" m/s^2 ");
  Serial.print(accel.acceleration.y);
  Serial.print(" m/s^2 ");
  Serial.print(accel.acceleration.z);
  Serial.println(" m/s^2 ");

  Serial.print("Gyroscope: ");
  Serial.print(gyro.gyro.x);
  Serial.print(" rad/s ");
  Serial.print(gyro.gyro.y);
  Serial.print(" rad/s ");
  Serial.print(gyro.gyro.z);
  Serial.println(" rad/s ");

  Serial.print("Temperature: ");
  Serial.print(temp.temperature);
  Serial.println(" degC ");

  delay(1000);  // 1秒ごとにデータを更新
}

このコードは、LSM6DS3から取得した加速度、ジャイロ、温度のデータをシリアルモニターに表示するものです。

4. コードのアップロードと動作確認

Arduinoにコードをアップロードし、シリアルモニターを開いて、データが正しく表示されるか確認します。LSM6DS3が動作していれば、加速度やジャイロのデータがリアルタイムで表示されるはずです。

これで、LSM6DS3をArduinoに接続し、制御する基本的な手順が完了しました。センサーのデータを活用して、傾き検知や動きに反応するプロジェクトを進化させることができます。