Grove-Single Axis Analog Gyro
この文書は 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 回サンプリングし、それらのデータの平均値を基準値として扱います。
Grove - Base Shield の A0 ポートに接続します。もちろん、アナログピンの任意のピンでも問題ありません。
Grove - Base Shield を Arduino/Seeeduino に差し込み、USB ケーブルを使用して PC に接続します。
以下のコードをアップロードします。アップロード方法がわからない場合は こちら をクリックしてください。
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);
}
- 次にキャリブレーションを行います。センサーを机の上に水平に置いてください。その後、Seeeduino のリセットボタンを押し、シリアルツールを開きます。
- 「テストを開始できます」と表示されたら、キャリブレーションが完了したことを意味します。センサーを使用できます。回転方向は以下の図を参考にしてください。
Raspberry Pi を使用する場合
Raspberry Pi と GrovePi または GrovePi+ を用意してください。
開発環境の設定を完了している必要があります。設定が未完了の場合は こちら を参照してください。
接続
- Grove ケーブルを使用してセンサーを GrovePi の A0 ソケットに接続します。
デモディレクトリに移動します:
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 "エラー"
- デモを実行します。
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上のデモコード
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートをご用意しております。お客様のご希望やニーズに応じた複数のコミュニケーションチャネルを提供しています。