Oko#

Zavedení#

Oční senzor VEX GO dokáže detekovat objekty a barvy. Může také hlásit, kolik světla se odráží zpět k senzoru a hodnotu odstínu detekované barvy.

Oční senzor má světlo, které lze zapnout nebo vypnout, aby lépe viděl objekty a barvy. Oční senzor může také použít rozsah NEAR nebo FAR k detekci objektů v různých vzdálenostech.

Snímač oka lze umístit do různých poloh v závislosti na sestavení. Například sestavení Code Base 2.0 - Eye Forward má snímač oka směřující dopředu. Sestavení Code Base 2.0 - Eye Down, Code Base 2.0 - Eye + Electromagnet a Super Code Base 2.0 mají snímač oka směřující dolů.

V níže uvedených příkladech je nakonfigurovaný senzor oka pojmenován eye. Tento název se v příkladech používá k volání metod třídy Eye.

Existuje mnoho způsobů, jak kódovat senzor oka. Níže je uveden seznam všech metod pro práci s okem:

Mutátory – Upravte nastavení očního senzoru.

  • set_light — Zapne nebo vypne světlo očního senzoru.

  • set_range — Nastaví, jak daleko dokáže oční senzor detekovat objekt.

  • set_light_power — Nastaví úroveň osvětlení očního senzoru.

Gettery – Vrací hodnotu detekovanou senzorem oka.

Mutátory#

set_light#

set_light zapíná nebo vypíná světlo očního senzoru.

Usage:
eye.set_light(state)

Parametry

Popis

state

Stav světla očního senzoru: ON nebo 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 nastavuje, jak daleko může být objekt od očního senzoru, než jej lze detekovat.

Každý projekt začíná s výchozím nastavením senzoru oka na FAR.

Usage:
eye.set_range(distance)

Parametry

Popis

distance

Dosah detekce objektů senzorem oka. NEAR detekuje objekty až do vzdálenosti 18 milimetrů, zatímco FAR detekuje objekty až do vzdálenosti 40 milimetrů.

# 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 nastavuje jas světla očního senzoru. Světlo může pomoci očnímu senzoru jasněji detekovat objekty a barvy.

Vyšší procento světlo zesílí. Nižší procento světlo ztlumí.

Pokud je světlo očního senzoru vypnuté, nastavení výkonu světla nad 0 % světlo zapne.

Pokud je světlo očního senzoru zapnuté, nastavení výkonu světla na 0 % světlo vypne.

Usage:
eye.set_light_power(value)

Parametry

Popis

value

Jas, na který se má nastavit světlo očního senzoru, od 0 % do 100 %. Používejte celá čísla.

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

Gettery#

get_color#

get_color vrací barvu detekovanou senzorem oka.

Tato metoda může vrátit:

  • RED — Hodnota odstínu mezi 340° a 20°

  • GREEN — Hodnota odstínu mezi 75° a 154°

  • BLUE — Hodnota odstínu mezi 160° a 254°

  • NONE — Nebyla detekována žádná z dostupných barev.

Usage:
eye.get_color()

Parametry

Popis

Tato metoda nemá žádné parametry.

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

Funkce get_hue vrací barvu detekovanou senzorem oka jako celé číslo od 0 do 359,00 stupňů.

Odstín je způsob, jak popsat barvu pomocí čísel v barevném kruhu.

Kruhové barevné kolo zobrazující celé spektrum odstínů označených stupni po obvodu, které se zvyšují v krocích po 30 stupních od 0° nahoře do 360°.

Usage:
eye.get_hue()

Parametry

Popis

Tato metoda nemá žádné parametry.

# 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 vrací jas detekovaného světla jako celé číslo od 0 % do 100 %.

Vyšší procento znamená, že se zpět k očnímu senzoru odráží více světla. Nižší procento znamená, že se zpět odráží méně světla.

Usage:
eye.get_brightness()

Parametry

Popis

Tato metoda nemá žádné parametry.

# 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 vrací hodnotu typu Boolean, která hlásí, zda senzor oka detekuje objekt v dosahu.

  • True — Snímač oka detekuje objekt.

  • False — Snímač oka nedetekuje objekt.

Rozsah detekce lze změnit pomocí set_range.

Usage:
eye.is_object_detected()

Parametry

Popis

Tato metoda nemá žádné parametry.

# 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 vrací hodnotu typu Boolean, která hlásí, zda senzor oka detekuje zadanou barvu na základě detekované hodnoty odstínu.

  • True — Snímač oka detekuje vybranou barvu.

  • False — Snímač oka nedetekuje vybranou barvu.

Snímač oka funguje nejlépe, když je objekt dostatečně blízko k detekci a osvětlení je jasné.

Usage:
eye.is_color_detected(color)

Parametry

Popis

color

Barva, kterou má oční senzor kontrolovat:

  • BLUE – Hodnota odstínu mezi 160° a 254°.
  • GREEN – Hodnota odstínu mezi 75° a 154°.
  • NONE
  • RED – Hodnota odstínu mezi 340° a 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)