Optický#
Zavedení#
Optický senzor je senzor založený na světle, který využívá odražené světlo k detekci objektů, identifikaci barev a měření jasu a odstínu.
Můžete také nakonfigurovat jas vnitřního osvětlení senzoru. Tyto nástroje jsou ideální pro programy, které potřebují reagovat na barevné objekty, světelné podmínky nebo zpětnou vazbu senzorů v reálném čase.
Tato stránka používá jako příklad názvu optického senzoru optical_1 V případě potřeby jej nahraďte vlastním nakonfigurovaným názvem.
Níže je uveden seznam všech metod:
Akce – Zapnutí nebo vypnutí LED diody optického senzoru.
set_light— Nastaví stav LED diody zapnuto nebo vypnuto.
Mutátory – Upravte jas LED diod a nastavení detekce objektů.
set_light_power— Nastaví jas LED diody.object_detect_threshold— Nastaví prahovou hodnotu pro detekci objektů.
Gettery – Čtou přítomnost objektu, barvu, jas, odstín, RGB a stav senzoru.
is_near_object— Vrátí, zda se detekovaný objekt nachází v blízkosti optického senzoru.color— Vrátí nejbližší detekovanou shodu barev.brightness— Vrátí jas detekovaného objektu.hue— Vrátí odstín detekovaného objektu.rgb— Vrátí hodnoty RGB detekované optickým senzorem.installed— Vrátí, zda je k mozku připojen optický senzor.
Zpětné volání — Spustí kód při detekci nebo ztrátě objektu.
object_detected— Registruje funkci, která má být volána při detekci objektu.object_lost— Registruje funkci, která má být volána při ztrátě objektu.
Konstruktory – Ruční inicializace a konfigurace optického senzoru.
Optical— Vytvoří optický senzor.
Akce#
set_light#
set_light zapne, vypne nebo nastaví jas LED optického senzoru.
Usage:
optical_1.set_light(state)
Parametry |
Popis |
|---|---|
|
Stav pro nastavení světla nebo procentuálního zastoupení výkonu v rozsahu 0 až 100. Stav může být jeden z následujících:
|
# 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átory#
set_light_power#
set_light_power nastavuje jas světla optického senzoru. Pokud LED dioda ještě nesvítí, tato metoda ji také zapne.
Usage:
optical_1.set_light_power(value)
Parametry |
Popis |
|---|---|
|
Úroveň výkonu pro nastavení světla od 0 do 100 v procentech. |
# 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 nastavuje rozsah, ze kterého může senzor detekovat objekty. Tato metoda také vrací nově nastavenou prahovou hodnotu.
Čísla bližší k 255 označují menší rozsah, zatímco čísla bližší k 0 označují větší rozsah.
Usage:
optical_1.object_detect_threshold(value)
Parametry |
Popis |
|---|---|
|
Číslo v rozsahu 0 - 255. Hodnota 0 vrátí pouze aktuální hodnotu. |
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)
Gettery#
is_near_object#
is_near_object vrací, zda se optický senzor nachází v blízkosti objektu.
True— Senzor je blízko objektu.False— Senzor se nenachází v blízkosti objektu.
Usage:
optical_1.is_near_object()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací předdefinovanou barvu detekovanou optickým senzorem z níže uvedených barev:
BLACKBLUECYANGREENORANGEPURPLEREDTRANSPARENTWHITEYELLOW
Usage:
optical_1.color()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací jas detekovaný optickým senzorem.
Vyšší procento znamená, že optický senzor detekuje více světla. Nižší procento znamená, že optický senzor detekuje méně světla.
Usage:
optical_1.brightness(readraw)
Parametry |
Popis |
|---|---|
|
Volitelné. Logická hodnota pro čtení nezpracovaných dat jasu místo procent:
|
hue#
hue vrací hodnotu odstínu detekovaného optickým senzorem jako číslo s plovoucí desetinnou čárkou v rozsahu od 0 do 359,99 stupňů.
Odstín je způsob, jak popsat barvu pomocí čísel v barevném kruhu, jak je znázorněno níže.

Usage:
optical_1.hue()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací hodnoty červené, zelené, modré a jasu detekované optickým senzorem jako n-tici.
Usage:
optical_1.rgb(raw)
Parametry |
Popis |
|---|---|
|
Volitelné. Logická hodnota, která určuje, zda se mají vracet nezpracované nebo zpracované hodnoty:
|
# 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 vrací booleovskou hodnotu označující, zda je optický senzor připojen k mozku.
True— Optický senzor je propojen s mozkem.False— Optický senzor není připojen k mozku.
Usage:
optical_1.installed()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# Display a message if the Optical Sensor
# is installed.
if optical_1.installed():
brain.screen.print("Installed!")
Zpětné volání#
object_detected#
object_detected registruje funkci zpětného volání pro případ detekce objektu.
Usage:
optical_1.object_detected(callback, arg)
Parametry |
Popis |
|---|---|
|
Funkce funkce, která je předem definována k provedení při detekci objektu. |
|
Volitelné. N-tice obsahující argumenty, které se mají předat zpětné funkci. Další informace naleznete v části Funkce s parametry. |
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 registruje funkci zpětného volání pro případ, že optický senzor ztratí detekovaný objekt.
Usage:
optical_1.object_lost(callback, arg)
Parametry |
Popis |
|---|---|
|
Funkce funkce, která je předem definována k provedení při ztrátě objektu. |
|
Volitelné. N-tice obsahující argumenty, které se mají předat zpětné funkci. Další informace naleznete v části Funkce s parametry. |
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)
Konstruktéři#
Konstruktory se používají k ručnímu vytvoření objektů Optical , které jsou nezbytné pro konfiguraci optického senzoru mimo VEXcode.
Optical#
Optical vytvoří optický senzor.
Usage:
Optical(smartport)
Parametr |
Popis |
|---|---|
|
Inteligentní port, ke kterému je připojen optický senzor, zapsaný jako PORTx, kde x je číslo portu. |
# 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())