Hallo zusammen,
ich stehe derzeit am Anfang, das heißt noch bei der Planung meines ersten Arduino Projektes und hätte da ein zwei Fragen zur Umsetzung/Realisierung und Machbarkeit und ich hoffe ihr könnt mir hier weiter helfen.
Es geht im speziellen um die richtige Wahl des Motors und das zerbricht mir schon langsam dem Kopf.
Zur besseren Veranschaulichung worum es geht siehe Anhang - bsp.jpg
Die Anforderungen sind (bzw. das gewünschten Ergebnisse sollten sein):
- Ein Motor, angetrieben von einem Arduino (bei mir derzeit Nano) dreht am Focus Ring eines Kamera-Objektives.
- Der Motor muss sich und somit den Focus Ring in beide Richtungen drehen können.
- Der Motor sollte möglichst leise funktionieren, da sich oft sensible Mikrofone in der Nähe befinden.
- Der Motor sollte feine Einstellungen, das heißt geringe Umdrehungen/Veränderungen am Focus Ring durchführen können.
- Der Motor sollte für eine ganze Umdrehung des Focus Ringes (variabler Durchmesser - max. ~85cm) nicht länger als 1 Sekunde benötigen.
- Der Motor soll programmatisch eine bestimmte “Fahrt” druchführen können, das heißt den Focus Ring auf eine bestimme Position mit einer bestimmten Geschwindigkeit bringen können.
Ich hab schon einige Projekte im Netz gefunden, welche die einfache Steuerung des Focus Ringes bereits realisiert haben, jedoch fande ich bis jetzt noch keinen der sich im Detail mit folgenden Problemen beschäftigte:
Ein Focus Ring steuert den Brennpunkt/die Brennebene innerhalb der Brennweite des Objektives, diese Brennweite (und somit der Focus Ring) hat einen Start- und Endpunkt.
- Das heißt der Motor sollte den Ring nicht weiter als Start- und Endpunkt drehen, da sonst Schäden am Objektiv entstehen könnten und dies einzuhalten hat für mich oberste Priorität.
Start- und Endpunkt sind je nach Objektiv unterschiedlich. Es kann auch durchaus vorkommen das zwischen Start- und Endpunkt mehrere Umdrehungen des Focues Ringes liegen.
-
Das System soll für verschiedene Objektive funktionieren.
-
Der Motor (oder das System) soll Start- und Endpunkt erkennen und einhalten, je nach Möglichkeit:
-
Automatisch: per Knopfdruck werden Start- und Endpunkt “ausgeforscht” (angefahren und erkannt)
-
Manuell: der Benutzer dreht manuell am Focus Ring und markiert die aktuelle Position als Start- oder Endpunkt
Mir ist durchaus bewusst, dass sich einige Punkte weniger auf den Motor, sondern mehr auf die Programmierung und Funktionalität beziehen, jedoch wollte ich diese dinge auch erwähnt haben um einen besseren Gesamteindruck der Problematik zu übermitteln. Ich bin mir sicher, dass diese Probleme auch bei anderen Projekten oft vorkommen und bestimmt auch schon (irgendwie) gelöst wurden, daher hoffe ich hier auf Rat
Erstes “lernen” und “lesen” führten mich zu folgenden Überlegungen/Fragen:
#Schrittmotor? - Klingt ersteinmal ziemlich gut, hat aber anscheinend kein “Feedback”. Kann auch passieren das “Schritte” verloren gehen und ist sehr laut. Braucht ein zusätzlichen Treiber / H-Brücke. Bekommt nicht mit dass ein Schritt nicht ausgeführt wurde. Klingt doch nicht mehr so gut.
#Servomotor? - Funktionieren meist nur zwischen 0° und 180° (what why?). Gibt anscheinend immer die tatsächliche Position zurück, auch wenn ich manuell daran dreh? Gehen auch mehrere Umdrehungen?
#Gleichstrom Motor? - Danach bin ich auf etwas Interessantes gekommen und zwar hatte ich überlegt die Lichtschranke eines Mausrades als Schrittzähler zu missbrauchen und bin dann auf Gleichstrom-Motoren mit “Encodern” gestoßen, die anscheinend soetwas ähnliches tun. Wäre das eine Möglichkeit? Sind die überhaupt so genau Steuerbar bzgl. Position und Geschwindigkeit?
Wie würdet ihr die Probleme lösen? Welchen Motor verwenden? Eine Art Lichtschranke zusätzlich bauen? Ein Getriebe zusätzlich?
Also wie ihr lesen könnt, hab ich von vieles keine Ahnung (noch), daher bin ich für alle Tipps und Ratschläge sehr dankbar!