Kontroller#
Introduktion#
VEX AIR-drönarkontrollen har en layout med 12 knappar och två joysticks. Dessa ingångar gör att drönaren kan upptäcka knapptryckningar och joystickrörelser, vilket möjliggör interaktiv och responsiv kontroll.
Nedan följer en lista över alla tillgängliga metoder:
Getters – Läs knapp, joystick och anslutningsstatus.
pressing– Returnerar om en specifik knapp trycks ned just nu.position– Returnerar joystickens position längs en angiven axel.is_drone_connected– Returnerar om handkontrollen är ansluten till drönaren.get_battery_level– Returnerar handkontrollens batterinivå.
Återuppringningar – Svara på ändringar i knapp- eller joystickinmatning.
Getters#
pressing#
pressing returnerar ett booleskt värde som anger om en specifik knapp på kontrollenheten trycks ned för närvarande. Denna metod måste anropas på ett specifikt knappobjekt, till exempel button5 (se en fullständig lista över knappobjekt nedan).
True- Den angivna knappen trycks ned.False- Den angivna knappen trycks inte ned.
Användning:
En av åtta tillgängliga knappar, numrerade 5 till 12, kan användas med den här metoden, enligt nedan:
Knapp |
Kommando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar positionen för joystickens angivna axel, som en procentandel från –100 % till 100 %.
Användande:
En av fyra tillgängliga axlar, numrerade 1 till 4, kan användas med den här metoden.
Axel |
Kommando |
|---|---|
|
|
|
|
|
|
|
|

Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar ett booleskt värde som anger om drönaren är ansluten.
True- Drönaren är ansluten.False- Drönaren är inte ansluten.
Användande:
controller.is_drone_connected()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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#
get_battery_level returnerar kontrollenhetens batterinivå, som en procentandel från 0 % till 100 %.
Användande:
controller.get_battery_level()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Show controller's battery level.
if controller.get_battery_level() > 50:
controller.screen.print("Battery level ok")
else:
controller.screen.print("Battery level low")
Återuppringningar#
pressed#
pressed kör en funktion när den angivna knappen trycks ner. När den väl används körs funktionen automatiskt varje gång knappen trycks ner.
Användning:
En av åtta tillgängliga knappar, numrerade 5 till 12, kan användas med den här metoden.
Knapp |
Kommando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Parametrar |
Beskrivning |
|---|---|
|
En tidigare definierad funktion som ska köras varje gång den angivna knappen trycks ned. |
|
Valfritt. En tupel som innehåller argument som ska skickas till callback-funktionen. Se Använda händelser med parametrar för mer information. |
# 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 kör en funktion när den angivna knappen släpps. När den väl används körs funktionen automatiskt varje gång knappen släpps.
Användning:
En av åtta tillgängliga knappar, numrerade 5 till 12, kan användas med den här metoden.
Knapp |
Kommando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Parametrar |
Beskrivning |
|---|---|
|
En tidigare definierad funktion som ska köras varje gång den angivna knappen släpps. |
|
Valfritt. En tupel som innehåller argument som ska skickas till callback-funktionen. Se Använda funktioner med parametrar för mer information. |
# 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 kör en funktion när joystickens position ändras längs den angivna axeln. När den väl används körs funktionen automatiskt varje gång joystickens position ändras längs den axeln.
Användande:
En av fyra tillgängliga axlar, numrerade 1 till 4, kan användas med den här metoden.
Axel |
Kommando |
|---|---|
|
|
|
|
|
|
|
|

Parametrar |
Beskrivning |
|---|---|
|
En tidigare definierad funktion som körs varje gång joystickens position ändras längs den angivna axeln. |
|
Valfritt. En tupel som innehåller argument som ska skickas till callback-funktionen. Se Använda funktioner med parametrar för mer information. |
# 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)