Kontroller#
Introduktion#
VEX IQ-styrenheten (2:a generationen) har knappar och två joysticks. Styrmetoder kan användas för att kontrollera knapptryckningar, läsa av joystickrörelser, aktivera eller inaktivera konfigurerade styrenhetsåtgärder eller köra funktioner när styrenhetshändelser inträffar.
IQ (2:a generationen) Brain kan anslutas till antingen en IQ (2:a generationen) eller en IQ (1:a generationen) Controller. En IQ (1:a generationen) Controller måste ha en blå Smart Radio installerad.
Konfigurerade kontrollåtgärder är kontrollbeteenden som ställs in i Enheter-menyn. 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 som exempelnamn för controller. Ersätt det med ditt eget konfigurerade namn efter behov.
Nedan följer en lista över alla tillgängliga metoder:
Åtgärd — Aktivera eller inaktivera konfigurerade kontrollåtgärder.
remote_control_code_enabled— Aktiverar eller inaktiverar kontrollåtgärder som konfigurerats i Enhetsmenyn.
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.
Handling#
remote_control_code_enabled#
remote_control_code_enabled är en variabel som aktiverar eller inaktiverar kontrollåtgärder som konfigurerats i menyn Enheter. Kontrollkonfigurerade åtgärder är aktiverade som standard.
Usage:
remote_control_code_enabled = state
Värde |
Beskrivning |
|---|---|
|
Aktiverar kontrollkonfigurerade åtgärder. |
|
Inaktiverar kontrollens konfigurerade åtgärder. |
# Use custom controller code, then re-enable configured actions
remote_control_code_enabled = False
while True:
if controller.axisA.position() > 0:
drivetrain.drive(FORWARD)
elif controller.axisA.position() < 0:
drivetrain.drive(REVERSE)
elif controller.buttonEUp.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
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.buttonEUp.
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 E Up is held
while True:
if controller.buttonEUp.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.axisA.
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.axisB.position() > 10:
drivetrain.turn(RIGHT)
elif controller.axisB.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 E Up is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller.buttonEUp.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. |
# Stop driving when E Up is released
def stop_driving():
drivetrain.stop()
controller.buttonEUp.released(stop_driving)
.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 right joystick moves
def beep():
brain.play_sound(SoundType.TADA)
controller.axisD.changed(beep)
Konstruktörer#
Controller#
Controller skapar ett Controller-objekt. Att skapa ett Controller-objekt manuellt behövs endast när en regulator konfigureras utanför VEXcode.
Usage:
Controller()
Parametrar |
Beskrivning |
|---|---|
Denna konstruktor har inga parametrar. |
# Create a Controller object
my_controller = Controller()