MODE 2 — MOTION LOG

Easy · 45 min · Fast kostenlos

Ziel & Anwendung

Ein mechanischer Einbruchs-Logger: PIR-Bewegungen und Distanzsprünge werden separat gezählt und als Zeiger auf zwei Skalen angezeigt. S3 zeigt den Live-Abstand, der Stepper dreht pro PIR-Ereignis 50 Schritte weiter — nach einem langen Tag sieht man auf einen Blick wie viel Aktivität im Raum war.

  • PIR-Bewegungen und Ultraschall-Distanzsprünge separat zählen und auf zwei Servo-Zählern anzeigen.
  • S3 Live-Abstand als kontinuierlichen Zeiger und Stepper als kumulativen PIR-Ereigniszähler implementieren.
  • Doppel-Touch-Reset (touch1+touch2) für beide Zähler gleichzeitig implementieren.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoZeiger für Anzahl der PIR-Ereignisse
S2180°-ServoZeiger für Anzahl der Distanzsprünge
S3180°-ServoLive-Abstandszeiger
S4360°-ServoKurzer Dreh-Ausschlag bei jedem geloggten Ereignis
S5360°-ServoDreht gegenläufig zu S4 als zweiter Ausschlag
S6180°-ServoKlappe markiert den bisher höchsten Zählerstand
STEPPERSchrittmotorDreht bei jedem PIR-Ereignis ein Stück weiter (Kamera-Schwenk)
DCDC-MotorKurze Vibration bei jedem neuen PIR-Ereignis

Materialliste

  • Zwei Halbkreis-Skalen Ø 12 cm (links 0–30, rechts 0–20 Einteilung) für PIR- und Distanz-Zähler
  • Kartonstreifen je ca. 10 × 2 cm als Zeiger (2 Stück)
  • Kleines Rädchen Ø 3 cm auf Stepper als Ereignis-Drehanzeige
  • Filzstift für Zähler-Beschriftung
  • Klebeband und Heißkleber

Step-by-Step Tutorial

  1. Zwei Zähler-Skalen aufbauen

    Zwei Halbkreis-Skalen (Ø 12 cm) nebeneinander montieren. Linke Skala: PIR-Ereigniszähler für S1. Rechte Skala: Distanzsprung-Zähler für S2. Kleine Rädchen auf Stepper für kumulativen Gesamtzähler. S3 auf separatem Zifferblatt: Live-Abstandszeiger. S4 und S5 drehen kurz gegenläufig bei jedem geloggten Ereignis, S6 markiert per Klappe den bisher höchsten gemeinsamen Zählerstand, der DC-Motor vibriert kurz bei jedem PIR-Treffer.

    Check: S1 auf linker Skala (PIR-Ereignisse 0–30). S2 auf rechter Skala (Distanz-Ereignisse 0–20).

    Tipp: Linke Skala 0–30 (0 links bei ganz links, 30 rechts). Rechte Skala 0–20. Einfache Halbkreis-Einteilung mit 5er-Markierungen.

  2. PIR- und Distanz-Ereignisse erkennen

    Jede Bewegung vor dem Bewegungsmelder erhöht den PIR-Zähler und lässt den Stepper ein Stück weiterdrehen — ein sichtbarer Schritt pro Ereignis. Springt der gemessene Abstand um mehr als eine Handbreit, zählt das als Distanz-Ereignis und erhöht den zweiten Zähler. S3 zeigt daneben ständig den aktuellen Live-Abstand.

    Check: Jeder PIR-Trigger erhöht den PIR-Zähler. Distanzsprung > 10 cm erhöht den Distanz-Zähler.

    Tipp: Distanzsprung: nur ein Sprung von mehr als 10 cm zwischen zwei Messungen zählt — kleine Messschwankungen werden ignoriert.

  3. Zähler-Zeiger und Reset einrichten

    S1 wandert mit jedem PIR-Ereignis ein Stück weiter nach rechts, bis er bei 30 Ereignissen ganz rechts steht. S2 macht dasselbe bis 20 Distanzsprüngen. touch1 + touch2 gleichzeitig gedrückt: beide Zähler springen zurück auf 0 — Reset für eine neue Messperiode.

    Check: S1 steigt pro PIR-Ereignis bis maximal 30. S2 steigt pro Distanzsprung bis maximal 20. touch1+touch2: beide auf 0.

    Tipp: Beide Zeiger bleiben ganz rechts stehen, sobald ihr jeweiliges Maximum (30 bzw. 20 Ereignisse) erreicht ist.

  4. Leichtgängigkeits-Test ohne Strom

    S1, S2, S3 von Hand auf 1000 und 2000 µs: frei? Stepper-Rädchen von Hand drehen: 10 volle Umdrehungen ohne Widerstand? Kabel am Stepper so verlegen dass kein Aufwickeln möglich. Erst dann einschalten.

    Check: S1, S2, S3 drehen frei. Stepper-Rädchen dreht leicht ohne Haken.

    Tipp: Stepper-Rädchen muss nach vielen Umdrehungen noch frei laufen — kein Kabel aufwickeln!

  5. MODE 2 aktivieren — Logger laufen lassen

    Safe-Einbruch → MODE 2. Vor PIR gehen: S1 steigt, Stepper dreht. Warten. Wieder gehen: S1 wieder eins höher. Vor Ultraschall-Sensor: S3 zeigt Live-Abstand, S2 steigt bei Sprüngen. Nach einem Tag: beide Zeiger zeigen gesamte Aktivität.

    Check: PIR-Bewegung: S1 und Stepper reagieren sofort. Distanzsprung: S2 steigt. S3 zeigt Live-Abstand.

    Tipp: Test: vor PIR gehen → S1 springt einen Schritt, Stepper dreht 50 Schritte. Dann Hand vor Ultraschall-Sensor bewegen → S2 reagiert.

  6. Langzeit-Überwachung einrichten

    Logger in Zimmerecke platzieren. PIR zeigt in Raumrichtung. Ultraschall auf Durchgang. Nach Arbeitstag: Display und Zeiger zeigen Bewegungsstatistik. touch1+touch2: Reset für neue Messperiode. Schreibtisch-Statistik: Wie oft war jemand im Raum?

    Check: Logger läuft stundenlang stabil. Beide Zähler akkumulieren korrekt über viele Stunden.

    Tipp: Der PIR-Zeiger bleibt ab 30 Ereignissen ganz rechts stehen. Für einen belebten Raum mit mehr Aktivität die Skala im Code auf ein höheres Maximum umstellen.

Troubleshooting

  • Stepper dreht dauerhaft — PIR scheint ständig aktiv — PIR-Modul auf Haltezeit prüfen. Wenn Haltezeit zu lang (>5s): isButtonPressed() erkennt Rising Edge korrekt, aber PIR sendet lange High-Signal. PIR-Empfindlichkeits-Poti am Modul verringern.
  • Distanz-Zähler steigt ohne sichtbare Bewegung — Ultraschall-Sensor hat Messrauschen (±2 cm). Schwellwert > 10 cm ist ausreichend. Wenn trotzdem Fehlauslösungen: Schwellwert auf > 15 erhöhen. Sensor-Ausrichtung prüfen — auf ruhige Wand zeigen für stabilere Messung.

Modifikationen & Sicherheit

  • Pro-Tipp: Zeitstempel als Stepper-Schritte nutzen — Stepper.move(millis()/3600000) zeigt Stunden seit letztem PIR-Ereignis.
  • Erweiterung: EEPROM-Logging mit Timestamp speichern — Ereignis-Liste nach Neustart abrufbar.
  • Sicherheit: PIR-Reichweite auf relevanten Bereich begrenzen (Karton-Blende) — verhindert Fehlauslösungen durch Außenreize.

Wichtige Code-Teile

// PIR-Ereignis zählen (einmalig erfasst, für Stepper wiederverwendet)
bool pirEvent1 = isButtonPressed(RemotePIR, lastPIR1);
if(pirEvent1) pirCount++;
if(pirEvent1) stepper.move(50);  // Sichtbarer Schritt pro Ereignis
// Distanzsprung erkennen (>10cm)
bool distEvent1 = (abs((int)distanceCM - (int)lastDist1) > 10 && distanceCM > 0);
if(distEvent1) { distCount++; lastDist1 = distanceCM; }
// Doppel-Touch Reset
if(touch1 && touch2) { pirCount = 0; distCount = 0; }
// Servo-Anzeigen
servocontroller.setServoPulse(1, map(constrain(pirCount, 0, 30), 0, 30, 1000, 2000));
servocontroller.setServoPulse(2, map(constrain(distCount, 0, 20), 0, 20, 1000, 2000));
servocontroller.setServoPulse(3, mapDistanceCMshort);  // Live-Abstand
// S6: markiert höchsten kombinierten Zählerstand (Peak)
uint16_t combinedCount = pirCount + distCount;
if(combinedCount > peakCount1) peakCount1 = combinedCount;
servocontroller.setServoPulse(6, map(constrain(peakCount1, 0, 50), 0, 50, 1000, 2000));

Ähnliche Projekte

  • MODE 1 — LASER TRAP — Eine echte Lichtschranke aus Laser-Pointer und LDR: sobald der Laserstrahl unterbrochen wird, schlägt der Alarm an — S1 hebt die Alarm-Fahne, S2 verriegelt einen Servo-Riegel, der Stepper dreht die Alarm-Fläche und der DC-Motor surrt. Perfekt als Diebstahlsicherung für die Schreibtischschublade oder als Einbruch-Spielzeug.
  • MODE 4 — SCANNER — Ein tastender Scan-Turm mit Ultraschall-Sensor: der Stepper dreht den Sensor in kleinen Schüben hin und her wie ein Radar-Scanner. Bei zu nahem Objekt steigt die Alarm-Stufe — S1 zeigt den Abstand, S2 die Warn-Fahne und S3 die Kritisch-Fahne, bei der höchsten Stufe surrt auch der DC-Motor.
  • MODE 3 — SAFE COMBO — Ein echtes Kombinationsschloss aus Encoder und drei Ziffern: nur wenn alle drei Encoder-Werte exakt die geheime Kombination treffen (z.B. 5, -3, 7), öffnet S3 den Servo-Riegel. touch1 bestätigt jede Ziffer, touch2 setzt alles zurück — präzises Knacken wie bei einem echten Tresor.