物體感測器#

介紹#

物體感測器是一種紅外線 (IR) 接近感測器,它利用反射的紅外光來偵測物體何時靠近。

VEX物體感測器。

本頁面使用 object_sensor 作為範例物件感測器名稱。請根據需要將其替換為您自己配置的名稱。

以下是可用方法清單:

  • reflectivity – 回傳一個 integer,表示物體反射的光量百分比。

  • is_object_detected – 傳回物件感測器是否偵測到物件。

  • set_threshold – 設定偵測到物體之前所需的反射光量。

  • object_detected – 註冊一個函數,當物體感測器偵測到新物體時,該函數將會被呼叫。

  • object_lost – 註冊一個函數,當物體感測器遺失偵測到的物體時,該函數將會被呼叫。

  • changed – 註冊一個函數,當物件感測器的值發生變化時,該函數將被呼叫。

建構函式 – 手動初始化物件感測器。

反射率#

reflectivity 回傳一個 integer,表示物體反射的光量百分比。

筆記:

  • 0%反射率意味著物體非常暗。

  • 100%反射率意味著物體非常明亮。

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

The 3-Wire Port that the Object Sensor is connected to:

  • On the V5 Brain – brain.three_wire_port.x where x is the number of the port.
  • On a 3-Wire Expander – expander.a where expander is the name of the expander instance.

reverse_det

Optional. Whether to reverse the detection logic:

  • True – When an object is lost, return that an object is detected, and when an object is detected, return that it is lost.
  • False (default) – When an object is lost, return that an object is lost, and when an object is detected, return that it is detected.

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