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.
Controller— Luo Controller-objektin.
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 |
|---|---|
|
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 |
|---|---|
|
Mahdollistaa ohjaimen määrittämät toiminnot. |
|
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.

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 |
|---|---|
|
Ohjaimen näytöllä näytettävä teksti, numero tai muuttujan arvo. Useita arvoja voidaan tulostaa erottamalla ne pilkuilla. |
|
Valinnainen. Merkkijono, joka sijoitetaan arvojen väliin. Tämä on kirjoitettava avainsana-argumenttina, kuten |
|
Valinnainen. Näytettävien desimaalien määrä tulostettaessa yksinkertaisia lukuja. Tämä on kirjoitettava avainsana-argumenttina, kuten |
# 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 |
|---|---|
|
Kohdistimen rivi väliltä |
|
Kohdistimen sarake väliltä |
# 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 |
|---|---|
|
Valinnainen. Tyhjennettävä rivi väliltä |
# 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:

Painike |
Komento |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:

Akseli |
Komento |
|---|---|
|
|
|
|
|
|
|
|
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:

Painike |
Komento |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parametri |
Kuvaus |
|---|---|
|
Aiemmin määritelty function, joka suoritetaan aina, kun määritettyä painiketta painetaan. |
|
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:

Painike |
Komento |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parametri |
Kuvaus |
|---|---|
|
Aiemmin määritelty function, joka suoritetaan aina, kun määritetty painike vapautetaan. |
|
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:

Akseli |
Komento |
|---|---|
|
|
|
|
|
|
|
|
Parametri |
Kuvaus |
|---|---|
|
Aiemmin määritelty function, joka suoritetaan aina, kun joystickin asento muuttuu määritetyn akselin suuntaisesti. |
|
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 |
|---|---|
|
Valinnainen. Luotavan ohjaimen tyyppi: |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)