Ovladač#

Zavedení#

Ovladač V5 má tlačítka, dva joysticky, motor s duněním a obrazovku. Metody ovladače lze použít ke kontrole stisknutí tlačítek, čtení pohybu joysticku, dunění ovladače, povolení nebo zakázání nakonfigurovaných akcí ovladače, spouštění funkcí při nastanoucích událostech ovladače nebo zobrazení textu na obrazovce ovladače.

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

Tato stránka používá jako příklad názvu řídicí jednotky controller_1 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 – Zahrajte ovladačem nebo povolte/zakažte nakonfigurované akce ovladače.

Obrazovka – Zobrazení textu a čísel na obrazovce ovladače.

  • print — Zobrazí text, čísla nebo hodnoty proměnných na obrazovce Controlleru.

  • set_cursor — Přesune kurzor na zadaný řádek a sloupec na obrazovce Controlleru.

  • column — Vrátí aktuální sloupec kurzoru na obrazovce Controlleru.

  • row — Vrátí aktuální řádek kurzoru na obrazovce Controlleru.

  • clear_screen — Vymaže obrazovku ovladače.

  • clear_row — Vymaže jeden řádek na obrazovce Controlleru.

  • next_row — Přesune kurzor na další řádek na obrazovce Controlleru.

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#

rumble#

rumble přehraje na ovladači dunivý vzor. V řetězci vzoru jsou tečky krátké dunění, pomlčky dlouhé dunění a mezery pauzy.

Usage:
controller_1.rumble(pattern)

Parametr

Popis

pattern

Řetězec složený z teček, pomlček a mezer, které představují vzorec dunění.

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

remote_control_code_enabled#

remote_control_code_enabled je proměnná, která povoluje nebo zakazuje akce řadiče nakonfigurované v nabídce Zařízení. Akce nakonfigurované řadič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_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

Obrazovka#

Obrazovka ovladače V5 má 3 řádky a 19 sloupců pro zobrazení textu a čísel.

Snímek obrazovky řídicí jednotky V5 zobrazující řádky a sloupce v tisknutelné oblasti. Řádek 1 Sloupec 1 začíná v levém horním rohu a řádek 3 a sloupec 19 jsou v pravém dolním rohu.

print#

controller_1.screen.print zobrazí text, čísla nebo hodnoty proměnných na obrazovce Controlleru s využitím aktuální pozice kurzoru.

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

Parametr

Popis

value

Text, číslo nebo hodnota proměnné, která se má zobrazit na obrazovce Controlleru. Více než jednu hodnotu lze vytisknout oddělením hodnot čárkami.

sep

Volitelné. Řetězec, který se má vložit mezi hodnoty. Musí být zapsán jako klíčový argument, například sep=”- “. Výchozí hodnota je ” “.

precision

Volitelné. Počet desetinných míst, který se má zobrazit při tisku jednoduchých čísel. Musí být zapsán jako klíčový argument, například precision=2. Výchozí hodnota je 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 přesune kurzor na zadaný řádek a sloupec na obrazovce Controlleru. Další vytištěná hodnota se zobrazí na této pozici.

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

Parametr

Popis

row

Řádek kurzoru, od 1 do 3.

col

Sloupec kurzoru, od 1 do 19.

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

column#

column vrací aktuální sloupec, kde bude text vytištěn na obrazovce Controlleru.

Usage:
controller_1.screen.column()

Parametry

Popis

Tato metoda nemá žádné parametry.

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

row#

row vrací aktuální řádek, kde bude text vytištěn na obrazovce Controlleru.

Usage:
controller_1.screen.row()

Parametry

Popis

Tato metoda nemá žádné parametry.

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

clear_screen#

clear_screen vymaže obrazovku ovladače a přesune kurzor zpět na počáteční pozici.

Usage:
controller_1.screen.clear_screen()

Parametry

Popis

Tato metoda nemá žádné parametry.

# 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 vymaže jeden řádek na obrazovce Controlleru.

Usage:
controller_1.screen.clear_row(row)

Parametr

Popis

row

Volitelné. Řádek, který se má vymazat, od 1 do 3Pokud není zadán žádný řádek, vymaže se aktuální řádek kurzoru.

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

next_row#

next_row přesune kurzor do sloupce 1 na dalším řádku obrazovky Controlleru. Na tomto řádku se zobrazí další vytištěná hodnota.

Usage:
controller_1.screen.next_row()

Parametry

Popis

Tato metoda nemá žádné parametry.

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

Gettery#

.pressing#

.pressing vrací, zda je aktuálně stisknuto konkrétní tlačítko na Controlleru. Tato metoda musí být volána pro konkrétní objekt tlačítka, například controller_1.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 zadní strana ovladače V5 s tlačítky zvýrazněnými žlutě. Na povrchu ovladače jsou vlevo tlačítka se šipkami nahoru, dolů, vlevo a vpravo a vpravo tlačítka X, A, B, Y ve směru hodinových ručiček od 12 hodin. Na zadní straně ovladače jsou vlevo a vpravo tlačítka L1, L2, R1 a R2.

Tlačítko

Příkaz

buttonA

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

buttonB

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

buttonX

controller_1.buttonX.pressing() — Tlačítko X

buttonY

controller_1.buttonY.pressing() — Tlačítko Y

buttonDown

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

buttonUp

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

buttonLeft

controller_1.buttonLeft.pressing() — Tlačítko Levé

buttonRight

controller_1.buttonRight.pressing() — Tlačítko Doprava

buttonL1

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

buttonL2

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

buttonR1

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

buttonR2

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

Parametry

Popis

Tato metoda nemá žádné parametry.

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

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

Ovladač VEX V5 s označenými osami kolem joysticků. Osy 1 a 2 jsou kolem pravého joysticku a osy 3 a 4 jsou kolem levého.

Osa

Příkaz

axis1

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

axis2

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

axis3

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

axis4

controller_1.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_1.axis4.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller_1.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 zadní strana ovladače V5 s tlačítky zvýrazněnými žlutě. Na povrchu ovladače jsou vlevo tlačítka se šipkami nahoru, dolů, vlevo a vpravo a vpravo tlačítka X, A, B, Y ve směru hodinových ručiček od 12 hodin. Na zadní straně ovladače jsou vlevo a vpravo tlačítka L1, L2, R1 a R2.

Tlačítko

Příkaz

buttonA

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

buttonB

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

buttonX

controller_1.buttonX.pressed(callback, arg) — Tlačítko X

buttonY

controller_1.buttonY.pressed(callback, arg) — Tlačítko Y

buttonDown

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

buttonUp

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

buttonLeft

controller_1.buttonLeft.pressed(callback, arg) — Tlačítko Levé

buttonRight

controller_1.buttonRight.pressed(callback, arg) — Tlačítko Vpravo

buttonL1

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

buttonL2

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

buttonR1

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

buttonR2

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

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

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

Přední a zadní strana ovladače V5 s tlačítky zvýrazněnými žlutě. Na povrchu ovladače jsou vlevo tlačítka se šipkami nahoru, dolů, vlevo a vpravo a vpravo tlačítka X, A, B, Y ve směru hodinových ručiček od 12 hodin. Na zadní straně ovladače jsou vlevo a vpravo tlačítka L1, L2, R1 a R2.

Tlačítko

Příkaz

buttonA

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

buttonB

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

buttonX

controller_1.buttonX.released(callback, arg) — Tlačítko X

buttonY

controller_1.buttonY.released(callback, arg) — Tlačítko Y

buttonDown

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

buttonUp

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

buttonLeft

controller_1.buttonLeft.released(callback, arg) — Tlačítko Levý

buttonRight

controller_1.buttonRight.released(callback, arg) — Tlačítko Vpravo

buttonL1

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

buttonL2

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

buttonR1

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

buttonR2

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

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.

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

controller_1.buttonA.released(back_up)

.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č VEX V5 s označenými osami kolem joysticků. Osy 1 a 2 jsou kolem pravého joysticku a osy 3 a 4 jsou kolem levého.

Osa

Příkaz

axis1

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

axis2

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

axis3

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

axis4

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

controller_1.axis4.changed(tada_sound)

Konstruktéři#

Controller#

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

Usage:
Controller(controller_type)

Parametr

Popis

controller_type

Volitelné. Typ ovladače, který se má vytvořit: PRIMARY pro primární ovladač připojený k mozku nebo PARTNER pro druhý ovladač připojený k mozku.

# Create the primary Controller
controller_1 = Controller(PRIMARY)

# Create a partner Controller
controller_2 = Controller(PARTNER)