Szem#

Bevezetés#

A VEX 123 robot beépített szemérzékelővel rendelkezik, amely képes tárgyakat és színeket érzékelni. Azt is képes jelenteni, 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ó lámpával rendelkezik, amely segít tisztábban látni a tárgyakat és a színeket.

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_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_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.

  • is_bright — Visszaadja, hogy a Szemérzékelő érzékel-e fényes tárgyat.

Mutátorok#

set_light#

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

Usage:
robot.eye.set_light(state)

Paraméterek

Leírás

state

A szemérzékelő jelzőfényének állapota: OFF vagy ON.

# Continuously blink the light.
while True:
    robot.eye.set_light(ON)
    wait(2, SECONDS)
    robot.eye.set_light(OFF)
    wait(2, SECONDS)

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:
robot.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.

# Set the light to different power levels.
robot.eye.set_light_power(25)
wait(2, SECONDS)
robot.eye.set_light_power(50)
wait(2, SECONDS)
robot.eye.set_light_power(100)

Getterek#

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:
robot.eye.get_hue()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Display if an object is pink.
while True:
    console.clear()
    if 290 < robot.eye.get_hue() < 350:
        console.print("Pink!")
    else:
        console.print("Not pink!")
    wait(0.1, SECONDS)

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:
robot.eye.get_brightness()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Display whether a detected object is bright.
robot.eye.set_light_power(100)
robot.drive(FORWARD)
while not robot.eye.is_object_detected():
    wait(0.1, SECONDS)
wait(0.1, SECONDS)
if robot.eye.get_brightness() < 70:
    console.print("Object not bright.")
else:
    console.print("Bright object!")

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.

Usage:
robot.eye.is_object_detected()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Stop driving after detecting an object.
robot.eye.set_light(ON)
robot.drive(FORWARD)
wait(0.1, SECONDS)
while not robot.eye.is_object_detected():
    wait(0.1, SECONDS)
robot.stop()

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 közel van, és a megvilágítás tiszta.

Usage:
robot.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.

# Stop driving after detecting a green object.
robot.eye.set_light(ON)
robot.drive(FORWARD)
wait(0.1, SECONDS)
while not robot.eye.is_color_detected(GREEN):
    wait(0.1, SECONDS)
robot.stop()

is_bright#

is_bright egy Boolean értéket ad vissza, amely azt jelzi, hogy a Szemérzékelő által érzékelt objektum fényes-e.

Egy tárgy akkor tekinthető fényesnek, ha a fényerejének több mint 70%-át visszaveri a szemérzékelőre.

  • True — Az érzékelt objektum a fényerő több mint 70%-át visszaveri.

  • False — Az érzékelt objektum legfeljebb 70%-os fényerővel ver vissza.

Usage:
robot.eye.is_bright()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Display whether a detected object is bright.
robot.eye.set_light_power(100)
robot.drive(FORWARD)
while not robot.eye.is_object_detected():
    wait(0.1, SECONDS)
wait(0.1, SECONDS)
if robot.eye.is_bright():
    console.print("Bright object!")
else:
    console.print("Object not bright.")