Око#

Вступ#

Датчик ока 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.

Існує багато способів кодування датчика ока. Нижче наведено список усіх методів 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)