Mắt#

Giới thiệu#

Cảm biến mắt VEX GO có thể phát hiện vật thể và màu sắc. Nó cũng có thể báo cáo lượng ánh sáng phản xạ trở lại cảm biến và giá trị sắc độ của màu sắc được phát hiện.

Cảm biến mắt có đèn có thể bật hoặc tắt để giúp nó nhìn rõ hơn các vật thể và màu sắc. Cảm biến mắt cũng có thể sử dụng phạm vi NEAR hoặc FAR để phát hiện các vật thể ở các khoảng cách khác nhau.

Cảm biến mắt có thể được đặt ở các vị trí khác nhau tùy thuộc vào cấu hình. Ví dụ, cấu hình Code Base 2.0 - Eye Forward có cảm biến mắt hướng về phía trước. Các cấu hình Code Base 2.0 - Eye Down, Code Base 2.0 - Eye + Electromagnet và Super Code Base 2.0 có cảm biến mắt hướng xuống dưới.

Đối với các ví dụ bên dưới, Cảm biến Mắt được cấu hình có tên là eye. Tên này được sử dụng trong các ví dụ để gọi các phương thức của lớp Eye.

Có nhiều cách để lập trình cảm biến mắt. Dưới đây là danh sách tất cả các phương pháp lập trình cảm biến mắt:

Bộ điều chỉnh — Điều chỉnh cài đặt cảm biến mắt.

  • set_light — Bật hoặc tắt đèn của Cảm biến mắt.

  • set_range — Đặt phạm vi tối đa mà Cảm biến Mắt có thể phát hiện vật thể.

  • set_light_power — Đặt mức công suất ánh sáng của Cảm biến Mắt.

Getters — Trả về những gì Cảm biến Mắt phát hiện.

  • get_color — Trả về màu được phát hiện bởi Cảm biến Mắt.

  • get_hue — Trả về màu sắc được phát hiện bởi Cảm biến Mắt.

  • get_brightness — Trả về độ sáng được phát hiện bởi Cảm biến Mắt.

  • is_object_detected — Trả về liệu Cảm biến Mắt có phát hiện vật thể trong phạm vi hay không.

  • is_color_detected — Trả về liệu Cảm biến mắt có phát hiện một màu cụ thể hay không.

Biến đổi#

set_light#

set_light bật hoặc tắt đèn của cảm biến mắt.

Usage:
eye.set_light(state)

Thông số

Sự miêu tả

state

Trạng thái ánh sáng của cảm biến mắt: ON hoặc 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 thiết lập khoảng cách tối đa mà một vật thể có thể cách xa Cảm biến Mắt trước khi nó có thể được phát hiện.

Mọi dự án đều bắt đầu với cài đặt mặc định của Cảm biến Mắt ở phạm vi FAR.

Usage:
eye.set_range(distance)

Thông số

Sự miêu tả

distance

Phạm vi phát hiện vật thể của cảm biến mắt. NEAR phát hiện vật thể ở khoảng cách lên đến 18 mm, trong khi FAR phát hiện vật thể ở khoảng cách lên đến 40 mm.

# 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 thiết lập độ sáng của đèn cảm biến mắt. Ánh sáng có thể giúp cảm biến mắt phát hiện vật thể và màu sắc rõ ràng hơn.

Tỷ lệ phần trăm càng cao thì ánh sáng càng sáng. Tỷ lệ phần trăm càng thấp thì ánh sáng càng mờ.

Nếu đèn của cảm biến mắt đang tắt, việc đặt công suất đèn trên 0% sẽ bật đèn lên.

Nếu đèn của cảm biến mắt đang sáng, việc đặt công suất đèn về 0% sẽ tắt đèn.

Usage:
eye.set_light_power(value)

Thông số

Sự miêu tả

value

Điều chỉnh độ sáng của đèn cảm biến mắt, từ 0% đến 100%. Sử dụng số nguyên.

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

Người nhận#

get_color#

get_color trả về màu sắc được phát hiện bởi Cảm biến Mắt.

Phương thức này có thể trả về:

  • RED — Giá trị màu sắc nằm giữa 340° - 20°

  • GREEN — Giá trị màu sắc nằm trong khoảng 75° - 154°

  • BLUE — Giá trị màu sắc nằm trong khoảng 160° - 254°

  • NONE — Không phát hiện thấy màu nào trong số các màu có sẵn.

Usage:
eye.get_color()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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 trả về màu sắc được cảm biến mắt phát hiện dưới dạng số nguyên từ 0 đến 359,00 độ.

Sắc độ là một cách để mô tả màu sắc bằng các con số xung quanh vòng tròn màu.

Một vòng tròn màu hiển thị toàn bộ quang phổ màu được dán nhãn bằng các giá trị độ xung quanh chu vi, tăng dần theo từng bước 30 độ từ 0° ở trên cùng đến 360°.

Usage:
eye.get_hue()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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 trả về độ sáng của ánh sáng được phát hiện, dưới dạng số nguyên từ 0% đến 100%.

Tỷ lệ phần trăm càng cao nghĩa là càng nhiều ánh sáng được phản xạ trở lại cảm biến mắt. Tỷ lệ phần trăm càng thấp nghĩa là càng ít ánh sáng được phản xạ trở lại.

Usage:
eye.get_brightness()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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 trả về một Boolean cho biết liệu Cảm biến Mắt có phát hiện vật thể trong phạm vi hay không.

  • True — Cảm biến mắt phát hiện vật thể.

  • False — Cảm biến mắt không phát hiện vật thể.

Phạm vi phát hiện có thể được thay đổi bằng cách sử dụng lệnh set_range.

Usage:
eye.is_object_detected()

Thông số

Sự miêu tả

Phương pháp này không có tham số.

# 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 trả về một Boolean báo cáo liệu Cảm biến Mắt có phát hiện màu được chỉ định hay không, dựa trên giá trị sắc độ được phát hiện.

  • True — Cảm biến mắt phát hiện màu đã chọn.

  • False — Cảm biến mắt không phát hiện màu đã chọn.

Cảm biến mắt hoạt động tốt nhất khi vật thể đủ gần để phát hiện và ánh sáng rõ.

Usage:
eye.is_color_detected(color)

Thông số

Sự miêu tả

color

Màu sắc mà cảm biến mắt cần kiểm tra:

  • BLUE – Giá trị sắc độ từ 160° đến 254°.
  • GREEN – Giá trị sắc độ từ 75° đến 154°.
  • NONE
  • RED – Giá trị sắc độ từ 340° đến 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)