MODE 4 — JOYSTICK

Easy · 45 min · Fast kostenlos

Ziel & Anwendung

Steuere zwei Servos direkt mit dem Joystick — mit eingebautem Deadzone-Filter für ruhige Nullstellung — und ein dritter Servo folgt automatisch dem Lichtsensor.

  • Joystick-Rohdaten mit Deadzone-Kalibrierung verarbeiten.
  • Analogen Lichtsensor (LDR) als automatische Servo-Steuerung nutzen.
  • Unterschied zwischen manueller und automatischer Aktorsteuerung verstehen.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoJoystick X — mit Deadzone-Filter
S2180°-ServoJoystick Y — mit Deadzone-Filter
S3180°-ServoLicht-Zeiger — folgt automatisch dem LDR
S4360°-ServoTurbo-Anzeige — dreht bei extremem Joystick-Ausschlag
S5360°-ServoTurbo-Anzeige 2 — gegenläufig zu S4
S6180°-ServoExtrem-Fähnchen — merkt sich die weiteste X-Auslenkung
STEPPERSchrittmotorZählt jeden vollen Joystick-Bewegungszyklus
DCDC-MotorKurzer Impuls bei jedem Tastendruck der Joystick-Taste

Materialliste

  • 3 Kartonzeiger ca. 6 × 1 cm für S1/S2/S3
  • 1 Kartonbasis
  • Optional: kleines Spiegel- oder Alufolie-Stück für LDR-Tests

Step-by-Step Tutorial

  1. Drei Anzeigeservos mit Zeigern bestücken

    Schneide drei Kartonpfeile. Schraube Servo-Horn auf S1, klebe Zeiger auf Horn. Wiederhole für S2 und S3. Auf Basis aufkleben, Beschriftung: 'JX', 'JY', 'LDR'.

    Check: S1 = Joystick X, S2 = Joystick Y, S3 = LDR-Licht — alle beschriftet

    Tipp: S1 und S2 reagieren auf den Joystick. S3 ist automatisch und folgt dem Licht — beschrifte ihn anders (z. B. gelb) zur Unterscheidung.

  2. Leichtgängigkeits-Test

    Alle Zeiger von Hand durchdrehen. Erst wenn alle leicht laufen, ProtoPeaks einschalten.

    Check: Alle 3 Zeiger drehen leicht von Hand

    Tipp: Besonders S3 (LDR) sollte sehr leichtgängig sein, da er sich automatisch und langsam bewegt.

  3. MODE 4 aktivieren — Joystick testen

    EasySensors → MODE 4. Joystick langsam aus der Mitte bewegen: S1 und S2 folgen. In der Nullstellung stehen die Zeiger still — das ist die Deadzone. Display zeigt Joystick X/Y-Rohwerte (0–4095) und LDR-Wert.

    Check: Joystick links/rechts bewegt S1, vor/zurück bewegt S2. Bei Nullstellung stehen beide Zeiger in der Mitte.

    Tipp: Die Deadzone von 150 Units filtert kleine Joystick-Zitterbewegungen heraus — der Zeiger bleibt in der Mitte solange der Joystick kaum bewegt wird.

  4. LDR-Automatik testen

    Hand über den LDR halten: S3 dreht sich. Taschenlampe darauf richten: S3 in andere Richtung. Der LDR-Wert (0–4095) wird auf 1000–2000µs gemappt. Heller = höherer Wert = Zeiger in eine Richtung.

    Check: S3 dreht sich wenn Licht auf LDR fällt oder verdeckt wird

    Tipp: Taschenlampe oder Hand über den LDR halten für schnellen Wechsel.

  5. Turbo und Extrem-Fähnchen testen

    Baue zwei kleine Scheiben für die Turbo-Anzeige und ein Fähnchen, das die bisher weiteste X-Auslenkung markiert. Joystick bis zum Anschlag drücken: Turbo-Scheiben drehen an, das Fähnchen bleibt auf der Extremposition stehen, auch wenn du zurück zur Mitte gehst.

    Check: Joystick bis zum Anschlag auslenken: Turbo-Scheiben drehen gegenläufig, Extrem-Fähnchen merkt sich die weiteste Auslenkung

  6. Joystick-Button und Buzzer testen

    Joystick-Knopf drücken und halten: Buzzer gibt HEARTBEAT-Rhythmus. Loslassen: Buzzer stoppt. Das ist das gesamte Verhalten von MODE 4 — übersichtlich und erweiterbar.

    Check: Joystick-Knopf drücken aktiviert HEARTBEAT-Muster im Buzzer

    Tipp: Der Joystick-Button ist nützlich als Bestätigungs-Signal in eigenen Projekten.

Troubleshooting

  • Zeiger driften langsam von der Mitte auch ohne Joystick-Eingabe — Deadzone auf 200 erhöhen: `applyDeadzone(..., 0, 200)`. Joystick hat mechanischen Nullpunkt-Versatz.
  • S3 (LDR) bewegt sich kaum — LDR braucht deutlichen Helligkeitsunterschied. Im Zimmer ist oft zu wenig Kontrast. Taschenlampe direkt auf LDR halten oder mit der Hand vollständig abdecken.
  • Joystick-Button wird nicht erkannt — JoystickButton ist ein digitaler Eingang. Prüfen ob er im ProtoPeaks als aktiv LOW oder HIGH konfiguriert ist.

Modifikationen & Sicherheit

  • Pro-Tipp: Die Deadzone von 150 im Code anpassen — größere Werte machen den Joystick träger, kleinere Werte sensibler.
  • Erweiterung: S3 (LDR) auf einen Sonnennachführungs-Arm montieren — der Servo dreht sich automatisch zur hellsten Lichtquelle.
  • Erweiterung: Mit dem LDR-Wert den DC-Motor steuern statt S3 — helles Licht = schneller Motor.

Wichtige Code-Teile

// Joystick mit Deadzone-Filter (150 Units Schwelle)
int jxRaw = applyDeadzone((int)JoystickX - 2048, 0, 150);
int jyRaw = applyDeadzone((int)JoystickY - 2048, 0, 150);
servocontroller.setServoPulse(1, constrain(1500 + jxRaw / 2, 1000, 2000));
servocontroller.setServoPulse(2, constrain(1500 + jyRaw / 2, 1000, 2000));
// S3 folgt LDR automatisch
servocontroller.setServoPulse(3, mapLDR);
// Joystick-Button = Buzzer-Feedback
if(JoystickButton) Buzzer.setMode(HEARTBEAT); else Buzzer.setValue(0);

Ähnliche Projekte

  • MODE 5 — TOUCH — Kapazitive Touch-Eingaben schalten Servos als Toggle-Schalter — berühren = ein, nochmal berühren = aus. Zwei Touch-Pads gleichzeitig lösen einen Sonderton aus.
  • MODE 1 — GYRO TRACK — Drei Servos spiegeln die Lage von ProtoPeaks in Echtzeit auf allen Achsen — kippe das Board, die Zeiger folgen sofort. Bei Neigung über 45° warnt der Buzzer.
  • MODE 1 — RC-CAR — Dein Karton-Flitzer mit allem Drumherum: Der Steuerknüppel gibt Gas und lenkt, während Heckspoiler, Kurvenlicht und Bremslicht wie bei einem echten Sportwagen ganz von allein mitspielen. Die Animation oben zeigt, wie die beiden Antriebsräder Gas und Lenkung mischen — genau dieses Auto rollt gleich durch dein Wohnzimmer.