MODE 8 — SCARY BOT

Easy · 30 min · Fast kostenlos

Ziel & Anwendung

Ein unheimlicher Zufalls-Roboter: alle Servos ruhen in Neutral-Position bis eine zufällige Wartezeit (5–30 Sekunden) abläuft — dann zuckt einer der Servos oder der DC-Motor unerwartet auf. Perfekt als Grusel-Requisite, interaktive Kunstinstallation oder als Überraschungs-Objekt auf dem Schreibtisch.

  • Unvorhersehbare Langzeit-Pausen (5–30 Sekunden) mit kurzen zufälligen Bewegungsimpulsen (80–400 ms) kombinieren.
  • Alle Servos in Neutral-Ruheposition halten und nur den zufällig ausgewählten Kanal aktivieren.
  • Optionalen DC-Motor-Einsatz mit zufälliger Wahrscheinlichkeit implementieren.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoZuck-Ziel 1 (Arm, Auge oder Antenne)
S2180°-ServoZuck-Ziel 2
S3180°-ServoZuck-Ziel 3
S4360°-ServoSeltene, minimale Drehbewegung
S5360°-ServoSeltene, minimale Drehbewegung
S6180°-ServoKaum merkliches Aufklappen einer kleinen Klappe
STEPPERSchrittmotorSehr seltene, winzige Schritte — kaum wahrnehmbar
DCDC-MotorGelegentliches, leises Brummen

Materialliste

  • Kleines Karton-Gehäuse ca. 12 × 12 cm als mysteriöse Box
  • Karton-Appendages (Arme, Augen, Antennen) an S1, S2, S3 für sichtbare Zuckungen
  • Optionaler Propeller oder Rädchen an DC-Motor
  • Dekorations-Material: Aufkleber, Gesicht aus Papier, Alufolie
  • Klebeband und Heißkleber

Step-by-Step Tutorial

  1. Scary-Robot-Gehäuse aufbauen

    Karton-Gehäuse (12 × 12 cm). Drei Löcher/Schlitze für S1, S2, S3 auf verschiedenen Seiten — jeder Servo hat ein 'Anhängsel' (Arm, Auge, Antenne). DC-Motor auf der Oberseite mit Propeller (3 Blätter à 4 cm). Basis mit ProtoPeaks-Controller beschweren. Gesicht aus Papier als Dekoration.

    Check: Karton-Box steht stabil. S1, S2, S3 sind sichtbar von außen und können zucken.

    Tipp: Schwerpunkt der Box tief halten: ProtoPeaks-Controller in die Basis legen. Basis mindestens 15 × 15 cm wenn Appendages nach oben ragen.

  2. Neutral-Position und Zuck-Bewegung definieren

    Ruheposition: alle Servos auf Mitte. Bei Auslösung: kleiner Zufalls-Ausschlag um die Mitte, Dauer 80–400 ms, danach zurück auf Mitte. Nur ein Aktuator pro Auslösung zuckt — die anderen bleiben still. Trifft es S4 oder S5, fällt der Ausschlag bewusst kleiner aus als bei S1–S3 — wirkt subtiler, fast wie ein leichtes Nachjustieren.

    Check: In Ruhe: alle S1/S2/S3 auf 1500 µs (Neutral). Bei Auslösung: zufälliges Delta ±150 µs.

    Tipp: scaryDelta = random(-150, 150). Kleine Deltas (±150 µs) = subtile Zuckung. Für dramatischere Effekte: ±300 µs.

  3. Zufalls-Timer mit langen Pausen einrichten

    Nach einer zufälligen Pause (5–30 Sekunden): eine einzelne Zuckung wird ausgelöst — meist an S1, S2 oder S3, sehr selten an S4 oder S5 (dort fällt der Ausschlag kleiner aus, wirkt eher wie ein leichtes Drehen als ein Zucken). Danach wieder absolute Stille — der Robot 'schläft'. Stepper und S6-Klappe laufen dabei mit eigenem, noch selteneren Zufallstakt: winzige Stepper-Schritte alle paar bis paar Dutzend Sekunden, ein kaum merkliches Aufklappen von S6 noch seltener. Ein extrem leises Buzzer-Knistern rundet den Effekt gelegentlich ab.

    Check: Zwischen 5 und 30 Sekunden komplette Stille, dann eine kurze, zufällige Zuckung eines einzelnen Aktuators.

    Tipp: Für eine aktivere Installation kürzere Pausen einplanen, für maximalen Gruseleffekt längere. S4/S5 sind darunter deutlich seltener dran als S1–S3.

  4. Leichtgängigkeits-Test ohne Strom

    S1, S2, S3 von Hand auf 1350 und 1650 µs drehen: Appendage hat freien Spielraum? S4/S5-Rädchen und Stepper ebenfalls von Hand prüfen — auch kleinste Bewegungen sollen frei laufen. DC-Propeller von Hand drehen: kein Kontakt mit Gehäuse? Alle Kabel prüfen: nichts klemmt bei Bewegung. Erst dann einschalten.

    Check: Alle Appendages drehen frei. DC-Propeller dreht ohne Gehäuse-Kontakt.

    Tipp: Wichtig: Appendages dürfen nicht ans Gehäuse stoßen wenn Servo auf 1350 oder 1650 µs zuckt. Spielraum von 5 mm einplanen.

  5. MODE 8 aktivieren — Warten auf den Scary-Moment

    Timer → MODE 8. Robot steht still. Warten... Nach zufälliger Zeit: plötzliche Zuckung eines Servos oder DC-Motor-Aufzucken. Dann wieder Stille. Als Grusel-Objekt: Display verdecken damit die Wartezeit unbekannt bleibt. Auf Tisch stellen und Gäste warten lassen.

    Check: Robot steht still. Nach 5–30 Sekunden: plötzliche Zuckung. Dann wieder Stille.

    Tipp: Geduld! Erste Auslösung kann bis zu 30 Sekunden auf sich warten lassen. Display zeigt 'Next: 12.3s' als Countdown — oder verdecken für maximale Überraschung.

  6. Grusel-Effekt optimieren

    scaryDelta auf ±300 µs erhöhen für dramatischeren Effekt. moveDur auf 80 ms verkürzen für schlagartige Zuckung. Oder moveDur 400 ms für langsame kriechende Bewegung. DC-Motor bei jeder 3. Auslösung: setMotorspeed(15) für 200 ms dann 0 — kurzes Aufzucken des Propellers.

    Check: Zuckungen wirken überraschend und sind von Neutral klar unterscheidbar.

    Tipp: Für maximalen Gruseleffekt: Appendages so platzieren dass kleine Bewegungen von weitem sichtbar sind. Langer Arm = mehr Ausschlag bei gleichem Winkel.

Troubleshooting

  • Robot zuckt viel zu oft — keine spannende Pause — random(5000, 30000) prüfen — Einheit ist Millisekunden! random(5, 30) wäre nur 5–30 ms. Sicherstellen dass random(5000, 30000) im Code steht.
  • S4/S5 zucken genauso stark wie S1-S3 — S4/S5 sollen deutlich subtiler wirken als S1-S3 — der Ausschlag muss für diese beiden kleiner ausfallen als für die Haupt-Servos, sonst geht der 'seltener und leiser'-Effekt verloren.

Modifikationen & Sicherheit

  • Pro-Tipp: PIR-Sensor als Trigger verwenden — Robot zuckt nur wenn jemand im Raum ist, sonst schläft er.
  • Erweiterung: Buzzer zufällig: 30% Chance auf kurzen Piep bei Auslösung für akustischen Schockmoment.
  • Sicherheit: DC-Motor Propeller mit Karton-Gitter sichern — Finger-Schutz wenn als interaktives Objekt zugänglich.

Wichtige Code-Teile

// Scary Robot: zufällige Langzeit-Pausen (5-30s) mit kurzen Zuckungen (80-400ms)
if(!scaryActive && millis() > nextMove) {
    scaryActive = true;
    moveDur = random(80, 400);
    scaryTarget = random(1, 6);           // 1-3=S1-S3, 4=S4, 5=S5 (seltener)
    scaryDelta = random(-150, 150);
    nextMove = millis() + random(5000, 30000);
}
if(scaryActive && millis() > nextMove - moveDur) {
    if(scaryTarget <= 3) servocontroller.setServoPulse(scaryTarget, 1500 + scaryDelta);
    else servocontroller.setServoPulse(scaryTarget, 1500 + scaryDelta / 3); // S4/S5: kleinerer Ausschlag
    if(random(0, 4) == 0) setMotorspeed(15);  // gelegentliches leises Brummen
    scaryActive = false;
} else if(!scaryActive) {
    servocontroller.setServoPulse(1, 1500);
    servocontroller.setServoPulse(2, 1500);
    servocontroller.setServoPulse(3, 1500);
    servocontroller.setServoPulse(4, 1500);
    servocontroller.setServoPulse(5, 1500);
    setMotorspeed(0);
}
// Eigener, noch selteneren Zufallstakt fuer Stepper und S6-Klappe
if(millis() > nextStepperMove) { stepper.move(random(-3, 4)); nextStepperMove = millis() + random(8000, 25000); }
if(millis() > nextFlapMove) { flapUntil = millis() + random(100, 300); nextFlapMove = millis() + random(10000, 30000); }
servocontroller.setServoPulse(6, millis() < flapUntil ? 1600 : 1500);

Ähnliche Projekte

  • MODE 5 — COUNTER — Ein mechanischer Ereigniszähler: PIR-Sensor und kapazitiver Touch zählen jede Bewegung oder Berührung. S1 zeigt den Fortschritt als Zeiger, S2 klappt als Zielflagge aus wenn der einstellbare Zielwert erreicht ist. Perfekt als Fitness-Wiederholungszähler oder automatische Besucher-Zählung.
  • MODE 3 — PERIODIC — Alle Aktuatoren bewegen sich in einem programmierbaren Rhythmus: Encoder stellt das Intervall (1–60 Sekunden), JoystickButton verlängert die Aktiv-Phase. Fünf rotierende Phasen wechseln sich ab — mal S1/S2, mal S1/S3, mal Stepper/DC-Motor, mal S4, mal S5. Der Rest setzt alle Servos in Mittelposition zurück.
  • MODE 6 — METRONOM — Ein mechanisches Metronom aus Servo und Karton: S1 schwingt als Pendel im einstellbaren Tempo (20–240 BPM), S2 gibt den Hauptschlag als kurzen Impuls, S3 markiert den Halbschlag. Der Encoder stellt das Tempo, der DC-Motor surrt taktgenau mit — perfekt zum Üben von Rhythmusgefühl.