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

本頁面使用 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)
參數 |
描述 |
|---|---|
|
將物體偵測為 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)
參數 |
描述 |
|---|---|
|
先前定義的 函數,當物體感測器偵測到新物體時執行。 |
|
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)
參數 |
描述 |
|---|---|
|
先前定義的 函數,當物體感測器遺失偵測到的物體時執行。 |
|
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)
參數 |
描述 |
|---|---|
|
先前定義的 函數,當物件感測器的值改變時執行。 |
|
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)
範圍 |
描述 |
|---|---|
|
The 3-Wire Port that the Object Sensor is connected to:
|
|
Optional. Whether to reverse the detection logic:
|
# Create an Object Sensor in Port A
object_sensor = ObjectDetector(brain.three_wire_port.a)