vezérlő#

Bevezetés#

A VEX AIM egykaros vezérlő négy gombbal és egy joystickkal rendelkezik. A joystick két tengely mentén mozgatható, és gombként is lenyomható.

A vezérlőmetódusok segítségével ellenőrizhetők a gombnyomások, leolvashatók a joystick mozgása, ellenőrizhető a kapcsolat és az akkumulátor állapota, vagy funkciók futtathatók vezérlőesemények bekövetkeztekor.

Az alábbiakban felsoroljuk az összes módszert:

Getterek – Gomb, joystick, kapcsolat és akkumulátor állapotának olvasása.

  • .pressing — Visszaadja, hogy egy adott gombot lenyomnak-e.

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

  • is_connected — Visszaadja, hogy a vezérlő csatlakoztatva van-e.

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

Visszahívások — Függvények futtatása a vezérlő bemenetének megváltozásakor.

  • .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 visszaadja, hogy a vezérlő egy adott gombját jelenleg lenyomva tartjuk-e. Ezt a metódust egy adott gomb objektumon kell meghívni, például controller.button_up.

  • True — A megadott gombot megnyomják.

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

Használat:
Az öt elérhető gombobjektum egyike használható ezzel a metódussal:

Gomb

Parancs

button_up

controller.button_up.pressing() — A Fel gomb

button_down

controller.button_down.pressing() — A Le gomb

button_left

controller.button_left.pressing() — A Balra gomb

button_right

controller.button_right.pressing() — A Jobbra gomb

button_stick

controller.button_stick.pressing() — A Joystick gomb

VEX AIM egykaros kontroller joystickkal a bal oldalon és négy gombbal jobb oldalon. A joystick és a négy gomb kiemelve látható.

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Move forward while the Up button is being pressed
while True:
    if controller.button_up.pressing():
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

.position#

.position függvény visszaadja a joystick tengelyének pozícióját -100 és 100 közötti számként.

Ezt a metódust egy adott tengely objektumon kell meghívni, például controller.axis1 értéken.

Használat:
Két elérhető tengelyobjektum egyike használható ezzel a metódussal:

Tengely

Parancs

axis1

controller.axis1.position() — A függőleges tengely

axis2

controller.axis2.position() — A vízszintes tengely

VEX AIM vezérlő joystickkal a bal oldalon és négy gombbal a jobb oldalon. A joystick 1-es és 2-es tengelyei ki vannak jelölve.

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Move forward when the joystick is moved up
while True:
    if controller.axis1.position() > 0:
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

is_connected#

is_connected Visszaadja, hogy a vezérlő csatlakoztatva van-e.

  • True — A vezérlő csatlakoztatva van.

  • False — A vezérlő nincs csatlakoztatva.

Usage:
controller.is_connected()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Stop the robot if the controller disconnects
robot.move_at(0)

while True:
    if not controller.is_connected():
        robot.stop_all_movement()

    wait(100, MSEC)

get_battery_level#

get_battery_level függvény visszaadja a kontroller akkumulátorának töltöttségi szintjét 0 és 100 közötti számként.

Usage:
controller.get_battery_level()

Paraméterek

Leírás

Ennek a metódusnak nincsenek paraméterei.

# Display the controller's battery level
robot.screen.print(controller.get_battery_level())

Visszahívások#

.pressed#

.pressed parancs futtat egy függvényt, 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:
Az öt elérhető gombobjektum egyike használható ezzel a metódussal:

Gomb

Parancs

button_up

controller.button_up.pressed(callback, arg) — A Fel gomb

button_down

controller.button_down.pressed(callback, arg) — A Le gomb

button_left

controller.button_left.pressed(callback, arg) — A Balra gomb

button_right

controller.button_right.pressed(callback, arg) — A Jobbra gomb

button_stick

controller.button_stick.pressed(callback, arg) — A Joystick gomb

VEX AIM egykaros kontroller joystickkal a bal oldalon és négy gombbal jobb oldalon. A joystick és a négy gomb kiemelve látható.

Paraméter

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.

# Kick hard when the Up button is pressed
def kick_object():
    robot.kicker.kick(HARD)

controller.button_up.pressed(kick_object)

.released#

.released függvény a megadott gomb elengedésekor futtat egy függvényt. Használat után a függvény minden alkalommal automatikusan lefut, amikor a gombot elengedjük.

Használat:
Az öt elérhető gombobjektum egyike használható ezzel a metódussal:

Gomb

Parancs

button_up

controller.button_up.released(callback, arg) — A Fel gomb

button_down

controller.button_down.released(callback, arg) — A Le gomb

button_left

controller.button_left.released(callback, arg) — A Balra gomb

button_right

controller.button_right.released(callback, arg) — A Jobbra gomb

button_stick

controller.button_stick.released(callback, arg) — A Joystick gomb

VEX AIM egykaros kontroller joystickkal a bal oldalon és négy gombbal jobb oldalon. A joystick és a négy gomb kiemelve látható.

Paraméter

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: Események használata paraméterekkel.

# Clear the screen after the Up button is released
def clear_screen():
    robot.screen.clear_screen()

controller.button_up.released(clear_screen)

robot.screen.print("Press Up, then")
robot.screen.next_row()
robot.screen.print("Release Up!")

.changed#

.changed függvény akkor futtat le egy függvényt, 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:
Két elérhető tengelyobjektum egyike használható ezzel a metódussal:

Tengely

Parancs

axis1

controller.axis1.changed(callback, arg) — A függőleges tengely

axis2

controller.axis2.changed(callback, arg) — A vízszintes tengely

VEX AIM vezérlő joystickkal a bal oldalon és négy gombbal a jobb oldalon. A joystick 1-es és 2-es tengelyei ki vannak jelölve.

Paraméter

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: Események használata paraméterekkel.

# Show an emoji when the joystick moves up or down
def move_joystick():
    robot.screen.show_emoji(CONFUSED)

controller.axis1.changed(move_joystick)