Regler#

Einführung#

Der V5-Controller verfügt über Tasten, zwei Joysticks, einen Vibrationsmotor und ein Display. Controller-Blöcke können verwendet werden, um Tastendrücke zu überprüfen, Joystick-Bewegungen auszulesen, den Controller vibrieren zu lassen, konfigurierte Controller-Aktionen zu aktivieren oder zu deaktivieren, Blöcke bei Controller-Ereignissen auszuführen oder Text auf dem Controller-Display anzuzeigen.

Konfigurierte Controller-Aktionen sind im Menü „Geräte“ festgelegte Controller-Verhaltensweisen. Verwenden Sie den Block „Controller aktivieren/deaktivieren“, um diese konfigurierten Aktionen während eines Projekts vorübergehend zu aktivieren oder zu deaktivieren.

Nachfolgend finden Sie eine Liste der verfügbaren Blöcke:

Werte – Status der Controller-Tasten prüfen oder Joystick-Position auslesen.

Aktionen – Den Controller vibrieren lassen, konfigurierte Controller-Aktionen aktivieren/deaktivieren oder Blöcke ausführen, wenn sich die Controller-Eingabe ändert.

Bildschirm – Anzeige von Text und Zahlen auf dem Controller-Bildschirm.

Werte#

Controller gedrückt?#

Der boolesche Block Controller gedrückt? gibt zurück, ob eine ausgewählte Controller-Taste gedrückt wird.

Vorder- und Rückseite des V5-Controllers mit gelb hervorgehobenen Tasten. Auf der Vorderseite befinden sich links die Pfeiltasten (oben, unten, links, rechts) und rechts die Tasten X, A, B, Y (im Uhrzeigersinn von 12 Uhr aus). Auf der Rückseite befinden sich links und rechts die Tasten L1, L2, R1 und R2.

Controller gedrückt? Boolescher Block#
<[Controller1 v] [▲ v] gedrückt?>

Parameter

Beschreibung

Gerät

Der zu verwendende Controller wird im Gerätefenster konfiguriert.

Taste

Die zu prüfende Taste:

  • ▲
  • ▼
  • ◀
  • ▶
  • X
  • B
  • Y
  • A
  • L1
  • L2
  • R1
  • R2

Beispiel

Beim Start fährt das Fahrzeug vorwärts, solange die X-Taste gedrückt wird.#
wenn gestartet
[Drive forward while X is pressed.]
für immer
wenn <[Controller1 v] [X v] gedrückt?> dann
fahre [vorwärts v]
sonst
Fahren stoppen
Ende
Ende

Controller-Position#

Der Controller-Positions-Reporterblock gibt die Joystick-Position entlang einer ausgewählten Achse als Zahl von -100 bis 100 zurück.

Ein VEX V5 Controller mit beschrifteten Achsen um die Joysticks. Achse 1 und 2 befinden sich um den rechten Joystick, Achse 3 und 4 um den linken.

Controller-Position Reporterblock#
([Controller1 v] [1 v] position :: sensing)

Parameter

Beschreibung

Gerät

Der zu verwendende Controller wird im Gerätefenster konfiguriert.

Achse

Die zu meldenden Joystick-Achsen:

  • 1 — rechter Joystick, horizontale Achse
  • 2 — rechter Joystick, vertikale Achse
  • 3 — linker Joystick, vertikale Achse
  • 4 — linker Joystick, horizontale Achse

Beispiel

Beim Start fährt das Fahrzeug vorwärts, solange der linke Joystick nach oben gedrückt wird.#
wenn gestartet
[Drive forward while the left joystick is pushed up.]
für immer
wenn <([Controller1 v] [3 v] position :: sensing) [math_greater_than v] [0]> dann
fahre [vorwärts v]
sonst
Fahren stoppen
Ende
Ende

Aktionen#

Rumble auf dem Controller aktivieren#

Der Play Rumble on Controller-Stapelblock gibt ein Rumble-Muster auf dem Controller wieder.

Rumble auf Controller-Stapelblock spielen#
spiele Rumble [Lang v] auf [Controller1 v]

Parameter

Beschreibung

Muster

Das Vibrationsmuster für den Controller:

  • Lang — eine lange Vibration
  • Kurz — eine kurze Vibration
  • Pulsierend — ein Muster aus ein- und ausschaltenden Vibrationen

Gerät

Der zu verwendende Controller wird im Gerätefenster konfiguriert.

Beispiel

Beim Drücken der R1-Taste ertönt ein kurzes Rütteln im Controller.#
wenn[Controller1 v] Taste [R1 v] [gedrückt v] :: hat events
spiele Rumble [Kurz v] auf [Controller1 v]

Controller aktivieren/deaktivieren#

Der Controller aktivieren/deaktivieren-Block aktiviert oder deaktiviert die im Gerätemenü konfigurierten Controller-Aktionen für alle angeschlossenen Controller.

Controller-Aktivierungs-/Deaktivierungs-Stack-Block#
Controller [Deaktivieren v]

Parameter

Beschreibung

Zustand

Der Controller konfigurierte Aktionsstatus: Deaktivieren oder Aktivieren.

Beispiel

Beim Start werden die konfigurierten Controller-Aktionen deaktiviert, solange der Roboter vorwärts fährt.#
wenn gestartet
[Disable Controller configured actions until the drive movement is done.]
Controller [Deaktivieren v]
fahre [vorwärts v] für (6) [Zoll v] ▶
Controller [Aktivieren v]

wenn die Controller-Taste gedrückt wird#

Der wenn Controller-Taste gedrückt wird Hat-Block führt den zugehörigen Stack aus, wenn eine ausgewählte Controller-Taste gedrückt oder losgelassen wird.

Vorder- und Rückseite des V5-Controllers mit gelb hervorgehobenen Tasten. Auf der Vorderseite befinden sich links die Pfeiltasten (oben, unten, links, rechts) und rechts die Tasten X, A, B, Y (im Uhrzeigersinn von 12 Uhr aus). Auf der Rückseite befinden sich links und rechts die Tasten L1, L2, R1 und R2.

Wenn die Controller-Taste gedrückt wird, blockiert der Hutblock#
wenn[Controller1 v] Taste [▲ v] [gedrückt v] :: hat events

Parameter

Beschreibung

Gerät

Der zu verwendende Controller wird im Gerätefenster konfiguriert.

Taste

Die zu prüfende Taste:

  • ▲
  • ▼
  • ◀
  • ▶
  • X
  • B
  • Y
  • A
  • L1
  • L2
  • R1
  • R2

Schaltflächenstatus

Das Ereignis, das den zugehörigen Stack auslöst: gedrückt oder losgelassen.

Beispiel

Beim Drücken der R1-Taste fährt das Fahrzeug 200 Millimeter vorwärts.#
wenn[Controller1 v] Taste [R1 v] [gedrückt v] :: hat events
[Drive forward when R1 is pressed.]
fahre [vorwärts v] für (200) [mm v] ▶

wenn die Controller-Achse geändert wird#

Der Hat-Block wenn die Controller-Achse geändert wird führt den zugehörigen Stack aus, wenn sich die Position eines Joysticks entlang der ausgewählten Achse ändert.

Ein VEX V5 Controller mit beschrifteten Achsen um die Joysticks. Achse 1 und 2 befinden sich um den rechten Joystick, Achse 3 und 4 um den linken.

Wenn die Controller-Achse geändert wird, Hutblock#
when [Controller1 v] axis [1 v] is changed :: hat events

Parameter

Beschreibung

Gerät

Der zu verwendende Controller wird im Gerätefenster konfiguriert.

Achse

Die zu überprüfenden Joystick-Achsen:

  • 1 — rechter Joystick, horizontale Achse
  • 2 — rechter Joystick, vertikale Achse
  • 3 — linker Joystick, vertikale Achse
  • 4 — linker Joystick, horizontale Achse

Beispiel

Wenn sich die Position des Joysticks entlang der Controller-Achse 3 ändert, fährt er 200 Millimeter vorwärts.#
when [Controller1 v] axis [3 v] is changed :: hat events
[Drive forward when the joystick's position changes along axis 3.]
fahre [vorwärts v] für (200) [mm v] ▶

Bildschirm#

Cursor auf Zeile/Spalte im Controller setzen#

Der Stack-Block set cursor to row column on controller positioniert den Cursor auf der Controller-Anzeige in der angegebenen Zeile und Spalte. Der nächste auszugebende Wert erscheint an dieser Position.

Cursor auf Zeile/Spalte im Controller-Stack-Block setzen#
setze Cursor auf Zeile [1] Spalte [1] auf [Controller1 v] :: custom-controller-inertial-timer

Parameter

Beschreibung

Reihe

Die Zeile, in die der Cursor auf dem Controller-Bildschirm bewegt werden soll.

Spalte

Die Spalte, in die der Cursor auf dem Controller-Bildschirm bewegt werden soll.

Gerät

Der zu verwendende Controller wird im Gerätefenster konfiguriert.

Beispiel

Beim Start wird Text in Zeile 2, Spalte 1 auf dem Controller-Bildschirm ausgegeben.#
wenn gestartet
[Display a message on row 2.]
setze Cursor auf Zeile [2] Spalte [1] auf [Controller1 v] :: custom-controller-inertial-timer
drucke [Ready] auf [Controller1 v] ▶ :: custom-controller-inertial-timer

Cursor auf die nächste Zeile im Controller setzen#

Der Stack-Block set cursor to next row on controller bewegt den Cursor in die erste Spalte der nächsten Zeile des Controller-Bildschirms. Der nächste auszugebende Wert erscheint in dieser Zeile.

Cursor auf die nächste Zeile im Controller-Stack-Block setzen#
setze Cursor in nächste Zeile auf [Controller1 v] :: custom-controller-inertial-timer

Parameter

Beschreibung

Gerät

Der zu verwendende Controller wird im Gerätefenster konfiguriert.

Beispiel

Beim Start werden zwei Zeilen auf dem Controller-Bildschirm ausgegeben.#
wenn gestartet
[Display two rows of text.]
drucke [Row 1] auf [Controller1 v] ▶ :: custom-controller-inertial-timer
setze Cursor in nächste Zeile auf [Controller1 v] :: custom-controller-inertial-timer
drucke [Row 2] auf [Controller1 v] ▶ :: custom-controller-inertial-timer

Druckgenauigkeit am Controller einstellen#

Der Druckgenauigkeit auf dem Controller festlegen-Block bestimmt, wie viele Dezimalstellen beim Drucken von Zahlen auf dem Controller-Bildschirm angezeigt werden. Diese Einstellung gilt für Zahlen, die nach Verwendung dieses Blocks gedruckt werden.

Druckgenauigkeit auf Controller-Stack-Block einstellen#
setze Druckgenauigkeit auf [0.1 v] auf [Controller1 v] :: custom-controller-inertial-timer

Parameter

Beschreibung

Präzision

Die zu verwendende Druckgenauigkeit:

  • 1 — keine Dezimalstellen
  • 0,1 — 1 Dezimalstelle
  • 0,01 — 2 Dezimalstellen
  • 0,001 — 3 Dezimalstellen
  • Alle Ziffern — alle verfügbaren Dezimalstellen

Gerät

Der zu verwendende Controller wird im Gerätefenster konfiguriert.

Beispiel

Beim Start wird auf dem Controller-Bildschirm 1/3 mit zwei Dezimalstellen angezeigt.#
wenn gestartet
[Display 1/3 with two decimals.]
setze Druckgenauigkeit auf [0.01 v] auf [Controller1 v] :: custom-controller-inertial-timer
drucke ([1] [math_division v] [3]) auf [Controller1 v] ▶ :: custom-controller-inertial-timer

Clear Controller#

Der Controller löschen-Stapelblock löscht alle Zeilen auf dem Controller-Bildschirm und setzt den Cursor zurück in die erste Zeile.

Controller-Stapelblock löschen#
lösche [Controller1 v] :: custom-controller-inertial-timer

Parameter

Beschreibung

Gerät

Der zu verwendende Controller wird im Gerätefenster konfiguriert.

Beispiel

Beim Start wird ein Text ausgegeben, eine kurze Wartezeit eingehalten und anschließend der Controller-Bildschirm gelöscht.#
wenn gestartet
[Clear the Controller screen after printing.]
drucke [This will disappear...] auf [Controller1 v] ▶ :: custom-controller-inertial-timer
warte [2] Sekunden
lösche [Controller1 v] :: custom-controller-inertial-timer

Zeile auf dem Controller löschen#

Der Zeile auf dem Controller löschen-Stapelblock löscht eine einzelne Zeile auf dem Controller-Bildschirm.

Zeile im Controller-Stapelblock löschen#
lösche Zeile [1] auf [Controller1 v] :: custom-controller-inertial-timer

Parameter

Beschreibung

Reihe

Die Zeile, die auf dem Controller-Bildschirm gelöscht werden soll.

Gerät

Der zu verwendende Controller wird im Gerätefenster konfiguriert.

Beispiel

Beim Start wird die erste Zeile auf dem Controller-Bildschirm gelöscht.#
wenn gestartet
[Clear one row on the Controller screen.]
drucke [Row 1] auf [Controller1 v] ▶ :: custom-controller-inertial-timer
setze Cursor in nächste Zeile auf [Controller1 v] :: custom-controller-inertial-timer
drucke [Row 2] auf [Controller1 v] ▶ :: custom-controller-inertial-timer
warte [2] Sekunden
lösche Zeile [1] auf [Controller1 v] :: custom-controller-inertial-timer