Oog#

Invoering#

De VEX GO Eye Sensor kan objecten en kleuren detecteren. Hij kan ook rapporteren hoeveel licht er naar de sensor terugkaatst en de tintwaarde van de gedetecteerde kleur.

De oogsensor heeft een lampje dat aan of uit gezet kan worden om objecten en kleuren beter te kunnen zien. De oogsensor kan ook gebruikmaken van een bereik van NEAR of FAR om objecten op verschillende afstanden te detecteren.

De oogsensor kan in verschillende posities worden geplaatst, afhankelijk van de configuratie. Bij de Code Base 2.0 - Eye Forward-configuratie is de oogsensor bijvoorbeeld naar voren gericht. Bij de Code Base 2.0 - Eye Down-configuratie, Code Base 2.0 - Eye + Electromagnet en Super Code Base 2.0 is de oogsensor naar beneden gericht.

In de onderstaande voorbeelden heeft de geconfigureerde oogsensor de naam eyeDeze naam wordt in de voorbeelden gebruikt om de methoden van de klasse Eye aan te roepen.

Er zijn veel manieren om de oogsensor te programmeren. Hieronder vindt u een lijst met alle methoden voor de oogsensor:

Mutators — Pas de instellingen van de oogsensor aan.

  • set_light — Schakelt het licht van de oogsensor aan of uit.

  • set_range — Hiermee wordt ingesteld hoe ver de oogsensor een object kan detecteren.

  • set_light_power — Stelt het lichtvermogen van de oogsensor in.

Getters — Retourneer wat de oogsensor detecteert.

  • get_color — Retourneert de kleur die door de oogsensor is gedetecteerd.

  • get_hue — Retourneert de tint die door de oogsensor is gedetecteerd.

  • get_brightness — Geeft de helderheid terug die door de oogsensor is gedetecteerd.

  • is_object_detected — Geeft aan of de oogsensor een object binnen bereik detecteert.

  • is_color_detected — Geeft aan of de oogsensor een specifieke kleur detecteert.

Mutators#

set_light#

set_light schakelt het licht van de oogsensor aan of uit.

Usage:
eye.set_light(state)

Parameters

Beschrijving

state

De status van het lampje van de oogsensor: ON of OFF.

# 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 bepaalt hoe ver een object van de oogsensor verwijderd kan zijn voordat het gedetecteerd kan worden.

Elk project begint standaard met de oogsensor ingesteld op FAR bereik.

Usage:
eye.set_range(distance)

Parameters

Beschrijving

distance

Het objectdetectiebereik van de oogsensor. NEAR detecteert objecten tot op 18 millimeter afstand, terwijl FAR objecten tot op 40 millimeter afstand detecteert.

# 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 stelt de helderheid van het licht van de oogsensor in. Het licht kan de oogsensor helpen objecten en kleuren duidelijker te detecteren.

Een hoger percentage maakt het licht feller. Een lager percentage maakt het licht minder fel.

Als het lampje van de oogsensor uit is, zal het inschakelen wanneer het lampje hoger dan 0% wordt ingesteld.

Als het lampje van de oogsensor brandt, wordt het uitgeschakeld door het vermogen op 0% te zetten.

Usage:
eye.set_light_power(value)

Parameters

Beschrijving

value

De helderheid die je wilt instellen voor de verlichting van de oogsensor, van 0% tot 100%. Gebruik hele getallen.

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

Getters#

get_color#

get_color retourneert de kleur die door de oogsensor is gedetecteerd.

Deze methode kan het volgende retourneren:

  • RED — Een tintwaarde tussen 340° en 20°

  • GREEN — Een tintwaarde tussen 75° en 154°

  • BLUE — Een tintwaarde tussen 160° en 254°

  • NONE — Geen van de beschikbare kleuren is gedetecteerd.

Usage:
eye.get_color()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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#

get_hue retourneert de kleur die door de oogsensor is gedetecteerd als een geheel getal van 0 tot 359,00 graden.

Tint is een manier om kleur te beschrijven met behulp van getallen op een kleurencirkel.

Een cirkelvormig kleurenwiel dat een volledig spectrum aan tinten weergeeft, gelabeld met gradenwaarden rond de omtrek, oplopend in stappen van 30 graden van 0° bovenaan tot 360°.

Usage:
eye.get_hue()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 geeft de helderheid van het gedetecteerde licht weer als een geheel getal van 0% tot 100%.

Een hoger percentage betekent dat er meer licht teruggekaatst wordt naar de oogsensor. Een lager percentage betekent dat er minder licht teruggekaatst wordt.

Usage:
eye.get_brightness()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 retourneert een Boolean die aangeeft of de oogsensor een object binnen bereik detecteert of niet.

  • True — De oogsensor detecteert een object.

  • False — De oogsensor detecteert geen object.

Het detectiebereik kan worden gewijzigd met set_range.

Usage:
eye.is_object_detected()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 retourneert een Boolean die aangeeft of de oogsensor een bepaalde kleur detecteert, op basis van de gedetecteerde tintwaarde.

  • True — De oogsensor detecteert de geselecteerde kleur.

  • False — De oogsensor detecteert de geselecteerde kleur niet.

De oog传感器 werkt het beste wanneer het object dichtbij genoeg is om te detecteren en de verlichting helder is.

Usage:
eye.is_color_detected(color)

Parameters

Beschrijving

color

De kleur die de oogsensor moet controleren:

  • BLUE – Tintwaarde tussen 160° en 254°.
  • GREEN – Tintwaarde tussen 75° en 154°.
  • NONE
  • RED – Tintwaarde tussen 340° en 20°.

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