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
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | X-Achsen-Zeiger |
| S2 | 180°-Servo | Y-Achsen-Zeiger |
| S3 | 180°-Servo | Gesamtbeschleunigung als Balken |
| S4 | 360°-Servo | Rotiert proportional zur Gesamtbewegung |
| S5 | 360°-Servo | Gegenläufig zu S4 |
| S6 | 180°-Servo | Peak-Flagge — markiert kurz den stärksten gemessenen Schlag |
| STEPPER | Schrittmotor | Bewegt sich mit dem akkumulierten Bewegungsweg mit |
| DC | DC-Motor | Vibriert 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
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).
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.
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.
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).
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
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.