Kontroller#
Introduktion#
V5-kontrollen har knappar, två joysticks, en rumblemotor och en skärm. Kontrollmetoder kan användas för att kontrollera knapptryckningar, läsa av joystickrörelser, rumla kontrollen, aktivera eller inaktivera konfigurerade kontrollåtgärder, köra funktioner när kontrollhändelser inträffar eller visa text på kontrollskärmen.
Konfigurerade kontrollåtgärder är kontrollbeteenden som ställs in i menyn Enheter. Använd remote_control_code_enabled för att tillfälligt aktivera eller inaktivera dessa konfigurerade åtgärder under ett projekt.
Den här sidan använder controller_1 som exempelnamn för kontrollenheten. Ersätt det med ditt eget konfigurerade namn efter behov.
Nedan följer en lista över alla tillgängliga metoder:
Åtgärder — Rulla kontrollenheten eller aktivera/avaktivera konfigurerade kontrollåtgärder.
rumble— Spelar upp ett rumble-mönster på kontrollenheten.remote_control_code_enabled— Aktiverar eller inaktiverar kontrollfunktioner som konfigurerats i menyn Enheter.
Skärm — Visar text och siffror på kontrollskärmen.
print— Visar text, siffror eller variabelvärden på kontrollenhetens skärm.set_cursor— Flyttar markören till en angiven rad och kolumn på kontrollskärmen.column— Returnerar den aktuella markörkolumnen på kontrollskärmen.row— Returnerar den aktuella markörraden på kontrollskärmen.clear_screen— Rensar kontrollskärmen.clear_row— Rensar en rad på kontrollskärmen.next_row— Flyttar markören till nästa rad på kontrollskärmen.
Getters — Läser knappstatus och joystickpositioner.
.pressing— Returnerar om en specifik knapp trycks ned..position— Returnerar positionen för en specificerad joystickaxel.
Å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.
Konstruktor — Skapa ett Controller-objekt manuellt.
Controller— Skapar ett Controller-objekt.
Åtgärder#
rumble#
rumble spelar ett rumblemönster på Controllern. I mönstersträngen är punkter korta rumblesignaler, bindestreck är långa rumblesignaler och mellanslag är pauser.
Usage:
controller_1.rumble(pattern)
Parameter |
Beskrivning |
|---|---|
|
En sträng bestående av punkter, bindestreck och mellanslag som representerar mullermönstret. |
# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")
remote_control_code_enabled#
remote_control_code_enabled är en variabel som aktiverar eller inaktiverar kontrollfunktioner som konfigurerats i menyn Enheter. Kontrollfunktioner som konfigurerats är aktiverade som standard.
Usage:
remote_control_code_enabled = state
Värde |
Beskrivning |
|---|---|
|
Aktiverar kontrollenhetskonfigurerade åtgärder. |
|
Inaktiverar kontrollenhetens konfigurerade åtgärder. |
# Drive forward or backward using the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller_1.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use Controller configured actions again
elif controller_1.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
Skärm#
V5-kontrollens skärm har 3 rader och 19 kolumner för visning av text och siffror.

print#
controller_1.screen.print visar text, siffror eller variabelvärden på kontrollenhetens skärm med hjälp av markörens aktuella position.
Usage:
controller_1.screen.print(value, sep, precision)
Parameter |
Beskrivning |
|---|---|
|
Texten, numret eller variabelvärdet som ska visas på kontrollenhetens skärm. Mer än ett värde kan skrivas ut genom att separera värdena med kommatecken. |
|
Valfritt. En sträng som placeras mellan värden. Detta måste skrivas som ett nyckelordsargument, till exempel |
|
Valfritt. Antalet decimaler som ska visas vid utskrift av enkla tal. Detta måste skrivas som ett nyckelordsargument, till exempel |
# Print a number on the Controller screen
controller_1.screen.print(1)
# Print multiple numbers separated by hyphens
controller_1.screen.print(1, 2, 3, 4, sep="-")
# Print a number using one decimal place
controller_1.screen.print(1 / 3, precision=1)
set_cursor#
set_cursor flyttar markören till en angiven rad och kolumn på kontrollenhetens skärm. Nästa utskrivna värde visas på den positionen.
Usage:
controller_1.screen.set_cursor(row, col)
Parameter |
Beskrivning |
|---|---|
|
Markörens rad, från |
|
Markörens kolumn, från |
# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")
column#
column returnerar den aktuella kolumnen där texten kommer att skrivas ut på kontrollenhetens skärm.
Usage:
controller_1.screen.column()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())
row#
row returnerar den aktuella raden där texten kommer att skrivas ut på kontrollenhetens skärm.
Usage:
controller_1.screen.row()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())
clear_screen#
clear_screen rensar kontrollskärmen och flyttar markören tillbaka till startpositionen.
Usage:
controller_1.screen.clear_screen()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Print text, then clear the Controller screen
controller_1.screen.print("VEX V5")
wait(2, SECONDS)
controller_1.screen.clear_screen()
clear_row#
clear_row rensar en rad på kontrollskärmen.
Usage:
controller_1.screen.clear_row(row)
Parameter |
Beskrivning |
|---|---|
|
Valfritt. Raden som ska rensas, från |
# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)
next_row#
next_row flyttar markören till kolumn 1 på nästa rad i kontrollskärmen. Nästa utskrivna värde visas på den raden.
Usage:
controller_1.screen.next_row()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")
Getters#
.pressing#
.pressing returnerar om en specifik knapp på kontrollenheten trycks ned för närvarande. Denna metod måste anropas på ett specifikt knappobjekt, till exempel controller_1.buttonA.
True— Den angivna knappen trycks ned.False— Den angivna knappen trycks inte ned.
Användning:
Ett av de tillgängliga knappobjekten kan användas med denna metod:

Knapp |
Kommando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Turn right while L1 is pressed
while True:
if controller_1.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
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_1.axis1.
Användning:
Ett av de tillgängliga axelobjekten kan användas med denna metod:

Axel |
Kommando |
|---|---|
|
|
|
|
|
|
|
|
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# Turn with the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller_1.axis4.position() < -10:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
wait(20, MSEC)
Å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 de tillgängliga knappobjekten kan användas med denna metod:

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. |
# Drive forward when A is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller_1.buttonA.pressed(drive_forward)
.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 de tillgängliga knappobjekten kan användas med denna metod:

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. |
# Drive backward when A is released
def back_up():
drivetrain.drive_for(REVERSE, 100, MM)
controller_1.buttonA.released(back_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 de tillgängliga axelobjekten kan användas med denna metod:

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. |
# Play a sound when the left joystick moves
def tada_sound():
brain.play_sound(SoundType.TADA)
controller_1.axis4.changed(tada_sound)
Konstruktörer#
Controller#
Controller skapar ett Controller-objekt. Att skapa ett Controller-objekt manuellt behövs endast när man konfigurerar en regulator utanför VEXcode.
Usage:
Controller(controller_type)
Parameter |
Beskrivning |
|---|---|
|
Valfritt. Kontrolltypen som ska skapas: |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)