ดวงตา#
การแนะนำ#
เซ็นเซอร์ VEX GO Eye สามารถตรวจจับวัตถุและสีได้ นอกจากนี้ยังสามารถรายงานปริมาณแสงที่สะท้อนกลับมายังเซ็นเซอร์และค่าเฉดสีของสีที่ตรวจพบได้อีกด้วย
เซ็นเซอร์ดวงตามีไฟที่สามารถเปิดหรือปิดได้เพื่อช่วยให้มองเห็นวัตถุและสีได้ชัดเจนยิ่งขึ้น นอกจากนี้ เซ็นเซอร์ดวงตายังสามารถใช้ช่วงระยะ 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 จะเปิดหรือปิดไฟของเซ็นเซอร์ตา
Usage:
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 โดยค่าเริ่มต้น
Usage:
eye.set_range(distance)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
เซ็นเซอร์ตา มีระยะการตรวจจับวัตถุ โหมด |
# 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% จะทำให้ไฟแสดงสถานะดับลง
Usage:
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— ไม่พบสีใดๆ ที่มีให้เลือก
Usage:
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 องศา
เฉดสี คือวิธีการอธิบายสีโดยใช้ตัวเลขรอบวงล้อสี

Usage:
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%
เปอร์เซ็นต์ที่สูงขึ้นหมายความว่ามีแสงสะท้อนกลับไปยังเซ็นเซอร์ตรวจจับดวงตามากขึ้น เปอร์เซ็นต์ที่ต่ำลงหมายความว่ามีแสงสะท้อนกลับน้อยลง
Usage:
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
Usage:
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— เซ็นเซอร์ตาไม่ตรวจพบสีที่เลือก
เซ็นเซอร์ตรวจจับดวงตาทำงานได้ดีที่สุดเมื่อวัตถุอยู่ใกล้พอที่จะตรวจจับได้ และแสงสว่างเพียงพอ
Usage:
eye.is_color_detected(color)
พารามิเตอร์ |
คำอธิบาย |
|---|---|
|
สีที่เซ็นเซอร์ดวงตาต้องตรวจสอบ:
|
# 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)