Kontroller#
Introduktion#
VEX AIM One Stick Controller har fyra knappar och en joystick. Joysticken kan flyttas längs två axlar och kan även tryckas ned som en knapp.
Styrmetoder kan användas för att kontrollera knapptryckningar, läsa av joystickrörelser, kontrollera anslutnings- och batteristatus eller köra funktioner när styrenhetshändelser inträffar.
Nedan följer en lista över alla metoder:
Getters — Läs knapp-, joystick-, anslutnings- och batteristatus.
.pressing— Returnerar om en specifik knapp trycks ned..position— Returnerar joystickens position längs en angiven axel.is_connected— Returnerar om styrenheten är ansluten.get_battery_level— Returnerar handkontrollens batterinivå.
Återanrop — Kör funktioner när styrenhetens inmatning ändras.
Getters#
.pressing#
.pressing returnerar om en specifik knapp på handkontrollen trycks ned för närvarande. Denna metod måste anropas på ett specifikt knappobjekt, till exempel controller.button_up.
True— Den angivna knappen trycks ned.False— Den angivna knappen trycks inte ned.
Användning:
Ett av fem tillgängliga knappobjekt kan användas med den här metoden:
Knapp |
Kommando |
|---|---|
|
|
|
|
|
|
|
|
|
|
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar positionen för en joystickaxel som ett tal från -100 till 100.
Den här metoden måste anropas på ett specifikt axelobjekt, till exempel controller.axis1.
Användning:
Ett av två tillgängliga axelobjekt kan användas med den här metoden:
Axel |
Kommando |
|---|---|
|
|
|
|
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar om styrenheten är ansluten.
True— Styrenheten är ansluten.False— Styrenheten är inte ansluten.
Usage:
controller.is_connected()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 returnerar handkontrollens batterinivå som ett tal från 0 till 100.
Usage:
controller.get_battery_level()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Display the controller's battery level
robot.screen.print(controller.get_battery_level())
Å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:
Ett av fem tillgängliga knappobjekt kan användas med den här metoden:
Knapp |
Kommando |
|---|---|
|
|
|
|
|
|
|
|
|
|
Parameter |
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. |
# Kick hard when the Up button is pressed
def kick_object():
robot.kicker.kick(HARD)
controller.button_up.pressed(kick_object)
.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:
Ett av fem tillgängliga knappobjekt kan användas med den här metoden:
Knapp |
Kommando |
|---|---|
|
|
|
|
|
|
|
|
|
|
Parameter |
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 händelser med parametrar för mer information. |
# 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 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ändning:
Ett av två tillgängliga axelobjekt kan användas med den här metoden:
Axel |
Kommando |
|---|---|
|
|
|
|
Parameter |
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 händelser med parametrar för mer information. |
# Show an emoji when the joystick moves up or down
def move_joystick():
robot.screen.show_emoji(CONFUSED)
controller.axis1.changed(move_joystick)