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.

  • .pressed — Kör en funktion när en angiven knapp trycks ned.

  • .released — Kör en funktion när en angiven knapp släpps.

  • .changed — Kör en funktion när joystickens position ändras längs en angiven axel.

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

button_up

controller.button_up.pressing() — Upp-knappen

button_down

controller.button_down.pressing() — Nedåt-knappen

button_left

controller.button_left.pressing() — Vänsterknappen

button_right

controller.button_right.pressing() — Höger-knappen

button_stick

controller.button_stick.pressing() — Joystick-knappen

VEX AIM One Stick-kontroll med en joystick till vänster och fyra knappar till höger. Joysticken och de fyra knapparna är markerade.

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

axis1

controller.axis1.position() — Den vertikala axeln

axis2

controller.axis2.position() — Den horisontella axeln

VEX AIM-kontroll med en joystick till vänster och fyra knappar till höger. Axlarna 1 och 2 för joysticken är markerade.

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

button_up

controller.button_up.pressed(callback, arg) — Upp-knappen

button_down

controller.button_down.pressed(callback, arg) — Nedåt-knappen

button_left

controller.button_left.pressed(callback, arg) — Vänsterknapp

button_right

controller.button_right.pressed(callback, arg) — Höger-knappen

button_stick

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

VEX AIM One Stick-kontroll med en joystick till vänster och fyra knappar till höger. Joysticken och de fyra knapparna är markerade.

Parameter

Beskrivning

callback

En tidigare definierad funktion som ska köras varje gång den angivna knappen trycks ned.

arg

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

button_up

controller.button_up.released(callback, arg) — Upp-knappen

button_down

controller.button_down.released(callback, arg) — Nedåt-knappen

button_left

controller.button_left.released(callback, arg) — Vänster knapp

button_right

controller.button_right.released(callback, arg) — Höger-knappen

button_stick

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

VEX AIM One Stick-kontroll med en joystick till vänster och fyra knappar till höger. Joysticken och de fyra knapparna är markerade.

Parameter

Beskrivning

callback

En tidigare definierad funktion som ska köras varje gång den angivna knappen släpps.

arg

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

axis1

controller.axis1.changed(callback, arg) — Den vertikala axeln

axis2

controller.axis2.changed(callback, arg) — Den horisontella axeln

VEX AIM-kontroll med en joystick till vänster och fyra knappar till höger. Axlarna 1 och 2 för joysticken är markerade.

Parameter

Beskrivning

callback

En tidigare definierad funktion som körs varje gång joystickens position ändras längs den angivna axeln.

arg

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)