vezérlő#

Bevezetés#

A VEX AIR drónvezérlő 12 gombos elrendezéssel és két joystickkal rendelkezik. Ezek a bemenetek lehetővé teszik a drón számára a gombnyomások és a joystick mozgásainak érzékelését, így interaktív és érzékeny vezérlést tesz lehetővé.

Az alábbiakban felsoroljuk az összes elérhető módszert:

Getterek – Olvasás gomb, joystick és kapcsolat állapota.

  • pressing – Visszaadja, ha egy adott gombot éppen lenyomnak.

  • position – Visszaadja a joystick pozícióját egy megadott tengely mentén.

  • is_drone_connected – Visszaadja, hogy a vezérlő csatlakoztatva van-e a drónhoz.

  • get_battery_level – Visszaadja a kontroller akkumulátorának töltöttségi szintjét.

Visszahívások – Reagál a gomb vagy a joystick bemeneti változásaira.

  • pressed – Egy függvényt futtat, amikor egy megadott gombot megnyomnak.

  • released – Egy függvényt futtat, amikor egy megadott gombot elengednek.

  • changed – Függvényt futtat, amikor a joystick helyzete egy megadott tengely mentén megváltozik.

Getterek#

pressing#

pressing megnyomása egy logikai értéket ad vissza, amely jelzi, hogy a vezérlő egy adott gombja jelenleg le van-e nyomva. Ezt a metódust egy adott gomb objektumon kell meghívni, például button5 metóduson (a gomb objektumok teljes listáját lásd alább).

  • True - A megadott gombot megnyomják.

  • False - A megadott gombot nem nyomják meg.

Használat:
A nyolc elérhető, 5-től 12-ig számozott gomb egyike használható ezzel a módszerrel, az alábbiak szerint:

Gomb

Parancs

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

Egy VEX AIR drónvezérlő, amelyen az 5–12. gombok láthatók. Az 5. és 6. gomb a vezérlő jobb oldalának hátulján található, merőlegesen a joystick-ra. A 7. és 8. gomb ugyanott található a bal oldalon. A 9–12. gombok a vezérlő alján találhatók, a 9-es a jobb felső sarokban a 10-es, a 11-es pedig a bal felső sarokban a 12-es felett.

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 visszaadja a joystick megadott tengelyének pozícióját százalékban, -100% és 100% között.

Használat:

Négy elérhető tengely egyike használható ezzel a módszerrel, 1-től 4-ig számozva.

Tengely

Parancs

axis1

controller.axis1.position() — A bal oldali joystick függőleges tengelye

axis2

controller.axis2.position() — A bal oldali joystick vízszintes tengelye

axis3

controller.axis3.position() — A jobb joystick vízszintes tengelye

axis4

controller.axis4.position() — A jobb oldali joystick függőleges tengelye

Egy VEX AIR drónvezérlő, amelyen a bal oldali joystick körül az 1. és 2. tengely, a jobb oldali joystick körül pedig a 3. és 4. tengely feliratai vannak kiemelve.

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Egy logikai értéket ad vissza, amely jelzi, hogy a drón csatlakoztatva van-e.

  • True - A drón csatlakoztatva van.

  • False - A drón nincs csatlakoztatva.

Használat:

controller.is_drone_connected()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# 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 Visszaadja a kontroller akkumulátorának töltöttségi szintjét százalékban, 0% és 100% között.

Használat:

controller.get_battery_level()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

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

Visszahívások#

pressed#

pressed egy függvényt futtat, amikor a megadott gombot megnyomják. Használat után a függvény minden alkalommal automatikusan lefut, amikor a gombot megnyomják.

Használat:
Ezzel a módszerrel nyolc elérhető gomb egyike használható, 5-től 12-ig számozva.

Gomb

Parancs

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

Egy VEX AIR drónvezérlő, amelyen az 5–12. gombok láthatók. Az 5. és 6. gomb a vezérlő jobb oldalának hátulján található, merőlegesen a joystick-ra. A 7. és 8. gomb ugyanott található a bal oldalon. A 9–12. gombok a vezérlő alján találhatók, a 9-es a jobb felső sarokban a 10-es, a 11-es pedig a bal felső sarokban a 12-es felett.

Paraméterek

Leírás

callback

Egy korábban definiált függvény, amely a megadott gomb minden megnyomásakor lefut.

arg

Opcionális. Egy tuple, amely argumentumokat tartalmaz a visszahívó függvénynek átadandó. További információkért lásd: Események használata paraméterekkel.

# 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 egy függvényt futtat, amikor a megadott gombot elengedik. Használat után a függvény minden alkalommal automatikusan lefut, amikor a gombot elengedik.

Használat:
Ezzel a módszerrel nyolc elérhető gomb egyike használható, 5-től 12-ig számozva.

Gomb

Parancs

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

Egy VEX AIR drónvezérlő, amelyen az 5–12. gombok láthatók. Az 5. és 6. gomb a vezérlő jobb oldalának hátulján található, merőlegesen a joystick-ra. A 7. és 8. gomb ugyanott található a bal oldalon. A 9–12. gombok a vezérlő alján találhatók, a 9-es a jobb felső sarokban a 10-es, a 11-es pedig a bal felső sarokban a 12-es felett.

Paraméterek

Leírás

callback

Egy korábban definiált function, amely minden alkalommal lefut, amikor a megadott gombot elengedik.

arg

Opcionális. Egy tuple, amely argumentumokat tartalmaz a visszahívó függvénynek átadandó. További információkért lásd a Függvények használata paraméterekkel részt.

# 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 paraméterrel lefuttatható egy függvény, amikor a joystick pozíciója megváltozik a megadott tengely mentén. Használat után a függvény automatikusan lefut minden alkalommal, amikor a joystick pozíciója megváltozik az adott tengely mentén.

Használat:

Négy elérhető tengely egyike használható ezzel a módszerrel, 1-től 4-ig számozva.

Tengely

Parancs

axis1

controller.axis1.position() — A bal oldali joystick függőleges tengelye

axis2

controller.axis2.position() — A bal oldali joystick vízszintes tengelye

axis3

controller.axis3.position() — A jobb joystick vízszintes tengelye

axis4

controller.axis4.position() — A jobb oldali joystick függőleges tengelye

Egy VEX AIR drónvezérlő, amelyen a bal oldali joystick körül az 1. és 2. tengely, a jobb oldali joystick körül pedig a 3. és 4. tengely feliratai vannak kiemelve.

Paraméterek

Leírás

callback

Egy korábban definiált függvény, amely minden alkalommal lefut, amikor a joystick pozíciója a megadott tengely mentén megváltozik.

arg

Opcionális. Egy tuple, amely argumentumokat tartalmaz a visszahívó függvénynek átadandó. További információkért lásd a Függvények használata paraméterekkel részt.

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