Silmä#

Johdanto#

VEX GO -silmäsensori pystyy havaitsemaan esineitä ja värejä. Se voi myös raportoida, kuinka paljon valoa heijastuu takaisin sensorille ja havaitun värin sävyarvon.

Silmäsensorissa on valo, jonka voi kytkeä päälle tai pois päältä, jotta se näkee esineet ja värit selkeämmin. Silmäsensori voi myös käyttää NEAR tai FAR -etäisyyttä eri etäisyyksillä olevien esineiden havaitsemiseen.

Silmäanturi voidaan sijoittaa eri asentoihin kokoonpanosta riippuen. Esimerkiksi Code Base 2.0 - Silmä eteenpäin -kokoonpanossa silmäanturi osoittaa eteenpäin. Code Base 2.0 - Silmä alas -kokoonpanossa, Code Base 2.0 - Silmä + sähkömagneetti- ja Super Code Base 2.0 -kokoonpanoissa silmäanturi osoittaa alaspäin.

Alla olevissa esimerkeissä konfiguroidun Eye Sensorin nimi on eyeTätä nimeä käytetään esimerkeissä Eye -luokan metodien kutsumiseen.

Silmäanturin koodaamiseen on monia tapoja. Alla on luettelo kaikista silmämenetelmistä:

Mutaattorit — Säädä silmätunnistimen asetuksia.

  • set_light — Sytyttää tai sammuttaa silmätunnistimen valon.

  • set_range — Määrittää, kuinka kauas silmätunnistin voi havaita kohteen.

  • set_light_power — Asettaa silmätunnistimen valotehotason.

Hakemisarvot — Palauttaa silmätunnistimen havaitsemat arvot.

  • get_color — Palauttaa silmätunnistimen havaitseman värin.

  • get_hue — Palauttaa silmätunnistimen havaitseman sävyn.

  • get_brightness — Palauttaa silmätunnistimen havaitseman kirkkauden.

  • is_object_detected — Palauttaa, havaitseeko silmätunnistin kohteen kantaman sisällä.

  • is_color_detected — Palauttaa, havaitseeko silmätunnistin tietyn värin.

Mutaattorit#

set_light#

set_light kytkee silmätunnistimen valon päälle tai pois päältä.

Usage:
eye.set_light(state)

Parametrit

Kuvaus

state

Silmäanturin valon tila: ON tai 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 määrittää, kuinka kaukana silmätunnistimesta kohde voi olla, ennen kuin se havaitaan.

Jokainen projekti alkaa silmätunnistimen oletusarvoisella asetuksella FAR.

Usage:
eye.set_range(distance)

Parametrit

Kuvaus

distance

Silmäsensorin kohteiden tunnistusalue. NEAR tunnistaa jopa 18 millimetrin etäisyydellä olevat kohteet, kun taas FAR tunnistaa jopa 40 millimetrin etäisyydellä olevat kohteet.

# 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 määrittää silmätunnistimen valon kirkkauden. Valo voi auttaa silmätunnistinta havaitsemaan esineitä ja värejä selkeämmin.

Suurempi prosenttiosuus tekee valosta kirkkaampaa. Pienempi prosenttiosuus tekee valosta himmeämpää.

Jos silmäsensorin valo on pois päältä, valotehon asettaminen yli 0 %:n arvoon sytyttää valon.

Jos silmäsensorin valo palaa, valotehon asettaminen arvoon 0 % sammuttaa valon.

Usage:
eye.set_light_power(value)

Parametrit

Kuvaus

value

Silmäanturin valon kirkkaus, 0–100 %. Käytä kokonaislukuja.

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

Getterit#

get_color#

get_color palauttaa silmätunnistimen havaitseman värin.

Tämä metodi voi palauttaa:

  • RED — Sävyarvo välillä 340° - 20°

  • GREEN — Sävyarvo välillä 75°–154°

  • BLUE — Sävyarvo välillä 160°–254°

  • NONE — Yhtäkään käytettävissä olevista väreistä ei havaita.

Usage:
eye.get_color()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 palauttaa silmätunnistimen havaitseman värin kokonaislukuna väliltä 0 - 359,00 astetta.

Sävy on tapa kuvata väriä käyttämällä numeroita väriympyrän ympärillä.

Pyöreä väriympyrä, joka näyttää täyden spektrin sävyjä, jotka on merkitty reunan ympärillä astearvoilla, kasvaen 30 asteen välein ylhäältä 0°:sta 360°:een.

Usage:
eye.get_hue()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 palauttaa havaitun valon kirkkauden kokonaislukuna väliltä 0–100 %.

Korkeampi prosenttiosuus tarkoittaa, että silmäsensoriin heijastuu enemmän valoa. Matalampi prosenttiosuus tarkoittaa, että takaisin heijastuu vähemmän valoa.

Usage:
eye.get_brightness()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 palauttaa Boolean, joka ilmoittaa, havaitseeko silmätunnistin kohteen kantaman sisällä.

  • True — Silmäanturi havaitsee kohteen.

  • False — Silmäanturi ei havaitse kohdetta.

Tunnistusaluetta voidaan muuttaa käyttämällä arvoa set_range.

Usage:
eye.is_object_detected()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# 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 palauttaa Boolean, joka raportoi, havaitseeko silmätunnistin tietyn värin havaitun sävyarvon perusteella.

  • True — Silmätunnistin tunnistaa valitun värin.

  • False — Silmätunnistin ei tunnista valittua väriä.

Silmätunnistin toimii parhaiten, kun kohde on riittävän lähellä havaitsemista varten ja valaistus on kirkas.

Usage:
eye.is_color_detected(color)

Parametrit

Kuvaus

color

Silmäanturin tarkistettava väri:

  • BLUE – Sävyarvo välillä 160° ja 254°.
  • GREEN – Sävyarvo välillä 75° ja 154°.
  • NONE
  • RED – Sävyarvo välillä 340° ja 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)