Auge#

Einführung#

Der VEX GO Augensensor kann Objekte und Farben erkennen. Er kann außerdem messen, wie viel Licht zum Sensor zurückreflektiert wird und welchen Farbton die erkannte Farbe hat.

Der Augensensor verfügt über eine ein- und ausschaltbare Leuchte, die die Erkennung von Objekten und Farben verbessert. Er kann außerdem mit den Entfernungseinstellungen NEAR (Fern) oder FAR (Fern) arbeiten, um Objekte in unterschiedlichen Entfernungen zu erfassen.

Der Augensensor kann je nach Build an verschiedenen Positionen angebracht werden. Beispielsweise ist er beim Code Base 2.0 – Eye Forward Build nach vorne gerichtet. Beim Code Base 2.0 – Eye Down Build, Code Base 2.0 – Eye + Electromagnet und Super Code Base 2.0 ist er nach unten gerichtet.

In den folgenden Beispielen wird der konfigurierte Augensensor als eyebezeichnet. Dieser Name wird in den Beispielen verwendet, um Methoden der Klasse Eye aufzurufen.

Es gibt viele Möglichkeiten, den Augensensor zu codieren. Nachfolgend finden Sie eine Liste aller Methoden:

Mutatoren – Einstellungen des Augensensors anpassen.

  • set_light — Schaltet das Licht des Augensensors ein oder aus.

  • set_range — Legt fest, in welcher Entfernung der Augensensor ein Objekt erkennen kann.

  • set_light_power — Legt die Lichtleistungsstufe des Augensensors fest.

Getter – Geben zurück, was der Augensensor erfasst.

  • get_color — Gibt die vom Augensensor erkannte Farbe zurück.

  • get_hue — Gibt den vom Augensensor erfassten Farbton zurück.

  • get_brightness — Gibt die vom Augensensor erfasste Helligkeit zurück.

  • is_object_detected — Gibt zurück, ob der Augensensor ein Objekt innerhalb der Reichweite erkennt.

  • is_color_detected — Gibt zurück, ob der Augensensor eine bestimmte Farbe erkennt.

Mutatoren#

set_light#

set_light schaltet das Licht des Augensensors ein oder aus.

Usage:
eye.set_light(state)

Parameter

Beschreibung

state

Der Zustand der Kontrollleuchte des Augensensors: ON oder 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 legt fest, wie weit ein Objekt vom Augensensor entfernt sein darf, bevor es erkannt werden kann.

Bei jedem Projekt ist der Augensensor standardmäßig auf den Bereich FAR eingestellt.

Usage:
eye.set_range(distance)

Parameter

Beschreibung

distance

Der Objekterkennungsbereich des Augensensors. NEAR erkennt Objekte in bis zu 18 Millimetern Entfernung, während FAR Objekte in bis zu 40 Millimetern Entfernung erkennt.

# 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 legt die Helligkeit der Beleuchtung des Augensensors fest. Die Beleuchtung kann dem Augensensor helfen, Objekte und Farben deutlicher zu erkennen.

Ein höherer Prozentsatz macht das Licht heller. Ein niedrigerer Prozentsatz macht das Licht dunkler.

Wenn die Kontrollleuchte des Augensensors ausgeschaltet ist, schaltet sich die Kontrollleuchte ein, sobald die Lichtleistung über 0 % eingestellt wird.

Wenn die Kontrollleuchte des Augensensors eingeschaltet ist, schaltet das Einstellen der Lichtleistung auf 0 % die Kontrollleuchte aus.

Usage:
eye.set_light_power(value)

Parameter

Beschreibung

value

Die Helligkeit, auf die das Licht des Augensensors eingestellt werden soll, von 0 % bis 100 %. Bitte ganze Zahlen verwenden.

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

Getter#

get_color#

get_color gibt die vom Augensensor erkannte Farbe zurück.

Diese Methode kann Folgendes zurückgeben:

  • RED — Ein Farbtonwert zwischen 340° - 20°

  • GREEN — Ein Farbtonwert zwischen 75° und 154°

  • BLUE — Ein Farbtonwert zwischen 160° - 254°

  • NONE — Keine der verfügbaren Farben wurde erkannt.

Usage:
eye.get_color()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# 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 gibt die vom Augensensor erfasste Farbe als ganze Zahl zwischen 0 und 359,00 Grad zurück.

Der Farbton ist eine Methode, Farben mithilfe von Zahlen auf einem Farbkreis zu beschreiben.

Ein kreisförmiges Farbrad, das ein vollständiges Farbspektrum anzeigt, wobei die Gradwerte am Rand in 30-Grad-Schritten von 0° oben bis 360° ansteigen.

Usage:
eye.get_hue()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# 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 gibt die Helligkeit des erkannten Lichts als ganze Zahl zwischen 0% und 100% zurück.

Ein höherer Prozentsatz bedeutet, dass mehr Licht zum Augensensor zurückreflektiert wird. Ein niedrigerer Prozentsatz bedeutet, dass weniger Licht zurückreflektiert wird.

Usage:
eye.get_brightness()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# 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 gibt einen Boolean zurück, der angibt, ob der Augensensor ein Objekt innerhalb der Reichweite erkennt oder nicht.

  • True — Der Augensensor erkennt ein Objekt.

  • False — Der Augensensor erkennt kein Objekt.

Der Erfassungsbereich kann mit set_range geändert werden.

Usage:
eye.is_object_detected()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

# 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 gibt einen Boolean zurück, der angibt, ob der Augensensor eine bestimmte Farbe erkennt, basierend auf dem erkannten Farbtonwert.

  • True — Der Augensensor erkennt die ausgewählte Farbe.

  • False — Der Augensensor erkennt die ausgewählte Farbe nicht.

Der Augensensor funktioniert am besten, wenn sich das Objekt in ausreichender Nähe befindet, um erkannt zu werden, und die Lichtverhältnisse klar sind.

Usage:
eye.is_color_detected(color)

Parameter

Beschreibung

color

Die vom Augensensor zu prüfende Farbe:

  • BLUE – Farbtonwert zwischen 160° und 254°.
  • GREEN – Farbtonwert zwischen 75° und 154°.
  • NONE
  • RED – Farbtonwert zwischen 340° und 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)