Optikai#

Bevezetés#

Az optikai érzékelő egy fényalapú érzékelő, amely visszavert fényt használ tárgyak érzékelésére, színek azonosítására, valamint a fényerő és a színárnyalat mérésére.

A szenzor belső fényének fényerejét is beállíthatod. Ezek az eszközök ideálisak olyan programokhoz, amelyeknek valós időben kell reagálniuk színes tárgyakra, fényviszonyokra vagy szenzor-visszajelzésekre.

Ez az oldal optical_1 értéket használja példaként az optikai érzékelő nevére. Szükség szerint cserélje ki a saját konfigurált névre.

Az alábbiakban felsoroljuk az összes módszert:

Műveletek – Optikai érzékelő LED-jének be- vagy kikapcsolása.

  • set_light — Beállítja a LED be- vagy kikapcsolt állapotát.

Mutátorok – A LED fényerejének és az objektumészlelési beállítások módosítása.

Getterek – Objektum jelenlétének, színének, fényerejének, árnyalatának, RGB-jének és az érzékelő állapotának kiolvasása.

  • is_near_object — Visszaadja, hogy a detektált tárgy az optikai érzékelő közelében van-e.

  • color — Visszaadja a legközelebbi észlelt színegyezést.

  • brightness — Visszaadja az érzékelt objektum fényerejét.

  • hue — Visszaadja az észlelt objektum színárnyalatát.

  • rgb — Visszaadja az optikai érzékelő által érzékelt RGB-értékeket.

  • installed — Visszaadja, hogy van-e optikai érzékelő csatlakoztatva az agyhoz.

Visszahívás – Kód futtatása objektum észlelésekor vagy elveszésekor.

  • object_detected — Regisztrál egy függvényt, amely meghívódik, amikor egy objektumot észlel.

  • object_lost — Regisztrál egy függvényt, amely meghívódik, amikor egy objektum elveszik.

Konstruktorok – Optikai érzékelő manuális inicializálása és konfigurálása.

  • Optical — Optikai érzékelőt hoz létre.

Műveletek#

set_light#

set_light Be-, kikapcsolja vagy egy beállított fényerőszintre állítja az optikai érzékelő LED-jét.

Usage:
optical_1.set_light(state)

Paraméterek

Leírás

state

A fényerő vagy a teljesítmény százalékos értékének beállítási állapota 0 és 100 tartományban. Az állapot a következők egyike lehet:

  • LedStateType.OFF (0 százalék)
  • LedStateType.ON (100 százalék)
  • integer — Egy 0 és 100 közötti egész számként megadott fényerőérték.
# Turn the LED on and off forever
while True:
    optical_1.set_light(LedStateType.ON)
    wait(0.5, SECONDS)
    optical_1.set_light(LedStateType.OFF)
    wait(0.5, SECONDS)

# Turn the LED on and off forever
while True:
    optical_1.set_light(100)
    wait(0.5, SECONDS)
    optical_1.set_light(0)
    wait(0.5, SECONDS)

Mutátorok#

set_light_power#

set_light_power beállítja az optikai érzékelő fényerejét. Ha a LED még nem világít, ez a metódus a LED-et is bekapcsolja.

Usage:
optical_1.set_light_power(value)

Paraméterek

Leírás

value

A fényerő 0 és 100 közötti tartományban történő beállításához szükséges teljesítményszint százalékos formában.

# Turn the LED light on at different
# intensities
optical_1.set_light(LedStateType.ON)
wait(2, SECONDS)
optical_1.set_light_power(10)
wait(2, SECONDS)
optical_1.set_light_power(100)

object_detect_threshold#

object_detect_threshold metódus beállítja azt a tartományt, amelytől az érzékelő képes objektumokat érzékelni. Ez a metódus visszaadja az újonnan beállított küszöbértéket is.

A 255-höz közelebbi számok kisebb tartományt jelölnek, míg a 0-hoz közelebbi számok nagyobb tartományt.

Usage:
optical_1.object_detect_threshold(value)

Paraméterek

Leírás

value

Egy 0 és 255 közötti szám. A 0 érték csak az aktuális értéket adja vissza.

def detected():
    # The Brain will print that an object was detected on
    # the Brain's screen.
    brain.screen.print("object detected")
    brain.screen.next_row()
    optical_1.object_detect_threshold(254)
    optical_1.object_detected(detected_closer)

def detected_closer():
    # Detect an object closer to the sensor.
    brain.screen.print("Detected closer")
    
# Run detected when the Optical Sensor detects an object.
optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)

# Detect an object first with the detect threshold at 100,
# then again at 254
stage = 0

def detected():
    global stage
    if stage == 0:
        brain.screen.print("Get closer...")
        brain.screen.next_row()
        stage = 1
        optical_1.object_detect_threshold(254)
        optical_1.object_detected(detected_closer)

def detected_closer():
    global stage
    if stage == 1:
        brain.screen.print("Too close!")
        brain.screen.next_row()
        stage = 2

optical_1.object_detect_threshold(100)
optical_1.object_detected(detected)
wait(15, MSEC)

Getterek#

is_near_object#

is_near_object visszaadja, hogy az optikai érzékelő egy objektum közelében van-e.

  • True — Az érzékelő egy tárgy közelében van.

  • False — Az érzékelő nincs tárgy közelében.

Usage:
optical_1.is_near_object()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Stop driving when Optical Sensor is 
# near an object
while True:
    if optical_1.is_near_object():
        drivetrain.stop()
    else:
        drivetrain.drive(FORWARD)

color#

color az alábbi színek közül az optikai érzékelő által érzékelt előre definiált színt adja vissza:

  • BLACK

  • BLUE

  • CYAN

  • GREEN

  • ORANGE

  • PURPLE

  • RED

  • TRANSPARENT

  • WHITE

  • YELLOW

Usage:
optical_1.color()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Stop the robot if the Optical Sensor 
# detects red
while True:
    if optical_1.color() == Color.RED:
        drivetrain.stop()
    else:
        drivetrain.turn(RIGHT)

brightness#

brightness az optikai érzékelő által érzékelt fényerőt adja vissza.

A magasabb százalékos érték azt jelenti, hogy az optikai érzékelő több fényt érzékel. Az alacsonyabb százalékos érték azt jelenti, hogy az optikai érzékelő kevesebb fényt érzékel.

Usage:
optical_1.brightness(readraw)

Paraméterek

Leírás

readraw

Opcionális. Logikai érték a nyers fényerőadatok százalékos helyett történő beolvasásához:

  • True — A nyers adatokat adja vissza.
  • False (alapértelmezett) — A fényerőt százalékban adja vissza.

hue#

hue Az optikai érzékelő által érzékelt színárnyalat értékét adja vissza lebegőpontos értékként 0 és 359,99 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, az alábbiak szerint.

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:
optical_1.hue()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Check the hue of a detected object
# to determine if it is pink
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    if 290 < optical_1.hue() < 350:
        brain.screen.print("Pink!")
        wait(0.1,SECONDS)
    else:
        brain.screen.print("Not pink.")
        wait(0.1,SECONDS)

rgb#

rgb függvény visszaadja az optikai érzékelő által érzékelt vörös, zöld, kék és fényerő értékeket egy Tuple-ként.

Usage:
optical_1.rgb(raw)

Paraméterek

Leírás

raw

Opcionális. Egy logikai érték, amely meghatározza, hogy nyers vagy feldolgozott értékeket ad vissza:

  • True — A nyers értéket adja vissza.
  • False (alapértelmezett) — Ne adja vissza a nyers értéket.
# Display the rgb values and brightness detected
# by the Optical Sensor.
brain.screen.set_font(FontType.MONO12)
while True:
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print(optical_1.rgb())
    wait(0.1, SECONDS)

installed#

installed egy logikai értéket ad vissza, amely azt jelzi, hogy az optikai érzékelő csatlakoztatva van-e az agyhoz.

  • True — Az optikai érzékelő az agyhoz van csatlakoztatva.

  • False — Az optikai érzékelő nincs csatlakoztatva az agyhoz.

Usage:
optical_1.installed()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
    brain.screen.print("Installed!")

Visszahívás#

object_detected#

object_detected egy visszahívó függvényt regisztrál, amely jelzi, ha egy objektumot észlel.

Usage:
optical_1.object_detected(callback, arg)

Paraméterek

Leírás

callback

Egy korábban definiált függvény, amely egy objektum észlelésekor végrehajtásra kerül.

arg

Opcionális. Egy tuple, amely argumentumokat tartalmaz a visszahívó függvénynek átadandó. További információkért lásd a Functions with Parameters részt.

def detected():
    drivetrain.stop()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("object detected")
    wait(0.5,SECONDS)
    brain.screen.clear_screen()

# Display a message when the 
# Optical Sensor detects an object
drivetrain.drive(FORWARD)
optical_1.object_detected(detected)

object_lost#

object_lost egy visszahívó függvényt regisztrál, amikor az optikai érzékelő elveszít egy érzékelt objektumot.

Usage:
optical_1.object_lost(callback, arg)

Paraméterek

Leírás

callback

Egy korábban definiált függvény, amely egy objektum elvesztésekor hajtódik végre.

arg

Opcionális. Egy tuple, amely argumentumokat tartalmaz a visszahívó függvénynek átadandó. További információkért lásd a Functions with Parameters részt.

def lost():
    drivetrain.stop()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("object lost")
    wait(0.5,SECONDS)
    brain.screen.clear_screen()

# Display a message when the Optical 
# Sensor loses sight of on object
drivetrain.drive(REVERSE)
optical_1.object_lost(lost)

Konstruktorok#

A konstruktorokat Optical objektumok manuális létrehozására használjuk, amelyek szükségesek egy optikai érzékelő VEXcode-on kívüli konfigurálásához.

Optical#

Optical létrehoz egy optikai érzékelőt.

Usage:
Optical(smartport)

Paraméter

Leírás

smartport

Az az intelligens port, amelyhez az optikai érzékelő csatlakozik, PORTx-ként írva, ahol x a port száma.

# Construct an Optical Sensor "optical_1" with the
# Optical class
optical_1 = Optical(Ports.PORT1)

# Display the brightness of a red object detected
# by the Optical Sensor
drivetrain.turn(RIGHT)
while not optical_1.color() == Color.RED:
    wait(50, MSEC)
drivetrain.stop()
brain.screen.print(optical_1.brightness())