Oko#

Wstęp#

Czujnik VEX GO Eye Sensor potrafi wykrywać obiekty i kolory. Potrafi również raportować, ile światła odbija się z powrotem do czujnika oraz wartość odcienia wykrytego koloru.

Czujnik oka posiada światło, które można włączać i wyłączać, aby wyraźniej widzieć obiekty i kolory. Czujnik oka może również wykorzystywać zakres NEAR lub FAR do wykrywania obiektów w różnych odległościach.

Czujnik oka można umieścić w różnych pozycjach, w zależności od konfiguracji. Na przykład w konfiguracji Code Base 2.0 – Eye Forward czujnik oka jest skierowany do przodu. W konfiguracjach Code Base 2.0 – Eye Down, Code Base 2.0 – Eye + Electromagnet i Super Code Base 2.0 czujnik oka jest skierowany w dół.

W poniższych przykładach skonfigurowany czujnik oka nosi nazwę eyeNazwa ta jest używana w przykładach do wywołania metod klasy Eye.

Istnieje wiele sposobów kodowania czujnika oka. Poniżej znajduje się lista wszystkich metod dotyczących oka:

Mutatory — Dostosuj ustawienia czujnika oka.

  • set_light — Włącza lub wyłącza światło czujnika oka.

  • set_range — Ustawia odległość, w jakiej czujnik oka może wykryć obiekt.

  • set_light_power — Ustawia poziom mocy światła czujnika oka.

Gettery — zwracają informacje wykryte przez czujnik oka.

  • get_color — Zwraca kolor wykryty przez czujnik oka.

  • get_hue — Zwraca odcień wykryty przez czujnik oka.

  • get_brightness — Zwraca jasność wykrytą przez czujnik oka.

  • is_object_detected — Zwraca informację, czy czujnik oka wykrył obiekt w zasięgu.

  • is_color_detected — Zwraca informację, czy czujnik oka wykrył określony kolor.

Mutatory#

set_light#

set_light włącza lub wyłącza światło czujnika oka.

Usage:
eye.set_light(state)

Parametry

Opis

state

Stan światła czujnika oka: ON lub 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 ustawia odległość, w jakiej obiekt może znajdować się od czujnika oka, aby mógł zostać wykryty.

Każdy projekt rozpoczyna się od ustawienia czujnika oka domyślnie na zakres FAR.

Usage:
eye.set_range(distance)

Parametry

Opis

distance

Zasięg wykrywania obiektów przez czujnik oka. NEAR wykrywa obiekty oddalone do 18 milimetrów, natomiast FAR wykrywa obiekty oddalone do 40 milimetrów.

# 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 ustawia jasność światła czujnika oka. Światło może pomóc czujnikowi oka wyraźniej wykrywać obiekty i kolory.

Wyższy procent sprawia, że ​​światło jest jaśniejsze. Niższy procent sprawia, że ​​światło jest ciemniejsze.

Jeśli światło czujnika oka jest wyłączone, ustawienie mocy światła powyżej 0% spowoduje jego włączenie.

Jeśli światło czujnika oka jest włączone, ustawienie mocy światła na 0% spowoduje wyłączenie światła.

Usage:
eye.set_light_power(value)

Parametry

Opis

value

Ustaw jasność oświetlenia czujnika oka w zakresie od 0% do 100%. Użyj liczb całkowitych.

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

Getters#

get_color#

get_color zwraca kolor wykryty przez czujnik oka.

Ta metoda może zwrócić:

  • RED — wartość odcienia pomiędzy 340° - 20°

  • GREEN — wartość odcienia pomiędzy 75° - 154°

  • BLUE — wartość odcienia pomiędzy 160° - 254°

  • NONE — Nie wykryto żadnego z dostępnych kolorów.

Usage:
eye.get_color()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# 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 zwraca kolor wykryty przez czujnik oka jako liczbę całkowitą z zakresu od 0 do 359,00 stopni.

Odcień to sposób opisywania koloru za pomocą liczb znajdujących się na kole barw.

Koło barw wyświetlające pełne spektrum odcieni oznaczonych wartościami stopni na obwodzie, zwiększającymi się co 30 stopni od 0° u góry do 360°.

Usage:
eye.get_hue()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# 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 zwraca jasność wykrytego światła jako liczbę całkowitą od 0% do 100%.

Wyższy procent oznacza, że ​​więcej światła odbija się z powrotem do czujnika oka. Niższy procent oznacza, że ​​mniej światła odbija się z powrotem.

Usage:
eye.get_brightness()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# 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 zwraca Boolean informujący, czy czujnik oka wykrył obiekt w zasięgu.

  • True — Czujnik oka wykrył obiekt.

  • False — Czujnik oka nie wykrył obiektu.

Zasięg wykrywania można zmienić za pomocą polecenia set_range.

Usage:
eye.is_object_detected()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# 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 zwraca Boolean informujący, czy czujnik oka wykrył określony kolor na podstawie wykrytej wartości odcienia.

  • True — Czujnik oka wykrywa wybrany kolor.

  • False — Czujnik oka nie wykrył wybranego koloru.

Czujnik oka działa najlepiej, gdy obiekt jest wystarczająco blisko, aby go wykryć, a oświetlenie jest wyraźne.

Usage:
eye.is_color_detected(color)

Parametry

Opis

color

Kolor do sprawdzenia przez czujnik oka:

  • BLUE – Wartość odcienia od 160° do 254°.
  • GREEN – Wartość odcienia od 75° do 154°.
  • NONE
  • RED – Wartość odcienia od 340° do 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)