Genuino101で搭載された加速度センサーを試してみました。今までは別途シールド等で外付けする必要があったのですが、内蔵されているので便利です。
CurieIMUのライブラリが準備されていて使い方は割と簡単です。
まず加速度の軸方向はこちらになります▼
静止状態の加速度を取得してみました。スケッチは公式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へ変換してます。
加速度センサーの取得結果はこちら▼
可能な限り水平に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で。
キャリブレーション後の加速度センサー取得結果です▼
z軸は限りなく1G、x、y軸は限りなく0でした。キャリブレーションも非常に簡単です。その他、センサーの温度取得など、便利そうな関数がたくさん準備されてます。
今まで外付けセンサー使っていたのですが通信制御の記述など結構大変でした。101で内蔵された加速度センサーは使い勝手が非常に簡単で便利です。
加速度センサーの取得値から軸廻り角度への変換方法の記事はこちら
▼その他のレポート記事はこちらから▼
・Genuino101のジャイロスコープを試してみる
・Genuino101の内蔵6軸センサーをMadgwickライブラリから試してみました
・Genuino101、6軸センサーからの角度算出をProcessingで可視化してみる
コメント