光センサー#

導入#

V5光学センサーは、RGBカラーセンサーと近接センサーを組み合わせることで、周囲の物体の色、明るさ、存在を検出します。また、内蔵LEDを使用して物体を照らし、より正確な検出を行うことも可能です。

VEX V5 光学センサー。

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

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

  • set_light – 光学センサーの LED をオンまたはオフにします。

  • set_light_power – 光学センサーの光パワーレベルを設定します。

  • is_near_object – 光学センサーが範囲内の物体を検出したかどうかを返します。

  • color – 光学センサーによって検出された色を返します。

  • brightness – オブジェクトから反射された光の量を返します。

  • hue – 光学センサーによって検出された色相を返します。

  • object_detected – 光学センサーが物体を検出したときに呼び出される関数を登録します。

  • object_lost – 光学センサーが物体を失ったときに呼び出される関数を登録します。

コンストラクタ – 光学センサーを手動で初期化します。

  • Optical – 光学センサーを作成します。

set_light#

set_light は、光学センサーのLEDをオンまたはオフにします。これにより、センサーが色を検出する際の精度を高めることができます。

Usage:
optical_sensor.set_light(state)

パラメータ

説明

州

Sets the LED on or off. LEDStateType.ON turns the light on at 100% brightness. LEDStateType.OFF turns it off.

# Turn on the sensor's LED
optical_sensor.set_light(LEDStateType.ON)

ライトパワーを設定#

set_light_power は、光学センサーのLEDの明るさを設定します。この光は、光学センサーが物体や色をより鮮明に検出するのに役立ちます。

光学センサーのライトが消灯している場合、ライトの出力を0%以上に設定するとライトが点灯します。

光学センサーのライトが点灯している場合、ライトの出力を0%に設定するとライトが消灯します。

パーセンテージが高いほど光は明るくなり、パーセンテージが低いほど光は暗くなります。

Usage:
optical_sensor.set_light_power(percent, units)

パラメータ

説明

パーセント

LEDの明るさを整数で指定してください。

ユニット

オプション。明るさを表す単位: PERCENT

# Turn on the sensor's light at half brightness
optical_sensor.set_light_power(50, PERCENT)

is_near_object#

is_near_object は、光学センサーが範囲内の物体を検出したかどうかを示すブール値を返します。

  • True – 光学センサーが物体を検出します。

  • False – 光学センサーが物体を検出しません。

Usage:
optical_sensor.is_near_object()

パラメータ

説明

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

# Drive forward until an object is found
drivetrain.drive(FORWARD)
while not optical_sensor.is_near_object():
  pass
drivetrain.stop()

色#

color 、検出された色相値に基づいて Color クラス のインスタンスを返します。これらは、定義済みの Color オブジェクトと比較することで条件文を作成できます。

選択可能な色は以下のとおりです。

  • Color.BLACK

  • Color.WHITE

  • Color.RED - 340°~20°の間の色相値

  • Color.GREEN - 80°~140°の色合い

  • Color.BLUE - 200°~240°の色相値

  • Color.YELLOW - 色相値が40°~60°

  • Color.ORANGE - 20°~40°の色合い

  • Color.PURPLE - 240°~280°の色合い

  • Color.CYAN - 140°~200°の色相値

注: 光学センサーは、指定された色に一致する色相範囲を探します。特定の色相範囲を検出するには、hue を参照してください。

Usage:
optical_sensor.color()

パラメータ

説明

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

# Drive forward until red is found
drivetrain.drive(FORWARD)
while not optical_sensor.color() == Color.RED:
  pass
drivetrain.stop()

輝度#

brightness 、オブジェクトから反射された光の量をパーセントを表す小数 (float) として返します。

パーセンテージが高いほど、光学センサーに反射される光の量が多くなります。パーセンテージが低いほど、反射される光の量が少なくなります。

Usage:
optical_sensor.brightness()

パラメータ

説明

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

色合い#

hue 、検出された色の色相値を 0 から 359 までの小数 (float) として返します。

色相とは、色相環上の数字を用いて色を表現する方法のことです。

VEXカラーホイールは、円周上の色の度合いを示しており、0度が赤で、値が増加するにつれて虹色に変化します。

Usage: optical_sensor.hue()

パラメータ

説明

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

# Look for the color pink using hue
while True:
  brain.screen.clear_screen()
  brain.screen.set_cursor(1, 1)

  if 300 < optical_sensor.hue() < 359:
    brain.screen.print("This is pink!")
  else:
    brain.screen.print("No pink detected!")

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

object_detected 光学センサーが新しい物体を検出するたびに呼び出される関数を登録します。

Usage:
optical_sensor.object_detected(callback, arg)

パラメータ

説明

callback

光学センサーが新しい物体を検出したときに実行される、事前に定義された関数。

arg

Optional. A tuple containing arguments to pass to the callback function. See Using Functions with Parameters for more information.

def my_function():
  brain.screen.print("Optical Sensor detected an object")

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

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

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

Usage:
optical_sensor.object_lost(callback, arg)

パラメータ

説明

callback

光学センサーが検出対象物を失ったときに実行される、事前に定義された関数。

arg

Optional. A tuple containing arguments to pass to the callback function. See Using Functions with Parameters for more information.

def my_function():
  brain.screen.print("Optical Sensor lost an object")

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

コンストラクタ#

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

Optical#

Optical 光センサーを作成します。

Usage:
Optical(smartport)

パラメータ

説明

smartport

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

# Create an Optical Sensor in Port 10
optical_sensor = Optical(Ports.PORT10)