MODE 5 — SERVO FLASH
Medium · 1h · Fast kostenlos
Ziel & Anwendung
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.
- Zeitlich wachsende Servo-Position als spielbares Reaktionselement einsetzen.
- Zufällige Zielposition (S2) und aktuellen Servo-Stand (S1) als Score-Differenz auswerten.
- DC-Motor als haptisches Treffer-Feedback bei kleiner Abweichung implementieren.
Anschluss & Funktion
Motoren am Board
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | Laufender Zeiger, schießt bei Rundenstart durch den Hub |
| S2 | 180°-Servo | Ziel-Zeiger, zeigt die zufällige Zielposition |
| S3 | 180°-Servo | Score-Zeiger, zeigt die Abweichung vom Ziel |
| S4 | 360°-Servo | Dreht synchron zur Fahrt von S1 als Tempo-Anzeige |
| S5 | 360°-Servo | Dreht gegenläufig zu S4 für einen Doppel-Effekt |
| S6 | 180°-Servo | Markiert den bisher besten (kleinste Abweichung) Score |
| STEPPER | Schrittmotor | Zählt Versuche mechanisch mit |
| DC | DC-Motor | Kurze Vibration bei sehr geringer Abweichung (Beinahe-Treffer) |
Materialliste
- Kartonstreifen je ca. 8 × 2 cm als Zeiger (3 Stück)
- Gemeinsames Skalenblatt Ø 14 cm für S1 (laufend) und S2 (Ziel)
- Kleiner Marker-Pfeil aus Karton als Zielmarkierung für S2
- Filzstift für Skaleneinteilung
- Klebeband und Heißkleber
Step-by-Step Tutorial
Doppelzeiger-Skala aufbauen
Halbkreis-Skala (Ø 14 cm) aufbauen. S1 und S2 dahinter gestaffelt: S2 (Ziel-Zeiger, lang, rot) hinten, S1 (laufender Zeiger, kurz, schwarz) vorne. S3 darunter als Score-Anzeige.
Check: S1 (laufend) und S2 (Ziel) auf derselben Skala — beide sichtbar unterschiedlich (Farbe/Länge)
Tipp: S1-Zeiger kurz und breit (schwarz), S2-Zeiger lang und dünn (rot) — sofort erkennbar welcher läuft und welcher das Ziel ist.
Laufenden Zeiger S1 und Ziel-Zeiger S2 montieren
S1 mit kurzem Zeiger (6 cm, schwarz). S2 mit langem Zeiger (10 cm, rot) — Marker-Pfeil als Ziel. Bei Runden-Start: zufällige Zielposition wird gesetzt und auf S2 angezeigt. S1 wächst zügig von der Mitte aus nach oben.
Check: S2 zeigt feste Zielposition (zufällig). S1 wächst von der Mitte aus zügig nach oben.
Tipp: Der Spieler hat nur ein kurzes Zeitfenster von etwas mehr als einem Wimpernschlag — Konzentration ist gefragt.
Score-Zeiger S3 und DC-Feedback aufbauen
S3 zeigt Score-Güte. DC-Motor: kurzer Rückstoß-Impuls bei sehr geringer Abweichung. Buzzer HEARTBEAT bei Präzisionstreffer, gedämpfter Ton sonst.
Check: S3 zeigt Score-Güte invertiert: Treffer nahe Ziel = S3 rechts. DC-Motor kurzer Impuls bei sehr kleiner Abweichung.
Tipp: Je näher der Stopp am Ziel liegt, desto weiter fährt S3 nach rechts.
Leichtgängigkeits-Test ohne Strom
Alle drei Zeiger von Hand drehen: kein Klemmen? S1 und S2 berühren sich nicht trotz Tiefenstaffelung? Erst dann einschalten.
Check: S1 dreht frei durch vollen Hub. S2 steht fest. S3 dreht frei.
Tipp: S1 muss sehr leichtgängig sein — er bewegt sich schnell. S2 ist meistens statisch.
MODE 5 aktivieren — Flash-Reaktion spielen
Reaktionsspiele → MODE 5. JoystickButton: zufällige Zielposition auf S2. S1 beginnt zu laufen. touch1 oder touch2 wenn S1 auf S2-Zeiger trifft. Score-Anzeige auf S3. Sehr geringe Abweichung: DC-Rückstoß + HEARTBEAT. Ohne Reaktion: neue Runde nach kurzer Zeit.
Check: JoystickButton: Zielposition wird auf S2 angezeigt. S1 beginnt zu laufen. touch1/touch2 beim Treffen drücken.
Tipp: Augen auf S1-Zeiger richten. Wenn er auf S2-Zeiger-Position zeigt: sofort drücken.
Präzision verbessern
S3 zeigt letzten Score (kein Bestzeit-Speicher über Runden). 10 Runden spielen und Durchschnitt beobachten. Ziel: konstant nah am Zeiger stoppen.
Check: Regelmäßig eine geringe Abweichung erzielen
Tipp: Antizipieren statt reagieren: wenn S1 nahe bei S2 ist, Finger vorspannen und im richtigen Moment drücken.
Troubleshooting
- S1 läuft immer zur gleichen Position — variiert nicht — Der Startzeitpunkt wird nicht aktualisiert. Sicherstellen dass bei JoystickButton-Druck die Runde wirklich neu gestartet wird.
- Score immer sehr hoch obwohl genau gedrückt — Laufgeschwindigkeit zu schnell für die eigene Reaktionszeit. Geschwindigkeit reduzieren für bessere Reaktionsmöglichkeit.
Modifikationen & Sicherheit
- Pro-Tipp: Lauf-Geschwindigkeit per Encoder anpassen für verschiedene Schwierigkeitsgrade.
- Erweiterung: Zwei Spieler gleichzeitig — touch1 für Spieler 1, touch2 für Spieler 2, wer trifft genauer?
- Sicherheit: Servo S1 macht einen schnellen Vollhub — Finger nie in den Schwenkbereich halten während das Spiel läuft.
Wichtige Code-Teile
// JoystickButton: neue Runde
if(isButtonPressed(JoystickButton, lastJoyBtn4) && flashStep4 == 0) {
targetPos4 = random(1100, 1900); // Zufällige Zielposition
flashStep4 = 1; flashStart4 = millis();
}
// S2: Ziel-Zeiger anzeigen
servocontroller.setServoPulse(2, map(targetPos4, 1000, 2000, 1000, 2000));
// S1: Laufender Zeiger
servocontroller.setServoPulse(1, 1500 + (int)((millis() - flashStart4) * 2));
// touch: Stoppen und Score berechnen
if(isButtonPressed(touch1, lastTouch4) || isButtonPressed(touch2, lastTouch4)) {
stopPos4 = constrain(1500 + (int)((millis() - flashStart4) * 2), 1000, 2000);
lastScore4 = abs((int)stopPos4 - (int)targetPos4);
if(lastScore4 < bestScore4) bestScore4 = lastScore4;
flashStep4 = 2;
}
// S3: Score-Güte (invertiert)
servocontroller.setServoPulse(3, map(constrain(lastScore4, 0, 500), 0, 500, 2000, 1000));
// DC: Rückstoß bei Präzisionstreffer
setMotorspeed(flashStep4 == 2 && lastScore4 < 50 ? 60 : 0);Ähnliche Projekte
- MODE 2 — DOSIER-STOPP — Der Stepper dreht mit konstanter Geschwindigkeit auf eine Zielposition zu — touch1 stoppt ihn. Je näher man am Ziel stoppt, desto besser der Score. Encoder setzt die Zielposition (100–1000 Schritte), JoystickButton startet die Fahrt. S1 zeigt Stepper-Position, S2 die Ziel-Markierung, S3 den Score-Zeiger (kleiner Wert = besser).
- MODE 4 — STICK CATCH — 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.
- MODE 8 — SPRINT — Ein Sprint-Reaktionsspiel mit drei Zielen: touch1, touch2 und CapSensor werden in zufälliger Reihenfolge aktiv — S1/S2/S3 zeigen welches Ziel als nächstes gefragt ist. 8 Treffer in Folge so schnell wie möglich: Die Gesamtzeit in Sekunden wird gemessen und der Rekord gespeichert.