Valdiklis#

Įvadas#

„VEX EXP“ valdiklis turi mygtukus ir dvi valdymo svirtis. Valdiklio metodus galima naudoti mygtukų paspaudimams patikrinti, valdymo svirties judesiams nuskaityti, sukonfigūruotiems valdiklio veiksmams įjungti arba išjungti arba funkcijoms vykdyti, kai įvyksta valdiklio įvykiai.

Konfigūruoti valdiklio veiksmai yra valdiklio elgsena, nustatyta meniu „Įrenginiai“. Naudokite remote_control_code_enabled , kad laikinai įjungtumėte arba išjungtumėte šiuos sukonfigūruotus veiksmus projekto metu.

Šiame puslapyje kaip valdiklio pavadinimo pavyzdys naudojamas controller Jei reikia, pakeiskite jį savo sukonfigūruotu pavadinimu.

Žemiau pateikiamas visų galimų metodų sąrašas:

Veiksmas – įjungti arba išjungti sukonfigūruotus valdiklio veiksmus.

Getteriai – nuskaito mygtukų būsenas ir vairasvirtės padėtis.

  • .pressing — Grąžina, ar nurodytas mygtukas yra paspaudžiamas.

  • .position — Grąžina nurodytos valdymo svirties ašies padėtį.

Atgaliniai iškvietimai – vykdyti funkcijas, kai pasikeičia valdiklio įvestis.

  • .pressed — Paleidžia funkciją, kai paspaudžiamas nurodytas mygtukas.

  • .released — Vykdo funkciją, kai atleidžiamas nurodytas mygtukas.

  • .changed — Vykdo funkciją, kai vairasvirtės padėtis pasikeičia išilgai nurodytos ašies.

Konstruktorius – rankiniu būdu sukuriamas valdiklio objektas.

Veiksmas#

remote_control_code_enabled#

remote_control_code_enabled yra kintamasis, kuris įjungia arba išjungia valdiklio veiksmus, konfigūruotus meniu „Įrenginiai“. Valdiklio konfigūruojami veiksmai yra įjungti pagal numatytuosius nustatymus.

Usage:
remote_control_code_enabled = state

Vertė

Aprašymas

True

Įgalina valdiklio konfigūruojamus veiksmus.

False

Išjungia valdiklio sukonfigūruotus veiksmus.

# 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

Getteriai#

.pressing#

.pressing grąžina, ar šiuo metu paspaudžiamas konkretus valdiklio mygtukas. Šis metodas turi būti iškviestas konkrečiam mygtuko objektui, pvz., controller.buttonA.

  • True — Paspaudžiamas nurodytas mygtukas.

  • False — Nurodytas mygtukas nėra paspaudžiamas.

Naudojimas:
Su šiuo metodu galima naudoti vieną iš galimų mygtuko objektų:

EXP valdiklio priekinė ir viršutinė pusės su geltonai paryškintomis valdymo svirtimis, rodyklių mygtukais ir veiksmų mygtukais. Valdiklio paviršiuje yra dvi valdymo svirtys kairėje ir dešinėje: rodyklių aukštyn ir žemyn mygtukai kairėje ir A bei B mygtukai dešinėje. Valdiklio viršuje kairėje pusėje yra L1 ir L2, o dešinėje pusėje – R1 ir R2.

Mygtukas

Komanda

buttonA

controller.buttonA.pressing() — Mygtukas A

buttonB

controller.buttonB.pressing() — Mygtukas B

buttonDown

controller.buttonDown.pressing() — Mygtukas Žemyn

buttonUp

controller.buttonUp.pressing() — Mygtukas Aukštyn

buttonL1

controller.buttonL1.pressing() — Mygtukas L1

buttonL2

controller.buttonL2.pressing() — Mygtukas L2

buttonL3

controller.buttonL3.pressing() — Mygtukas L3

buttonR1

controller.buttonR1.pressing() — Mygtukas R1

buttonR2

controller.buttonR2.pressing() — Mygtukas R2

buttonR3

controller.buttonR3.pressing() — Mygtukas R3

Parametrai

Aprašymas

Šis metodas neturi parametrų.

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

    wait(20, MSEC)

.position#

.position grąžina valdymo svirties ašies padėtį kaip skaičių nuo -100 iki 100.

Šis metodas turi būti iškviestas konkrečiam ašies objektui, pvz., controller.axis1.

Naudojimas:
Su šiuo metodu galima naudoti vieną iš galimų ašies objektų:

EXP valdiklio priekinė pusė, kurioje raudonai paryškinti valdymo svirties ašių numeriai. Valdiklio paviršiuje kairioji valdymo svirtis pažymėta kaip 4 ašis, skirta judėjimui į kairę ir į dešinę, ir 3 ašis, skirta judėjimui aukštyn ir žemyn, o dešinioji valdymo svirtis pažymėta kaip 1 ašis, skirta judėjimui į kairę ir į dešinę, ir 2 ašis, skirta judėjimui aukštyn ir žemyn.

Ašis

Komanda

axis1

controller.axis1.position() — Dešiniojo valdymo svirties horizontalioji ašis

axis2

controller.axis2.position() — Dešiniojo vairasvirtės vertikali ašis

axis3

controller.axis3.position() — Kairiojo vairasvirtės vertikali ašis

axis4

controller.axis4.position() — Kairiojo valdymo svirties horizontalioji ašis

Parametrai

Aprašymas

Šis metodas neturi parametrų.

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

Atgaliniai skambučiai#

.pressed#

.pressed vykdo funkciją, kai paspaudžiamas nurodytas mygtukas. Kai jis naudojamas, funkcija bus paleista automatiškai kiekvieną kartą paspaudus tą mygtuką.

Naudojimas:
Su šiuo metodu galima naudoti vieną iš galimų mygtuko objektų:

EXP valdiklio priekinė ir viršutinė pusės su geltonai paryškintomis valdymo svirtimis, rodyklių mygtukais ir veiksmų mygtukais. Valdiklio paviršiuje yra dvi valdymo svirtys kairėje ir dešinėje: rodyklių aukštyn ir žemyn mygtukai kairėje ir A bei B mygtukai dešinėje. Valdiklio viršuje kairėje pusėje yra L1 ir L2, o dešinėje pusėje – R1 ir R2.

Mygtukas

Komanda

buttonA

controller.buttonA.pressed(callback, arg) — Mygtukas A

buttonB

controller.buttonB.pressed(callback, arg) — Mygtukas B

buttonDown

controller.buttonDown.pressed(callback, arg) — Mygtukas Žemyn

buttonUp

controller.buttonUp.pressed(callback, arg) — Mygtukas Aukštyn

buttonL1

controller.buttonL1.pressed(callback, arg) — Mygtukas L1

buttonL2

controller.buttonL2.pressed(callback, arg) — Mygtukas L2

buttonL3

controller.buttonL3.pressed(callback, arg) — Mygtukas L3

buttonR1

controller.buttonR1.pressed(callback, arg) — Mygtukas R1

buttonR2

controller.buttonR2.pressed(callback, arg) — Mygtukas R2

buttonR3

controller.buttonR3.pressed(callback, arg) — Mygtukas R3

Parametras

Aprašymas

callback

Anksčiau apibrėžta function, kuri bus vykdoma kiekvieną kartą paspaudus nurodytą mygtuką.

arg

Pasirinktinai. Rinkinys su argumentais, kurie turi būti perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Įvykių su parametrais naudojimas.

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

controller.buttonR1.pressed(drive_forward)

.released#

.released paleidžia funkciją, kai atleidžiamas nurodytas mygtukas. Kai ji panaudojama, funkcija bus paleidžiama automatiškai kiekvieną kartą atleidus tą mygtuką.

Naudojimas:
Su šiuo metodu galima naudoti vieną iš galimų mygtuko objektų:

EXP valdiklio priekinė ir viršutinė pusės su geltonai paryškintomis valdymo svirtimis, rodyklių mygtukais ir veiksmų mygtukais. Valdiklio paviršiuje yra dvi valdymo svirtys kairėje ir dešinėje: rodyklių aukštyn ir žemyn mygtukai kairėje ir A bei B mygtukai dešinėje. Valdiklio viršuje kairėje pusėje yra L1 ir L2, o dešinėje pusėje – R1 ir R2.

Mygtukas

Komanda

buttonA

controller.buttonA.released(callback, arg) — Mygtukas A

buttonB

controller.buttonB.released(callback, arg) — Mygtukas B

buttonDown

controller.buttonDown.released(callback, arg) — Mygtukas Žemyn

buttonUp

controller.buttonUp.released(callback, arg) — Mygtukas Aukštyn

buttonL1

controller.buttonL1.released(callback, arg) — Mygtukas L1

buttonL2

controller.buttonL2.released(callback, arg) — Mygtukas L2

buttonL3

controller.buttonL3.released(callback, arg) — Mygtukas L3

buttonR1

controller.buttonR1.released(callback, arg) — Mygtukas R1

buttonR2

controller.buttonR2.released(callback, arg) — Mygtukas R2

buttonR3

controller.buttonR3.released(callback, arg) — Mygtukas R3

Parametras

Aprašymas

callback

Anksčiau apibrėžta function, kuri bus vykdoma kiekvieną kartą atleidus nurodytą mygtuką.

arg

Pasirinktinai. Rinkinys su argumentais, kurie turi būti perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Įvykių su parametrais naudojimas.

# Stop driving when R1 is released
def stop_driving():
    drivetrain.stop()

controller.buttonR1.released(stop_driving)

.changed#

.changed vykdo funkciją, kai vairasvirtės padėtis pasikeičia išilgai nurodytos ašies. Kai ši funkcija naudojama, ji bus vykdoma automatiškai kiekvieną kartą, kai vairasvirtės padėtis pasikeičia išilgai tos ašies.

Naudojimas:
Su šiuo metodu galima naudoti vieną iš galimų ašies objektų:

EXP valdiklio priekinė pusė, kurioje raudonai paryškinti valdymo svirties ašių numeriai. Valdiklio paviršiuje kairioji valdymo svirtis pažymėta kaip 4 ašis, skirta judėjimui į kairę ir į dešinę, ir 3 ašis, skirta judėjimui aukštyn ir žemyn, o dešinioji valdymo svirtis pažymėta kaip 1 ašis, skirta judėjimui į kairę ir į dešinę, ir 2 ašis, skirta judėjimui aukštyn ir žemyn.

Ašis

Komanda

axis1

controller.axis1.changed(callback, arg) — Dešiniojo valdymo svirties horizontali ašis

axis2

controller.axis2.changed(callback, arg) — Dešiniojo vairasvirtės vertikali ašis

axis3

controller.axis3.changed(callback, arg) — Kairiojo valdymo svirties vertikali ašis

axis4

controller.axis4.changed(callback, arg) — Kairiojo valdymo svirties horizontalioji ašis

Parametras

Aprašymas

callback

Anksčiau apibrėžta function, kuri paleidžiama kiekvieną kartą, kai vairasvirtės padėtis pasikeičia išilgai nurodytos ašies.

arg

Pasirinktinai. Rinkinys su argumentais, kurie turi būti perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Įvykių su parametrais naudojimas.

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

controller.axis3.changed(beep)

Konstruktoriai#

Controller#

Controller valdiklis sukuria valdiklio objektą. Rankiniu būdu valdiklio objektą reikia kurti tik tada, kai konfigūruojamas valdiklis ne naudojant VEXcode.

Usage:
Controller()

Parametrai

Aprašymas

Šis konstruktorius neturi parametrų.

# Create a Controller object
my_controller = Controller()