Ohjain#

Johdanto#

V5-ohjaimessa on painikkeet, kaksi ohjaussauvaa, tärinämoottori ja näyttö. Ohjaimen menetelmiä voidaan käyttää painikkeiden painallusten tarkistamiseen, ohjaussauvan liikkeiden lukemiseen, ohjaimen tärinämoottorin käyttämiseen, määritettyjen ohjaintoimintojen käyttöönottoon tai poistamiseen käytöstä, toimintojen suorittamiseen ohjaintapahtumien yhteydessä tai tekstin näyttämiseen ohjaimen näytössä.

Määritetyt ohjaintoiminnot ovat Laitteet-valikossa asetettuja ohjaimen toimintoja. Käytä arvoa remote_control_code_enabled ottaaksesi määritetyt toiminnot tilapäisesti käyttöön tai poistaaksesi ne käytöstä projektin aikana.

Tällä sivulla käytetään esimerkkinä ohjaimen nimeä controller_1 Korvaa se tarvittaessa omalla määritetyllä nimelläsi.

Alla on luettelo kaikista käytettävissä olevista menetelmistä:

Toiminnot — Värise ohjainta tai ota käyttöön/poista käytöstä määritettyjä ohjaintoimintoja.

  • rumble — Toistaa jyrinäkuvion ohjaimella.

  • remote_control_code_enabled — Ottaa käyttöön tai poistaa käytöstä Laitteet-valikossa määritetyt ohjaimen toiminnot.

Näyttö — Näytä tekstiä ja numeroita ohjaimen näytöllä.

  • print — Näyttää tekstiä, numeroita tai muuttujien arvoja ohjainnäytössä.

  • set_cursor — Siirtää kohdistimen määritettyyn riviin ja sarakkeeseen ohjainnäytössä.

  • column — Palauttaa ohjainnäytön nykyisen kohdistimen sarakkeen.

  • row — Palauttaa ohjainnäytön nykyisen kohdistinrivin.

  • clear_screen — Tyhjentää ohjainnäytön.

  • clear_row — Tyhjentää yhden rivin ohjainnäytöltä.

  • next_row — Siirtää kohdistimen seuraavalle riville ohjainnäytössä.

Getterit — Lukevat painikkeiden tiloja ja joystickin asentoja.

  • .pressing — Palauttaa tiedon siitä, painetaanko määritettyä painiketta.

  • .position — Palauttaa määritetyn joystick-akselin sijainnin.

Takaisinkutsutoiminnot — Suorita funktioita, kun ohjaimen syöte muuttuu.

  • .pressed — Suorittaa funktion, kun määritettyä painiketta painetaan.

  • .released — Suorittaa funktion, kun määritetty painike vapautetaan.

  • .changed — Suorittaa funktion, kun joystickin asento muuttuu määritetyn akselin suuntaisesti.

Konstruktori — Luo Controller-objekti manuaalisesti.

Toiminnot#

rumble#

rumble toistaa rumble-kuvion ohjaimella. Kuviomerkkijonossa pisteet ovat lyhyitä rumbleja, yhdysviivat pitkiä rumbleja ja välilyönnit taukoja.

Usage:
controller_1.rumble(pattern)

Parametri

Kuvaus

pattern

Pisteistä, yhdysmerkeistä ja välilyönneistä koostuva merkkijono, joka edustaa jyrinäkuviota.

# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")

remote_control_code_enabled#

remote_control_code_enabled on muuttuja, joka ottaa käyttöön tai poistaa käytöstä Laitteet-valikossa määritettyjä ohjaimen toimintoja. Ohjaimen määrittämät toiminnot ovat oletusarvoisesti käytössä.

Usage:
remote_control_code_enabled = state

Arvo

Kuvaus

True

Mahdollistaa ohjaimen määrittämät toiminnot.

False

Poistaa käytöstä ohjaimen määrittämät toiminnot.

# Drive forward or backward using the left joystick
remote_control_code_enabled = False

while True:
    if controller_1.axis3.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller_1.axis3.position() < 0:
        drivetrain.drive(REVERSE)
    # Press A to use Controller configured actions again
    elif controller_1.buttonA.pressing():
        break
    else:
        drivetrain.stop()

    wait(20, MSEC)

remote_control_code_enabled = True

Näyttö#

V5-ohjaimen näytössä on 3 riviä ja 19 saraketta tekstin ja numeroiden näyttämiseen.

Kuvakaappaus V5-ohjaimen näytöstä, jossa näkyvät tulostusalueen rivit ja sarakkeet. Rivi 1 Sarake 1 alkaa vasemmasta yläkulmasta ja rivi 3, sarake 19 ovat oikeassa alakulmassa.

print#

controller_1.screen.print näyttää tekstiä, numeroita tai muuttujien arvoja Controller-näytöllä käyttäen kohdistimen nykyistä sijaintia.

Usage:
controller_1.screen.print(value, sep, precision)

Parametri

Kuvaus

value

Ohjaimen näytöllä näytettävä teksti, numero tai muuttujan arvo. Useita arvoja voidaan tulostaa erottamalla ne pilkuilla.

sep

Valinnainen. Merkkijono, joka sijoitetaan arvojen väliin. Tämä on kirjoitettava avainsana-argumenttina, kuten sep=”- “. Oletusarvo on ” “.

precision

Valinnainen. Näytettävien desimaalien määrä tulostettaessa yksinkertaisia ​​lukuja. Tämä on kirjoitettava avainsana-argumenttina, kuten precision=2Oletusarvo on 2.

# Print a number on the Controller screen
controller_1.screen.print(1)

# Print multiple numbers separated by hyphens
controller_1.screen.print(1, 2, 3, 4, sep="-")

# Print a number using one decimal place
controller_1.screen.print(1 / 3, precision=1)

set_cursor#

set_cursor siirtää kohdistimen määritettyyn riviin ja sarakkeeseen ohjainnäytössä. Seuraava tulostettava arvo näkyy kyseisessä kohdassa.

Usage:
controller_1.screen.set_cursor(row, col)

Parametri

Kuvaus

row

Kohdistimen rivi väliltä 1 - 3.

col

Kohdistimen sarake väliltä 1 - 19.

# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")

column#

column palauttaa nykyisen sarakkeen, johon teksti tulostetaan ohjainnäytöllä.

Usage:
controller_1.screen.column()

Parametrit

Kuvaus

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

# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())

row#

row palauttaa nykyisen rivin, jolle teksti tulostetaan ohjainnäytöllä.

Usage:
controller_1.screen.row()

Parametrit

Kuvaus

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

# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())

clear_screen#

clear_screen tyhjentää ohjaimen näytön ja siirtää kohdistimen takaisin lähtöasentoon.

Usage:
controller_1.screen.clear_screen()

Parametrit

Kuvaus

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

# Print text, then clear the Controller screen
controller_1.screen.print("VEX V5")
wait(2, SECONDS)
controller_1.screen.clear_screen()

clear_row#

clear_row tyhjentää yhden rivin ohjaimen näytöltä.

Usage:
controller_1.screen.clear_row(row)

Parametri

Kuvaus

row

Valinnainen. Tyhjennettävä rivi väliltä 1 - 3Jos riviä ei anneta, nykyinen kohdistinrivi tyhjennetään.

# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)

next_row#

next_row siirtää kohdistimen sarakkeeseen 1 ohjainnäytön seuraavalla rivillä. Seuraava tulostettu arvo näkyy kyseisellä rivillä.

Usage:
controller_1.screen.next_row()

Parametrit

Kuvaus

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

# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")

Getterit#

.pressing#

.pressing palauttaa tiedon, painetaanko tiettyä ohjaimen painiketta parhaillaan. Tätä metodia on kutsuttava tietylle painikeobjektille, kuten controller_1.buttonA.

  • True — Määritettyä painiketta painetaan.

  • False — Määritettyä painiketta ei paineta.

Käyttö:
Yhtä käytettävissä olevista painikeobjekteista voidaan käyttää tämän metodin kanssa:

V5-ohjaimen etu- ja takapuoli, painikkeet keltaisella korostettuina. Ohjaimen pinnalla vasemmalla ovat ylös-, alas-, vasen- ja oikea-nuolinäppäimet sekä oikealla X-, A-, B- ja Y-painikkeet myötäpäivään klo 12:sta alkaen. Ohjaimen takapuolella ovat vasemmalla, L1-, L2-, R1- ja R2-näppäimet oikealla.

Painike

Komento

buttonA

controller_1.buttonA.pressing() — A-painike

buttonB

controller_1.buttonB.pressing() — B-painike

buttonX

controller_1.buttonX.pressing() — X-painike

buttonY

controller_1.buttonY.pressing() — Y-painike

buttonDown

controller_1.buttonDown.pressing() — Alaspäin-painike

buttonUp

controller_1.buttonUp.pressing() — Ylös-painike

buttonLeft

controller_1.buttonLeft.pressing() — Vasen-painike

buttonRight

controller_1.buttonRight.pressing() — Oikealle-painike

buttonL1

controller_1.buttonL1.pressing() — L1-painike

buttonL2

controller_1.buttonL2.pressing() — L2-painike

buttonR1

controller_1.buttonR1.pressing() — R1-painike

buttonR2

controller_1.buttonR2.pressing() — R2-painike

Parametrit

Kuvaus

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

# Turn right while L1 is pressed
while True:
    if controller_1.buttonL1.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()

    wait(20, MSEC)

.position#

.position palauttaa joystick-akselin asennon lukuna väliltä -100 - 100.

Tätä metodia täytyy kutsua tietylle akseliobjektille, kuten controller_1.axis1.

Käyttö:
Yhtä käytettävissä olevista akseliobjekteista voidaan käyttää tämän metodin kanssa:

VEX V5 -ohjain, jossa ohjaussauvojen ympärillä olevat akselit on merkitty. Akselit 1 ja 2 ovat oikean ohjaussauvan ympärillä ja akselit 3 ja 4 vasemman.

Akseli

Komento

axis1

controller_1.axis1.position() — Oikean joystickin vaakasuora akseli

axis2

controller_1.axis2.position() — Oikean joystickin pystyakseli

axis3

controller_1.axis3.position() — Vasemman joystickin pystyakseli

axis4

controller_1.axis4.position() — Vasemman joystickin vaakasuora akseli

Parametrit

Kuvaus

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

# Turn with the left joystick
remote_control_code_enabled = False

while True:
    if controller_1.axis4.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller_1.axis4.position() < -10:
        drivetrain.turn(LEFT)
    else:
        drivetrain.stop()

    wait(20, MSEC)

Takaisinkutsut#

.pressed#

.pressed suorittaa funktion, kun määritettyä painiketta painetaan. Kun painiketta on käytetty, funktio suoritetaan automaattisesti joka kerta, kun painiketta painetaan.

Käyttö:
Yhtä käytettävissä olevista painikeobjekteista voidaan käyttää tämän metodin kanssa:

V5-ohjaimen etu- ja takapuoli, painikkeet keltaisella korostettuina. Ohjaimen pinnalla vasemmalla ovat ylös-, alas-, vasen- ja oikea-nuolinäppäimet sekä oikealla X-, A-, B- ja Y-painikkeet myötäpäivään klo 12:sta alkaen. Ohjaimen takapuolella ovat vasemmalla, L1-, L2-, R1- ja R2-näppäimet oikealla.

Painike

Komento

buttonA

controller_1.buttonA.pressed(callback, arg) — A-painike

buttonB

controller_1.buttonB.pressed(callback, arg) — B-painike

buttonX

controller_1.buttonX.pressed(callback, arg) — X-painike

buttonY

controller_1.buttonY.pressed(callback, arg) — Y-painike

buttonDown

controller_1.buttonDown.pressed(callback, arg) — Alaspäin-painike

buttonUp

controller_1.buttonUp.pressed(callback, arg) — Ylös-painike

buttonLeft

controller_1.buttonLeft.pressed(callback, arg) — Vasen-painike

buttonRight

controller_1.buttonRight.pressed(callback, arg) — Oikea-painike

buttonL1

controller_1.buttonL1.pressed(callback, arg) — L1-painike

buttonL2

controller_1.buttonL2.pressed(callback, arg) — L2-painike

buttonR1

controller_1.buttonR1.pressed(callback, arg) — R1-painike

buttonR2

controller_1.buttonR2.pressed(callback, arg) — R2-painike

Parametri

Kuvaus

callback

Aiemmin määritelty function, joka suoritetaan aina, kun määritettyä painiketta painetaan.

arg

Valinnainen. Tuple, joka sisältää argumentteja, jotka välitetään takaisinkutsufunktiolle. Lisätietoja on kohdassa Tapahtumien käyttö parametrien kanssa.

# Drive forward when A is pressed
def drive_forward():
    drivetrain.drive_for(FORWARD, 100, MM)

controller_1.buttonA.pressed(drive_forward)

.released#

.released suorittaa funktion, kun määritetty painike vapautetaan. Kun painiketta on käytetty, funktio suoritetaan automaattisesti joka kerta, kun painike vapautetaan.

Käyttö:
Yhtä käytettävissä olevista painikeobjekteista voidaan käyttää tämän metodin kanssa:

V5-ohjaimen etu- ja takapuoli, painikkeet keltaisella korostettuina. Ohjaimen pinnalla vasemmalla ovat ylös-, alas-, vasen- ja oikea-nuolinäppäimet sekä oikealla X-, A-, B- ja Y-painikkeet myötäpäivään klo 12:sta alkaen. Ohjaimen takapuolella ovat vasemmalla, L1-, L2-, R1- ja R2-näppäimet oikealla.

Painike

Komento

buttonA

controller_1.buttonA.released(callback, arg) — A-painike

buttonB

controller_1.buttonB.released(callback, arg) — B-painike

buttonX

controller_1.buttonX.released(callback, arg) — X-painike

buttonY

controller_1.buttonY.released(callback, arg) — Y-painike

buttonDown

controller_1.buttonDown.released(callback, arg) — Alaspäin-painike

buttonUp

controller_1.buttonUp.released(callback, arg) — Ylös-painike

buttonLeft

controller_1.buttonLeft.released(callback, arg) — Vasen-painike

buttonRight

controller_1.buttonRight.released(callback, arg) — Oikea-painike

buttonL1

controller_1.buttonL1.released(callback, arg) — L1-painike

buttonL2

controller_1.buttonL2.released(callback, arg) — L2-painike

buttonR1

controller_1.buttonR1.released(callback, arg) — R1-painike

buttonR2

controller_1.buttonR2.released(callback, arg) — R2-painike

Parametri

Kuvaus

callback

Aiemmin määritelty function, joka suoritetaan aina, kun määritetty painike vapautetaan.

arg

Valinnainen. Tuple, joka sisältää argumentteja, jotka välitetään takaisinkutsufunktiolle. Lisätietoja on kohdassa Tapahtumien käyttö parametrien kanssa.

# Drive backward when A is released
def back_up():
    drivetrain.drive_for(REVERSE, 100, MM)

controller_1.buttonA.released(back_up)

.changed#

.changed suorittaa funktion, kun joystickin asento muuttuu määritetyn akselin suuntaisesti. Kun sitä käytetään, funktio suoritetaan automaattisesti joka kerta, kun joystickin asento muuttuu kyseisellä akselilla.

Käyttö:
Yhtä käytettävissä olevista akseliobjekteista voidaan käyttää tämän metodin kanssa:

VEX V5 -ohjain, jossa ohjaussauvojen ympärillä olevat akselit on merkitty. Akselit 1 ja 2 ovat oikean ohjaussauvan ympärillä ja akselit 3 ja 4 vasemman.

Akseli

Komento

axis1

controller_1.axis1.changed(callback, arg) — Oikean joystickin vaakasuora akseli

axis2

controller_1.axis2.changed(callback, arg) — Oikean joystickin pystyakseli

axis3

controller_1.axis3.changed(callback, arg) — Vasemman joystickin pystyakseli

axis4

controller_1.axis4.changed(callback, arg) — Vasemman joystickin vaakasuora akseli

Parametri

Kuvaus

callback

Aiemmin määritelty function, joka suoritetaan aina, kun joystickin asento muuttuu määritetyn akselin suuntaisesti.

arg

Valinnainen. Tuple, joka sisältää argumentteja, jotka välitetään takaisinkutsufunktiolle. Lisätietoja on kohdassa Tapahtumien käyttö parametrien kanssa.

# Play a sound when the left joystick moves
def tada_sound():
    brain.play_sound(SoundType.TADA)

controller_1.axis4.changed(tada_sound)

Rakentajat#

Controller#

Controller luo Controller-objektin. Controller-objekti on luotava manuaalisesti vain, kun ohjainta konfiguroidaan VEXcoden ulkopuolella.

Usage:
Controller(controller_type)

Parametri

Kuvaus

controller_type

Valinnainen. Luotavan ohjaimen tyyppi: PRIMARY ensisijaiselle aivoihin kytketylle ohjaimelle tai PARTNER toiselle aivoihin kytketylle ohjaimelle.

# Create the primary Controller
controller_1 = Controller(PRIMARY)

# Create a partner Controller
controller_2 = Controller(PARTNER)