MODE 8 — ACCEL

Easy · 45 min · Fast kostenlos

Ziel & Anwendung

Zwei Servos folgen den X/Y-Beschleunigungswerten und visualisieren Neigung und Erschütterung — bei einem Aufprall über 5 m/s² starten DC-Vibration und Buzzer-Alarm.

  • Beschleunigungsdaten (m/s²) als Servo-Auslenkung verstehen.
  • Vektorielle Gesamtbeschleunigung berechnen (sqrt(X² + Y²)).
  • Schlag-Erkennung mit Schwellwert-Trigger implementieren.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoX-Achsen-Zeiger
S2180°-ServoY-Achsen-Zeiger
S3180°-ServoGesamtbeschleunigung als Balken
S4360°-ServoRotiert proportional zur Gesamtbewegung
S5360°-ServoGegenläufig zu S4
S6180°-ServoPeak-Flagge — markiert kurz den stärksten gemessenen Schlag
STEPPERSchrittmotorBewegt sich mit dem akkumulierten Bewegungsweg mit
DCDC-MotorVibriert bei einem Schlag über 5 m/s²

Materialliste

  • 2 Kartonzeiger ca. 6 × 1 cm für S1 (X-Achse) und S2 (Y-Achse)
  • 1 Kartonzeiger ca. 5 × 1 cm für S3 (Gesamtbeschleunigung)
  • 1 Kartonbasis

Step-by-Step Tutorial

  1. Drei Beschleunigungs-Zeiger bauen

    Schneide drei Kartonpfeile. S1 und S2 bekommen 6 cm Zeiger (für ±10 m/s² Bereich). S3 bekommt 5 cm Zeiger (0–15 m/s²). Servo-Hörner schrauben, Zeiger flächig aufkleben, alles auf Basis.

    Check: S1 = X-Achse, S2 = Y-Achse, S3 = Gesamt — alle beschriftet

    Tipp: S1 und S2 zeigen richtungsbezogene Neigung (Mittelstellung = kein Ausschlag). S3 zeigt nur positive Werte (Gesamt-Betrag).

  2. Skala für S1/S2 zeichnen

    Fahre S1 auf 1500µs: markiere Mitte (0 m/s²). Fahre auf 1000µs und 2000µs: markiere ±10 m/s². Gleiche Prozedur für S2. Bei S3: 1000µs = 0 m/s², 2000µs = 10 m/s².

    Check: Mitte = 0 m/s² (1500µs), Ausschläge links/rechts bei Neigung

    Tipp: Bei 1g Erdbeschleunigung (flach liegendes Board auf einer Seite) ergibt sich ca. ±9.8 m/s² → fast voller Ausschlag.

  3. Leichtgängigkeits-Test

    Alle drei Zeiger von Hand durchdrehen. Erst wenn alle leicht laufen, ProtoPeaks einschalten.

    Check: Alle 3 Zeiger drehen leicht von Hand

    Tipp: S1 und S2 werden bei Bewegung schnell ausgelenkt — müssen sehr leichtgängig sein.

  4. MODE 8 aktivieren — Neigung testen

    EasySensors → MODE 8. Board flach: alle Zeiger in der Mitte. Board langsam nach links kippen: S1 schlägt aus. Nach vorne kippen: S2. Board auf die Seite stellen: voller Ausschlag (ca. 9.8 m/s² Schwerkraft).

    Check: Board kippen: S1 und S2 schlagen proportional aus. Flach = alle in Mitte.

    Tipp: Faktor 50 im Code: `XAcceleration * 50` mappt ±10 m/s² auf ±500µs vom Mittelpunkt (1000–2000µs).

  5. Peak-Flagge und Bewegungs-Zeiger anbringen

    Baue eine kleine Peak-Flagge, die kurz den bisher stärksten gemessenen Schlag markiert, sowie zwei gegenläufige Scheiben, die sich proportional zur Gesamtbewegung drehen.

    Check: Peak-Flagge und beide Bewegungs-Scheiben bewegen sich frei von Hand

  6. Schlag-Alarm testen

    Board kurz schütteln (nicht fallen lassen!): DC-Motor startet auf 80% und Buzzer gibt SHORT_BLINK. S3-Zeiger schlägt aus. Bei Ruhe: alles stoppt sofort. Der Schwellwert `totalAcc > 5.0f` ist im Code anpassbar.

    Check: Board kurz stark schütteln oder auf den Tisch klopfen: DC-Motor und Buzzer aktivieren

    Tipp: Schwellwert bei 5 m/s² Gesamtbeschleunigung. Leichtes Schütteln reicht — nicht zu stark.

Troubleshooting

  • S1/S2 zittern stark auch bei ruhigem Board — Beschleunigungssensor hat Rauschen (typisch ±0.05 m/s²). Faktor 50 verstärkt das auf ±2.5µs — normal. Faktor auf 30 reduzieren für ruhigere Anzeige.
  • Schlag-Alarm löst nicht aus — Board kräftiger schütteln oder kurz auf Tisch klopfen. Schwellwert von 5 m/s² auf 3.0f absenken zum Testen.
  • S3 zeigt nie mehr als halben Ausschlag — Faktor 100 mappt 10 m/s² auf vollen Ausschlag. Bei normalem Schütteln wird selten mehr als 3–5 m/s² erreicht. Board kräftiger bewegen.

Modifikationen & Sicherheit

  • Pro-Tipp: Schlag-Schwellwert anpassen: `totalAcc > 3.0f` für empfindlichere Reaktion, `> 8.0f` für robustere.
  • Erweiterung: DC-Motor mit einem Vibrations-Element verbinden für haptisches Erschütterungs-Feedback.
  • Sicherheit: Board nicht fallen lassen — der MPU-6050 ist empfindlich gegen starke Schläge.

Wichtige Code-Teile

// S1/S2 (180°) folgen X/Y-Beschleunigung
uint16_t aX = constrain(1500 + (int)(XAcceleration * 50), 1000, 2000);
uint16_t aY = constrain(1500 + (int)(YAcceleration * 50), 1000, 2000);
servocontroller.setServoPulse(1, aX);
servocontroller.setServoPulse(2, aY);
// S3: Gesamtbeschleunigung als Balken
float totalAcc = sqrt(XAcceleration * XAcceleration + YAcceleration * YAcceleration);
servocontroller.setServoPulse(3, constrain(1000 + (int)(totalAcc * 100), 1000, 2000));
// DC + Buzzer bei Schlag > 5 m/s²
if(totalAcc > 5.0f) { setMotorspeed(80); Buzzer.setMode(SHORT_BLINK); }
else                { setMotorspeed(0);  Buzzer.setValue(0); }

Ähnliche Projekte

  • MODE 1 — GYRO TRACK — Drei Servos spiegeln die Lage von ProtoPeaks in Echtzeit auf allen Achsen — kippe das Board, die Zeiger folgen sofort. Bei Neigung über 45° warnt der Buzzer.
  • MODE 10 — System-Check — Drei Sensoren werden gleichzeitig überwacht — zu heiß, zu nah oder zu schief, und die Alarm-Flagge wedelt los. Ein Zeiger verrät sofort, welcher der drei Grenzwerte gerade ausgelöst hat.
  • MODE 2 — GYRO DRIVE — Steck den Steuerknüppel weg — hier lenkst du, indem du die ganze Fernsteuerung kippst: nach vorne lehnen gibt Gas, zur Seite neigen dreht das Auto auf der Stelle. Die Animation oben zeigt, wie aus deiner Handbewegung Fahrbewegung wird.