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

AnschlussMotorAufgabe
S1180°-ServoX-Neigungszeiger
S2180°-ServoY-Neigungszeiger
S3180°-ServoGesamt-Neigungszeiger
S4360°-ServoAusgleichs-Rotor während der Korrektur
S5360°-ServoGegenläufiger Ausgleichs-Rotor
S6180°-ServoKorrektur-aktiv-Anzeige
STEPPERSchrittmotorDreht als mechanisches Gegengewicht gegen die Neigung
DCDC-MotorVibration 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

  1. 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.

  2. 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).

  3. 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.

  4. 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.

  5. 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.

  6. 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.