Oko#
Zavedení#
Oční senzor VEX GO dokáže detekovat objekty a barvy. Může také hlásit, kolik světla se odráží zpět k senzoru a hodnotu odstínu detekované barvy.
Oční senzor má světlo, které lze zapnout nebo vypnout, aby lépe viděl objekty a barvy. Oční senzor může také použít rozsah NEAR nebo FAR k detekci objektů v různých vzdálenostech.
Snímač oka lze umístit do různých poloh v závislosti na sestavení. Například sestavení Code Base 2.0 - Eye Forward má snímač oka směřující dopředu. Sestavení Code Base 2.0 - Eye Down, Code Base 2.0 - Eye + Electromagnet a Super Code Base 2.0 mají snímač oka směřující dolů.
V níže uvedených příkladech je nakonfigurovaný senzor oka pojmenován eye. Tento název se v příkladech používá k volání metod třídy Eye.
Existuje mnoho způsobů, jak kódovat senzor oka. Níže je uveden seznam všech metod pro práci s okem:
Mutátory – Upravte nastavení očního senzoru.
set_light— Zapne nebo vypne světlo očního senzoru.set_range— Nastaví, jak daleko dokáže oční senzor detekovat objekt.set_light_power— Nastaví úroveň osvětlení očního senzoru.
Gettery – Vrací hodnotu detekovanou senzorem oka.
get_color— Vrátí barvu detekovanou senzorem oka.get_hue— Vrátí odstín detekovaný senzorem oka.get_brightness— Vrátí jas detekovaný senzorem oka.is_object_detected— Vrátí, zda senzor oka detekuje objekt v dosahu.is_color_detected— Vrátí, zda senzor oka detekuje konkrétní barvu.
Mutátory#
set_light#
set_light zapíná nebo vypíná světlo očního senzoru.
Usage:
eye.set_light(state)
Parametry |
Popis |
|---|---|
|
Stav světla očního senzoru: |
# Build Used: Super Code Base 2.0
def main():
# Turn the light on and off
while True:
eye.set_light(ON)
wait(2, SECONDS)
eye.set_light(OFF)
wait(2, SECONDS)
# Start threads — Do not delete
start_thread(main)
set_range#
set_range nastavuje, jak daleko může být objekt od očního senzoru, než jej lze detekovat.
Každý projekt začíná s výchozím nastavením senzoru oka na FAR.
Usage:
eye.set_range(distance)
Parametry |
Popis |
|---|---|
|
Dosah detekce objektů senzorem oka. |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Drive to an object with different ranges
eye.set_range(FAR)
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.2, SECONDS)
drivetrain.drive_for(REVERSE, 100, MM)
# Closer detection range
eye.set_range(NEAR)
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
set_light_power#
set_light_power nastavuje jas světla očního senzoru. Světlo může pomoci očnímu senzoru jasněji detekovat objekty a barvy.
Vyšší procento světlo zesílí. Nižší procento světlo ztlumí.
Pokud je světlo očního senzoru vypnuté, nastavení výkonu světla nad 0 % světlo zapne.
Pokud je světlo očního senzoru zapnuté, nastavení výkonu světla na 0 % světlo vypne.
Usage:
eye.set_light_power(value)
Parametry |
Popis |
|---|---|
|
Jas, na který se má nastavit světlo očního senzoru, od 0 % do 100 %. Používejte celá čísla. |
# Build Used: Super Code Base 2.0
def main():
# Turn on the light at different brightnesses
eye.set_light_power(25)
wait(2, SECONDS)
eye.set_light_power(50)
wait(2, SECONDS)
eye.set_light_power(100)
# Start threads — Do not delete
start_thread(main)
Gettery#
get_color#
get_color vrací barvu detekovanou senzorem oka.
Tato metoda může vrátit:
RED— Hodnota odstínu mezi 340° a 20°GREEN— Hodnota odstínu mezi 75° a 154°BLUE— Hodnota odstínu mezi 160° a 254°NONE— Nebyla detekována žádná z dostupných barev.
Usage:
eye.get_color()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# Build Used: Super Code Base 2.0
def main():
# Stop when red is detected
drivetrain.drive(FORWARD)
while True:
if eye.get_color() == RED:
break
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
get_hue#
Funkce get_hue vrací barvu detekovanou senzorem oka jako celé číslo od 0 do 359,00 stupňů.
Odstín je způsob, jak popsat barvu pomocí čísel v barevném kruhu.

Usage:
eye.get_hue()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Display the hue of a pink GO piece
while True:
console.clear()
if 10 < eye.get_hue() < 40:
console.print("Pink!")
wait(0.1,SECONDS)
else:
console.print("Not pink.")
wait(0.1,SECONDS)
# Start threads — Do not delete
start_thread(main)
get_brightness#
get_brightness vrací jas detekovaného světla jako celé číslo od 0 % do 100 %.
Vyšší procento znamená, že se zpět k očnímu senzoru odráží více světla. Nižší procento znamená, že se zpět odráží méně světla.
Usage:
eye.get_brightness()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# Build Used: Super Code Base 2.0
def main():
# Monitor the brightness until red is detected
monitor_sensor("eye.get_brightness")
drivetrain.drive(FORWARD)
while not eye.get_color() == RED:
wait(0.2, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
is_object_detected#
is_object_detected vrací hodnotu typu Boolean, která hlásí, zda senzor oka detekuje objekt v dosahu.
True— Snímač oka detekuje objekt.False— Snímač oka nedetekuje objekt.
Rozsah detekce lze změnit pomocí set_range.
Usage:
eye.is_object_detected()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# Build Used: Code Base 2.0 - Eye Forward
def main():
# Drive forward until an object is detected
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_object_detected():
wait(0.5, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)
is_color_detected#
is_color_detected vrací hodnotu typu Boolean, která hlásí, zda senzor oka detekuje zadanou barvu na základě detekované hodnoty odstínu.
True— Snímač oka detekuje vybranou barvu.False— Snímač oka nedetekuje vybranou barvu.
Snímač oka funguje nejlépe, když je objekt dostatečně blízko k detekci a osvětlení je jasné.
Usage:
eye.is_color_detected(color)
Parametry |
Popis |
|---|---|
|
Barva, kterou má oční senzor kontrolovat:
|
# Build Used: Super Code Base 2.0
def main():
# Drive forward until a green object is detected
drivetrain.drive(FORWARD)
wait(0.2, SECONDS)
while not eye.is_color_detected(GREEN):
wait(0.5, SECONDS)
drivetrain.stop()
# Start threads — Do not delete
start_thread(main)