ดวงตา#

การแนะนำ#

เซ็นเซอร์ 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)

พารามิเตอร์

คำอธิบาย

state

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

# 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)

พารามิเตอร์

คำอธิบาย

distance

เซ็นเซอร์ตา มีระยะการตรวจจับวัตถุ โหมด NEAR ตรวจจับวัตถุได้ไกลถึง 18 มิลลิเมตร ในขณะที่โหมด FAR ตรวจจับวัตถุได้ไกลถึง 40 มิลลิเมตร

# 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)

พารามิเตอร์

คำอธิบาย

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 องศา

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

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

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)

พารามิเตอร์

คำอธิบาย

color

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

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

# 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)