PR

Arduino(Genuino) 101のジャイロスコープを試してみる

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

 Arduino(Genuino)101から搭載された内蔵ジャイロを試してみました。今までは別途シールド等で外付けする必要があったのですが、加速度センサー同様、内蔵されているので便利です。

 

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

 

 まずは筐体に対する回転軸方向です▼
0060_gyro_test_2

 

 Arduinoサイトのリファレンスを参考にジャイロスコープの角速度値を取得してみました。

#include "CurieIMU.h"
CurieIMU.begin();
CurieIMU.setGyroRange(250);

 ▲まずIMUを開始して、ジャイロセンサーのレンジは 250°/s に設定してます。レンジは2000/1000/500/250/125 °/s から設定できるようです。

 

 ▼またサンプリング周波数は

CurieIMU.setGyroRate();

で設定できて、デフォルトは100Hzです。25/50/100/200/400/800/1600/3200Hzから設定できます。

 

  CurieIMU.readGyro(gxRaw, gyRaw, gzRaw);

  gx = (gxRaw * 250.0) / 32768.0;
  gy = (gyRaw * 250.0) / 32768.0;
  gz = (gzRaw * 250.0) / 32768.0;

 ▲センサーから生値を取得して角速度(°/s)へ変換してます。

 

 取得した角速度をプロットしてみました▼
0060_gyro_test_3 Genuino101を適当にx軸回りに振ってます。3軸あると見難いのでx軸のみプロットしてます。普通にセンサー値拾ってるだけのプロットとなります。

 

 水平にして静止状態のままx軸回りのみプロットしてみました▼
0060_gyro_test_4 少しプラス目に振れてます。

 

 次にキャリブレーションをしてみました。キャリブレーションは

  CurieIMU.autoCalibrateGyroOffset();

の関数で簡単に補正できます。

 

 キャリブレーション有無のプロットです▼
0060_gyro_test_5
 振れ幅はあまり変化ありませんが、ある程度センター(0)に補正されています。

 

 ドリフトも確認してみました▼
0060_gyro_test_8 取得した角速度の積分値から角度算出して、特に何もドリフト補正はしてません。1~2分程度で1°程度のドリフトが発生しました。やはり何も補正無しでは結構ドリフトが発生するようです。

 

 ただArduinoサイトでMadgwickのフィルタリングアルゴリズムがチュートリアル形式で説明されています。まだ試してませんが、ドリフト補正も簡単に解決するかもしれません。

 

▼その他のレポート記事はこちらから▼

Genuino101の加速度センサーを試してみる
Genuino101の内蔵6軸センサーをMadgwickライブラリから試してみました
Genuino101、6軸センサーからの角度算出をProcessingで可視化してみる

 

コメント

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