ジャイロセンサー#
導入#
gyro クラスは、ジャイロセンサーと組み合わせて使用され、単一軸を中心とした回転運動を測定します。ロボットがどちらの方向を向いているか、またどれだけ回転したかを追跡できます。
クラスコンストラクタ#
gyro(
int32_t index );
クラスデストラクタ#
gyro オブジェクトを破棄し、関連するリソースを解放します。
virtual ~gyro();
パラメータ#
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
ジャイロセンサーが接続されているスマートポートは、 |
例#
// Create a gyro instance in Port 1
gyro Gyro1 = gyro(PORT1);
メンバーの機能#
gyro クラスには、以下のメンバ関数が含まれています。
calibrate— ジャイロセンサーを校正します。setHeading— ジャイロセンサーの現在の方位を新しい方位値に設定します。setRotation— ジャイロセンサーの現在の回転を新しい回転値に設定します。heading— ジャイロセンサーが向いている方向を返します。rotation— ジャイロセンサーがどれだけ回転したかを返します。rate— ジャイロセンサーの回転速度を返します。
gyro メンバ関数を呼び出す前に、以下に示すように gyro インスタンスを作成する必要があります。
/* This constructor is required when using VS Code.
Gyro Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create a gyro instance in Port 1
gyro Gyro1 = gyro(PORT1);
calibrate#
ジャイロセンサーを校正します。
Available Functionsvoid calibrate();
この関数は引数を受け付けません。
Return Valuesこの関数は値を返しません。
Notesキャリブレーションは、ジャイロセンサーが旋回を正確に測定するために役立ちます。キャリブレーション中はセンサーを動かさないでください。キャリブレーション中にセンサーが動くと、方位、回転、および回転速度の値が正しく測定されない可能性があります。
// Calibrate the Gyro Sensor before turning.
Gyro1.calibrate();
setHeading#
ジャイロセンサーの現在の方位を特定の値に設定します。
方位とは、ジャイロセンサーが向いている方向のことで、0度から359.99度の範囲で測定されます。方位を設定すると、センサーの現在の方向基準が変更されます。
Available Functionsvoid setHeading(
double value,
rotationUnits units );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
新しい見出しに使用する値。 |
|
|
方位を表す単位:
|
この関数は値を返しません。
setRotation#
ジャイロセンサーの現在の回転角を特定の値に設定します。
回転とは、ジャイロセンサーがどれだけ回転したかを示す値です。方位とは異なり、回転は359.99度を超えて増加したり、0度を下回ったりすることがあります。
Available Functionsvoid setRotation(
double value,
rotationUnits units );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
新しい回転値に使用する値。 |
|
|
回転値を表す単位:
|
この関数は値を返しません。
heading#
ジャイロセンサーの現在の方位角を返します。
方位とは、ジャイロセンサーが向いている方向のことで、0度から359.99度までの範囲で測定されます。センサーが359.99度を超えて回転すると、方位は0度に戻ります。
Available Functionsdouble heading(
rotationUnits units = degrees );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
方位を表す単位:
|
指定された単位でのジャイロセンサーの現在の方位を表す double を返します。デフォルト値は degreesです。
// Get the current heading for the Gyro.
double value = Gyro1.heading();
Brain.Screen.print(value);
rotation#
ジャイロセンサーの現在の回転角度を返します。
回転とは、ジャイロセンサーがどれだけ回転したかを示す値です。方位とは異なり、回転は359.99度を超えて増加したり、0度を下回ったりすることがあります。例えば、右に2回転すると720度の回転になります。0度から左に1回転すると-360度の回転になります。
Available Functionsdouble rotation(
rotationUnits units = degrees );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
回転値を表す単位:
|
指定された単位でのジャイロセンサーの現在の回転値を表す double を返します。デフォルト値は degreesです。
// Get the current rotation for the Gyro.
double value = Gyro1.rotation();
Brain.Screen.print(value);
rate#
ジャイロセンサーの回転速度を返します。
回転速度とは、ジャイロセンサーが回転する速さのことです。センサーの回転方向によって、値は正にも負にもなります。
Available Functionsdouble rate(
rateUnits units = rateUnits::dps );
パラメータ |
タイプ |
説明 |
|---|---|---|
|
|
速度を表す単位:
|
指定された単位でのジャイロセンサーの現在の変化率を表す double を返します。デフォルト値は rateUnits::dpsです。