MODE 4 — SIMON

Easy · 30 min · Fast kostenlos

Ziel & Anwendung

Simon sagt — merk dir die Reihenfolge! Fünf Servo-Zeiger leuchten der Reihe nach auf, du musst die Sequenz mit dem Steuerknüppel und dem Joystick-Knopf exakt wiederholen. Mit jeder richtigen Runde wird die Sequenz um ein Symbol länger — wer schafft die längste Kette fehlerfrei?

  • Fünf Symbole zeigen sich der Reihe nach als eingeprägte Sequenz — vier Servo-Zeiger plus der Joystick-Knopf als fünftes Symbol
  • Der Steuerknüppel und der Joystick-Knopf geben die Sequenz in der richtigen Reihenfolge wieder ein
  • Mit jeder richtigen Runde kommt ein weiteres Symbol dazu — ein Fehler beendet das Spiel sofort

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoSymbol 1 (Steuerknüppel nach oben)
S2180°-ServoSymbol 2 (Steuerknüppel nach rechts)
S3180°-ServoSymbol 3 (Steuerknüppel nach unten)
S4180°-ServoSymbol 4 (Steuerknüppel nach links)
S5360°-ServoLevel-Anzeige
DCDC-MotorKurze Vibration bei richtiger Eingabe, längere bei Fehler

Materialliste

  • Vier Richtungspfeile aus Karton (5 cm) auf den ersten vier Servo-Hörnern als Zeiger
  • Kleiner Karton-Sockel der alle vier Servo-Pfeile übersichtlich zeigt
  • Klebeband, Heißkleber, Schere

Step-by-Step Tutorial

  1. Vier Symbol-Zeiger aufbauen

    Plastik-Servo-Horn auf den ersten Symbol-Servo aufschrauben, langen Zeiger (5 cm) flächig draufkleben. Dasselbe für die drei weiteren Symbol-Servos. Alle vier Servos in einem Halbkreis auf der Karton-Grundplatte anordnen, gut sichtbar nebeneinander. In Ruhe zeigen alle Zeiger neutral, bei Aktivierung schlägt der jeweilige Zeiger deutlich aus.

    Check: Alle vier Servos schlagen deutlich sichtbar aus, wenn ihr Symbol dran ist — jeder Zeiger gut unterscheidbar

    Tipp: Zeiger schmal und klar formen — breite Pfeile sind besser ablesbar als dünne Stäbe

  2. Sequenz anzeigen und merken

    Joystick-Knopf: Spiel startet. Das erste Symbol schlägt kurz aus, dann folgen mit jeder gewonnenen Runde weitere Symbole in der bereits gezeigten Reihenfolge plus ein neues am Ende. Fünf mögliche Symbole gibt es: die vier Zeiger-Servos und der Joystick-Knopf selbst als fünftes Zeichen. Die Level-Anzeige zeigt, wie lang die aktuelle Sequenz schon ist.

    Check: Die Symbole leuchten nacheinander auf — nach der Anzeige wartet das Spiel auf deine Eingabe

    Tipp: Jedes Symbol wird kurz gezeigt, dann eine kleine Pause — genug Zeit, sich die Reihenfolge zu merken

  3. Sequenz mit dem Steuerknüppel eingeben

    Nach der Anzeige: den Steuerknüppel in die Richtung bewegen, die dem gezeigten Symbol entspricht (oben, rechts, unten oder links), oder den Joystick-Knopf drücken für das fünfte Symbol. Richtige Eingabe: kurze Vibration, weiter zum nächsten Symbol der Sequenz. Nach der letzten korrekten Eingabe kommt automatisch die nächste, längere Runde. Falsche Eingabe: Spiel vorbei.

    Check: Steuerknüppel in die richtige Richtung bewegen: bei korrekter Eingabe folgt eine kurze Bestätigung

    Tipp: Steuerknüppel zwischen den Eingaben immer wieder in die Mitte zurückführen — erst dann zählt die nächste Eingabe

  4. Leichtgängigkeitstest der Symbol-Zeiger

    Vor dem Einschalten: alle vier Zeiger manuell in ihre Ausschlag-Position bewegen. Klar richtungsweisend? Keine zwei Zeiger berühren sich? Grundplatte stabil genug? Alle Servo-Kabel haben genug Spielraum? Erst nach OK Strom einschalten.

    Check: Alle vier Zeiger schlagen frei aus und kehren zurück — kein Klemmen an der Karton-Basis

    Tipp: Zeiger dürfen sich nicht gegenseitig berühren — genug Abstand zwischen den Servos einplanen

  5. Highscore spielen

    Joystick-Knopf: Spiel startet. Erstes Symbol merken. Wiederholen. Zweites Symbol kommt dazu. Mit jeder Runde wird es schwieriger. Die Level-Anzeige zeigt die aktuelle Länge. Bei einem Fehler ertönt eine längere Vibration und das Spiel endet. Neues Spiel: Joystick-Knopf erneut. Wer hat den besten Highscore?

    Check: Level 8 erreicht = 8 Symbole korrekt in Folge eingegeben — wer schafft mehr?

    Tipp: Tipp: Symbole als kleine Geschichte merken statt als reine Zahlenfolge

Troubleshooting

  • Steuerknüppel-Eingabe wird nicht erkannt — Steuerknüppel weiter auslenken — die Erkennungsschwelle braucht eine deutliche Bewegung, kein leichtes Antippen
  • Gleiches Symbol kommt auffällig oft hintereinander — Ist reiner Zufall — bei kurzen Sequenzen fällt eine Wiederholung stärker auf als bei langen
  • Symbole wechseln zu schnell und sind nicht ablesbar — Anzeige-Zeit pro Symbol im Code erhöhen — mehr Zeit zum Ablesen einplanen

Modifikationen & Sicherheit

  • Pro-Tipp: Buzzer spielt für jedes Symbol einen eigenen Ton — Ton und Bewegung zusammen merken ist noch einfacher
  • Pro-Tipp: Zweiter Spielmodus mit nur drei Symbolen für jüngere Mitspieler als Einstieg

Wichtige Code-Teile

// Spiel-Zustände: phase 0=Anzeige, 1=Eingabe, 2=Game Over
static uint8_t sequence[16];
static uint8_t seqLen = 1, showIdx = 0, userIdx = 0, phase = 0;

if(phase == 2 && isButtonPressed(RemoteJoystickBtn, lastJoyBtn)) {
    sequence[0] = random(0, 4); seqLen = 1; phase = 0; showIdx = 0;
}

if(phase == 0) { // Sequenz zeigen
    if(millis() - showT > 600) {
        showT = millis();
        int sym = sequence[showIdx];
        for(int i=1;i<=4;i++) servocontroller.setServoPulse(i, (i-1)==sym ? 2000 : 1000);
        Buzzer.setValue(60 + sym * 40);
        showIdx++;
        if(showIdx >= seqLen) { phase = 1; userIdx = 0; }
    }
}

if(phase == 1) { // Eingabe lesen
    int input = -1;
    if(isButtonPressed(RemoteJoystickBtn, lastJoyBtn)) input = 4;
    else if(JoystickY > 3500) input = 0;
    else if(JoystickX > 3500) input = 1;
    else if(JoystickY < 600)  input = 2;
    else if(JoystickX < 600)  input = 3;

    if(input >= 0) {
        if(input == sequence[userIdx]) {
            userIdx++;
            if(userIdx >= seqLen) {
                seqLen++; sequence[seqLen-1] = random(0, 5);
                Buzzer.setMode(HEARTBEAT); stepper.move(20);
                phase = 0; showIdx = 0;
            }
        } else { phase = 2; Buzzer.setMode(LONG_BLINK); }
    }
}

// S5: Level-Anzeige
servocontroller.setServoPulse(5, map(constrain(seqLen, 1, 16), 1, 16, 1100, 1900));

Ähnliche Projekte

  • MODE 5 — HOT WIRE — Der Klassiker auf jedem Jahrmarkt — jetzt mit ProtoPeaks-Bestrafungs-Mechanismus! Eine gebogene Drahtbahn, ein Ring der nicht berühren darf. Berührt der Ring den Draht, zuckt eine Anzeige wild, ein Ton kreischt und der Antriebsmotor dreht kurz als Strafe. Wie ruhig ist deine Hand?
  • MODE 3 — WAITER — Kannst du ruhiger sein als ein Roboter-Kellner? Zwei Servos halten ein Tablett automatisch gegen jede Neigung von ProtoPeaks waagerecht — dein Job ist es, ProtoPeaks so ruhig wie möglich zu tragen. Jedes Wackeln kostet Punkte. Wie lange hältst du die volle Punktzahl?
  • MODE 8 — CATAPULT — Spannen, sichern, abschießen! Der Dreh-Regler zieht den Wurfarm langsam ins Spannen, eine Sicherheits-Klappe muss erst geöffnet werden, bevor der Schuss ausgelöst werden darf. Je stärker gespannt, desto weiter fliegt das Geschoss. Wie oft triffst du dein Ziel?