Valdiklis#

Įvadas#

V5 valdiklis turi mygtukus, dvi valdymo svirtis, vibracijos variklį ir ekraną. Valdiklio metodus galima naudoti mygtukų paspaudimams tikrinti, valdymo svirties judesiams nuskaityti, valdikliui vibracijos signalizuoti, sukonfigūruotiems valdiklio veiksmams įjungti arba išjungti, funkcijoms vykdyti, kai įvyksta valdiklio įvykiai, arba tekstui rodyti valdiklio ekrane.

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_1 Jei reikia, pakeiskite jį savo sukonfigūruotu pavadinimu.

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

Veiksmai – sudundinkite valdiklį arba įjunkite / išjunkite sukonfigūruotus valdiklio veiksmus.

Ekranas – rodyti tekstą ir skaičius valdiklio ekrane.

  • print — Valdiklio ekrane rodo tekstą, skaičius arba kintamųjų reikšmes.

  • set_cursor — Perkelia žymeklį į nurodytą eilutę ir stulpelį valdiklio ekrane.

  • column — Grąžina dabartinį žymeklio stulpelį valdiklio ekrane.

  • row — Grąžina dabartinę žymeklio eilutę valdiklio ekrane.

  • clear_screen — Išvalo valdiklio ekraną.

  • clear_row — Išvalo vieną eilutę valdiklio ekrane.

  • next_row — Perkelia žymeklį į kitą eilutę valdiklio ekrane.

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.

Veiksmai#

rumble#

rumble valdiklyje atkuria rumble šabloną. Šablono eilutėje taškai yra trumpi rumble’ai, brūkšneliai – ilgi rumble’ai, o tarpai – pauzės.

Usage:
controller_1.rumble(pattern)

Parametras

Aprašymas

pattern

Eilutė, sudaryta iš taškų, brūkšnelių ir tarpų, žyminti dundėjimo modelį.

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

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_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

Ekranas#

V5 valdiklio ekrane yra 3 eilutės ir 19 stulpelių tekstui ir skaičiams rodyti.

V5 valdiklio ekrano kopija, kurioje rodomos spausdinamos srities eilutės ir stulpeliai. 1 eilutė, 1 stulpelis prasideda viršutiniame kairiajame kampe, o 3 eilutė, 19 stulpelis yra apatiniame dešiniajame kampe.

print#

controller_1.screen.print rodo tekstą, skaičius arba kintamųjų reikšmes valdiklio ekrane, naudodamas dabartinę žymeklio padėtį.

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

Parametras

Aprašymas

value

Tekstas, skaičius arba kintamojo reikšmė, kuri bus rodoma valdiklio ekrane. Galima atspausdinti daugiau nei vieną reikšmę, atskiriant jas kableliais.

sep

Pasirinktinai. Eilutė, kurią reikia įterpti tarp reikšmių. Ji turi būti parašyta kaip raktinio žodžio argumentas, pvz. sep=”- “. Numatytoji reikšmė yra ” “.

precision

Pasirinktinai. Dešimtainių vietų skaičius, rodomas spausdinant paprastus skaičius. Tai turi būti parašyta kaip raktinio žodžio argumentas, pvz. precision=2Numatytoji reikšmė yra 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 perkelia žymeklį į nurodytą eilutę ir stulpelį valdiklio ekrane. Kita atspausdinta reikšmė bus rodoma toje pozicijoje.

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

Parametras

Aprašymas

row

Žymeklio eilutė nuo 1 iki 3.

col

Žymeklio stulpelis nuo 1 iki 19.

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

column#

column grąžina dabartinį stulpelį, kuriame tekstas bus spausdinamas valdiklio ekrane.

Usage:
controller_1.screen.column()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

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

row#

row grąžina dabartinę eilutę, kurioje tekstas bus spausdinamas valdiklio ekrane.

Usage:
controller_1.screen.row()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

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

clear_screen#

clear_screen išvalo valdiklio ekraną ir perkelia žymeklį atgal į pradinę padėtį.

Usage:
controller_1.screen.clear_screen()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# 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 išvalo vieną eilutę valdiklio ekrane.

Usage:
controller_1.screen.clear_row(row)

Parametras

Aprašymas

row

Pasirinktinai. Eilutė, kurią reikia išvalyti, nuo 1 iki 3Jei eilutė nenurodyta, dabartinė žymeklio eilutė išvaloma.

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

next_row#

next_row perkelia žymeklį į 1 stulpelį kitoje valdiklio ekrano eilutėje. Kita atspausdinta reikšmė bus rodoma toje eilutėje.

Usage:
controller_1.screen.next_row()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

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

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_1.buttonA.

  • True — Paspaudžiamas nurodytas mygtukas.

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

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

V5 valdiklio priekinė ir galinė pusės su geltonai paryškintais mygtukais. Valdiklio paviršiuje kairėje yra rodyklių aukštyn, žemyn, kairėn ir dešinėn mygtukai, o dešinėje - X, A, B, Y mygtukai, veikiantys pagal laikrodžio rodyklę nuo 12 valandos. Valdiklio gale, kairėje ir dešinėje pusėse, yra L1, L2, R1 ir R2.

Mygtukas

Komanda

buttonA

controller_1.buttonA.pressing() — Mygtukas A

buttonB

controller_1.buttonB.pressing() — Mygtukas B

buttonX

controller_1.buttonX.pressing() — Mygtukas X

buttonY

controller_1.buttonY.pressing() — Mygtukas Y

buttonDown

controller_1.buttonDown.pressing() — Mygtukas Žemyn

buttonUp

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

buttonLeft

controller_1.buttonLeft.pressing() — Mygtukas Kairėn

buttonRight

controller_1.buttonRight.pressing() — Mygtukas Dešinėn

buttonL1

controller_1.buttonL1.pressing() — Mygtukas L1

buttonL2

controller_1.buttonL2.pressing() — Mygtukas L2

buttonR1

controller_1.buttonR1.pressing() — Mygtukas R1

buttonR2

controller_1.buttonR2.pressing() — Mygtukas R2

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# Turn right while L1 is pressed
while True:
    if controller_1.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_1.axis1.

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

VEX V5 valdiklis su pažymėtomis ašimis aplink valdymo svirtis. 1 ir 2 ašys yra aplink dešinę valdymo svirtį, o 3 ir 4 ašys – aplink kairę.

Ašis

Komanda

axis1

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

axis2

controller_1.axis2.position() — Dešiniojo valdymo svirties vertikali ašis

axis3

controller_1.axis3.position() — Kairiojo valdymo svirties vertikali ašis

axis4

controller_1.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_1.axis4.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller_1.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ų:

V5 valdiklio priekinė ir galinė pusės su geltonai paryškintais mygtukais. Valdiklio paviršiuje kairėje yra rodyklių aukštyn, žemyn, kairėn ir dešinėn mygtukai, o dešinėje - X, A, B, Y mygtukai, veikiantys pagal laikrodžio rodyklę nuo 12 valandos. Valdiklio gale, kairėje ir dešinėje pusėse, yra L1, L2, R1 ir R2.

Mygtukas

Komanda

buttonA

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

buttonB

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

buttonX

controller_1.buttonX.pressed(callback, arg) — Mygtukas X

buttonY

controller_1.buttonY.pressed(callback, arg) — Mygtukas Y

buttonDown

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

buttonUp

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

buttonLeft

controller_1.buttonLeft.pressed(callback, arg) — Mygtukas Kairėn

buttonRight

controller_1.buttonRight.pressed(callback, arg) — Mygtukas Dešinėn

buttonL1

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

buttonL2

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

buttonR1

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

buttonR2

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

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 A is pressed
def drive_forward():
    drivetrain.drive_for(FORWARD, 100, MM)

controller_1.buttonA.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ų:

V5 valdiklio priekinė ir galinė pusės su geltonai paryškintais mygtukais. Valdiklio paviršiuje kairėje yra rodyklių aukštyn, žemyn, kairėn ir dešinėn mygtukai, o dešinėje - X, A, B, Y mygtukai, veikiantys pagal laikrodžio rodyklę nuo 12 valandos. Valdiklio gale, kairėje ir dešinėje pusėse, yra L1, L2, R1 ir R2.

Mygtukas

Komanda

buttonA

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

buttonB

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

buttonX

controller_1.buttonX.released(callback, arg) — Mygtukas X

buttonY

controller_1.buttonY.released(callback, arg) — Mygtukas Y

buttonDown

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

buttonUp

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

buttonLeft

controller_1.buttonLeft.released(callback, arg) — Mygtukas Kairėn

buttonRight

controller_1.buttonRight.released(callback, arg) — Mygtukas Dešinėn

buttonL1

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

buttonL2

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

buttonR1

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

buttonR2

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

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.

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

controller_1.buttonA.released(back_up)

.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ų:

VEX V5 valdiklis su pažymėtomis ašimis aplink valdymo svirtis. 1 ir 2 ašys yra aplink dešinę valdymo svirtį, o 3 ir 4 ašys – aplink kairę.

Ašis

Komanda

axis1

controller_1.axis1.changed(callback, arg) — Dešinės valdymo svirties horizontali ašis

axis2

controller_1.axis2.changed(callback, arg) — Dešiniojo valdymo svirties vertikali ašis

axis3

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

axis4

controller_1.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 tada_sound():
    brain.play_sound(SoundType.TADA)

controller_1.axis4.changed(tada_sound)

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(controller_type)

Parametras

Aprašymas

controller_type

Pasirinktinai. Sukurtinas valdiklio tipas: PRIMARY pagrindiniam valdikliui, prijungtam prie smegenų, arba PARTNER antrajam valdikliui, prijungtam prie smegenų.

# Create the primary Controller
controller_1 = Controller(PRIMARY)

# Create a partner Controller
controller_2 = Controller(PARTNER)