光學感測器#
介紹#
V5 光學感測器結合了 RGB 色彩感測器和接近感測器,能夠偵測附近物體的顏色、亮度和是否存在。它還可以利用內建 LED 燈照亮物體,從而實現更精確的檢測。

本頁面使用 optical_sensor 作為範例光纖感測器名稱。請根據需要將其替換為您自己配置的名稱。
以下是可用方法清單:
set_light– 開啟或關閉光學感測器的 LED。set_light_power– 設定光學感測器的光功率等級。is_near_object– 返迴光學感測器是否偵測到範圍內的物體。color– 返迴光學感測器偵測到的顏色。brightness– 傳回物體反射的光量。hue– 返迴光學感測器偵測到的色調。object_detected– 註冊一個當光學感測器偵測到物體時要呼叫的函數。object_lost– 註冊一個當光學感測器遺失物體時要呼叫的函數。
建構函式 - 手動初始化光學感測器。
Optical– 建立光學感測器。
設定燈光#
set_light 用於開啟或關閉光學感測器的 LED。這有助於提高感測器檢測顏色的精度。
Usage:
optical_sensor.set_light(state)
參數 |
描述 |
|---|---|
狀態 |
Sets the LED on or 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 亮度設定為整數。 |
單位 |
可選。亮度單位: |
# Turn on the sensor's light at half brightness
optical_sensor.set_light_power(50, PERCENT)
靠近對象#
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.BLACKColor.WHITEColor.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) 表示。
色相是用色輪上的數字來描述顏色的一種方法。

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)
參數 |
描述 |
|---|---|
|
先前定義的 函數,當光學感測器偵測到新物體時執行。 |
|
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)
參數 |
描述 |
|---|---|
|
先前定義的 函數,當光學感測器遺失偵測到的物件時執行。 |
|
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)
建構函數#
建構函式用於手動建立 Optical 對象,這是在 VEXcode 之外配置光學感測器所必需的。
Optical#
Optical 創建一個光學感測器。
Usage:
Optical(smartport)
範圍 |
描述 |
|---|---|
|
光感測器所連接的智慧型端口,記為 |
# Create an Optical Sensor in Port 10
optical_sensor = Optical(Ports.PORT10)