SWITCH SCIENCE社のマイコンESPr Developer 32に9自由度の慣性計測装置(IMU)のLSM9DS1を接続し、Arduino IDEを用いて3軸加速度をシリアルに出力する方法です。
まずは、Arduino公式サイトからArduino IDEを手順に沿ってインストールします。
- "Download"へ移動
- 各種PCに合わせたインストーラをダウンロード
- インストーラを実行
- 設定はデフォルトから特に変更する必要なし
- デスクトップにArduinoのアイコンができれば完了
続いて、ESP32のボードを使うための設定をします。
- "File" → "Preference"を開く
- 下方の"Additional Boards Manager URLs"に、"https://dl.espressif.com/dl/package_esp32_index.json" をコピペする
- "OK" をクリックして"Preference"を閉じる
- "Tools" → "Board" → "Board Manager"を開く
- "esp32 by Espressif Systems" を探す(検索できます)
- カーソルを当てると右下に"Install" と出るので、クリック
- インストールが終わったら"close"
- "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);
}
↓このアイコンを押してボードに書き込みましょう。
書き込みが完了したら、ウィンドウ右上の虫眼鏡をクリックするとシリアルウィンドウが開きます。
シリアルウィンドウ右下の転送レートを115200bpsに変更すると、出力された値が見られます。
以上です!
初投稿読んでいただきありがとうございました!
続きはこちら↓
「スイッチを押しているとき、加速度の値をBluetoothで送信する」