Szem#

Bevezetés#

A VEX GO szemérzékelő képes tárgyak és színek érzékelésére. Azt is jelenti, hogy mennyi fény verődik vissza az érzékelőre, és milyen árnyalatú a detektált szín.

A Szemérzékelő egy be- és kikapcsolható jelzőfénnyel rendelkezik, amely segít tisztábban látni a tárgyakat és a színeket. A Szemérzékelő a NEAR vagy FAR tartományt is használhatja a különböző távolságokban lévő tárgyak érzékeléséhez.

A szemérzékelő a felépítéstől függően különböző pozíciókba helyezhető. Például a Code Base 2.0 - Szem előre felépítésnél a szemérzékelő előre néz. A Code Base 2.0 - Szem lefelé, a Code Base 2.0 - Szem + Elektromágnes és a Super Code Base 2.0 felépítéseknél a szemérzékelő lefelé néz.

Az alábbi példákban a konfigurált Eye Sensor neve eyeEzt a nevet használjuk a példákban Eye osztálymetódusok meghívására.

A Szemérzékelő kódolásának számos módja van. Az alábbiakban felsoroljuk az összes Szem-módszert:

Mutátorok – Szemérzékelő beállításainak módosítása.

  • set_light — Be- vagy kikapcsolja a Szemérzékelő világítását.

  • set_range — Beállítja, hogy a szemérzékelő milyen messziről érzékeljen egy tárgyat.

  • set_light_power — Beállítja a szemérzékelő fényerősségi szintjét.

Getterek – Visszaadja a szemérzékelő által érzékelt értékeket.

  • get_color — Visszaadja a Szemérzékelő által érzékelt színt.

  • get_hue — Visszaadja a szemérzékelő által érzékelt színárnyalatot.

  • get_brightness — Visszaadja a szemérzékelő által érzékelt fényerőt.

  • is_object_detected — Visszaadja, hogy a Szemérzékelő érzékel-e tárgyat a hatótávolságon belül.

  • is_color_detected — Visszaadja, hogy a Szemérzékelő érzékel-e egy adott színt.

Mutátorok#

set_light#

set_light be- vagy kikapcsolja a Szemérzékelő világítását.

Usage:
eye.set_light(state)

Paraméterek

Leírás

state

A szemérzékelő jelzőfényének állapota: ON vagy 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 beállítja, hogy milyen messze lehet egy tárgy a szemérzékelőtől, mielőtt a rendszer érzékelné.

Minden projekt úgy kezdődik, hogy a Szemérzékelő alapértelmezés szerint FAR tartományra van állítva.

Usage:
eye.set_range(distance)

Paraméterek

Leírás

distance

A szemérzékelő tárgyérzékelési tartománya. NEAR legfeljebb 18 milliméter távolságra lévő tárgyakat érzékel, míg FAR legfeljebb 40 milliméter távolságra lévő tárgyakat érzékel.

# 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 Beállítja a Szemérzékelő fényének erősségét. A fény segíthet a Szemérzékelőnek a tárgyak és a színek tisztább érzékelésében.

A magasabb százalékos érték fényesebbé, az alacsonyabb százalékos érték pedig halványabbá teszi a fényt.

Ha a Szemérzékelő lámpája ki van kapcsolva, a fényerő 0% fölé állítása bekapcsolja a lámpát.

Ha a Szemérzékelő lámpája világít, a fényerő 0%-ra állítása kikapcsolja a lámpát.

Usage:
eye.set_light_power(value)

Paraméterek

Leírás

value

A Szemérzékelő fényerejének beállítása 0%-tól 100%-ig. Egész számokat adjon meg.

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

Getterek#

get_color#

get_color visszaadja a Szemérzékelő által érzékelt színt.

Ez a metódus a következőt adhatja vissza:

  • RED — Színárnyalatérték 340° és 20° között

  • GREEN — 75° és 154° közötti színárnyalatérték

  • BLUE — 160° és 254° közötti színárnyalatérték

  • NONE — Egyik elérhető szín sem érzékelhető.

Usage:
eye.get_color()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Az Eye Sensor által érzékelt színt egész számként adja vissza 0 és 359,00 fok között.

A színárnyalat a színek leírásának egy módja, számok segítségével, egy színkör körül.

Kör alakú színkör, amely a színárnyalatok teljes spektrumát jeleníti meg, a kerület mentén fokszámokkal jelölve, 30 fokos lépésekben növekvő 0°-tól 360°-ig.

Usage:
eye.get_hue()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Visszaadja a detektált fény fényességét, egész számként 0%-tól 100%-ig.

A magasabb százalékos érték azt jelenti, hogy több fény verődik vissza a szemérzékelőre. Az alacsonyabb százalékos érték azt jelenti, hogy kevesebb fény verődik vissza.

Usage:
eye.get_brightness()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Egy Boolean értéket ad vissza, amely jelzi, hogy a Szemérzékelő érzékel-e tárgyat a hatótávolságon belül.

  • True — A szemérzékelő tárgyat érzékel.

  • False — A szemérzékelő nem érzékel tárgyat.

Az érzékelési tartomány set_range paraméterrel módosítható.

Usage:
eye.is_object_detected()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Egy Boolean értéket ad vissza, amely jelzi, hogy a Szemérzékelő érzékeli-e a megadott színt a detektált színárnyalat értéke alapján.

  • True — A szemérzékelő érzékeli a kiválasztott színt.

  • False — A szemérzékelő nem érzékeli a kiválasztott színt.

A Szemérzékelő akkor működik a legjobban, ha a tárgy elég közel van az érzékeléshez, és a fény tiszta.

Usage:
eye.is_color_detected(color)

Paraméterek

Leírás

color

A szemérzékelő által ellenőrizendő szín:

  • BLUE – Színárnyalatérték 160° és 254° között.
  • GREEN – Színárnyalatérték 75° és 154° között.
  • NONE
  • RED – Színárnyalatérték 340° és 20° között.

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