Controller#

Invoering#

De VEX AIM One Stick Controller heeft vier knoppen en een joystick. De joystick kan langs twee assen worden bewogen en kan ook als een knop worden ingedrukt.

Met controllermethoden kunnen onder andere knopdrukken worden gecontroleerd, joystickbewegingen worden uitgelezen, de verbinding en batterijstatus worden gecontroleerd of functies worden uitgevoerd wanneer er gebeurtenissen van de controller plaatsvinden.

Hieronder vindt u een lijst met alle methoden:

Getters — Leest de status van knoppen, joysticks, verbindingen en de batterij.

  • .pressing — Geeft aan of een bepaalde knop wordt ingedrukt.

  • .position — Geeft de joystickpositie langs een opgegeven as terug.

  • is_connected — Geeft aan of de controller verbonden is.

  • get_battery_level — Geeft het batterijniveau van de controller weer.

Callbacks — Voer functies uit wanneer de invoer van de controller verandert.

  • .pressed — Voert een functie uit wanneer een bepaalde knop wordt ingedrukt.

  • .released — Voert een functie uit wanneer een opgegeven knop wordt losgelaten.

  • .changed — Voert een functie uit wanneer de positie van de joystick verandert langs een opgegeven as.

Getters#

.pressing#

.pressing retourneert of een specifieke knop op de controller momenteel is ingedrukt. Deze methode moet worden aangeroepen op een specifiek knopobject, zoals controller.button_up.

  • True — De aangegeven knop wordt ingedrukt.

  • False — De opgegeven knop wordt niet ingedrukt.

Gebruik:
Een van de vijf beschikbare knopobjecten kan met deze methode worden gebruikt:

Knop

Commando

button_up

controller.button_up.pressing() — De Omhoog-knop

button_down

controller.button_down.pressing() — De Omlaag-knop

button_left

controller.button_left.pressing() — De linker knop

button_right

controller.button_right.pressing() — De Rechter knop

button_stick

controller.button_stick.pressing() — De Joystick-knop

VEX AIM One Stick Controller met een joystick aan de linkerkant en vier knoppen aan de rechterkant. De joystick en de vier knoppen zijn gemarkeerd.

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 retourneert de positie van een joystick-as als een getal van -100 tot 100.

Deze methode moet worden aangeroepen op een specifiek asobject, zoals controller.axis1.

Gebruik:
Een van de twee beschikbare asobjecten kan met deze methode worden gebruikt:

As

Commando

axis1

controller.axis1.position() — De verticale as

axis2

controller.axis2.position() — De horizontale as

VEX AIM-controller met een joystick aan de linkerkant en vier knoppen aan de rechterkant. De assen 1 en 2 van de joystick zijn gemarkeerd.

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 geeft aan of de controller verbonden is.

  • True — De controller is verbonden.

  • False — De controller is niet aangesloten.

Usage:
controller.is_connected()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# 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 retourneert het batterijniveau van de controller als een getal van 0 tot 100.

Usage:
controller.get_battery_level()

Parameters

Beschrijving

Deze methode heeft geen parameters.

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

Terugbelverzoeken#

.pressed#

.pressed voert een functie uit wanneer de opgegeven knop wordt ingedrukt. Zodra deze is gebruikt, wordt de functie automatisch uitgevoerd elke keer dat die knop wordt ingedrukt.

Gebruik:
Een van de vijf beschikbare knopobjecten kan met deze methode worden gebruikt:

Knop

Commando

button_up

controller.button_up.pressed(callback, arg) — De Omhoog-knop

button_down

controller.button_down.pressed(callback, arg) — De Omlaag-knop

button_left

controller.button_left.pressed(callback, arg) — De linker knop

button_right

controller.button_right.pressed(callback, arg) — De Rechter knop

button_stick

controller.button_stick.pressed(callback, arg) — De Joystick-knop

VEX AIM One Stick Controller met een joystick aan de linkerkant en vier knoppen aan de rechterkant. De joystick en de vier knoppen zijn gemarkeerd.

Parameter

Beschrijving

callback

Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de opgegeven knop wordt ingedrukt.

arg

Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Events gebruiken met parameters voor meer informatie.

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

controller.button_up.pressed(kick_object)

.released#

.released voert een functie uit wanneer de opgegeven knop wordt losgelaten. Zodra deze is gebruikt, wordt de functie automatisch uitgevoerd elke keer dat die knop wordt losgelaten.

Gebruik:
Een van de vijf beschikbare knopobjecten kan met deze methode worden gebruikt:

Knop

Commando

button_up

controller.button_up.released(callback, arg) — De Omhoog-knop

button_down

controller.button_down.released(callback, arg) — De Omlaag-knop

button_left

controller.button_left.released(callback, arg) — De Linker knop

button_right

controller.button_right.released(callback, arg) — De Rechter knop

button_stick

controller.button_stick.released(callback, arg) — De Joystick-knop

VEX AIM One Stick Controller met een joystick aan de linkerkant en vier knoppen aan de rechterkant. De joystick en de vier knoppen zijn gemarkeerd.

Parameter

Beschrijving

callback

Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de opgegeven knop wordt losgelaten.

arg

Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Events gebruiken met parameters voor meer informatie.

# 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 voert een functie uit wanneer de positie van de joystick verandert langs de opgegeven as. Eenmaal gebruikt, wordt de functie automatisch uitgevoerd telkens wanneer de positie van de joystick langs die as verandert.

Gebruik:
Een van de twee beschikbare asobjecten kan met deze methode worden gebruikt:

As

Commando

axis1

controller.axis1.changed(callback, arg) — De verticale as

axis2

controller.axis2.changed(callback, arg) — De horizontale as

VEX AIM-controller met een joystick aan de linkerkant en vier knoppen aan de rechterkant. De assen 1 en 2 van de joystick zijn gemarkeerd.

Parameter

Beschrijving

callback

Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de positie van de joystick verandert langs de opgegeven as.

arg

Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Events gebruiken met parameters voor meer informatie.

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

controller.axis1.changed(move_joystick)