ジャイロ#

導入#

ジャイロセンサーは、単一軸を中心とした回転を検出するモーションセンサーです。ロボットの回転角度を測定することで、ロボットの向きや進行方向を追跡することができます。

このページでは、ジャイロセンサー名の例として drivetrain_gyro を使用しています。必要に応じて、ご自身で設定した名前に置き換えてください。

以下に、利用可能なメソッドの一覧を示します。

操作 — ジャイロセンサーの方向と回転を校正または調整します。

  • calibrate — ジャイロセンサーを較正して、安定した方位追跡を実現します。

  • set_heading — ジャイロセンサーのヘディングを指定された値に設定します。

  • set_rotation — ジャイロセンサーの回転値を設定します。

  • reset_heading — ジャイロセンサーのヘディングを0に設定します。

  • reset_rotation — ジャイロセンサーの回転を0に設定します。

ゲッター — ジャイロセンサーの方位、回転、および状態を読み取る。

  • heading — 現在の見出しを返します。

  • rotation — 累積回転を返します。

  • rate — x、y、またはz軸周りの角速度を返します。

  • is_calibrating — ジャイロセンサーがキャリブレーション中かどうかを返します。

  • installed — ジャイロセンサーがブレインに接続されているかどうかを返します。

コールバック — ジャイロセンサーが動きや変化を検出したときにコードを実行します。

  • changed — ジャイロセンサーが変化を検出したときに呼び出す関数を登録します。

コンストラクタ — ジャイロセンサーを手動で初期化および構成します。

  • Gyro — ジャイロセンサーを作成します。

行動#

calibrate#

calibrate ジャイロセンサーをキャリブレーションします。以降のすべての行は、キャリブレーションが完了するまで実行されません。キャリブレーションは、指定された期間にわたってセンサーのノイズとドリフトを測定して補正する内部手順です。この間、ジャイロセンサーは完全に静止している必要があります(つまり、外部の動きがない安定した表面上に置く必要があります)。キャリブレーション中に動くと、不正確な結果が生じます。

Usage:
calibrate()

パラメータ

説明

このメソッドにはパラメータがありません。

# Start Gyro Sensor calibration
drivetrain_gyro.calibrate()
# Print after calibration
while drivetrain_gyro.is_calibrating():
    wait(0.1, SECONDS)
brain.screen.print("Done!")

set_heading#

set_heading は、ジャイロセンサーの方向を特定の値に設定します。

Usage:
set_heading(value, units)

パラメータ

説明

価値

設定する見出しの値。

ユニット

オプション。新しい方位を表す単位:

  • DEGREES (デフォルト)
  • TURNS
# Turn the robot around
drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)

set_rotation#

set_rotation は、ジャイロセンサーの回転を特定の値に設定します。

Usage:
set_rotation(value, units)

パラメータ

説明

value

設定する見出しの値。

units

オプション。新しい回転値を表す単位:

  • DEGREES (デフォルト)
  • TURNS
# Turn the robot around
drivetrain_gyro.set_rotation(-180)
drivetrain.turn_to_rotation(0)

reset_heading#

reset_heading は、ジャイロセンサーのヘディングを 0 にリセットします。

Usage:
reset_heading()

パラメータ

説明

このメソッドにはパラメータがありません。

# Turn the robot before and after resetting the heading
drivetrain.turn_to_heading(90, DEGREES)
wait(0.5,SECONDS)
drivetrain_gyro.reset_heading()
drivetrain.turn_to_heading(90, DEGREES)

reset_rotation#

reset_rotation は、ジャイロセンサーの回転を 0 にリセットします。

Usage:
reset_rotation()

パラメータ

説明

このメソッドにはパラメータがありません。

# Turn the robot before and after resetting the rotation
drivetrain.turn_to_rotation(-90, DEGREES)
wait(0.5,SECONDS)
drivetrain_gyro.reset_rotation()
drivetrain.turn_to_rotation(-90, DEGREES)

ゲッター#

heading#

heading は、ジャイロセンサーの現在の方位角を返します。

Usage:
heading(units)

パラメータ

説明

units

オプション。見出しを表す単位:

  • DEGREES (デフォルト)
  • TURNS
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.heading())

rotation#

rotation は、ジャイロセンサーの現在の回転を返します。

Usage:
rotation(units)

パラメータ

説明

units

オプション。回転を表す単位:

  • DEGREES (デフォルト)
  • TURNS
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.rotation())

rate#

rate は、指定された単位でジャイロセンサーの回転の現在の変化率を返します。

Usage:
rate(units)

パラメータ

説明

units

オプション。ジャイロレートを表す単位:

  • DPS (デフォルト)
  • RPM
  • PERCENT
# Display the rate of change of 
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(drivetrain_gyro.rate())
drivetrain.stop()

is_calibrating#

is_calibrating ジャイロセンサーが現在キャリブレーション中かどうかを確認します。

  • True — ジャイロセンサーがキャリブレーション中です。

  • False — ジャイロセンサーがキャリブレーションされていません。

Usage:
is_calibrating()

パラメータ

説明

このメソッドにはパラメータがありません。

# Start Gyro Sensor calibration.
drivetrain_gyro.calibrate()
# Print after calibration
while drivetrain_gyro.is_calibrating():
    wait(0.1, SECONDS)
brain.screen.print("Done!")

installed#

installed ジャイロセンサーがブレインに接続されているかどうかを示すブール値を返します。

  • True — ジャイロセンサーは脳に接続されています。

  • False — ジャイロセンサーは脳に接続されていません。

Usage:
installed()

パラメータ

説明

このメソッドにはパラメータがありません。

# Display a message if the Gyro Sensor is
# installed.
if drivetrain_gyro.installed():
    brain.screen.print("Installed!")

折り返し電話#

changed#

changed ジャイロセンサーの向きが変わったときにコールバック関数を登録します。

Usage:
changed(callback, arg)

パラメータ

説明

callback

ジャイロセンサーの向きが変わったときに呼び出されるコールバック関数。

arg

オプション。コールバック関数に渡す引数のタプル。

def gyro_changed():
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain_gyro.heading()) 
# Display the heading when the gyro detects a change
drivetrain.turn_for(RIGHT, 90, DEGREES, wait=False)
drivetrain_gyro.changed(gyro_changed)

建設業者#

コンストラクタは、VEXcode の外部でジャイロセンサーを構成するために必要な、 Gyro オブジェクトを手動で作成するために使用されます。

Gyro#

Gyro はジャイロセンサーを作成します。

Usage:
Gyro(smartport)

パラメータ

説明

smartport

ジャイロセンサーが接続されているスマートポートは、PORTx と表記され、x はポート番号です。

# Create the Brain
brain = Brain()
# When constructing Gyro Sensor "drivetrain_gyro" with a 
# SmartDrive "drivetrain"
drivetrain_gyro = Gyro(Ports.PORT1)
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, drivetrain_gyro, 200)

drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)