Skip to main content

Grove-Single Axis Analog Gyro

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Grove – Single Axis Analog Gyro は、コリオリ力の現象を利用した角速度センサー(Murata-ENC-03R)を基にしています。このセンサーは X 軸の角速度のみを測定でき、他の 3 軸ジャイロとは異なりますが、より高速です。自律型 2WD のような位置制御や姿勢制御に使用できます。

モデル: SEN05091P

特徴

  • 入力電圧: 3.3V/5V

  • 標準 Grove インターフェース

  • 軽量

  • 高速

  • X 軸の角速度を測定

デモンストレーション

Arduino を使用する場合

このモジュールはアナログ信号で 1 軸の回転を検出します。 温度ドリフトを減少させ、出力ノイズを抑えるためにハイパスフィルターとローパスフィルター回路が適用されています。 角速度を測定する前に、基準値(角速度=0 のときのセンサー出力)が必要です。 この値はデフォルトで 1.35V ですが、より正確な基準値を得るために測定前にキャリブレーションが必要です。 このキャリブレーションでは、角速度=0 のときの出力電圧を 200 回サンプリングし、それらのデータの平均値を基準値として扱います。

  1. Grove - Base Shield の A0 ポートに接続します。もちろん、アナログピンの任意のピンでも問題ありません。

  2. Grove - Base Shield を Arduino/Seeeduino に差し込み、USB ケーブルを使用して PC に接続します。

  3. 以下のコードをアップロードします。アップロード方法がわからない場合は こちら をクリックしてください。

    int sensorPin = A0; // センサーの入力ピンを選択

float reference_Value=0;

int sensorValue = 0; // センサーからの値を格納する変数

void setup()
{

int i;
float sum=0;
pinMode(sensorPin, INPUT);
Serial.begin(9600);
Serial.println("キャリブレーション前に回転させないでください!");
Serial.println("基準値を取得中:");

for(i=0;i<1000;i++)
{
// センサーから値を読み取る:
sensorValue = analogRead(sensorPin);
sum += sensorValue;
delay(5);
}
reference_Value = sum/1000.0;
Serial.println(reference_Value);
Serial.println("テストを開始できます!");
}

void loop()
{
double angularVelocity;
sensorValue = analogRead(sensorPin);
angularVelocity =((double)(sensorValue-reference_Value)*4930.0)/1023.0/0.67; // 角速度を取得
Serial.print(angularVelocity);
Serial.println("deg/s");
Serial.println(" ");
delay(10);
}
  1. 次にキャリブレーションを行います。センサーを机の上に水平に置いてください。その後、Seeeduino のリセットボタンを押し、シリアルツールを開きます。

  1. 「テストを開始できます」と表示されたら、キャリブレーションが完了したことを意味します。センサーを使用できます。回転方向は以下の図を参考にしてください。

Raspberry Pi を使用する場合

  1. Raspberry Pi と GrovePi または GrovePi+ を用意してください。

  2. 開発環境の設定を完了している必要があります。設定が未完了の場合は こちら を参照してください。

  3. 接続

  • Grove ケーブルを使用してセンサーを GrovePi の A0 ソケットに接続します。
  1. デモディレクトリに移動します:

    cd yourpath/GrovePi/Software/Python/

  • コードを確認する
    nano grovesingleaxisanaloggyro.py # "Ctrl+x" で終了 #

import time
import grovepi

# Grove Single Axis Analog Gyro をアナログポート A0 に接続
# SIG,NC,VCC,GND
sensor = 0

grovepi.pinMode(sensor,"INPUT")

# キャリブレーション
print "キャリブレーション中..."

sum = 0

errors = 0

for x in range(0, 100):

try:
# センサー値を取得
v = grovepi.analogRead(sensor)
sum += v
#time.sleep(.05)
except IOError:
print "エラー"
errors += 1

if errors == 100:

print "キャリブレーションできません"

raise SystemExit

reference_value = sum / (100 - errors)

print "キャリブレーション完了"
print "基準値 =", reference_value

# 準備完了

while True:
try:
# センサー値を取得
sensor_value = grovepi.analogRead(sensor)

# 角速度を計算 (deg/s)
velocity = ((float)(sensor_value - reference_value) * 4930.0) / 1023.0 / 0.67

print "センサー値 =", sensor_value, " 速度 =", velocity
time.sleep(.5)

except IOError:
print "エラー"
  1. デモを実行します。

sudo python grovesingleaxisanaloggyro.py

回路図オンラインビューア

リソース

[Eagle] Grove - Signal Axis Analog Gyro Eagle

[PDF] Grove - Signal Axis Analog Gyro Sch

[PDF] Grove - Signal Axis Analog Gyro PCB

[データシート] File Signal Axis Analog Gyro datasheet

[コード] GitHub上のデモコード

技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートをご用意しております。お客様のご希望やニーズに応じた複数のコミュニケーションチャネルを提供しています。

Loading Comments...