Ovladač#

Zavedení#

Ovladač dronu VEX AIR má 12 tlačítek a dva joysticky. Tyto vstupy umožňují dronu detekovat stisknutí tlačítek a pohyby joysticku, což umožňuje interaktivní a responzivní ovládání.

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

Gettery – Čítají stav tlačítka, joysticku a připojení.

  • pressing – Vrátí, pokud je aktuálně stisknuto konkrétní tlačítko.

  • position – Vrátí polohu joysticku podél zadané osy.

  • is_drone_connected – Vrací, zda je ovladač připojen k dronu.

  • get_battery_level – Vrátí úroveň nabití baterie řadiče.

Zpětná volání – Reakce na změny vstupu tlačítek nebo joysticku.

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

Gettery#

pressing#

pressing vrací booleovskou hodnotu označující, 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 button5 (úplný seznam objektů tlačítek viz níže).

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

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

Použití:
S touto metodou lze použít jedno z osmi dostupných tlačítek očíslovaných od 5 do 12, jak je znázorněno níže:

Tlačítko

Příkaz

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

Ovládač dronu VEX AIR s tlačítky 5 až 12. Tlačítka 5 a 6 jsou na zadní straně pravé strany ovladače, kolmo k joysticku. Tlačítka 7 a 8 jsou ve stejné poloze na levé straně. Tlačítka 9 až 12 jsou na spodní straně ovladače, přičemž 9 je v pravém horním rohu nad 10 a 11 je v levém horním rohu nad 12.

Parametry

Popis

Tato metoda nemá žádné parametry.

# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
    # Fly using the controller sticks
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )

    # Capture an image from the forward camera when button 5 is pressed.
    if controller.button5.pressing():
        drone.camera.capture_image(FORWARD_CAMERA)

    wait(5, MSEC)

position#

position vrací polohu zadané osy joysticku v procentech od –100 % do 100 %.

Používání:

S touto metodou lze použít jednu ze čtyř dostupných os, očíslovaných od 1 do 4.

Osa

Příkaz

axis1

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

axis2

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

axis3

controller.axis3.position() — Pravá horizontální osa joysticku

axis4

controller.axis4.position() — Pravá svislá osa joysticku

Ovládač dronu VEX AIR se zvýrazněnými popisky osy 1 a 2 kolem levého joysticku a zvýrazněnými popisky osy 3 a 4 kolem pravého joysticku.

Parametry

Popis

Tato metoda nemá žádné parametry.

# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
    if controller.axis1.position() > 0:
        drone.climb(direction=UP, velocity=50)
    else:
        drone.hover()
    wait(5, MSEC)

is_drone_connected#

is_drone_connected vrací booleovskou hodnotu označující, zda je dron připojen.

  • True - Dron je připojen.

  • False - Dron není připojen.

Používání:

controller.is_drone_connected()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Print controller connection status on screen.
while True:
    if controller.is_drone_connected():
        controller.screen.clear_screen()
        controller.screen.set_cursor(1, 1)
        controller.screen.print("Controller connected")
    wait(0.5, SECONDS)

get_battery_level#

Funkce get_battery_level vrací úroveň nabití baterie řadiče v procentech od 0 % do 100 %.

Používání:

controller.get_battery_level()

Parametry

Popis

Tato metoda nemá žádné parametry.

# Show controller's battery level.
if controller.get_battery_level() > 50:
    controller.screen.print("Battery level ok")
else:
    controller.screen.print("Battery level low")

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 jedno z osmi dostupných tlačítek, očíslovaných od 5 do 12.

Tlačítko

Příkaz

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

Ovládač dronu VEX AIR s tlačítky 5 až 12. Tlačítka 5 a 6 jsou na zadní straně pravé strany ovladače, kolmo k joysticku. Tlačítka 7 a 8 jsou ve stejné poloze na levé straně. Tlačítka 9 až 12 jsou na spodní straně ovladače, přičemž 9 je v pravém horním rohu nad 10 a 11 je v levém horním rohu nad 12.

Parametry

Popis

callback

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

arg

Volitelné. N-tice tuple 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.

# Take a picture when button 5 is pressed.
def take_picture():
    drone.camera.capture_image(FORWARD_CAMERA)

# Run take_picture each time button 5 is pressed.
controller.button5.pressed(take_picture)

# Fly using the controller sticks.
drone.take_off(climb_to=500)
while True:
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)

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 jedno z osmi dostupných tlačítek, očíslovaných od 5 do 12.

Tlačítko

Příkaz

button5

controller.button5.pressing() — Button 5

button6

controller.button6.pressing() — Button 6

button7

controller.button7.pressing() — Button 7

button8

controller.button8.pressing() — Button 8

button9

controller.button9.pressing() — Button 9

button10

controller.button10.pressing() — Button 10

button11

controller.button11.pressing() — Button 11

button12

controller.button12.pressing() — Button 12

Ovládač dronu VEX AIR s tlačítky 5 až 12. Tlačítka 5 a 6 jsou na zadní straně pravé strany ovladače, kolmo k joysticku. Tlačítka 7 a 8 jsou ve stejné poloze na levé straně. Tlačítka 9 až 12 jsou na spodní straně ovladače, přičemž 9 je v pravém horním rohu nad 10 a 11 je v levém horním rohu nad 12.

Parametry

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 tuple obsahující argumenty, které se mají předat zpětné funkci. Další informace naleznete v části Použití funkcí s parametry.

# Take a picture when button 5 is released.
def take_picture():
    drone.camera.capture_image(FORWARD_CAMERA)

# Run take_picture each time button 5 is released.
controller.button5.released(take_picture)

# Fly using the controller sticks.
drone.take_off(climb_to=500)
while True:
    drone.move_with_vectors(
        forward=controller.axis4.position(),
        rightward=controller.axis3.position(),
        upward=controller.axis1.position(),
        rotation=controller.axis2.position()
    )
    wait(5, MSEC)

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žívání:

S touto metodou lze použít jednu ze čtyř dostupných os, očíslovaných od 1 do 4.

Osa

Příkaz

axis1

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

axis2

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

axis3

controller.axis3.position() — Pravá horizontální osa joysticku

axis4

controller.axis4.position() — Pravá svislá osa joysticku

Ovládač dronu VEX AIR se zvýrazněnými popisky osy 1 a 2 kolem levého joysticku a zvýrazněnými popisky osy 3 a 4 kolem pravého joysticku.

Parametry

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 tuple obsahující argumenty, které se mají předat zpětné funkci. Další informace naleznete v části Použití funkcí s parametry.

# Move forward when the left joystick moves.
def on_axis1_changed():
    drone.move_for(direction=0, distance=200, velocity=50, units=MM)

drone.take_off(climb_to=500)
controller.axis1.changed(on_axis1_changed)