MODE 4 — STICK CATCH

Medium · 1h · Fast kostenlos

Ziel & Anwendung

Drei Servos halten gemeinsam einen Stab in der Luft. JoystickButton startet die Sequenz: 500 ms Vorwarnung (Buzzer), dann lassen alle drei gleichzeitig los. Der Spieler muss den fallenden Stab innerhalb von 800 ms mit touch1 oder touch2 fangen. Reaktionszeit wird gemessen und die Bestzeit gespeichert.

  • Drei Servos synchron als Halterung und Auslöser eines Stabs einsetzen.
  • Zeitfenster-basiertes Catch-Spiel (800 ms) mit Reaktionszeit-Messung aufbauen.
  • Dreistufigen Zustandsautomat (Warten/Loslassen/Auswerten) mit Servo-Rückmeldung implementieren.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoHalterung 1, hält den Stab gemeinsam mit S2 und S3 fest
S2180°-ServoHalterung 2, hält den Stab gemeinsam mit S1 und S3 fest
S3180°-ServoHalterung 3, hält den Stab gemeinsam mit S1 und S2 fest
S4360°-ServoDreht kurz zur Vorwarnung, bevor die Servos loslassen
S5360°-ServoDreht gegenläufig als zusätzliches Vorwarnsignal
S6180°-ServoZeigt an, ob der letzte Fangversuch erfolgreich war
STEPPERSchrittmotorZählt erfolgreiche Fänge mechanisch mit
DCDC-MotorKurzer Vibrationsimpuls im Moment des Loslassens

Materialliste

  • Holzstäbchen oder Strohhalm ca. 20 cm lang als Fang-Stab
  • Drei Karton-Halterungen (je 4 × 3 cm) die am Servo-Horn befestigt werden
  • Karton-Basis ca. 20 × 10 cm als Servo-Träger
  • Gummiband als Rückholmechanismus für Halterungen
  • Klebeband und Heißkleber

Step-by-Step Tutorial

  1. Dreifach-Halterung für den Stab aufbauen

    Karton-Basis (20 × 10 cm) aufbauen. Drei Servos (S1, S2, S3) nebeneinander montieren. Jedes Horn trägt eine Karton-Halterung (4 × 3 cm, gebogen zu einem Halbkanal). In Wartestellung: Halbkanäle zeigen innen = Stab liegt drin. Beim Öffnen: Halbkanäle drehen nach außen = Stab fällt.

    Check: Alle drei Servo-Hörner klemmen den Stab in Wartestellung. Beim Öffnen lassen alle gleichzeitig los.

    Tipp: Halterungs-Karton so formen dass er in Wartestellung nach innen (greift) und beim Öffnen nach außen (lässt los) dreht — wie drei Finger die aufgehen.

  2. Stab-Halte-Test ohne Strom

    Holzstäbchen oder Strohhalm (20 cm) in Halterungen legen. Von Hand alle drei öffnen: fällt der Stab gleichmäßig? Kein Haken an einer Halterung? Stab wieder einlegen: sitzt er stabil? Erst dann einschalten.

    Check: Stab liegt stabil in allen drei Halterungen. Beim Öffnen (von Hand) fällt er sofort heraus.

    Tipp: Stab muss wirklich frei fallen können — keine Klemmung durch ungleichmäßige Halterungen. Alle drei Halterungen exakt auf gleicher Höhe montieren.

  3. Spielablauf-Zustandsautomat verstehen

    Phase 0: alle drei Halterungen halten, Stab liegt ruhig. JoystickButton: Phase 1, Buzzer und 500 ms Countdown. Phase 1 → 2: alle drei Halterungen gleichzeitig öffnen. Phase 2: touch1 oder touch2 innerhalb 800 ms = Treffer. Danach zurück zu Phase 0.

    Check: Phase 0=Wartestellung, Phase 1=Vorwarnung (500 ms), Phase 2=Fang-Fenster (800 ms)

    Tipp: Drei Phasen: Stab liegt ruhig, dann Buzzer-Vorwarnung mit Loslassen, dann Fang-Zeitfenster. Reaktion zu früh: Stab noch nicht gefallen — falsch.

  4. Leichtgängigkeits-Test ohne Strom

    S1/S2/S3 alle von Hand öffnen: Halterungen öffnen vollständig? Stab würde herausfallen? Zurück in Wartestellung: Stab sitzt wieder? Alle drei Servo-Zeiger klemmen nicht? Erst dann einschalten.

    Check: Alle Halterungen öffnen und schließen frei. Stab fällt sauber wenn Halterungen öffnen.

    Tipp: Halterungen müssen komplett nach außen kippen — nicht nur leicht öffnen. Hebelarm prüfen.

  5. MODE 4 aktivieren — Stick-Catch spielen

    Reaktionsspiele → MODE 4. Stab einlegen. Hand darunter positionieren. JoystickButton: Buzzer ertönt. Kurz danach: Stab fällt. touch1 oder touch2 drücken wenn Stab fällt. Reaktionszeit im Display. Nicht rechtzeitig gefangen: Buzzer SHORT_BLINK.

    Check: Stab liegt in Halterungen. JoystickButton startet. Buzzer warnt. Stab fällt. Schnell fangen.

    Tipp: Hand unter den Stab halten bevor JoystickButton gedrückt wird — nach Buzzer kommt Loslassen in etwa einem halben Wimpernschlag.

  6. Bestzeit verbessern

    Bestzeit im Display beobachten. Ziel: möglichst schnell fangen. 10 Runden spielen und Fortschritt beobachten.

    Check: Display und S6 zeigen, ob der letzte Versuch ein Treffer war

    Tipp: Antizipation trainieren: Buzzer abzählen und auf den Moment des Loslassens vorbereitet sein — nicht auf den Stab warten.

Troubleshooting

  • Alle drei Halterungen öffnen nicht gleichzeitig — Stab fällt schief — Alle drei Servos werden mit gleicher Bewegungsdauer und gleichem Zielwert angesteuert. Mechanische Ausrichtung prüfen: Halterungen müssen beim selben Servo-Winkel öffnen.
  • Catch wird nicht erkannt obwohl touch1 gedrückt — Der Druck muss als neue Berührung erkannt werden. Finger darf nicht schon vor dem Loslassen auf dem Pad liegen. Finger kurz wegnehmen dann drücken.

Modifikationen & Sicherheit

  • Pro-Tipp: Stab aus Holzstäbchen (Ø 4 mm, 20 cm) für besseres Gewicht und Fallverhalten — Strohhalm fällt zu leicht.
  • Erweiterung: Zufällige Vorwarnzeit statt fester 500 ms für höhere Schwierigkeit.
  • Sicherheit: Stab darf maximal 20 cm lang sein — längere Stäbe entwickeln beim Fallen Hebelkraft die Halterungen beschädigen kann.

Wichtige Code-Teile

// Phase 0: Wartestellung
case 0:
    servocontroller.setServoPulse(1, 2000);
    servocontroller.setServoPulse(2, 2000);
    servocontroller.setServoPulse(3, 2000);
    break;
// Phase 1: Vorwarnung → Loslassen
case 1:
    Buzzer.setValue(150);
    if(millis() - dropTime3 > 500) {
        servocontroller.startMove(1, 1000, 50); // Alle gleichzeitig loslassen
        servocontroller.startMove(2, 1000, 50);
        servocontroller.startMove(3, 1000, 50);
        dropTime3 = millis(); stickStep = 2;
    }
    break;
// Phase 2: Fang-Fenster (800 ms)
case 2:
    if(isButtonPressed(touch1, lastTouch3) || isButtonPressed(touch2, lastTouch3)) {
        catchMs3 = millis() - dropTime3;
        if(catchMs3 < bestCatch3) bestCatch3 = catchMs3;
        Buzzer.setMode(HEARTBEAT); stickStep = 0;
    } else if(millis() - dropTime3 > 800) {
        Buzzer.setMode(SHORT_BLINK); stickStep = 0; // Nicht gefangen
    }

Ähnliche Projekte

  • MODE 1 — LINKS/RECHTS — JoystickButton startet eine zufällige Verzögerung (1–4 Sekunden), dann zeigt entweder S1 oder S2 das Signal — der Spieler muss blitzschnell die richtige Seite drücken (touch1=links, touch2=rechts). Die Bestzeit bleibt als Schleppzeiger auf S3 stehen. Falsche Seite: Buzzer SHORT_BLINK als Strafe.
  • MODE 5 — SERVO FLASH — S1 schießt mit stetig wachsender Puls-Position durch den vollen Hub — eine zufällige Zielposition wird auf S2 vorher angezeigt. Der Spieler muss touch1 oder touch2 drücken wenn S1 die Zielposition trifft. Je geringer die Abweichung, desto besser der Score. DC-Motor gibt kurzen Rückstoß-Impuls bei Präzisionstreffer.
  • MODE 10 — ALL-IN-ONE — Der ultimative Reaktionstest kombiniert drei Sinne nacheinander: Erst ein optisches Signal, dann ein Ton, dann heißt es blitzschnell die richtige Taste treffen. Wer alle drei Phasen sauber durchläuft und trotzdem schnell reagiert, holt sich die Bestzeit.