MODE 10 — FOCUS PULL

Hard · 2h · Fast kostenlos

Ziel & Anwendung

Wie ein Kamera-Assistent beim Film: Ein Distanz-Sensor misst, wie weit ein Objekt entfernt ist, und der Schrittmotor zieht automatisch die Schärfe nach — je näher das Objekt, desto weiter fährt die Objektiv-Attrappe aus. Ein Fingertipp merkt sich die aktuelle Distanz als neuen Ziel-Fokus.

  • Distanz-Sensor bestimmt automatisch die passende Schärfe-Position
  • Fingertipp auf die Touch-Fläche speichert die aktuelle Distanz als neuen Ziel-Fokus
  • Zwei Ringe drehen sichtbar solange die Schärfe noch sucht — eine Klappe bestätigt den eingerasteten Fokus

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoLive-Distanz-Zeiger
S2180°-ServoZiel-Fokus-Markierung
S3180°-ServoSchlitten-Positions-Anzeige
S4360°-ServoBlendenring — dreht während der Fokus-Suche
S5360°-ServoBlendenring gegenläufig
S6180°-Servo„Fokus eingerastet“-Fähnchen
STEPPERSchrittmotorFokus-Schlitten — zieht die Objektiv-Attrappe nach
DCDC-MotorVibrationswarnung, wenn die Schärfe lange sucht

Materialliste

  • Kartonröhre (leere Klopapierrolle) als Objektiv-Attrappe
  • Kleiner Kartonschlitten mit zwei Löchern
  • Zwei Strohhalme als Gleitschienen
  • Feste Schnur als Zugseil
  • Zwei kurze Karton-Ringe für die Blendenring-Servos
  • Heißkleber, Klebeband

Step-by-Step Tutorial

  1. Fokus-Schlitten auf Strohhalm-Schienen bauen

    Klebe zwei Strohhalme parallel als Schienen auf eine Kartonbasis. Baue einen kleinen Kartonschlitten mit zwei Löchern, der über die Strohhalme geschoben wird. Klebe die Kartonröhre aufrecht auf den Schlitten — das ist die Objektiv-Attrappe.

    Check: Schlitten gleitet von Hand leicht über die gesamte Schienenlänge, ohne zu klemmen

    Tipp: Löcher im Schlitten mit einem Kugelschreiber etwas aufweiten und glätten — das reduziert die Reibung deutlich

  2. Schrittmotor mit Zugschnur verbinden

    Wickle eine feste Schnur mehrfach um den aufgeschraubten Mitnehmer und klebe beide Enden am Schlitten fest, eines zieht vorwärts, eines zurück. Dreht sich der Mitnehmer, zieht die Schnur den Schlitten samt Objektiv-Attrappe entlang der Schienen.

    Check: Schnur läuft stramm um den Mitnehmer, ohne durchzuhängen oder zu rutschen

    Tipp: Erst den Schrittmotor-Mitnehmer aus dem Kit fest aufschrauben — erst danach die Schnur mehrfach darum wickeln

  3. Anzeige-Servos S1/S2/S3 montieren

    Servo-Hörner auf S1, S2 und S3 schrauben, je einen kurzen Karton-Zeiger flächig aufkleben. Papier-Skalen dahinter zeichnen: S1 zeigt die gemessene Distanz, S2 den gespeicherten Ziel-Fokus, S3 die aktuelle Schlitten-Position.

    Check: Alle drei Zeiger laufen frei über ihre komplette Skala

    Tipp: Zeiger unter 8 cm halten, dann ist kein Gegengewicht nötig

  4. Blendenring-Servos und Fähnchen anbauen

    Klebe auf die Hörner von S4 und S5 je einen kurzen Karton-Ring — reiner Show-Effekt, der sich dreht solange die Schärfe noch sucht. Auf das S6-Horn ein kleines Fähnchen kleben, das eingeklappt startet.

    Check: Beide Ringe drehen frei, das Fähnchen klappt ungehindert auf und zu

  5. Leichtgängigkeitstest von Schlitten und Servos

    Schiebe den Schlitten mehrfach manuell hin und her, drehe jeden Servo einzeln durch. Erst wenn alles leichtgängig läuft, Strom einschalten.

    Check: Schlitten lässt sich von Hand über die komplette Strecke schieben — kein Ruckeln, kein Verkanten

    Tipp: Verkantet der Schlitten: Schienen-Abstand minimal vergrößern oder Löcher nachschleifen

  6. Ziel-Fokus einstellen und Teach-In testen

    Dreh-Regler drehen: der Soll-Zeiger wandert, der Schlitten fährt zur passenden Position. Halte ein Objekt vor den Distanz-Sensor und tippe die Touch-Fläche an — die gerade gemessene Entfernung wird sofort zum neuen Ziel-Fokus.

    Check: Dreh-Regler bewegt den Soll-Zeiger, Touch-Fläche übernimmt die aktuelle Distanz als neues Ziel

  7. Fokus-Suche und eingerasteten Fokus beobachten

    Bewege ein Objekt langsam näher und wieder weiter weg: der Schlitten fährt automatisch nach, die Blendenringe drehen währenddessen sichtbar. Bleibt das Objekt auf der Zieldistanz stehen, rastet der Fokus ein und das Fähnchen klappt auf.

    Check: Das Fähnchen klappt erst auf, wenn Ist- und Soll-Distanz fast exakt übereinstimmen

    Tipp: Objekt gleichmäßig bewegen — bei ruckartigen Sprüngen braucht der Schlitten länger zum Nachfahren

Troubleshooting

  • Schlitten bleibt trotz neuer Zieldistanz stehen — Schnur rutscht am Mitnehmer durch — fester wickeln und Enden neu verkleben
  • Fähnchen klappt nie auf — Ziel-Fokus liegt außerhalb des Messbereichs (5–100 cm) — Dreh-Regler oder Objekt-Abstand anpassen
  • Schlitten ruckelt beim Fahren — Schienen-Reibung zu hoch — Strohhalme mit etwas Bleistift-Graphit einreiben oder Schlitten-Löcher weiter aufweiten

Modifikationen & Sicherheit

  • Pro-Tipp: Echten Zahnriemen statt Schnur verwenden für spielfreie, präzisere Fokus-Übertragung
  • Pro-Tipp: Mechanische Anschläge für Naheinstellgrenze und Unendlich einbauen
  • Sicherheit: Schnur nicht zu stramm spannen — sonst blockiert der Schrittmotor am Anschlag und wird heiß

Wichtige Code-Teile

// Ziel-Fokus per Dreh-Regler (5–100 cm)
targetFocus = constrain(targetFocus + EncoderPos * 0.5f, 5.0f, 100.0f);
EncoderPos = 0;

// Teach-In: Touch-Fläche übernimmt aktuelle Distanz als Ziel
if (isButtonPressed(touch1, lastTouch1)) targetFocus = distanceCM;

// Fehler + Integral
float errF = distanceCM - targetFocus;
integF = constrain(integF + errF * dt, -200.0f, 200.0f);

// Stepper-Zielposition (näher = weiter ausgefahren)
int focusSteps = (int)constrain((100.0f - targetFocus) * 20.0f + integF * 0.2f, 0, 2000);
stepper.moveTo(focusSteps);

// Anzeigen
servocontroller.setServoPulse(1, mapDistanceCMshort);                                          // Ist-Distanz
servocontroller.setServoPulse(2, map(constrain((int)targetFocus, 5, 100), 5, 100, 1000, 2000)); // Soll-Fokus
servocontroller.setServoPulse(3, map(focusSteps, 0, 2000, 1000, 2000));                         // Schlitten-Position

// Blendenring-Simulation während der Suche
bool focusing = abs(errF) > 2;
servocontroller.setServoPulse(4, focusing ? (millis() % 250 < 125 ? 1700 : 1500) : 1500);
servocontroller.setServoPulse(5, focusing ? (millis() % 250 < 125 ? 1300 : 1500) : 1500);

// Fokus eingerastet
bool focusLocked = abs(errF) < 1.0f;
servocontroller.setServoPulse(6, focusLocked ? 2000 : 1000);

// Vibrationswarnung bei langer Fokus-Suche
setMotorspeed(abs(errF) > 5 ? 25 : 0);

Ähnliche Projekte

  • MODE 3 — DIST HOLD — Dein Karton-Fahrzeug hält automatisch Abstand! Ein Ultraschall-Sensor misst die Entfernung zum vorausfahrenden Objekt, die beiden Antriebsräder bremsen oder beschleunigen automatisch dagegen. Eine Berührungsfläche oder die Steuerknüppel-Taste lösen jederzeit einen sofortigen Notfall-Stopp aus.
  • MODE 4 — YAW HOLD — Dein Fahrzeug hält automatisch seinen Kurs! Ein Fingertipp auf die Touch-Fläche speichert die aktuelle Ausrichtung als Soll-Kurs, der Kompass-Sensor erkennt jede Abweichung und der Antrieb lenkt sanft gegen. Drei Zeiger zeigen live Lenkausschlag, Soll-Kurs und Ist-Kurs.
  • MODE 7 — GIMBAL — Steuere einen Gimbal aus zwei verschiedenen Quellen — und wechsle live zwischen ihnen! Eine Berührungsfläche schaltet auf den Bewegungssensor (Kopfbewegung nachahmen), die andere auf den Steuerknüppel. Eine starke Glättung sorgt für butterweiche Übergänge, zwei Anzeige-Servos zeigen, welche Quelle gerade aktiv ist.