Joystick

Der Joystick ähnelt dem eines Controllers einer Spielkonsole. Jeder Knopf kann in jede Himmelsrichtung bewegt werden. Indem der Joystick nach unten gedrückt wird, kann eine zusätzliche Taste genutzt werden. So können Fahrzeuge und Roboter gesteuert oder auch eigene Spiele gespielt werden.
Es werden zwei Signale über die Pins C16 und C17 empfangen. C16 gibt die Werte der X-Achse und C17 die Werte der Y-Achse wieder.

Weitere Informationen zum Sensor gibt es hier.
Joystick kann hier bestellt werden.

Anschluss: A1
Schnittstelle: analog
Ausgabewerte:

XY: ca. 200 - 800
gedrückt: 1023

Makecode

Die "Joystick"-Blöcke sind im Grove Paket enthalten. Auch hier gibt es zwei Möglichkeiten, die Werte des Joysticks auszulesen.
Entweder wird eine Dauerschleife verwendet und die Joystickrichtungen ausgelesen und in einer wenn/dann-Bedingung verglichen oder es wird der Eventbaustein "wenn Grove - Joystickrichtung x" genutzt.

video hex

Open Roberta Lab

In der Roboterkonfiguration müssen zwei Sensoren angelegt werden. Einmal der Sensor für den X-Wert an C16 und der Sensor für den Y-Wert an C17.
Da es keine Library für die Richtungen des Joysticks gibt, müssen die Sensorwerte entweder selber interpretiert oder einem eigenen Wertebereich zugeordnet werden.
Wenn der Joystick unangetastet in der Mitte liegt, liegen die X und Y-Werte in einem Bereich von ungefähr 500-520. Wenn der Joystick nach oben gerichtet ist (je nachdem von welcher Perspektive aus betrachtet), erhöht sich der X-Wert und geht bis maximal 800. Wenn dieser nach unten gerichtet ist, fällt der Wert bis minimal 200. Gleiches gilt für den Y-Wert nach links und rechts.
Das Drücken der Taste kann abgefragt werden, indem in der Wenn/dann-Bedingung verglichen wird, ob der Wert dem maximalen analogen Wert von 1023 entspricht. Das komplette Programm ist in der XML-Datei zu finden.

xml