PR

Arduino(Genuino) 101の加速度センサーを試してみる

記事内に広告が含まれています。

 Genuino101で搭載された加速度センサーを試してみました。今までは別途シールド等で外付けする必要があったのですが、内蔵されているので便利です。

 

 CurieIMUのライブラリが準備されていて使い方は割と簡単です。

 まず加速度の軸方向はこちらになります▼
0059_accelerometer-try_1

 

 

 静止状態の加速度を取得してみました。スケッチは公式ArduinoサイトのReferenceページを参考にしてます。

#include "CurieIMU.h"

  CurieIMU.begin();
  CurieIMU.setAccelerometerRange(2);

 IMUデバイスを開始して、加速度センサーのレンジを2Gに設定。レンジは2/4/8/16Gから設定できるようです。

 

  CurieIMU.readAccelerometer(axRaw, ayRaw, azRaw);
  ax = (axRaw * 2) / 32768.0;
  ay = (ayRaw * 2) / 32768.0;
  az = (azRaw * 2) / 32768.0;

 生の加速度値を取得して、Gへ変換してます。

 

 加速度センサーの取得結果はこちら▼
0059_accelerometer-try_2 可能な限り水平にGenuinoを置いた状態です。z軸に重力加速度のほぼ1Gがかかった状態。x、y軸はほぼ0です。キャリブレーションしていないからか値が少しずれてます。

 

▼加速度センサーの取得レートは

CurieIMU.setAccelerometerRate()

で設定できるようです。デフォルトは100Hzでした。12.5/25/50/100/200/400/800/1600Hzから設定できるようです。

 

 オートキャリブレーションも関数で準備されていたので試してみました。

  CurieIMU.autoCalibrateAccelerometerOffset(X_AXIS, 0);
  CurieIMU.autoCalibrateAccelerometerOffset(Y_AXIS, 0);
  CurieIMU.autoCalibrateAccelerometerOffset(Z_AXIS, 1);

 ▲z軸は重力を受けるので引数を1で。

 

 キャリブレーション後の加速度センサー取得結果です▼
0059_accelerometer-try_3 z軸は限りなく1G、x、y軸は限りなく0でした。キャリブレーションも非常に簡単です。その他、センサーの温度取得など、便利そうな関数がたくさん準備されてます。

 

 今まで外付けセンサー使っていたのですが通信制御の記述など結構大変でした。101で内蔵された加速度センサーは使い勝手が非常に簡単で便利です。

加速度センサーの取得値から軸廻り角度への変換方法の記事はこちら

▼その他のレポート記事はこちらから▼
Genuino101のジャイロスコープを試してみる
Genuino101の内蔵6軸センサーをMadgwickライブラリから試してみました
Genuino101、6軸センサーからの角度算出をProcessingで可視化してみる

 

コメント

タイトルとURLをコピーしました