ดวงตา#

การแนะนำ#

หุ่นยนต์ VEX 123 มีเซ็นเซอร์ตาในตัวที่สามารถตรวจจับวัตถุและสีได้ นอกจากนี้ยังสามารถรายงานปริมาณแสงที่สะท้อนกลับไปยังเซ็นเซอร์และค่าเฉดสีของสีที่ตรวจพบได้อีกด้วย

เซ็นเซอร์ตรวจจับดวงตามีไฟที่สามารถเปิดหรือปิดได้ เพื่อช่วยให้มองเห็นวัตถุและสีได้ชัดเจนยิ่งขึ้น

มีหลายวิธีในการเขียนโค้ดสำหรับเซ็นเซอร์ดวงตา ด้านล่างนี้คือรายการวิธีการเขียนโค้ดสำหรับเซ็นเซอร์ดวงตาทั้งหมด:

ตัวปรับแต่ง — ปรับการตั้งค่าเซ็นเซอร์ดวงตา

  • set_light — เปิดหรือปิดไฟของเซ็นเซอร์ตา

  • set_light_power — ตั้งค่าระดับพลังงานแสงของเซ็นเซอร์ตา

ตัวรับข้อมูล — ส่งคืนสิ่งที่เซ็นเซอร์ตรวจจับดวงตาตรวจพบ

  • get_hue — ส่งคืนค่าสีที่ตรวจพบโดยเซ็นเซอร์ตา

  • get_brightness — ส่งคืนค่าความสว่างที่ตรวจพบโดยเซ็นเซอร์ตา

  • is_object_detected — ส่งคืนว่าเซ็นเซอร์ตาตรวจพบวัตถุภายในระยะหรือไม่

  • is_color_detected — ส่งคืนว่าเซ็นเซอร์ตาตรวจพบสีเฉพาะหรือไม่

  • is_bright — ส่งคืนว่าเซ็นเซอร์ตาตรวจพบวัตถุสว่างหรือไม่

ตัวกลายพันธุ์#

set_light#

set_light จะเปิดหรือปิดไฟของเซ็นเซอร์ตา

Usage:
robot.eye.set_light(state)

พารามิเตอร์

คำอธิบาย

state

สถานะไฟแสดงสถานะของเซ็นเซอร์ดวงตา: OFF หรือ ON

# Continuously blink the light.
while True:
    robot.eye.set_light(ON)
    wait(2, SECONDS)
    robot.eye.set_light(OFF)
    wait(2, SECONDS)

set_light_power#

set_light_power ตั้งค่าความสว่างของแสงจากเซ็นเซอร์ตา แสงนี้ช่วยให้เซ็นเซอร์ตาตรวจจับวัตถุและสีได้ชัดเจนยิ่งขึ้น

เปอร์เซ็นต์ที่สูงขึ้นจะทำให้แสงสว่างมากขึ้น เปอร์เซ็นต์ที่ต่ำลงจะทำให้แสงสว่างน้อยลง

หากไฟแสดงสถานะของเซ็นเซอร์ตรวจจับดวงตาดับอยู่ การปรับกำลังไฟให้สูงกว่า 0% จะทำให้ไฟแสดงสถานะติดขึ้น

หากไฟแสดงสถานะของเซ็นเซอร์ตรวจจับดวงตาติดอยู่ การตั้งค่ากำลังไฟเป็น 0% จะทำให้ไฟแสดงสถานะดับลง

Usage:
robot.eye.set_light_power(value)

พารามิเตอร์

คำอธิบาย

value

ตั้งค่าความสว่างของแสงเซ็นเซอร์ดวงตาได้ตั้งแต่ 0% ถึง 100% ใช้ตัวเลขจำนวนเต็ม

# Set the light to different power levels.
robot.eye.set_light_power(25)
wait(2, SECONDS)
robot.eye.set_light_power(50)
wait(2, SECONDS)
robot.eye.set_light_power(100)

ผู้รับ#

get_hue#

get_hue จะส่งคืนค่าสีที่ตรวจจับได้โดยเซ็นเซอร์ตาเป็นจำนวนเต็มตั้งแต่ 0 ถึง 359.00 องศา

เฉดสี คือวิธีการอธิบายสีโดยใช้ตัวเลขรอบวงล้อสี

วงล้อสีวงกลมที่แสดงเฉดสีครบทุกเฉดพร้อมระบุค่าองศาไว้รอบขอบ โดยเพิ่มขึ้นทีละ 30 องศาจาก 0° ที่ด้านบนถึง 360°

Usage:
robot.eye.get_hue()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

# Display if an object is pink.
while True:
    console.clear()
    if 290 < robot.eye.get_hue() < 350:
        console.print("Pink!")
    else:
        console.print("Not pink!")
    wait(0.1, SECONDS)

get_brightness#

get_brightness จะส่งคืนค่าความสว่างของแสงที่ตรวจพบเป็นจำนวนเต็มตั้งแต่ 0% ถึง 100%

เปอร์เซ็นต์ที่สูงขึ้นหมายความว่ามีแสงสะท้อนกลับไปยังเซ็นเซอร์ตรวจจับดวงตามากขึ้น เปอร์เซ็นต์ที่ต่ำลงหมายความว่ามีแสงสะท้อนกลับน้อยลง

Usage:
robot.eye.get_brightness()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

# Display whether a detected object is bright.
robot.eye.set_light_power(100)
robot.drive(FORWARD)
while not robot.eye.is_object_detected():
    wait(0.1, SECONDS)
wait(0.1, SECONDS)
if robot.eye.get_brightness() < 70:
    console.print("Object not bright.")
else:
    console.print("Bright object!")

is_object_detected#

is_object_detected ส่งคืน Boolean ที่รายงานว่าเซ็นเซอร์ตาตรวจพบวัตถุภายในระยะหรือไม่

  • True — เซ็นเซอร์ตาตรวจจับวัตถุได้

  • False — เซ็นเซอร์ตาไม่ตรวจพบวัตถุ

Usage:
robot.eye.is_object_detected()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

# Stop driving after detecting an object.
robot.eye.set_light(ON)
robot.drive(FORWARD)
wait(0.1, SECONDS)
while not robot.eye.is_object_detected():
    wait(0.1, SECONDS)
robot.stop()

is_color_detected#

is_color_detected ส่งคืน Boolean ที่รายงานว่าเซ็นเซอร์ตาตรวจพบสีที่ระบุหรือไม่ โดยอิงจากค่าเฉดสีที่ตรวจพบ

  • True — เซ็นเซอร์ตาตรวจจับสีที่เลือกไว้

  • False — เซ็นเซอร์ตาไม่ตรวจพบสีที่เลือก

เซ็นเซอร์ตรวจจับดวงตาทำงานได้ดีที่สุดเมื่อวัตถุอยู่ใกล้และแสงสว่างเพียงพอ

Usage:
robot.eye.is_color_detected(color)

พารามิเตอร์

คำอธิบาย

color

สีที่เซ็นเซอร์ดวงตาต้องตรวจสอบ:

  • BLUE – ค่าเฉดสีระหว่าง 160° ถึง 254°
  • GREEN – ค่าเฉดสีระหว่าง 75° ถึง 154°
  • NONE
  • RED – ค่าเฉดสีระหว่าง 340° ถึง 20°

# Stop driving after detecting a green object.
robot.eye.set_light(ON)
robot.drive(FORWARD)
wait(0.1, SECONDS)
while not robot.eye.is_color_detected(GREEN):
    wait(0.1, SECONDS)
robot.stop()

is_bright#

is_bright ส่งคืนค่า Boolean ที่รายงานว่าวัตถุที่ตรวจพบโดยเซ็นเซอร์ตาสว่างหรือไม่

วัตถุจะถือว่าสว่างเมื่อสะท้อนความสว่างกลับไปยังเซ็นเซอร์ตรวจจับดวงตามากกว่า 70%

  • True — วัตถุที่ตรวจพบสะท้อนความสว่างมากกว่า 70%

  • False — วัตถุที่ตรวจพบสะท้อนความสว่าง 70% หรือน้อยกว่า

Usage:
robot.eye.is_bright()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

# Display whether a detected object is bright.
robot.eye.set_light_power(100)
robot.drive(FORWARD)
while not robot.eye.is_object_detected():
    wait(0.1, SECONDS)
wait(0.1, SECONDS)
if robot.eye.is_bright():
    console.print("Bright object!")
else:
    console.print("Object not bright.")