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.
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
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 |
|---|---|
|
|
|
|
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
Parameter |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de opgegeven knop wordt ingedrukt. |
|
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
Parameter |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de opgegeven knop wordt losgelaten. |
|
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 |
|---|---|
|
|
|
|
Parameter |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die elke keer wordt uitgevoerd wanneer de positie van de joystick verandert langs de opgegeven as. |
|
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)