Ovladač#

Zavedení#

Ovladač VEX IQ (2. generace) 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 spouštění funkcí při nastanou události ovladače.

IQ Brain (2. generace) se může připojit k ovladači IQ (2. generace) nebo IQ (1. generace). Ovladač IQ (1. generace) musí mít nainstalovaný modrý chytrý vysílač (Blue Smart Radio).

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.

# Use custom controller code, then re-enable configured actions
remote_control_code_enabled = False

while True:
    if controller.axisA.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller.axisA.position() < 0:
        drivetrain.drive(REVERSE)
    elif controller.buttonEUp.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.buttonEUp.

  • 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:

Pohled na ovladač IQ 2. generace zepředu a zezadu, přičemž všechna tlačítka jsou zvýrazněna žlutě. Povrch ovladače obsahuje dvě joysticková tlačítka v levém a pravém horním rohu, s tlačítky E nahoru a dolů pod levým joystickem a F nahoru a dolů pod pravým. Na zadní straně ovladače se nacházejí tlačítka L nahoru a dolů a R nahoru a dolů na levé a pravé straně.

Tlačítko

Příkaz

buttonEDown

controller.buttonEDown.pressing() — Tlačítko E ▼

buttonEUp

controller.buttonEUp.pressing() — Tlačítko E ▲

buttonFDown

controller.buttonFDown.pressing() — Tlačítko F ▼

buttonFUp

controller.buttonFUp.pressing() — Tlačítko F ▲

buttonL3

controller.buttonL3.pressing() — Levé tlačítko joysticku, pouze ovladač IQ (2. generace)

buttonLDown

controller.buttonLDown.pressing() — Tlačítko L ▼

buttonLUp

controller.buttonLUp.pressing() — Tlačítko L ▲

buttonR3

controller.buttonR3.pressing() — Pravé tlačítko joysticku, pouze ovladač IQ (2. generace)

buttonRDown

controller.buttonRDown.pressing() — Tlačítko R ▼

buttonRUp

controller.buttonRUp.pressing() — Tlačítko R ▲

Parametry

Popis

Tato metoda nemá žádné parametry.

# Turn right while E Up is held
while True:
    if controller.buttonEUp.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.axisA.

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

Ovladač IQ 2. generace se zvýrazněnými čtyřmi osami joysticku. Na levém joysticku je osa A svislá a osa B vodorovná. Na pravém joysticku je osa C vodorovná a osa D svislá.

Osa

Příkaz

axisA

controller.axisA.position() — Svislá osa levého joysticku

axisB

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

axisC

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

axisD

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

Parametry

Popis

Tato metoda nemá žádné parametry.

# Turn with the left joystick
remote_control_code_enabled = False

while True:
    if controller.axisB.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller.axisB.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:

Pohled na ovladač IQ 2. generace zepředu a zezadu, přičemž všechna tlačítka jsou zvýrazněna žlutě. Povrch ovladače obsahuje dvě joysticková tlačítka v levém a pravém horním rohu, s tlačítky E nahoru a dolů pod levým joystickem a F nahoru a dolů pod pravým. Na zadní straně ovladače se nacházejí tlačítka L nahoru a dolů a R nahoru a dolů na levé a pravé straně.

Tlačítko

Příkaz

buttonEDown

controller.buttonEDown.pressed(callback, arg) — Tlačítko E ▼

buttonEUp

controller.buttonEUp.pressed(callback, arg) — Tlačítko E ▲

buttonFDown

controller.buttonFDown.pressed(callback, arg) — Tlačítko F ▼

buttonFUp

controller.buttonFUp.pressed(callback, arg) — Tlačítko F ▲

buttonL3

controller.buttonL3.pressed(callback, arg) — Levé tlačítko joysticku, pouze ovladač IQ (2. generace)

buttonLDown

controller.buttonLDown.pressed(callback, arg) — Tlačítko L ▼

buttonLUp

controller.buttonLUp.pressed(callback, arg) — Tlačítko L ▲

buttonR3

controller.buttonR3.pressed(callback, arg) — Pravé tlačítko joysticku, pouze ovladač IQ (2. generace)

buttonRDown

controller.buttonRDown.pressed(callback, arg) — Tlačítko R ▼

buttonRUp

controller.buttonRUp.pressed(callback, arg) — Tlačítko R ▲

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

controller.buttonEUp.pressed(drive_forward)

.released#

.released spustí funkci po uvolnění zadaného tlačítka. Jakmile je tlačítko použito, funkce se spustí automaticky po každém uvolnění daného tlačítka.

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

Pohled na ovladač IQ 2. generace zepředu a zezadu, přičemž všechna tlačítka jsou zvýrazněna žlutě. Povrch ovladače obsahuje dvě joysticková tlačítka v levém a pravém horním rohu, s tlačítky E nahoru a dolů pod levým joystickem a F nahoru a dolů pod pravým. Na zadní straně ovladače se nacházejí tlačítka L nahoru a dolů a R nahoru a dolů na levé a pravé straně.

Tlačítko

Příkaz

buttonEDown

controller.buttonEDown.released(callback, arg) — Tlačítko E ▼

buttonEUp

controller.buttonEUp.released(callback, arg) — Tlačítko E ▲

buttonFDown

controller.buttonFDown.released(callback, arg) — Tlačítko F ▼

buttonFUp

controller.buttonFUp.released(callback, arg) — Tlačítko F ▲

buttonL3

controller.buttonL3.released(callback, arg) — Tlačítko Levé joysticku, pouze pro ovladače IQ (2. generace)

buttonLDown

controller.buttonLDown.released(callback, arg) — Tlačítko L ▼

buttonLUp

controller.buttonLUp.released(callback, arg) — Tlačítko L ▲

buttonR3

controller.buttonR3.released(callback, arg) — Tlačítko Pravého joysticku, pouze pro ovladače IQ (2. generace)

buttonRDown

controller.buttonRDown.released(callback, arg) — Tlačítko R ▼

buttonRUp

controller.buttonRUp.released(callback, arg) — Tlačítko R ▲

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 E Up is released
def stop_driving():
    drivetrain.stop()

controller.buttonEUp.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:

Ovladač IQ 2. generace se zvýrazněnými čtyřmi osami joysticku. Na levém joysticku je osa A svislá a osa B vodorovná. Na pravém joysticku je osa C vodorovná a osa D svislá.

Osa

Příkaz

axisA

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

axisB

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

axisC

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

axisD

controller.axisD.changed(callback, arg) — Vertikální osa pravé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 right joystick moves
def beep():
    brain.play_sound(SoundType.TADA)

controller.axisD.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()