MODE 8 — FORCE METER

Easy · 45 min · Fast kostenlos

Ziel & Anwendung

touch1 halten simuliert eine Kraftmesszelle: je länger gedrückt, desto mehr Kraft wird angezeigt (0–100 g in 2 Sekunden). Loslassen lässt den Wert langsam abfallen — wie eine Federkraft-Simulation. S1 zeigt die aktuelle Kraft, S2 hält den Spitzenwert. S3 zeigt die Gyro-Y-Neigung als Tara-Korrektur. Über 80 g: DC-Vibration und Buzzer.

  • Touch-Haltezeit als analoge Kraftmessung (0–100 g in 2 Sekunden) implementieren.
  • Federkraft-Simulation mit exponentieller Abklingfunktion (× 0,95 je Zyklus) aufbauen.
  • Gyro-Y-Neigung als Tara-Korrektur-Zeiger zur Kompensation von Geräteausrichtung einsetzen.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoLive-Kraft-Zeiger
S2180°-ServoSpitzenwert-Zeiger
S3180°-ServoTara-Korrektur-Zeiger
S4360°-ServoKraft-Anzeige-Rotor
S5360°-ServoRückfeder-Phasen-Anzeige
S6180°-ServoMarkiert den höchsten gemessenen Wert
STEPPERSchrittmotorFeinskala der aufgebauten Kraft
DCDC-MotorVibration bei Überlast

Materialliste

  • Kartonstreifen je ca. 10 × 2 cm als Zeiger (3 Stück)
  • Halbkreis-Skala Ø 14 cm mit Gramm-Einteilung (0 bis 100 g)
  • Kleine Feder (Kugelschreiber-Feder) als haptisches Feedback-Element
  • Filzstift für Skaleneinteilung
  • Klebeband und Heißkleber

Step-by-Step Tutorial

  1. Kraft-Skala aufbauen

    Halbkreis (Ø 14 cm) ausschneiden. 10 Segmente à 10 g aufzeichnen. Rote Zone ab 80 g. Drei Servo-Positionen hintereinander: S1 (live), S2 (Peak), S3 (Tara-Korrektur). Basis der Anzeige mit Gewichten beschweren — das Gerät muss ruhig stehen während touch1 gehalten wird.

    Check: Halbkreis-Skala mit Gramm-Einteilung (0–100 g) — rote Zone bei 80–100 g für Überlast-Bereich

    Tipp: Skala in 10 gleiche Segmente à 10 g teilen. Rote Zone bei >80 g klar markieren — der DC-Alarm und Buzzer lösen hier aus.

  2. Kraft-Zeiger S1 und S2 montieren

    S1 und S2 mit Plastik-Horn und Zeiger (8 × 1,5 cm Papier) bestücken. S1: map(forceVal, 0, 100, 1000, 2000). S2: map(forcePeak7, 0, 100, 1000, 2000). Beide auf Gramm-Skala ausrichten: 0 g links, 100 g rechts.

    Check: S1 steigt proportional zur touch1-Haltezeit. S2 bleibt beim bisherigen Maximum.

    Tipp: Zeiger S1 muss sehr leichtgängig sein — er muss auch kleinen Kraft-Schritten (5 g) folgen. Dünnes Papier als Zeiger.

  3. Tara-Korrektur S3 und haptisches Feedback einbauen

    S3 zeigt Gyro-Y-Neigung als Tara-Indikator. Kleine Kugelschreiber-Feder unter touch1-Taste kleben: gibt beim Drücken echtes Widerstandsgefühl. Überlast-Schwelle 80 g: DC-Motor Vibration (setMotorspeed(70)) und Buzzer SHORT_BLINK.

    Check: S3 reagiert auf Kippen von ProtoPeaks und zeigt Neigungskorrektur. Kugelschreiber-Feder als haptisches Element.

    Tipp: Tara-Korrektur: constrain(1500 + GyroY × 10, 1000, 2000). Gerät gerade halten → S3 zeigt 1500 (Mitte).

  4. Leichtgängigkeits-Test ohne Strom

    S3 in Neutral-Mitte ausrichten: Horn so montieren dass Zeiger bei 1500 µs auf die 0-Linie zeigt. Alle drei Zeiger frei drehen: kein Klemmen? Erst dann einschalten.

    Check: Alle drei Zeiger drehen frei. S3 steht bei 1500 µs genau in der Skalen-Mitte.

    Tipp: S3 muss in Mittelposition ausgerichtet sein da er eine bipolare Anzeige (−/+) darstellt.

  5. MODE 8 aktivieren — Kraft messen

    Messgeräte → MODE 8. touch1 2 Sekunden lang halten: S1 geht auf Maximum. Loslassen: S1 fällt exponentiell. S2 bleibt auf Spitzenwert. touch2: Peak löschen. Über 80 g: DC-Motor und Buzzer. S3 ProtoPeaks kippen: Tara-Korrektur-Zeiger ausschlagen.

    Check: touch1 halten: S1 steigt. Loslassen: S1 fällt langsam. S2 hält Maximum. Überlast-Alarm bei 80 g.

    Tipp: Langsam drücken und halten: Zeiger steigt gleichmäßig. Loslassen: Zeiger fällt mit Federkraft-Charakteristik (× 0,95). touch2 löscht Peak.

  6. Kalibrierung und Federkraft-Charakteristik testen

    touch1 genau 1 Sekunde halten (Stoppuhr): S1 bei ~50 g? touch1 genau 2 Sekunden: S1 bei 100 g? Loslassen: Zeiger nach 3,5 Sekunden bei 50 g? Das ist die korrekte Federkraft-Charakteristik.

    Check: 2 Sekunden touch1 halten = 100 g. 1 Sekunde halten = 50 g. Halbierungszeit des Abklingens = ~14 Zyklen.

    Tipp: Abkling-Konstante 0,95 per Zyklus: nach 14 Zyklen (14 × 250 ms = 3,5 s) ist der Wert auf 50 % gefallen — gut sichtbar.

Troubleshooting

  • S1 steigt sofort auf Maximum ohne Druck zu halten — touch1 ist dauerhaft aktiv (Finger liegt permanent auf dem Touch-Pad). Touch-Pad freigeben und erneut versuchen. CapSensor-Schwelle prüfen: falls zu empfindlich, Schwellwert erhöhen.
  • Wert fällt nach Loslassen nicht ab — bleibt auf dem Peak stehen — forceVal *= 0.95f wird nur ausgeführt wenn !touch1. Prüfen ob touch1 wirklich losgelassen wurde. forceStart7 muss auf 0 gesetzt werden wenn !touch1.

Modifikationen & Sicherheit

  • Pro-Tipp: Echter Druckknopf mit Feder statt touch1 — echte Haptik verbessert die Messgefühl-Simulation deutlich.
  • Erweiterung: Kalibrierungsmodus: Encoder-Drehung skaliert g/Sekunde (Standard: 50 g/s) für verschiedene Messanwendungen.
  • Sicherheit: Kein mechanisches Gewicht auf den touch1-Sensor stellen — der Kapazitiv-Sensor ist nicht für Dauerbelastung ausgelegt.

Wichtige Code-Teile

// touch1 halten = Kraft aufbauen
if(touch1) {
    if(forceStart7 == 0) forceStart7 = millis();
    forceVal = constrain((millis() - forceStart7) / 20.0f, 0, 100); // 0–100g in 2s
} else {
    forceStart7 = 0;
    forceVal *= 0.95f; // Federkraft-Abklingen
}
if(forceVal > forcePeak7) forcePeak7 = forceVal;
if(touch2) forcePeak7 = 0;
// S1: Live-Kraftzeiger, S2: Peak, S3: Tara-Gyro
servocontroller.setServoPulse(1, map(constrain((int)forceVal, 0, 100), 0, 100, 1000, 2000));
servocontroller.setServoPulse(2, map(constrain((int)forcePeak7, 0, 100), 0, 100, 1000, 2000));
servocontroller.setServoPulse(3, constrain(1500 + (int)(GyroY * 10), 1000, 2000));
// Überlast
setMotorspeed(forceVal > 80 ? 70 : 0);
if(forceVal > 80) Buzzer.setMode(SHORT_BLINK); else Buzzer.setValue(0);

Ähnliche Projekte

  • MODE 7 — DIFF METER — Zwei Sensor-Kanäle werden verglichen: S1 zeigt die Differenz von Sensor A zu einem gesetzten Referenzpunkt (touch1 = Nullpunkt setzen), S2 zeigt Sensor A live, S3 zeigt Sensor B live. EncoderButton wechselt Sensor A, touch2 wechselt Sensor B. Der DC-Motor warnt wenn die Differenz zwischen A und B einen Schwellwert überschreitet.
  • MODE 6 — PEAK HOLD — Ein universeller Peak-Detektor für fünf verschiedene Sensoren: Encoder-Button wechselt den aktiven Sensor (Temperatur, Distanz, Helligkeit, Spannung, Feuchte), S1 zeigt den Live-Wert, S2 hält das bisherige Maximum und S3 das bisherige Minimum — alle gleichzeitig auf derselben Skala. touch2 löscht alle gespeicherten Extremwerte.
  • MODE 5 — LUX METER — Drei Servo-Zeiger arbeiten gleichzeitig: S1 zeigt den Live-Lichtwert, S2 hält den Spitzenwert (Schleppzeiger-Prinzip wie ein analoges Maximum-Thermometer) und S3 friert den aktuellen Wert auf Knopfdruck ein. touch2 löscht den Peak-Wert, touch1 aktiviert den Hold-Modus. Der Stepper dreht bei sehr hellem Licht automatisch weg — als Sonnenschutz-Simulation.