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

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

state

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:

  • LedStateType.OFF (0 procent)
  • LedStateType.ON (100 procent)
  • integer — Hodnota jasu zadaná jako celé číslo od 0 do 100.
# 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

value

Ú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

value

Čí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:

  • BLACK

  • BLUE

  • CYAN

  • GREEN

  • ORANGE

  • PURPLE

  • RED

  • TRANSPARENT

  • WHITE

  • YELLOW

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

readraw

Volitelné. Logická hodnota pro čtení nezpracovaných dat jasu místo procent:

  • True — Vrátí nezpracovaná data.
  • False (výchozí) — Vrátí jas v procentech.

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.

Kruhové barevné kolo zobrazující celé spektrum odstínů označených stupni po obvodu, které se zvyšují v krocích po 30 stupních od 0° nahoře do 360°.

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

raw

Volitelné. Logická hodnota, která určuje, zda se mají vracet nezpracované nebo zpracované hodnoty:

  • True — Vrátí nezpracovanou hodnotu.
  • False (výchozí) — Nevrací nezpracovanou hodnotu.
# 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

callback

Funkce funkce, která je předem definována k provedení při detekci objektu.

arg

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

callback

Funkce funkce, která je předem definována k provedení při ztrátě objektu.

arg

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

smartport

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