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.
remote_control_code_enabled— Povolí nebo zakáže akce ovladače nakonfigurované v nabídce Zařízení.
Gettery – Čtou stavy tlačítek a polohy 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.
Controller— Vytvoří 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 |
|---|---|
|
Umožňuje akce nakonfigurované ovladačem. |
|
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:
Tlačítko |
Příkaz |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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:
Osa |
Příkaz |
|---|---|
|
|
|
|
|
|
|
|
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:
Tlačítko |
Příkaz |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parametr |
Popis |
|---|---|
|
Předem definovaná funkce, která se spustí při každém stisknutí zadaného tlačítka. |
|
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:
Tlačítko |
Příkaz |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parametr |
Popis |
|---|---|
|
Předem definovaná funkce function, která se spustí při každém uvolnění zadaného tlačítka. |
|
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:
Osa |
Příkaz |
|---|---|
|
|
|
|
|
|
|
|
Parametr |
Popis |
|---|---|
|
Dříve definovaná funkce function, která se spustí pokaždé, když se změní poloha joysticku podél zadané osy. |
|
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()