眼睛#
介紹#
VEX GO 眼部感應器可偵測物體和顏色。它還可以報告反射回感測器的光量以及檢測到的顏色色調值。
眼部感應器隨附一個可開啟或關閉的指示燈,以幫助其更清晰地識別物體和顏色。眼部感測器還可以使用 NEAR (遠)或 FAR (遠)的探測範圍來偵測不同距離的物體。
根據不同的建造版本,眼部感測器可以放置在不同的位置。例如,Code Base 2.0 - Eye Forward 構建版本中的眼部感應器朝前。 Code Base 2.0 - Eye Down 建置版本、Code Base 2.0 - Eye + Electromagnet 建置版本以及 Super Code Base 2.0 建置版本中的眼部感應器則朝下。
在以下範例中,配置的眼感測器被命名為 eye範例中使用此名稱來呼叫 Eye 類別方法。
眼動追蹤感測器的編碼方式有很多種。以下列出了所有眼動追蹤方法:
變異器 — 調整眼部感應器設定。
set_light— 開啟或關閉眼睛感應器的燈。set_range— 設定眼動感應器可以偵測到物體的距離。set_light_power— 設定眼睛感應器的光功率等級。
獲取器 — 返回眼部感應器偵測到的內容。
get_color— 傳回眼睛感應器偵測到的顏色。get_hue— 返回眼睛感應器偵測到的色調。get_brightness— 傳回眼睛感應器偵測到的亮度。is_object_detected— 返回眼感應器是否偵測到範圍內的物體。is_color_detected— 返回眼睛感應器是否偵測到特定顏色。
變異體#
set_light#
set_light 開啟或關閉眼部感應器的燈。
用法:
eye.set_light(state)
參數 |
描述 |
|---|---|
|
眼睛感應器的指示燈狀態: |
# Build Used: Super Code Base 2.0
def main():
# Turn the light on and off
while True:
eye.set_light(ON)
wait(2, SECONDS)
eye.set_light(OFF)
wait(2, SECONDS)
# Start threads — Do not delete
start_thread(main)
set_range#
set_range 設定物體與眼部感應器之間的最大距離,超過該距離則無法被偵測到。
每個項目開始時,眼動感測器預設為 FAR 範圍。
用法:
eye.set_range(distance)
參數 |
描述 |
|---|---|
|
眼部感測器的物體偵測範圍。 0 近距離 |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Drive to an object with different ranges
eye.set_range(FAR)
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.2, SECONDS)
drivetrain.drive_for(REVERSE, 100, MM)
# Closer detection range
eye.set_range(NEAR)
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
set_light_power#
set_light_power 設定眼部感應器的燈光亮度。燈光可以幫助眼部感應器更清晰地偵測物體和顏色。
百分比越高,燈光越亮;百分比越低,燈光越暗。
如果眼部感應器的燈是關閉的,將燈光功率設定為 0% 以上即可開啟燈。
如果眼部感應器的指示燈亮著,將燈光功率設定為 0% 將關閉指示燈。
用法:
eye.set_light_power(value)
參數 |
描述 |
|---|---|
|
設定眼部感光元件燈光的亮度,範圍從 0% 到 100%。請使用整數。 |
# Build Used: Super Code Base 2.0
def main():
# Turn on the light at different brightnesses
eye.set_light_power(25)
wait(2, SECONDS)
eye.set_light_power(50)
wait(2, SECONDS)
eye.set_light_power(100)
# Start threads — Do not delete
start_thread(main)
獲取器#
get_color#
get_color 返回眼睛感應器偵測到的顏色。
此方法可以返回:
RED— 色調值介於 340° 至 20° 之間GREEN— 色調值介於 75° 至 154° 之間BLUE— 色調值介於 160° 至 254° 之間NONE— 未偵測到任何可用顏色。
用法:
eye.get_color()
參數 |
描述 |
|---|---|
此方法沒有參數。 |
# Build Used: Super Code Base 2.0
def main():
# Stop when red is detected
drivetrain.drive(FORWARD)
while True:
if eye.get_color() == RED:
break
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
get_hue#
get_hue 返回眼睛感應器偵測到的顏色,以 0 到 359.00 度之間的整數表示。
色相是用色輪上的數字來描述顏色的一種方法。

用法:
eye.get_hue()
參數 |
描述 |
|---|---|
此方法沒有參數。 |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Display the hue of a pink GO piece
while True:
console.clear()
if 10 < eye.get_hue() < 40:
console.print("Pink!")
wait(0.1,SECONDS)
else:
console.print("Not pink.")
wait(0.1,SECONDS)
# Start threads — Do not delete
start_thread(main)
get_brightness#
get_brightness 傳回偵測到的光的亮度,以 0% 到 100% 之間的整數表示。
百分比越高,表示反射回眼部感應器的光線越多;百分比越低,代表反射回的光線越少。
用法:
eye.get_brightness()
參數 |
描述 |
|---|---|
此方法沒有參數。 |
# Build Used: Super Code Base 2.0
def main():
# Monitor the brightness until red is detected
monitor_sensor("eye.get_brightness")
drivetrain.drive(FORWARD)
while not eye.get_color() == RED:
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
is_object_detected#
is_object_detected 回傳一個 Boolean,報告眼感測器是否偵測到範圍內的物體。
True— 眼部感應器偵測到物體。False— 眼部感應器未偵測到物體。
可以使用 set_range來更改檢測範圍。
用法:
eye.is_object_detected()
參數 |
描述 |
|---|---|
此方法沒有參數。 |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Drive forward until an object is detected
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.5, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
is_color_detected#
is_color_detected 回傳一個 Boolean,該值根據偵測到的色調值報告眼睛感測器是否偵測到指定的顏色。
True— 眼睛感應器偵測到所選顏色。False— 眼睛感應器未偵測到所選顏色。
當物體距離夠近且光線充足時,眼部感應器的工作效果最佳。
用法:
eye.is_color_detected(color)
參數 |
描述 |
|---|---|
|
The color for the Eye Sensor to check:
|
# Build Used: Super Code Base 2.0
def main():
# Drive forward until a green object is detected
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_color_detected(GREEN):
wait(0.5, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)