MODE 3 — WASSERWAAGE
Easy · 45 min · Fast kostenlos
Ziel & Anwendung
Drei Servo-Zeiger visualisieren X- und Y-Neigung sowie die Gesamtneigung (Pythagoras-Betrag) in Echtzeit. Ein Stepper korrigiert sich automatisch gegen die Neigung — dreht sich der ProtoPeaks schief, dreht der Stepper entgegen. Bei perfekter Waage (Neigung <1°) ertönt ein kurzer Bestätigungs-Piepton.
- Gyro/Accelerometer-Daten als analoge Neigungsanzeige (X und Y) auf Servo-Zeigern darstellen.
- Pythagoras-Gesamtneigung als dritten kombinierten Zeiger berechnen und ausgeben.
- Stepper als mechanische Gegenkraft zur Neigung (Anti-Tilt-Prinzip) einsetzen.
Anschluss & Funktion
Motoren am Board
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | X-Neigungszeiger |
| S2 | 180°-Servo | Y-Neigungszeiger |
| S3 | 180°-Servo | Gesamt-Neigungszeiger |
| S4 | 360°-Servo | Ausgleichs-Rotor während der Korrektur |
| S5 | 360°-Servo | Gegenläufiger Ausgleichs-Rotor |
| S6 | 180°-Servo | Korrektur-aktiv-Anzeige |
| STEPPER | Schrittmotor | Dreht als mechanisches Gegengewicht gegen die Neigung |
| DC | DC-Motor | Vibration bei starker Schieflage |
Materialliste
- Kartonstreifen je ca. 10 × 2 cm als Zeiger (3 Stück)
- Halbkreis-Karton Ø ~14 cm als Messskala (2 Stück für X und Y)
- Kleine Kartonbox als Geräte-Gehäuse
- Filzstift für Skalenbeschriftung (−45° bis +45°)
- Klebeband und Heißkleber
Step-by-Step Tutorial
Zweiachsen-Skalen aufbauen
Zwei Halbkreise (Ø 14 cm) aus Karton ausschneiden. Jeder wird mit einem 180°-Servo hinterlegt. Skala mit Filzstift: 0 in der Mitte, −45° links, +45° rechts. S1 zeigt X-Achse (links/rechts-Kippen), S2 zeigt Y-Achse (vor/zurück-Kippen). Gehäuse-Basis mit Gewichten beschweren damit es stabil steht.
Check: Zwei Halbkreis-Skalen stehen senkrecht zueinander — eine für X-Neigung, eine für Y-Neigung
Tipp: Skala in drei Zonen markieren: grüne Mitte (±5°), gelbe Zone (±5–20°), rote Zone (±20–45°) — sofortige Orientierung.
Gesamt-Neigungszeiger S3 montieren
S3 (180°) als Gesamtneigungszeiger: Servo-Horn aufschrauben, Zeiger flächig aufkleben. Code: totalTilt = sqrt(GyroX*GyroX + GyroY*GyroY). Servo-Puls: constrain(1500 + totalTilt × 10, 1000, 2000). Zeiger in Neutral-Mitte bei flachem ProtoPeaks ausrichten.
Check: S3 zeigt 0 bei waagerechter Lage und steigt proportional zur Gesamtneigung
Tipp: Gesamtneigung = sqrt(GyroX² + GyroY²). Bei 0° zeigt Zeiger ganz links (1000 µs), bei 45° ganz rechts (2000 µs).
Stepper als Anti-Tilt-Gegengewicht aufbauen
Kleines Karton-Rad (Ø 3 cm) mit angehängtem Gewicht (5 g Münze) auf Stepper-Mitnehmer kleben. Code: if(abs(GyroX) > 3) stepper.move(GyroX > 0 ? -5 : 5). Bei Neigung nach rechts: Gegengewicht dreht nach links — physikalisch anschauliche Kompensation.
Check: Stepper dreht bei X-Neigung >3° automatisch in die Gegenrichtung
Tipp: Stepper-Mitnehmer mit kleinem Gewicht (Münze, Schraube) als Gegengewicht versehen — sichtbare mechanische Kompensation.
Leichtgängigkeits-Test ohne Strom
Jeden Zeiger von Hand von Anschlag zu Anschlag drehen: kein Klemmen? Stepper-Rad von Hand drehen: kein Widerstand durch Gegengewicht-Trägheit? Erst dann ProtoPeaks einschalten.
Check: Alle drei Zeiger drehen frei von Hand. Stepper-Rad dreht leichtgängig.
Tipp: Zeiger-Achsen mit Kugelschreiber aufweiten damit minimale Reibung vorhanden ist.
MODE 3 aktivieren — Neigung messen
Messgeräte → MODE 3. ProtoPeaks um X-Achse kippen: S1 dreht. Um Y-Achse: S2 dreht. S3 zeigt immer Gesamtneigung. Stepper dreht entgegen. Bei Neigung >10°: DC-Motor Vibration + Buzzer SHORT_BLINK. Bei Neigung <1°: Buzzer.setValue(150) — kurzer Piepton zeigt perfekte Waage an.
Check: ProtoPeaks kippen: S1/S2 bewegen sich proportional. Stepper dreht entgegen. Bei flach: Bestätigungs-Piepton.
Tipp: ProtoPeaks auf ein geneigtes Buch legen: Zeiger zeigen konstanten Winkel. Dann auf flachen Tisch: Buzzer bestätigt.
Alarm-Schwellen und Kalibrierung testen
ProtoPeaks auf ein Buch mit bekannter Neigung (z.B. 15°) legen: Zeiger zeigt 15°? DC-Motor und Buzzer SHORT_BLINK aktiv? ProtoPeaks flach auf Tisch: Buzzer.setValue(150) kurzer Piepton. Stepper-Kompensation: dreht er in die richtige Gegenrichtung?
Check: DC-Motor und Buzzer lösen korrekt bei >10° aus. Kein Alarm bei <10°.
Tipp: Kalibrierung: ProtoPeaks auf bekanntem Winkel (z.B. 30°-Schablone) legen und Zeiger-Ablesung mit Schablone vergleichen.
Troubleshooting
- Zeiger zittern ständig obwohl ProtoPeaks auf flachem Tisch liegt — Gyro-Rauschen wird direkt auf Servo übertragen. Low-Pass-Filter im Code: galSmooth = galSmooth * 0.9f + rawValue * 0.1f. Alternativ: nur bei Änderung >0,5° Servo aktualisieren.
- Stepper dreht immer in dieselbe Richtung und hört nicht auf — GyroX-Vorzeichen überprüfen. Wenn Sensor falsch orientiert ist, Vorzeichen im Code umkehren: stepper.move(GyroX > 0 ? 5 : -5) statt -5 : 5.
Modifikationen & Sicherheit
- Pro-Tipp: Wasserwaagen-Kugel aus Glasmurmeln auf einen flachen Karton legen und Kugel-Position mit Servo-Daten vergleichen — physikalisch eindrucksvoll.
- Erweiterung: Stepper steuert ein reales Gegengewicht (z.B. Wasserreservoir) für größere Kippstabilisierung.
- Sicherheit: Stepper-Gegengewicht nicht zu schwer — überschreitet die Masse 20 g droht der Stepper zu überhitzen.
Wichtige Code-Teile
// S1/S2: X- und Y-Neigungszeiger
servocontroller.setServoPulse(1, mapGyroX);
servocontroller.setServoPulse(2, mapGyroY);
// S3: Gesamtneigung (Pythagoras)
float totalTilt = sqrt(GyroX * GyroX + GyroY * GyroY);
servocontroller.setServoPulse(3, constrain(1500 + (int)(totalTilt * 10), 1000, 2000));
// Stepper: Anti-Tilt-Kompensation
if(abs(GyroX) > 3) stepper.move(GyroX > 0 ? -5 : 5);
// DC + Buzzer: Alarm bei Schieflage > 10°
if(totalTilt > 10.0f) { setMotorspeed(50); Buzzer.setMode(SHORT_BLINK); }
else if(totalTilt < 1.0f) { setMotorspeed(0); Buzzer.setValue(150); } // Im Lot: kurzer Bestätigungston
else { setMotorspeed(0); Buzzer.setValue(0); }Ähnliche Projekte
- MODE 1 — VOLTMETER — Drei Servo-Zeiger verwandeln den ProtoPeaks in ein echtes Analog-Messgerät: S1 zeigt den 0–3,3 V Direkt-Bereich, S2 den erweiterten 0–10 V Bereich via simuliertem Spannungsteiler, S3 misst parallel die LDR-Lichtspannung. Der Stepper rollt wie ein mechanischer Rollenzähler mit und der DC-Motor warnt bei hoher Spannung.
- MODE 2 — KLIMA LAB — Fünf Servo-Zeiger zeigen gleichzeitig Temperatur, Luftdruck und Luftfeuchte des BME280 an. Zwei 360°-Servos fungieren als lebendige Trend-Indikatoren: steigt die Temperatur, dreht S4 nach rechts — fällt der Druck, schlägt S5 nach links. Bei Extremwerten (>35 °C oder >85 % Feuchte) löst der Buzzer automatisch Alarm aus.
- MODE 4 — RANGEFINDER — Der Ultraschall-Sensor wird zum Distanzmessgerät mit drei Skalen: S1 zeigt den Grobbereich 0–200 cm, S2 den zyklischen Feinbereich (jede 20-cm-Dekade wiederholt), S3 den kritischen Nahbereich. Der Stepper fährt wie ein mechanisches Maßband proportional zur Distanz — und DC-Motor plus Buzzer warnen bei Annäherung unter 10 cm.