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

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

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

Parametry |
Popis |
|---|---|
|
Předem definovaná funkce, která se spustí při každém stisknutí zadaného tlačítka. |
|
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Parametry |
Popis |
|---|---|
|
Předem definovaná funkce function, která se spustí při každém uvolnění zadaného tlačítka. |
|
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 |
|---|---|
|
|
|
|
|
|
|
|

Parametry |
Popis |
|---|---|
|
Dříve definovaná funkce function, která se spustí pokaždé, když se změní poloha joysticku podél zadané osy. |
|
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)