距離センサー#

導入#

距離センサーは、センサーの前に物体があるかどうかを検知し、その物体までの距離を返します。また、検知した物体の相対速度を返したり、物体が小型、中型、大型のいずれであるかを推定したりすることもできます。

距離センサーは20mmから2000mmの範囲で動作します。

200mm未満の場合、精度は約±15mmです。200mmを超えると、精度は約5%に向上します。

距離センサーはクラス1レーザーを使用しています。検出方向は正面で、教室での使用にも安全です。

距離センサー。

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

利用可能なメソッドの一覧は以下のとおりです。

  • object_distance — 距離センサーと最も近い検出されたオブジェクト間の距離を返します。

  • object_velocity — 検出されたオブジェクトが距離センサーに向かって、または遠ざかる速度を返します。

  • object_size — 検出されたオブジェクトの推定サイズを返します。

  • is_object_detected — 距離センサーが現在オブジェクトを検出しているかどうかを返します。

  • changed — 距離センサーの値が変化するたびに実行される関数を登録します。

コンストラクタ — 距離センサーを手動で初期化します。

  • Distance — 距離センサーを作成します。

オブジェクト距離#

object_distance は、距離センサーと最も近い検出されたオブジェクト間の距離を小数 (float) として返します。

Usage:
distance_sensor.object_distance(units)

パラメータ

説明

units

オプション。距離の単位: MM (デフォルト、20 mm~2000 mm)または INCHES (0.78インチ~78.74インチ)。

# Drive forward until the object is within 50 mm away
drivetrain.drive(FORWARD)
while not distance_sensor.object_distance(MM) < 50:
  pass
drivetrain.stop()

オブジェクト速度#

object_velocity は、検出されたオブジェクトの相対速度をm/s(メートル毎秒)単位の小数(浮動小数点数)として返します。

速度は、物体が距離センサーに向かって、または遠ざかる速度を示します。値が0に近い場合は、物体がセンサーに対してほとんど動いていないことを意味します。

Usage:
distance_sensor.object_velocity()

パラメータ

説明

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

オブジェクトサイズ#

object_size は、距離センサーによって検出されたオブジェクトの推定サイズを返します。

距離センサーは、検出された物体がセンサーの視野のどれだけを占めているかに基づいて、物体のサイズを推定します。

  • ObjectSizeType(0, “NONE”) — オブジェクトが検出されません。

  • ObjectSizeType(1, “SMALL”) — 小さなオブジェクトが検出されました。

  • ObjectSizeType(2, “MEDIUM”) — 中サイズのオブジェクトが検出されました。

  • ObjectSizeType(3, “LARGE”) — 大きなオブジェクトが検出されました。

Usage:
distance_sensor.object_size()

パラメータ

説明

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

オブジェクトが検出されました#

is_object_detected は、距離センサーが現在オブジェクトを検出しているかどうかを返します。

  • True — 距離センサーが物体を検出します。

  • False — 距離センサーが物体を検出していません。

Usage:
distance_sensor.is_object_detected()

パラメータ

説明

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

# Drive forward until the object is within 50 mm away
while True:
  drivetrain.drive(FORWARD)
  if distance_sensor.is_object_detected():
    if distance_sensor.object_distance(MM) < 50:
      drivetrain.stop()
      break

変更しました#

changed 距離センサーの値が変化するたびに呼び出される関数を登録します。

Usage:
distance_sensor.changed(callback, arg)

パラメータ

説明

callback

距離センサーの値が変化したときに実行される、事前に定義された 関数。

arg

オプション。コールバック関数に渡す引数を含むタプル。詳細については、パラメーター付き関数の使用を参照してください。

def my_function():
  brain.screen.print("Distance changed")

# Call my_function whenever distance_sensor's value changes
distance_sensor.changed(my_function)

コンストラクタ#

コンストラクタは、VEXcode以外で距離センサーを設定する場合など、距離 Distance オブジェクトを手動で作成するために使用されます。

Distance#

Distance 、距離センサーオブジェクトを作成します。

Usage:
Distance(smartport)

パラメータ

説明

smartport

距離センサーが接続されているスマートポートは、 Ports.PORTxと表記され、 x はポート番号です。

# Create a Distance Sensor in Port 10
distance_sensor = Distance(Ports.PORT10)