物体センサー#

導入#

物体センサーは、反射された赤外線(IR)光を利用して物体が近くにあることを検出する赤外線(IR)近接センサーです。

VEXオブジェクトセンサー。

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

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

  • reflectivity – オブジェクトから反射される光の量をパーセントで表した integer を返します。

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

  • set_threshold – オブジェクトが検出されたとみなされる前に必要な反射光の量を設定します。

  • object_detected – オブジェクトセンサーが新しいオブジェクトを検出するたびに呼び出される関数を登録します。

  • object_lost – オブジェクトセンサーが検出したオブジェクトを失ったときに呼び出される関数を登録します。

  • changed – オブジェクトセンサーの値が変更されるたびに呼び出される関数を登録します。

コンストラクタ – オブジェクトセンサーを手動で初期化します。

  • ObjectDetector – オブジェクトセンサーを作成します。

反射率#

reflectivity 、オブジェクトから反射される光の量をパーセントで表す integer を返します。

注記:

  • 反射率が0%ということは、対象物が非常に暗いことを意味します。センサーは3000以上の生の値を検出します。

  • 反射率100%とは、対象物が非常に明るいことを意味します。センサーは生の値として0を検出します。

Usage:
object_sensor.reflectivity()

パラメータ

説明

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

# Drive forward when the reflectivity is greater than 50%.
while True:
    if object_sensor.reflectivity() > 50:
        drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()
    wait(5, MSEC)

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

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

  • True – オブジェクトセンサーが物体を検出しています。

  • False – オブジェクトセンサーがオブジェクトを検出していません。

Usage:
object_sensor.is_object_detected()

パラメータ

説明

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

# Drive forward when the object sensor is detecting an object.
while True:
    if object_sensor.is_object_detected():
        drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()
    wait(5, MSEC)

しきい値を設定する#

set_threshold は、物体が検出されたとみなされるために必要な反射光の量をパーセントで設定します。

Usage:
object_sensor.set_threshold(value)

パラメータ

説明

value

物体を検出対象とみなすために必要な反射光量を、0から100までの整数で表したもの。

# Set the reflectivity threshold to 50%.
object_sensor.set_threshold(50)
# Drive forward when the object sensor is detecting an object.
while True:
    if object_sensor.is_object_detected():
        drivetrain.drive(FORWARD)
    else:
        drivetrain.stop()
    wait(5, MSEC)

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

object_detected オブジェクトセンサーが新しいオブジェクトを検出するたびに呼び出される関数を登録します。

Usage:
object_sensor.object_detected(callback, arg)

パラメータ

説明

callback

オブジェクトセンサーが新しいオブジェクトを検出したときに実行される、事前に定義された関数。

arg

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

def my_function():
  brain.screen.print("Object detected.")

# Call my_function whenever object_sensor detects an object
object_sensor.object_detected(my_function)

オブジェクトが失われた#

object_lost は、オブジェクトセンサーが検出されたオブジェクトを失ったときに呼び出される関数を登録します。

Usage:
object_sensor.object_lost(callback, arg)

パラメータ

説明

callback

オブジェクトセンサーが検出したオブジェクトを失ったときに実行される、事前に定義された関数。

arg

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

def my_function():
  brain.screen.print("Object lost.")

# Call my_function whenever object_sensor loses an object
object_sensor.object_lost(my_function)

変更しました#

changed オブジェクトセンサーの値が変更されるたびに呼び出される関数を登録します。

Usage:
object_sensor.changed(callback, arg)

パラメータ

説明

callback

オブジェクトセンサーの値が変更されたときに実行される、事前に定義された 関数。

arg

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

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

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

建設業者#

コンストラクタは、オブジェクトセンサーの設定に必要な ObjectDetector を手動で作成するために使用されます。

ObjectDetector#

ObjectDetector はオブジェクトセンサーを作成します。

Usage:
ObjectDetector(port, reverse_det)

パラメータ

説明

port

オブジェクトセンサーが接続されている3線式ポート:

  • EXP Brainの場合 – brain.three_wire_port.x ここで、xはポート番号です。
  • 3線式エキスパンダーの場合 – expander.a ここで、 expander はエキスパンダーインスタンスの名前です。

reverse_det

オプション。検出ロジックを反転するかどうか:

  • True – オブジェクトが失われた場合、オブジェクトが検出されたことを返し、オブジェクトが検出された場合、オブジェクトが失われたことを返します。
  • False (デフォルト) – オブジェクトが失われた場合、オブジェクトが失われたことを返し、オブジェクトが検出された場合、オブジェクトが検出されたことを返します。

# Create an Object Sensor in Port A
object_sensor = ObjectDetector(brain.three_wire_port.a)