回転センサー#

導入#

rotation クラスは、EXP回転センサーからのデータを制御し、アクセスするために使用されます。

回転センサーは、シャフトの回転を測定します。シャフトが回転するロボット上のあらゆる場所で使用でき、そのシャフトがモーターに直接接続されていなくても構いません。

モーターには、自身の回転を追跡できるエンコーダーが内蔵されています。回転セ​​ンサーは、別のシャフトの回転を追跡できる外部エンコーダーのように機能します。

回転センサーは、シャフトの角度、位置、速度を返します。角度は、0~359.99度のシャフトの絶対位置です。プロジェクトの開始時やロボットの電源がオフになってもリセットされません。位置は、プロジェクト中にシャフトが正転または逆転した角度(回転数)を追跡し、必要に応じてリセットできます。

回転センサーは、1/8インチおよび1/4インチの標準的なVEXシャフトに対応しています。

クラスコンストラクタ#

rotation(
    int32_t index,
    bool    reverse = false );

クラスデストラクタ#

回転 rotation オブジェクトを破棄し、関連するリソースを解放します。

virtual ~rotation();

パラメータ#

パラメータ

タイプ

説明

index

int32_t

回転センサーが接続されているスマートポートは、 PORTxと表記され、 x はポート番号です (例: PORT1)。

reverse

bool

オプション。回転センサーの出力を反転するかどうか:

  • true — 報告される角度と位置の値の方向を反転します。4
  • falsefalse — 角度と位置の値を標準方向で報告します

例#

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

メンバーの機能#

rotation クラスには、以下のメンバ関数が含まれています。

  • setPosition — 回転センサーの現在位置を特定の値に設定します。

  • angle — シャフトの現在の角度を0度から359.99度の範囲で返します。

  • position — シャフトが回転した角度または回転数を返します。

  • velocity — シャフトの回転速度を返します。

rotation メンバー関数を呼び出す前に、以下に示すように rotation インスタンスを作成する必要があります。

/* This constructor is required when using VS Code.
Rotation Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

setPosition#

回転センサーの現在位置を特定の値に設定します。

位置とは、プロジェクト中にシャフトが回転した距離のことです。位置を設定すると、シャフトを動かさずに現在の位置の値が変更されます。

Available Functions
void setPosition(
    double        value,
    rotationUnits units );

Parameters

パラメータ

タイプ

説明

value

double

回転センサーに割り当てる位置値。整数または小数を指定できます。

units

rotationUnits

The position unit:

  • deg / degrees — degrees
  • turns / rev — turns

Return Values

この関数は値を返しません。

angle#

シャフトの現在の角度を返します。

角度は、1回転以内のシャフトの絶対位置を0度から359.99度の範囲で表示します。プロジェクトの開始時やロボットの電源オフ時にリセットされることはありません。

Available Functions
double angle( rotationUnits units = degrees );

Parameters

パラメータ

タイプ

説明

units

rotationUnits

オプション。角度の単位:

  • deg / degrees (デフォルト) — 度
  • turns / rev — 回転

Return Values

指定された単位で、シャフトの現在の角度を表す double を返します。

Examples
// Get the current angle of the shaft
  double angle = Rotation1.angle(degrees);

  // Print the current angle of the shaft to the
  // Brain's screen.
  Brain.Screen.print(angle);

position#

シャフトがどれだけ回転したかを返します。

角度とは異なり、位置は359.99度を超えて増加したり、0度を下回ったりすることができます。位置は、プロジェクト中にシャフトがどれだけ前進または後退したかを追跡し、必要に応じてリセットできます。

Available Functions
double position( rotationUnits units );

Parameters

パラメータ

タイプ

説明

units

rotationUnits

The position unit:

  • deg / degrees — degrees
  • turns / rev — turns

Return Values

指定された単位でシャフトがどれだけ回転したかを表す、 double 倍精度浮動小数点数を返します。

velocity#

シャフトの回転速度を返します。

Available Functions
double velocity( velocityUnits units );

Parameters

パラメータ

タイプ

説明

units

velocityUnits

速度の単位:

  • rpm — 毎分回転数
  • dps — 毎秒度

Return Values

指定された単位で、シャフトの回転速度を表す double を返します。