Ohjain#
Johdanto#
VEX EXP -ohjaimessa on painikkeet ja kaksi joystickia. Ohjainmenetelmiä voidaan käyttää painikkeiden painallusten tarkistamiseen, joystickin liikkeiden lukemiseen, määritettyjen ohjaintoimintojen käyttöönottoon tai poistamiseen käytöstä tai toimintojen suorittamiseen ohjaintapahtumien yhteydessä.
Määritetyt ohjaintoiminnot ovat Laitteet-valikossa asetettuja ohjaintoimintoja. 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 Korvaa se tarvittaessa omalla määritetyllä nimelläsi.
Alla on luettelo kaikista käytettävissä olevista menetelmistä:
Toiminto — Ota määritetyt ohjaimen toiminnot käyttöön tai poista ne käytöstä.
remote_control_code_enabled— Ottaa käyttöön tai poistaa käytöstä Laitteet-valikossa määritetyt ohjaimen toiminnot.
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.
Toiminta#
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.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use controller configured actions again
elif controller.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
Getterit#
.pressing#
.pressing palauttaa tiedon, painetaanko tiettyä ohjaimen painiketta parhaillaan. Tätä metodia on kutsuttava tietylle painikeobjektille, kuten controller.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.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.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.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller.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 R1 is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 200, MM)
controller.buttonR1.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. |
# Stop driving when R1 is released
def stop_driving():
drivetrain.stop()
controller.buttonR1.released(stop_driving)
.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 beep():
brain.play_sound(SoundType.TADA)
controller.axis3.changed(beep)
Rakentajat#
Controller#
Controller luo Controller-objektin. Controller-objekti on luotava manuaalisesti vain, kun ohjainta konfiguroidaan VEXcoden ulkopuolella.
Usage:
Controller()
Parametrit |
Kuvaus |
|---|---|
Tällä konstruktorilla ei ole parametreja. |
# Create a Controller object
my_controller = Controller()