Ovladač#

Zavedení#

Ovladač VEX EXP má tlačítka a dva joysticky. Metody ovladače lze použít ke kontrole stisknutí tlačítek, čtení pohybu joysticku, povolení nebo zakázání nakonfigurovaných akcí ovladače nebo ke spuštění funkcí při nastanou události ovladače.

Nakonfigurované akce ovladače jsou chování ovladače nastavené v nabídce Zařízení. Pro dočasné povolení nebo zakázání těchto nakonfigurovaných akcí během projektu použijte parametry remote_control_code_enabled

Tato stránka používá jako příklad názvu řadiče controller V případě potřeby jej nahraďte vlastním nakonfigurovaným názvem.

Níže je uveden seznam všech dostupných metod:

Akce – Zapnutí nebo vypnutí nakonfigurovaných akcí ovladače.

Gettery – Čtou stavy tlačítek a polohy joysticku.

  • .pressing — Vrátí, zda je stisknuto zadané tlačítko.

  • .position — Vrátí pozici zadané osy joysticku.

Zpětná volání — Spouštějí funkce při změně vstupu kontroleru.

  • .pressed — Spustí funkci po stisknutí zadaného tlačítka.

  • .released — Spustí funkci po uvolnění zadaného tlačítka.

  • .changed — Spustí funkci, když se změní poloha joysticku podél zadané osy.

Konstruktor – Ručně vytvořte objekt Controller.

Akce#

remote_control_code_enabled#

remote_control_code_enabled je proměnná, která povoluje nebo zakazuje akce ovladače konfigurované v nabídce Zařízení. Akce konfigurované ovladačem jsou ve výchozím nastavení povoleny.

Usage:
remote_control_code_enabled = state

Hodnota

Popis

True

Umožňuje akce nakonfigurované ovladačem.

False

Zakáže akce nakonfigurované ovladačem.

# 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

Gettery#

.pressing#

.pressing vrací, zda je aktuálně stisknuto konkrétní tlačítko na ovladači. Tato metoda musí být volána pro konkrétní objekt tlačítka, například controller.buttonA.

  • True — Zadané tlačítko je stisknuto.

  • False — Zadané tlačítko není stisknuto.

Použití:
S touto metodou lze použít jeden z dostupných objektů tlačítek:

Přední a horní strana ovladače EXP s joysticky, šipkami a akčními tlačítky zvýrazněnými žlutě. Na povrchu ovladače se nacházejí dva joysticky vlevo a vpravo, s šipkami nahoru a dolů vlevo a tlačítky A a B vpravo. Na horní straně ovladače se nacházejí tlačítka L1 a L2 vlevo a R1 a R2 vpravo.

Tlačítko

Příkaz

buttonA

controller.buttonA.pressing() — Tlačítko A

buttonB

controller.buttonB.pressing() — Tlačítko B

buttonDown

controller.buttonDown.pressing() — Tlačítko Dolů

buttonUp

controller.buttonUp.pressing() — Tlačítko Nahoru

buttonL1

controller.buttonL1.pressing() — Tlačítko L1

buttonL2

controller.buttonL2.pressing() — Tlačítko L2

buttonL3

controller.buttonL3.pressing() — Tlačítko L3

buttonR1

controller.buttonR1.pressing() — Tlačítko R1

buttonR2

controller.buttonR2.pressing() — Tlačítko R2

buttonR3

controller.buttonR3.pressing() — Tlačítko R3

Parametry

Popis

Tato metoda nemá žádné parametry.

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

    wait(20, MSEC)

.position#

.position vrací pozici osy joysticku jako číslo od -100 do 100.

Tato metoda musí být volána pro konkrétní objekt osy, například controller.axis1.

Použití:
S touto metodou lze použít jeden z dostupných objektů os:

Přední strana ovladače EXP s červeně zvýrazněnými čísly os joysticku. Na povrchu ovladače je levý joystick označen jako Osa 4 pro pohyb doleva a doprava a Osa 3 pro pohyb nahoru a dolů, zatímco pravý joystick je označen jako Osa 1 pro pohyb doleva a doprava a Osa 2 pro pohyb nahoru a dolů.

Osa

Příkaz

axis1

controller.axis1.position() — Horizontální osa pravého joysticku

axis2

controller.axis2.position() — Svislá osa pravého joysticku

axis3

controller.axis3.position() — Vertikální osa levého joysticku

axis4

controller.axis4.position() — Horizontální osa levého joysticku

Parametry

Popis

Tato metoda nemá žádné parametry.

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

Zpětná volání#

.pressed#

.pressed spustí funkci při stisknutí zadaného tlačítka. Jakmile je tlačítko použito, funkce se spustí automaticky při každém stisknutí daného tlačítka.

Použití:
S touto metodou lze použít jeden z dostupných objektů tlačítek:

Přední a horní strana ovladače EXP s joysticky, šipkami a akčními tlačítky zvýrazněnými žlutě. Na povrchu ovladače se nacházejí dva joysticky vlevo a vpravo, s šipkami nahoru a dolů vlevo a tlačítky A a B vpravo. Na horní straně ovladače se nacházejí tlačítka L1 a L2 vlevo a R1 a R2 vpravo.

Tlačítko

Příkaz

buttonA

controller.buttonA.pressed(callback, arg) — Tlačítko A

buttonB

controller.buttonB.pressed(callback, arg) — Tlačítko B

buttonDown

controller.buttonDown.pressed(callback, arg) — Tlačítko Dolů

buttonUp

controller.buttonUp.pressed(callback, arg) — Tlačítko Nahoru

buttonL1

controller.buttonL1.pressed(callback, arg) — Tlačítko L1

buttonL2

controller.buttonL2.pressed(callback, arg) — Tlačítko L2

buttonL3

controller.buttonL3.pressed(callback, arg) — Tlačítko L3

buttonR1

controller.buttonR1.pressed(callback, arg) — Tlačítko R1

buttonR2

controller.buttonR2.pressed(callback, arg) — Tlačítko R2

buttonR3

controller.buttonR3.pressed(callback, arg) — Tlačítko R3

Parametr

Popis

callback

Předem definovaná funkce, která se spustí při každém stisknutí zadaného tlačítka.

arg

Volitelné. N-tice obsahující argumenty, které se mají předat funkci zpětného volání. Další informace naleznete v části Použití událostí s parametry.

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

controller.buttonR1.pressed(drive_forward)

.released#

.released spustí funkci po uvolnění zadaného tlačítka. Jakmile je tlačítko použito, funkce se spustí automaticky pokaždé, když je toto tlačítko uvolněno.

Použití:
S touto metodou lze použít jeden z dostupných objektů tlačítek:

Přední a horní strana ovladače EXP s joysticky, šipkami a akčními tlačítky zvýrazněnými žlutě. Na povrchu ovladače se nacházejí dva joysticky vlevo a vpravo, s šipkami nahoru a dolů vlevo a tlačítky A a B vpravo. Na horní straně ovladače se nacházejí tlačítka L1 a L2 vlevo a R1 a R2 vpravo.

Tlačítko

Příkaz

buttonA

controller.buttonA.released(callback, arg) — Tlačítko A

buttonB

controller.buttonB.released(callback, arg) — Tlačítko B

buttonDown

controller.buttonDown.released(callback, arg) — Tlačítko Dolů

buttonUp

controller.buttonUp.released(callback, arg) — Tlačítko Nahoru

buttonL1

controller.buttonL1.released(callback, arg) — Tlačítko L1

buttonL2

controller.buttonL2.released(callback, arg) — Tlačítko L2

buttonL3

controller.buttonL3.released(callback, arg) — Tlačítko L3

buttonR1

controller.buttonR1.released(callback, arg) — Tlačítko R1

buttonR2

controller.buttonR2.released(callback, arg) — Tlačítko R2

buttonR3

controller.buttonR3.released(callback, arg) — Tlačítko R3

Parametr

Popis

callback

Předem definovaná funkce function, která se spustí při každém uvolnění zadaného tlačítka.

arg

Volitelné. N-tice obsahující argumenty, které se mají předat funkci zpětného volání. Další informace naleznete v části Použití událostí s parametry.

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

controller.buttonR1.released(stop_driving)

.changed#

.changed spustí funkci, když se změní poloha joysticku podél zadané osy. Jakmile je funkce použita, spustí se automaticky pokaždé, když se změní poloha joysticku podél dané osy.

Použití:
S touto metodou lze použít jeden z dostupných objektů os:

Přední strana ovladače EXP s červeně zvýrazněnými čísly os joysticku. Na povrchu ovladače je levý joystick označen jako Osa 4 pro pohyb doleva a doprava a Osa 3 pro pohyb nahoru a dolů, zatímco pravý joystick je označen jako Osa 1 pro pohyb doleva a doprava a Osa 2 pro pohyb nahoru a dolů.

Osa

Příkaz

axis1

controller.axis1.changed(callback, arg) — Horizontální osa pravého joysticku

axis2

controller.axis2.changed(callback, arg) — Vertikální osa pravého joysticku

axis3

controller.axis3.changed(callback, arg) — Vertikální osa levého joysticku

axis4

controller.axis4.changed(callback, arg) — Horizontální osa levého joysticku

Parametr

Popis

callback

Dříve definovaná funkce function, která se spustí pokaždé, když se změní poloha joysticku podél zadané osy.

arg

Volitelné. N-tice obsahující argumenty, které se mají předat funkci zpětného volání. Další informace naleznete v části Použití událostí s parametry.

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

controller.axis3.changed(beep)

Konstruktéři#

Controller#

Controller vytvoří objekt Controller. Ruční vytvoření objektu Controller je nutné pouze při konfiguraci Controlleru mimo VEXcode.

Usage:
Controller()

Parametry

Popis

Tento konstruktor nemá žádné parametry.

# Create a Controller object
my_controller = Controller()