Optický senzor#

Zavedení#

Optický senzor V5 detekuje barvu, jas a přítomnost blízkých objektů pomocí kombinace barevného senzoru RGB a senzoru přiblížení. Pro přesnější detekci může také využít vestavěnou LED diodu k osvětlení objektů.

Optický senzor VEX V5.

Tato stránka používá jako příklad názvu optického senzoru optical_sensor V případě potřeby jej nahraďte vlastním nakonfigurovaným názvem.

Níže je uveden seznam dostupných metod:

  • set_light – Zapíná nebo vypíná LED diodu optického senzoru.

  • set_light_power – Nastavuje úroveň světelného výkonu optického senzoru.

  • is_near_object – Vrací, zda optický senzor detekuje objekt v dosahu.

  • color – Vrací barvu detekovanou optickým senzorem.

  • brightness – Vrátí množství světla odraženého od objektu.

  • hue – Vrací odstín detekovaný optickým senzorem.

  • object_detected – Registruje funkci, která má být volána, když optický senzor detekuje objekt.

  • object_lost – Registruje funkci, která se má volat, když optický senzor ztratí objekt.

Konstruktor – Ruční inicializace optického senzoru.

  • Optical – Vytvoří optický senzor.

set_light#

set_light zapíná nebo vypíná LED diodu optického senzoru. To může pomoci zvýšit přesnost senzoru při detekci barev.

Usage:
optical_sensor.set_light(state)

Parametry

Popis

stát

Zapíná nebo vypíná LED. LEDStateType.ON zapíná světlo na 100 % jas. LEDStateType.OFF jej vypíná.

# Turn on the sensor's LED
optical_sensor.set_light(LEDStateType.ON)

set_light_power#

set_light_power nastavuje jas LED diody optického senzoru. Světlo může pomoci optickému senzoru jasněji detekovat objekty a barvy.

Pokud je světlo optického senzoru vypnuté, nastavení výkonu světla nad 0 % světlo zapne.

Pokud svítí světlo optického senzoru, nastavení výkonu světla na 0 % světlo vypne.

Vyšší procento světlo zesílí. Nižší procento světlo ztlumí.

Usage:
optical_sensor.set_light_power(percent, units)

Parametry

Popis

procento

Jas, na který se má LED dioda nastavit, jako celé číslo.

jednotky

Volitelné. Jednotka pro vyjádření jasu: PERCENT

# Turn on the sensor's light at half brightness
optical_sensor.set_light_power(50, PERCENT)

je_blízko_objektu#

is_near_object vrací booleovskou hodnotu, která indikuje, zda optický senzor detekuje objekt v dosahu.

  • True – Optický senzor detekuje objekt.

  • False – Optický senzor nedetekuje objekt.

Usage:
optical_sensor.is_near_object()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Drive forward until an object is found
drivetrain.drive(FORWARD)
while not optical_sensor.is_near_object():
  pass
drivetrain.stop()

barva#

color vrací instanci třídy Color na základě detekované hodnoty odstínu. Tyto objekty lze porovnat s předdefinovanými objekty Color a vytvořit tak podmíněné příkazy.

Možné barvy jsou:

  • Color.BLACK

  • Color.WHITE

  • Color.RED - Hodnota odstínu mezi 340° a 20°

  • Color.GREEN - Hodnota odstínu mezi 80° a 140°

  • Color.BLUE - Hodnota odstínu mezi 200° a 240°

  • Color.YELLOW - Hodnota odstínu mezi 40° a 60°

  • Color.ORANGE - Hodnota odstínu mezi 20° a 40°

  • Color.PURPLE - Hodnota odstínu mezi 240° a 280°

  • Color.CYAN - Hodnota odstínu mezi 140° a 200°

Poznámka: Optický senzor hledá rozsahy odstínů, které odpovídají zadané barvě. Informace o detekci konkrétních rozsahů odstínů naleznete v části hue.

Usage:
optical_sensor.color()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Drive forward until red is found
drivetrain.drive(FORWARD)
while not optical_sensor.color() == Color.RED:
  pass
drivetrain.stop()

jas#

brightness vrací množství světla odraženého od objektu jako desetinné číslo (float) představující procenta.

Vyšší procento znamená, že se zpět k optickému senzoru odráží více světla. Nižší procento znamená, že se zpět odráží méně světla.

Usage:
optical_sensor.brightness()

Parametry

Popis

Tato metoda nemá žádné parametry.

odstín#

hue vrací hodnotu odstínu detekované barvy jako desetinné číslo (float) od 0 do 359.

Odstín je způsob, jak popsat barvu pomocí čísel v barevném kruhu.

Barevný kruh VEX zobrazující stupně barev kolem kruhu, s červenou na 0 stupních a přechodem do duhy s rostoucí hodnotou.

Usage: optical_sensor.hue()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Look for the color pink using hue
while True:
  brain.screen.clear_screen()
  brain.screen.set_cursor(1, 1)

  if 300 < optical_sensor.hue() < 359:
    brain.screen.print("This is pink!")
  else:
    brain.screen.print("No pink detected!")

detekovaný_objekt#

object_detected registruje funkci, která má být volána vždy, když optický senzor detekuje nový objekt.

Usage:
optical_sensor.object_detected(callback, arg)

Parametry

Popis

callback

Dříve definovaná funkce, která se provede, když optický senzor detekuje nový objekt.

arg

Volitelné. N-tice tuple obsahující argumenty, které se mají předat zpětné funkci. Další informace naleznete v části Použití funkcí s parametry.

def my_function():
  brain.screen.print("Optical Sensor detected an object")

# Call my_function whenever optical_sensor detects an object
optical_sensor.object_detected(my_function)

ztracený_objekt#

object_lost registruje funkci, která má být volána vždy, když optický senzor ztratí detekovaný objekt.

Usage:
optical_sensor.object_lost(callback, arg)

Parametry

Popis

callback

Dříve definovaná funkce, která se provede, když optický senzor ztratí detekovaný objekt.

arg

Volitelné. N-tice tuple obsahující argumenty, které se mají předat zpětné funkci. Další informace naleznete v části Použití funkcí s parametry.

def my_function():
  brain.screen.print("Optical Sensor lost an object")

# Call my_function whenever optical_sensor loses an object
optical_sensor.object_lost(my_function)

Konstruktor#

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 Ports.PORTx , kde x je číslo portu.

# Create an Optical Sensor in Port 10
optical_sensor = Optical(Ports.PORT10)