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.
set_light_power— Beállítja a LED fényerejét.object_detect_threshold— Beállítja az objektumok észlelésének küszöbértékét.
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 |
|---|---|
|
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:
|
# 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 |
|---|---|
|
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 |
|---|---|
|
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:
BLACKBLUECYANGREENORANGEPURPLEREDTRANSPARENTWHITEYELLOW
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 |
|---|---|
|
Opcionális. Logikai érték a nyers fényerőadatok százalékos helyett történő beolvasásához:
|
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.

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 |
|---|---|
|
Opcionális. Egy logikai érték, amely meghatározza, hogy nyers vagy feldolgozott értékeket ad vissza:
|
# 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 |
|---|---|
|
Egy korábban definiált függvény, amely egy objektum észlelésekor végrehajtásra kerül. |
|
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 |
|---|---|
|
Egy korábban definiált függvény, amely egy objektum elvesztésekor hajtódik végre. |
|
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 |
|---|---|
|
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())