4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LSM9DS1で加速度の値をシリアルにプリントする

Last updated at Posted at 2019-04-12

SWITCH SCIENCE社のマイコンESPr Developer 32に9自由度の慣性計測装置(IMU)のLSM9DS1を接続し、Arduino IDEを用いて3軸加速度をシリアルに出力する方法です。

まずは、Arduino公式サイトからArduino IDEを手順に沿ってインストールします。

  1. "Download"へ移動
  2. 各種PCに合わせたインストーラをダウンロード
  3. インストーラを実行
  4. 設定はデフォルトから特に変更する必要なし
  5. デスクトップにArduinoのアイコンができれば完了

続いて、ESP32のボードを使うための設定をします。

  1. "File" → "Preference"を開く
  2. 下方の"Additional Boards Manager URLs"に、"https://dl.espressif.com/dl/package_esp32_index.json" をコピペする
  3. "OK" をクリックして"Preference"を閉じる
  4. "Tools" → "Board" → "Board Manager"を開く
  5. "esp32 by Espressif Systems" を探す(検索できます)
  6. カーソルを当てると右下に"Install" と出るので、クリック
  7. インストールが終わったら"close"
  8. "Tools" → "Board"でスクロールすると"ESP32 Dev Module"があるので選択
    ------これで環境設定は終了です。------

最後に、ボードをPCと接続!
"Tools" → "Port"で繋いだポート番号を選択(コードを抜いたときは表示されていなくて接続したら表示される番号です)

以下はシリアルに加速度を出力するためのコードになります。

accelerater.ino
#include <SparkFunLSM9DS1.h>

#define LSM9DS1_M 0x1E
#define LSM9DS1_AG 0x6B

LSM9DS1 imu;

float x,y,z;
uint16_t connectionState = 0;

void setup()
{
  Serial.begin(115200);

  imu.settings.device.commInterface = IMU_MODE_I2C;
  imu.settings.device.mAddress = LSM9DS1_M;
  imu.settings.device.agAddress = LSM9DS1_AG;
  if (connectionState == 0)
  {
    connectionState = imu.begin();
    while (connectionState == 0)
    {
      Serial.println("Failed to communicate with LSM9DS1.");
      Serial.println("Double-check wiring.");
      Serial.println("Default settings in this sketch will "
                     "work for an out of the box LSM9DS1 "
                     "Breakout, but may need to be modified "
                     "if the board jumpers are.");
      Serial.print("Connection Status: ");
      Serial.println(imu.begin());
      delay(1000);
      connectionState = imu.begin();
      Serial.println("------------------------------------------------------\n");
    }if(connectionState!=1){
      Serial.print("connectionState: ");
      Serial.println(connectionState);
    }
  }
}


void loop()
{
  imu.readAccel();
  x=imu.calcAccel(imu.ax)*10;
  y=imu.calcAccel(imu.ay)*10;
  z=imu.calcAccel(imu.az)*10;
  Serial.print("x=");
  Serial.print(x);
  Serial.print(", y=");
  Serial.print(y);
  Serial.print(", z=");
  Serial.println(z);
}

↓このアイコンを押してボードに書き込みましょう。
image.png
書き込みが完了したら、ウィンドウ右上の虫眼鏡をクリックするとシリアルウィンドウが開きます。
シリアルウィンドウ右下の転送レートを115200bpsに変更すると、出力された値が見られます。

以上です!
初投稿読んでいただきありがとうございました!
続きはこちら↓
スイッチを押しているとき、加速度の値をBluetoothで送信する

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?