ホーム > カテゴリ > ロボット・電子工作・マイコン >

ジャイロセンサー(角速度)の使い方 [Arduino]

今回は「圧電振動ジャイロ」(ENC-03RC/D)を2個搭載している「小型圧電振動ジャイロモジュール」を使用して2軸の角速度(deg/sec)を検出します。

角速度(deg/sec)の「deg」は「degree = 度」で「sec」は「Seconds = 秒」です。よって、この単位(deg/sec)は1秒当たりの回転した角度です。

例えば「50deg/sec」の場合は1秒後に50度の角度となります。

[実行例]

使用部品・材料

総額で約670円です。(Arduino本体の値段を除く)

部品/材料値段備考
ブレッドボード¥270秋月電子の通販コード(P-00315)
小型圧電振動ジャイロモジュール¥400「圧電振動ジャイロ」(ENC-03RC/D)を2個搭載したモジュール。

秋月電子の通販コード(K-04912)

配線図

データシート

公式データシート(ENC-03RCD.pdf)で必要な情報は次の通りです。

供給電圧2.7~5.25V
静止時出力1.35Vこの値は基準電圧ですが、机の上など環境によって変化しますので各自の環境に合わせてください。
感度(mV/deg/sec)0.67mV1秒間あたりに1度回転したら、0.67mVの電圧を出力します。角速度を求める際の係数として使用します。
検出範囲(deg/sec)±300角速度
リニアリティ±5誤差(%)

スケッチ(プログラム)

各ジャイロの角速度(deg/sec)をシリアルモニターに表示します。

void setup() {
  Serial.begin(9600);
}

void loop() {
  // 静止時出力の実測値(本来は1.35V)
  // ※机の上など環境により異なりますので適宜、変更して下さい。
  float base_voltage1 = 1.44;
  float base_voltage2 = 1.44;
  
  // ジャイロ(G1)
  float voltage = (analogRead(A0) / 1024.0) * 5;
  voltage = (float)((int)((voltage) * 100)) / 100; // 小数点第3位以降は切り捨て

  Serial.print("G1:");
  Serial.print(voltage);
  Serial.print("V 角速度:");
  Serial.print((voltage - base_voltage1) / (0.67 / 1000));
  Serial.print(" deg/sec");

  // ジャイロ(G2)
  voltage = (analogRead(A1) / 1024.0) * 5;
  voltage = (float)((int)((voltage) * 100)) / 100; // 小数点第3位以降は切り捨て

  Serial.print(" G2:");
  Serial.print(voltage);
  Serial.print("V 角速度:");
  Serial.print((voltage - base_voltage2) / (0.67 / 1000));
  Serial.print(" deg/sec");
  Serial.println("");
  delay(1000);
}

ジャイロセンサーは水平に置いても「ドリフト」と呼ばれる角速度がブレる現象が発生する場合があります。ドリフト補正にはフィルター処理をする必要がありますが、詳細は検索して探してみてください。

参考サイト

ジャイロ(角速度)から角度の算出方法





掲示板

ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。

関連記事



公開日:2017年05月31日 最終更新日:2017年08月20日
記事NO:02406