Arduino Lens Controller - Synchronisierter Zoom / Fokus mit Wii Classic Controller - Gunook

Arduino Lens Controller - Synchronisierter Zoom / Fokus mit Wii Classic Controller - Gunook

Inhaltsverzeichnis:

Anonim

Meine Lumix GH2 Micro Four Thirds-Kamera nimmt nicht nur fantastische High Definition-Videos auf, sondern kann mit kostengünstigen Adaptern auch mit älteren manuellen Objektiven verwendet werden, die billig und oft sehr hochwertig sind. Ich mache viele Performance-Videos für das Tanzstudio meiner Tochter und verwende ein f3.5 Nikon 28-85mm-Zoomobjektiv, da es einen guten Zoombereich und eine schnelle Blende für ein Zoomobjektiv bietet. Das Problem bei diesem Setup ist, dass ich das Objektiv manuell zoomen und fokussieren muss. Obwohl ich versuche, das Zoomen während der Aufnahme so gering wie möglich zu halten, ist es manchmal unerlässlich, die richtige Bildeinstellung beizubehalten und die Fähigkeiten der Tänzer zu demonstrieren. Ich habe gelernt, manuell zu zoomen, ohne (normalerweise) übermäßig viel Kamerajitter zu verursachen. Da ich aber auch manuell fokussiere, ist es ein bisschen mühsam, den Fokus nach dem Vergrößern oder Verkleinern schnell und reibungslos anzupassen. Um dieses Manko zu überwinden, habe ich mich für die Entwicklung eines Power-Zoom- und Fokus-Controllers für meine Kamera entschieden (was viele andere bereits getan haben), mit dem entscheidenden Ziel, den richtigen Fokus automatisch beizubehalten, während das Objektiv reibungslos hinein- und herauszoomt. Nach vielen Monaten des Prototyping bin ich zu einer großartigen Lösung gekommen, die einen Arduino-Klon verwendet, der Eingaben von einem Wii Classic-Controller akzeptiert und der zwei Hobby-Servos zum Bewegen des Objektivs verwendet.Die Gesamtkosten des Endprodukts betragen weniger als 100 USD.

Das Design, das ich schließlich implementiert habe, hat eine Reihe von erweiterten Funktionen:

- 2 Joysticks sorgen für eine stufenlose Geschwindigkeitsregelung des Objektivs. Wenn Sie den rechten Steuerknüppel nach vorne und hinten bewegen, werden Zoom und Fokus synchronisiert, und wenn Sie den linken Steuerknüppel von Seite zu Seite bewegen, wird nur der Fokus gesteuert. Die Implementierung der Geschwindigkeitsregelung trägt auch dazu bei, das Servo-Geräusch auf einem akzeptablen Niveau zu halten.

- Es gibt 6 programmierbare "Gehe zu" -Zoom- / Fokuseinstellungen, die im laufenden Betrieb von der Wii Classic aus programmiert werden können und mit denen Zoom und Fokus auf Knopfdruck in die gewünschte Position gebracht werden können (linke Schulter für größtmöglichen Zoom, rechte Schulter) für die meisten Zooms und a, b, x und y für jede Zoom- / Fokusposition).

- Die maximalen Einstellungen für die Objektivbewegung können auch im laufenden Betrieb programmiert werden, um sicherzustellen, dass die Servos nicht versuchen, sich über die Grenzen der Zoom- und Fokuspositionen des Objektivs hinaus zu drehen.

- Das D-Pad bietet Zoom- (Aufwärts- und Abwärts-Pad) und Fokusbewegungen (linkes und rechtes Pad) in einem Grad, um präzise Einstellungen für kritischen Fokus / Zoom vorzunehmen.

Hier ist eine Demonstration, wie der synchronisierte Zoom-Fokus auf meiner GH2 mit einem Nikon 28-85 mm-Zoomobjektiv funktioniert:

In dieser Anleitung werde ich die Grundlagen zum Erstellen einer eigenen Version dieses Controllers behandeln, einschließlich des Arduino-Codes und Anweisungen zum Anbringen der Servos an einem schienenbasierten Kamera-Rig. Ich werde erwähnen, wie ich mein Rig gebaut habe, aber da ich damit nicht wirklich zufrieden bin, werde ich keine detaillierten Schritte ausführen und es Ihnen überlassen, Ihre eigene Lösung auf der Grundlage der Bilder meines Rigs zu finden und ein paar Notizen darüber, wie ich es gemacht habe.

Dies war mein erster Versuch, etwas mit Arduino zu erstellen, obwohl ich einige Programmiererfahrungen hatte, so dass es für mich nicht allzu schwierig war, die Grundlagen von Arduino-Code zu lernen. Wenn Sie jedoch dieses Projekt angehen möchten und noch nicht mit dem Einrichten und Programmieren eines Arduino vertraut sind, empfehle ich, die Tutorials auf der Arduino-Site durchzuarbeiten, insbesondere die für Servos.

Zubehör:

Schritt 1: Erste Schritte: Werkzeuge und Materialien

Sie können die Elektronik für dieses Projekt mit nur einigen Abisolierzangen und einem Lötkolben vervollständigen. Um die Servo-Montagearme zu fertigen, ist es jedoch hilfreich, Zugang zu einer Bandsäge und einer Bohrmaschine zu haben (obwohl eine sorgfältige Arbeit mit einer Handbohrmaschine die Notwendigkeit für letztere zunichte machen kann). Ich habe auch eine Tischsäge verwendet, um die Kunststoffplatte zu schneiden, und einen Tischfräser mit einem Kernbohrer von 1/2 Durchmesser, um die Rillen in den Kunststoff so zu schneiden, dass sie mit den Schienen meines selbst hergestellten Kameraschienensystems übereinstimmen.

Hier finden Sie eine Liste der wichtigsten Verbrauchsmaterialien, die Sie benötigen, um dieses Projekt abzuschließen. Lesen Sie jedoch die gesamte Anleitung durch, bevor Sie etwas kaufen, damit Sie verstehen, was Sie kaufen müssen, um Ihren eigenen Anforderungen gerecht zu werden.

- Arduino- oder Arduino-Klon (ich habe einen Seeeduino verwendet, weil er etwas billiger als der Arduiino war und die gleiche Funktionalität bietet).

- Wii Classic Controller. Ich habe meine bei eBay für ca. 10 US-Dollar versandt.

- Wiichuck-Adapter (eine kleine Platine, die in Ihre Wii Classic gesteckt wird, damit Sie das Kabel nicht abschneiden müssen). Ich habe dies von FunGizmos für 4 US-Dollar erhalten:

- 2 Hobby-Servos in Standardgröße mit Nylonzahnrädern und Kugellagern. Die Nylon-Zahnräder sind leiser und die Kugellager bieten eine bessere Unterstützung für die Welle, wenn die Last von steiferen Zoomobjektiven gehandhabt wird. Ich habe einige überschüssige Servos in einem lokalen RC-Store für jeweils 5 USD gekauft, aber ich ersetze sie durch 360-Grad-Digitalservos, die noch leiser und genauer sein sollten. Diese kosten mich bei eBay jeweils 20 USD.

- 2 Objektivzahnräder zur Befestigung an den Zoom- und Fokusringen Ihres Objektivs. Ich habe die flexiblen, die ich bei eBay für jeweils 10 US-Dollar gefunden habe, verwendet und meine eigenen Distanzringe hergestellt, um eine bessere Auflösung und einen etwas besseren mechanischen Vorteil für die Servos zu erzielen. Sie können auch etwa das Doppelte ausgeben und Objektivzahnkränze mit eingebauten Abstandshaltern erwerben. Diese sind auch bei eBay erhältlich. suche einfach nach "lens gear follow focus".

- 2 Antriebsräder, die an den Servos montiert werden, um die Objektivräder anzutreiben. Diese müssen eine Ganghöhe von 32p oder mod.8 haben (dies ist die Standardteilung für Objektivgänge). Ich baute meine eigenen Antriebsräder, indem ich ein paar RC-Stirnräder für 4 US-Dollar an die originalen Servo-Querlenker anbaute, aber das erforderte etwas Arbeit an einer Mini-Drehmaschine, die nicht jeder hat. Eine bessere Option wäre, die servomontierbaren Getriebe für ein paar Dollar mehr bei Servo City zu kaufen: http://www.servocity.com/html/32_pitch_hitec_servo_gears.html. Während Sie diese bestellen, können Sie sich Ärger ersparen, indem Sie auch ein Paar männliche Servokabel kaufen, um es einfacher zu machen, Ihre Servos an Ihren Arduino anzuschließen und bei Bedarf die Servos auszutauschen.

- 1/2 Zoll dickes Plastikblatt oder 3/4 "dickes Aluminium, um die Servohalterungen herzustellen. Ich habe ein altes Plastikschneidebrett verwendet, aber wenn Sie das tun, stellen Sie sicher, dass es die härtere, ruckelige Art ist (Sie sollten nicht in der Lage sein, einzudellen Die weichere Art ist UHMW und wird für diesen Zweck nicht gut genug bearbeitet.

- Knöpfe und passende Wagenschrauben zum Festklemmen der Servohalterungen an den Schienen.

Schritt 2: Zahnräder und Servos für Ihre Objektive auswählen

Bevor Sie Ihre Servos oder Getriebe kaufen, müssen Sie einige Dinge über Servos verstehen. Servos haben einen begrenzten Bewegungsbereich (normalerweise 180). Wenn Sie also Ihr Objektiv über den gesamten Zoom- und Fokusbereich steuern möchten, müssen Sie eine kleine Berechnung basierend auf der Ringbewegung Ihres Objektivs und dem Durchmesser des Objektivs durchführen Gang, den das Servo fahren wird. Ich denke, es ist am besten, nur den Prozess durchzugehen, den ich durchlaufen habe, damit Sie den gleichen Ansatz für die Anforderungen Ihres eigenen Systems verfolgen können.

Die Fokus- und Zoomringe meines Objektivs bewegen sich von Ende zu Ende um etwa 90 Grad, und mit den Abstandshaltern und dem Objektivzahnrad beträgt der Gesamtdurchmesser des vom Servo angetriebenen Zahnrads 4,25 Zoll. Ich habe einen Umfangsrechner von dieser Website (http://math.about.com/library/blcirclecalculator.htm) verwendet, um einen Umfang von 13,35 Zoll zu erhalten. Da 90 Grad 1/4 von 360 ist, kann ich berechnen, dass mein Servo ungefähr 3,4 Zoll Federweg (13,35 / 4) haben muss. Ich habe Standard-180-Grad-Servos verwendet, daher weiß ich, dass der Umfang meiner Servoantriebsräder mindestens 6,8 Zoll betragen muss (180 Grad entspricht der Hälfte von 360 Grad), sodass meine Servos nur Bewegungen ausführen können, die der Hälfte des Gesamtumfangs entsprechen die Servoantriebsräder). Wenn ich den Umfangsrechner wieder verwende, weiß ich, dass ich Zahnräder mit einem Durchmesser von mindestens 5 cm brauche. Tatsächlich habe ich ein etwas kleineres Objektiv verwendet, weil ich nicht den vollen Bereich der Fokusbewegung benötige und eine etwas feinere Fokussteuerung haben wollte, da dies für mich kritischer ist als das Zoomen. Dies ist eine weitere Überlegung, die Sie berücksichtigen sollten: Je näher Sie dem 1: 1-Verhältnis zwischen Antriebsrad und Objektivrad kommen, desto geringer ist die Auflösung. Beispiel: In meinem Setup ist ein Servoschritt von 1 Grad = 1/2 Grad Objektivschritt, aber wenn mein Antriebszahnraddurchmesser gleich dem Objektivzahnrad wäre, würde sich das Objektiv für jeden Servoschritt um 1 Grad bewegen. Sie benötigen außerdem mehr Servodrehmoment für ein Verhältnis von Antrieb zu Linse von 1: 1 als für ein Verhältnis von Antrieb zu Linse von 1: 2.

Sie sollten auch wissen, dass es eine andere Variable gibt, die Sie einführen können - die Servorotation. Mein Servosteuerungscode ist für Standardservos geschrieben, die sich um 180 Grad drehen. Ich habe jedoch ein Paar Digitalservos bestellt, die sich um 360 Grad drehen lassen und die es meinem Controller ermöglichen, Objektive zu handhaben, die mehr Federweg erfordern. Sie können Servos erhalten, die sich bis zu 3 Umdrehungen drehen. Dies sollte ausreichen, um die meisten Objektive zu handhaben, während das Übersetzungsverhältnis zwischen Antrieb und Objektiv niedrig bleibt. Natürlich müssen Sie einige geringfügige Änderungen am Code vornehmen, um den erweiterten Gradbereich zu bewältigen, aber es sollte ziemlich einfach sein. Wenn Sie Full-Turn- oder Multi-Turn-Servos möchten, suchen Sie bei eBay nach "Winch Servo".

Schritt 3: Bereiten Sie Ihr Arduino (oder Klon) vor

Sobald Sie Ihren Arduino (oder ein gleichwertiges Produkt), Ihren Wiichuck-Anschluss, Ihre Servos und Kabel sowie Ihren Wii Classic-Controller haben, können Sie loslegen und den Code auf Ihren Arduino laden. Hier ist der Umriss: Verdrahten Sie den Wiichuck-Stecker und die Servokabel, damit Sie alles zusammen testen können (dieser Schritt erfordert etwas Löten). Sobald Sie die Dinge verbunden haben, richten Sie die Arduino IDE auf Ihrem Computer ein, schließen Sie Ihr Arduino an und starten Sie das Laden der Bibliotheken und Beispiele, die Sie benötigen. Dann geht der Spaß los.

Verdrahtung des WiiChuck-Adapters:

Dieser Teil ist ziemlich einfach, wenn Sie nicht das tun, was ich getan habe, und den kleinen 4-Pin-Header verlieren, der damit geliefert wird. Sie löten einfach den Header an der richtigen Stelle und stecken ihn dann in den Arduino, wie im Bild auf der FunGizmos-Website dargestellt. Vergewissern Sie sich zum Anschließen Ihres Classic-Controllers, dass die Einkerbung am Controller-Stecker mit dem "nc" am Wiichuck-Adapter übereinstimmt.

Verdrahtung der Servos:

Ich habe ursprünglich eine Motorsteuerplatine gekauft, weil ich zuerst versucht habe, dieses Projekt mit Schrittmotoren anstelle von Servos zu bauen (weil ich dachte, sie wären leiser, was sich als ziemlich falsch herausstellte). Das Board hat 2 Hobby-Servo-Anschlüsse, so dass ich keine Lötarbeiten durchführen musste, um meine Servos anzuschließen. Die Verkabelung ist jedoch einfach: Sie verbinden einfach die Stromkabel beider Servos (schwarz ist negativ, rot ist positiv) mit Masse und VCC Ihrer Platine. Sie haben mehrere Standorte zur Auswahl. Schließen Sie dann einen der Signalleiter (gelb) eines Servos an Pin 9 und den anderen an Pin 10 an. Dies sind die Standard-PWM-Pins, die Standard-Pulsweitenmodulationsausgänge liefern, die erforderlich sind, um dem Servo mitzuteilen, wie weit es drehen soll.

Sobald Sie mit der Verkabelung fertig sind, können Sie alles miteinander verbinden, Ihren Arduino über das USB-Kabel mit Ihrem Computer verbinden und mit dem Laden des Codes beginnen.

Schritt 4: Programmieren Sie Ihr Board: Holen Sie sich die Bibliotheken und meinen Code und beginnen Sie zu spielen

Bevor Sie den Code laden, den ich für meinen Objektivcontroller geschrieben habe, müssen Sie die Arduino IDE auf Ihrem Computer einrichten und die benötigten Bibliotheken laden. Die Servo-Steuerungsbibliothek ist in der Arduino IDE enthalten, sodass Sie dafür nichts tun müssen. Mein Code verwendet jedoch auch eine vom Benutzer bereitgestellte Wii Classic Controller-Bibliothek, die auf dem Arduino-Spielplatz verfügbar ist.

Sie können den Schritten auf der Seite folgen, um diese Ihrer Bibliothek hinzuzufügen, oder einfach die angehängte Zip-Datei herunterladen und in Ihren Arduino-Bibliotheksordner entpacken. Meins ist auf diesem Weg:

.. Dokumente Arduino arduino-1.0 Bibliotheken

Ich habe einen Ordner namens MiconoWiiClassic im Ordner libararies erstellt und die Datei "WiiClassic.h" in diesem Ordner gespeichert. Sie können einfach die MiconoWiiClassic.zip-Datei, die ich hier eingefügt habe, in Ihren Arduino-1.9 libraries-Ordner entpacken.

AKTUALISIERUNG:

1) Seit dem ersten Posten dieses Instructable habe ich herausgefunden, wie man die Auflösung der Servos verdoppelt, was sie flüssiger und genauer macht. Dazu habe ich die von Arduino installierte Servos-Bibliothek optimiert. Sie können die Bibliothek entweder selbst optimieren oder die Datei Servo.zip herunterladen und die Datei Servo.cpp in Ihren Ordner.. Arduino arduino-1.0 libraries Servo extrahieren und die dort vorhandene Datei Servo.cpp überschreiben. Wenn Sie die Datei selbst optimieren möchten, können Sie die Datei einfach aus Ihrer Bibliothek in Notepad öffnen und alle Instanzen von "180" durch "360" ersetzen. Wenn Sie meine Skizze heruntergeladen haben, bevor ich dieses Update durchgeführt habe, sollten Sie FocusController_gp.zip erneut herunterladen und in Ihren Skizzenordner extrahieren. Diesem Ordner wird focus_zoom_controller_servo_final_2xresolution.ino hinzugefügt.

2) Nachdem Sie die Dateien entpackt haben, müssen Sie eines in der Datei WiiClassic.h ändern, damit die Bibliothek mit meinem Code wie erwartet funktioniert. Die Bibliothek WiiClassic.h enthält eine DEFINE_ON_HOLD-Funktion, die unkommentiert sein muss, um dies sicherzustellen Die Tastendrücke werden nur einmal gemeldet. Um dies zu kommentieren, müssen Sie die Datei.. arduino-1.0 libraries MiconoWiiClassic WiiClassic.h im Editor öffnen und die folgende Zeile ändern:

// # definiere REPORT_ON_HOLD

zu

#define REPORT_ON_HOLD

Wenn Sie dies nicht tun, werden Sie feststellen, dass das Drücken der D-Pad-Taste die Servos weiterbewegt, während Sie die Taste gedrückt halten, während das Servo nur um einen Schritt pro Druck bewegt werden sollte. Dieser Fehler kann auch bei anderen Tastendrücken zu ungewöhnlichem Verhalten führen.

3) Wenn Sie den WiiChuck-Adapter an die analogen Pins 2,3,4 und 5 anschließen, müssen Sie 2 und 3 als Masse und Stromversorgung konfigurieren, indem Sie dem Setup-Abschnitt Ihres Codes Folgendes hinzufügen (Dank an Phillip James) für den Fang dieser ommision)

"pinMode (16, OUTPUT)"; Stellt den digitalen 16-Pin (auch als Analog 2 bezeichnet) als Erdungspin ein

"digitalWrite (16, LOW)";

"pinMode (17, OUTPUT)"; Stellt den digitalen 17-Pin (auch als Analog 3 bezeichnet) als + 5-V-Pin ein

"digitalWrite (17, HIGH)";

Sobald Sie diese Bibliothek eingerichtet haben, können Sie auch meinen Projektcode herunterladen und in Ihren Hauptordner von Arduino entpacken. Wenn Sie die Arduino IDE das nächste Mal starten, werden meine Projekte in Ihrem Sketchbook-Ordner angezeigt. Mein Arduino-Ordner befindet sich in meinem Dokumentenordner wie folgt:

.. Dokumente Arduino

Schritt 5: Dinge testen: Wii Classic Controller

Wenn die elektronischen Teile angeschlossen sind und Ihr Code vorhanden ist, ist es an der Zeit, die Dinge zu testen und gegebenenfalls den Code zu optimieren. Laden Sie zunächst die WiiClassicTestValues-Skizze aus Ihrem Skizzenbuch (Datei> Skizzenbuch> WiiClassicTestValues). Kompilieren Sie es, bevor Sie es auf Ihr Board laden, um sicherzustellen, dass Sie die WiiClassic.h-Bibliothek ordnungsgemäß installiert haben (Sie sollten es auch in Ihrer Bibliotheksliste sehen können (Skizze> Bibliothek importieren). Wenn es ordnungsgemäß kompiliert wurde, laden Sie es auf dein Board.

Das Programm gibt den Wert jedes Sticks auf der Wii Classic an den seriellen Monitor aus. Sie müssen daher den seriellen Monitor öffnen (Extras> Serieller Monitor). Lassen Sie den Controller mit den Steuerknüppeln in Ruhe laufen, um zu sehen, welche Werte sich in der Mitte befinden, und drücken Sie dann beide Steuerknüppel methodisch einige Sekunden lang ganz nach vorne, dann ganz nach unten, dann ganz nach links und dann ganz nach vorne Recht. Sobald Sie dies getan haben, können Sie Autoscrolling im Monitorfenster deaktivieren, die Ergebnisse in den Editor kopieren und die Datei zur weiteren Überprüfung speichern. Jetzt können Sie sicherstellen, dass der Controller-Code für Ihren Wii Classic-Controller kalibriert ist.

Schritt 6: Laden Sie den Objektiv-Controller-Code und passen Sie ihn an Ihren Wii-Controller an

Jetzt können Sie den Controller-Code laden und sicherstellen, dass die erwarteten Controller-Werte mit Ihrem Wii Classic Controller übereinstimmen. Beginnen Sie, indem Sie meine Controller-Skizze über Datei> Sketchbook> focus_zoom_controller_final laden.

Scrollen Sie nach dem Laden zu Zeile 101 des Codes, um die Einstellungen für die Controller-Stick-Werte (siehe unten) anzuzeigen:

// Der rechte Stick hat die halbe Auflösung des linken - diese Werte können von einem abweichen

// Controller zu einem anderen, daher müssen Sie ein Testprogramm ausführen, um die Werte von zu erkennen

// jede Knüppelposition

int yCenterRight = 15;

int yMinRight = 2;

int yMaxRight = 28;

int xCenterRight = 15;

int xMinRight = 3;

int xMaxRight = 28;

int centerOffsetRight = 3;

int endOffsetRight = 0;

int yCenterLeft = 32;

int yMinLeft = 6;

int yMaxLeft = 55;

int xCenterLeft = 31;

int xMinLeft = 6;

int xMaxLeft = 55;

int centerOffsetLeft = 6;

int endOffsetLeft = 0;

Überprüfen Sie diese Werte anhand der von Ihrer Steuerung gelesenen Werte und ändern Sie sie gegebenenfalls. Stellen Sie sicher, dass Sie Ihre Änderungen speichern.

Schritt 7:

Es ist Zeit, den Code mit Ihren Servos zu testen. In meinem Code habe ich das Zoom-Servo an Pin 9 des Arduino und das Focus-Servo an Pin 10 angeschlossen. Sie können dies im Code leicht ändern, indem Sie die Zahlen hier ändern:

void setup () {

Serial.begin (9600); // Serielle Bibliothek mit 9600 Bit / s einrichten

// Servos anbringen und in die Ausgangsposition bringen, um die Servos am Objektiv zu montieren

zoomServo.attach (9);

focusServo.attach (10);

Sobald dies erledigt ist und Ihre Servos angeschlossen sind, schließen Sie Ihre Karte an den USB-Anschluss Ihres Computers an und laden Sie den Code auf Ihre Karte herunter. Nach dem Herunterladen und Booten bewegt sich das Zoom-Servo auf 180 Grad und das Fokus-Servo auf 0. Sie können nun mit den Knüppeln und Knöpfen spielen, um zu sehen, was passiert, und können versuchen, die verschiedenen Servopositionen und den Fokus zu programmieren Verhältnis. Einige der Tasten haben Standardwerte, aber Sie können jede Taste durch Drücken von HOME programmieren. Die Taste und das Programm speichern dann die Einstellung, bis die Karte zurückgesetzt oder ausgeschaltet wird.

Sobald Sie sich davon überzeugt haben, dass der Controller die Servos ordnungsgemäß bewegt, können Sie Ihre Kamera und Ihr Objektiv greifen und feststellen, ob die Servorichtungen für die Stickbewegungen korrekt sind. Wenn Sie den rechten Steuerknüppel nach vorne drücken, sollte das Servo in die richtige Richtung gedreht werden, um das Objektiv zu zoomen, und wenn Sie es nach hinten ziehen, sollte das Gegenteil der Fall sein. Gleichzeitig sollte der Fokus in die Richtung verschoben werden, die erforderlich ist, um die Kamera beim Bewegen des Zooms scharf zu halten. Ich habe meine so eingestellt, dass ich beim Vergrößern (Drücken des rechten Sticks nach vorne) den Fokus-Stick nach rechts bewegen muss, um den Fokus zu korrigieren, und beim Verkleinern (Ziehen des rechten Sticks nach hinten) muss ich Bewegen Sie den Fokushebel nach links, um den Fokus zu korrigieren. Dies schien die intuitivste Anordnung zu sein.

Indem Sie die Servos neben Ihrer Kamera und Ihrem Objektiv so einstellen, wie Sie sie auf dem Kamera-Rig montieren möchten, können Sie feststellen, ob sie sich in die richtige Richtung bewegen, je nachdem, wie sich Ihr Objektiv bewegt. Ist dies nicht der Fall, enthält der Code Anweisungen zum Ändern der Servobewegungsrichtung in Bezug auf jede Knüppelbewegung. Ich habe zukünftige Pläne, die Servo-Bibliothek zu hacken, um dies zu vereinfachen, aber im Moment ist es nicht so einfach wie das Umlegen eines Schalters, aber es ist auch nicht übermäßig kompliziert.

Schritt 8: Stellen Sie es für einen echten Test zusammen

Hier wird es richtig lustig. Sobald Sie zufrieden sind, dass sich die Servos für Ihre Kamera in die richtige Richtung bewegen, gibt es keinen Grund mehr, nicht alles zu montieren und zu sehen, wie es mit Ihrer Kamera und Ihrem Objektiv funktioniert. Sie können Gehäuse erstellen und Schalter, Stromanschlüsse und hübsche Lichter hinzufügen, sobald alles zu Ihrer Zufriedenheit funktioniert. Dies ist jedoch erst dann sinnvoll, wenn Sie feststellen, ob Ihr Setup in der Lage ist, Ihr Objektiv so zu betreiben, wie Sie es möchten. Ich habe dies mit mehreren Iterationen meines Projekts getan, einschließlich einer Stepper-basierten Version, die eine völlige Katastrophe darstellte und mich veranlasste, den Kurs zu ändern und auf Servos umzusteigen. Die Idee ist, schnell zu scheitern, bevor Sie zu viel Arbeit an einem Endprodukt geleistet haben, das noch optimiert werden muss.

Beginnen Sie mit der Montage der Servoantriebszahnräder und der Objektivzahnräder. Das ist alles ziemlich einfach, aber wenn Sie feststellen, dass Ihr Objektiv überhaupt verrutscht (wie meins), kann es hilfreich sein, zu wissen, dass Sie mit der Gummiunterlage, die sich leicht von der Rückseite eines billigen Objektivs lösen lässt, den Griff von allem verbessern können, dünnes Mousepad. Das gleiche Zeug kann auch verwendet werden, um Geräusche von den Servos zu dämpfen. In diesem Sinne kann das Servogetriebe auch mit einem kunststoffsicheren Schmiermittel geschmiert werden, um das Servo-Geräusch zu reduzieren.Ich habe Angelspulenfett verwendet, das als plastiksicher eingestuft ist, und es hat meinen Zoom-Servo wirklich beruhigt.

Wenn Sie kein Schienensystem haben, müssen Sie eines nach meinen Vorstellungen gestalten (ich lasse mich vom Bild leiten) oder im Internet ein noch besseres Design finden. Mein Rig wurde zu Testzwecken schnell zusammengebaut, und ich plane, das gepflasterte Design durch etwas attraktiveres, steiferes und einfach zu justierendes zu ersetzen. Meine Schienen sind Carbon-Skistöcke mit einem halben Durchmesser, die ich für 4 US-Dollar von Goodwill abgenommen habe (Goode-Marke ist nicht konisch, daher haben sie gut funktioniert). Der Schienenhalter besteht aus einem 1/2-Zoll-Hartplastik-Schneidebrett, das ich in einen 2/2-Zoll-breiten und 6-Zoll-langen Streifen gesägt habe. Um die "Löcher" der Schiene zu erzeugen, habe ich zwei Rillen mit einer Tiefe von 1/4 "und einem Durchmesser von 1/2" mit einem Kernkastenbohrer gefräst, der in einem Routertisch montiert und von einem kleinen Zaun geführt wurde. Ich wünschte jetzt, ich hätte das Ganze breiter gemacht, aber ich wollte es schmal halten, damit ich immer noch zu meinem Batteriefach komme, ohne die Kamera von den Schienen zu nehmen. Dann habe ich das Stück der Länge nach in zwei Teile geschnitten, einen Distanzblock aus Birkensperrholz mit einigen Holzschrauben an einem Ende befestigt und dann ein paar 1,4-Zoll-Löcher darin gebohrt, um es an der Kamera und der Manfrotto-Schnellwechselplatte zu befestigen.

Sobald Sie ein Schienen-Rig haben, können Sie einige Servo-Montageblöcke an Ihre Schienen anpassen. Ich habe meine auch aus Hartplastik-Schneidebrettschrott gemacht, den ich auf meinem Routertisch geroutet habe. Ich schraubte ein Ende mit ein paar kleinen Schnellbauschrauben zusammen und bohrte ein 1,4-Zoll-Ganzes auf der anderen Seite des Schienenlochs, um einen Schlittenbolzen zu halten. Ein kleiner Knopf ermöglicht es mir, den Montageblock festzuziehen, um einen guten Sitz auf den Schienen zu erzielen. Als ich sicher war, dass alles in Ordnung war, bohrte ich winzige Löcher für die Servo-Befestigungsschrauben, die mit meinen Servos geliefert wurden, und befestigte die Servos an ihrem Platz. Beachten Sie, dass das Servo bei dieser Anordnung nur an der Vorderkante befestigt ist, seien Sie also vorsichtig wo Sie Druck ausüben, wenn Sie die Servo- und Blockbaugruppe auf den Schienen montieren.

Schritt 9: Probieren Sie es aus

Wenn die Kamera installiert ist (und auf einem stabilen Stativ montiert ist) und die Servos an den Schienen montiert sind, ist es Zeit, alles für einen Testlauf anzuschließen. Schalten Sie den Arduino jedoch nicht mit eingeschalteten Gängen ein. Schwenken Sie sie stattdessen zuerst vom Objektivzahnrad weg, damit sich die Servos drehen können, ohne das Objektiv zu bewegen. Sie können dann Ihr Board einschalten. Wenn Sie dies nicht tun, bemerken Sie möglicherweise, dass Ihr Servo versucht, das Objektiv über seine Grenzen hinaus zu drehen, und das ist nicht gut.

Programmieren Sie Ihren Controller für Ihr Objektiv (diese Anweisungen sind auch im Arduino-Code enthalten)

Nachdem Ihr Board hochgefahren ist und sich die Servos nicht mehr bewegen, bewegen Sie den Objektivzoomring auf die maximale Einstellung, die der Servoposition entspricht. Wenn mein Controller hochfährt, bewegt sich mein Zoom-Servo in die breiteste Zoomposition. Deshalb bewege ich das Objektiv, bevor ich das Zoom-Servo einsetze. Nachdem ich das Objektiv bewegt habe, schwinge ich das Servo in Position, sodass das Antriebszahnrad nur in das Objektivzahnrad einrastet.. Ich programmiere dies dann als die breiteste Zoomeinstellung, indem ich "Home" und dann "Left Shoulder" auf dem Wii Classic Controller drücke. Ich benutze dann den rechten Stick, um hineinzuzoomen, bis die Kamera ihre Zoomgrenze erreicht, und benutze das Pad, um ein oder zwei Grad zurückzuziehen. Ich programmiere dann diese maximale Zoomposition, indem ich "Home" und dann "Right Shoulder" drücke, um die maximale Zoomeinstellung des Objektivs zu programmieren.

Ich wiederhole einen ähnlichen Vorgang für das Fokusservo, programmiere jedoch die Einstellungen für das Fokusservo ganz rechts und ganz links mit den Tasten "Right Z" und "Left Z".

Sobald diese Grenzen festgelegt sind, ist es Zeit, die Kamera einzuschalten, ein Motiv auszuwählen und den Fokus für die breitesten und engsten Zoomeinstellungen festzulegen. Es spielt keine Rolle, wo Sie anfangen, aber ich gehe normalerweise auf Maximalzoom (drücken Sie einfach die rechte Schultertaste, um automatisch dorthin zu gelangen). Ich verwende dann den linken Stick und das linke-rechte Steuerkreuz, um den Fokus richtig einzustellen, und drücke dann "Home" und dann "+", um den Fokus für Max Zoom einzustellen. Zoomen Sie das Objektiv dann bis zum weitesten Zoom heraus und wählen Sie mit dem linken Steuerknüppel und dem Steuerknüppel erneut den Fokus Ihres Motivs. Wenn es gut ist, drücke "Home" und dann "-", um den Fokus auf die Position "Min Zoom" (weitester Zoom) zu setzen. Jedes Mal, wenn Sie die Tasten "-" oder "+" programmieren, berechnet der Code das richtige Verhältnis, um den Fokus beim Zoomen zu verschieben, damit Ihr Motiv beim Zoomen scharf bleibt. Sie können den Fokus jederzeit mit dem linken Steuerknüppel oder dem Steuerknüppel einstellen. Bis Sie die Tasten "+" oder "-" neu programmieren, bewegt sich der Fokus bei Verwendung des rechten Steuerknüppels immer synchron mit der Zoombewegung bleiben Sie dabei, um das Objektiv zu zoomen. Hier liegt die Magie meiner "Erfindung" (wie meine Frau es nennt).

Sie können auch die 4 Tasten (x, y, a, b) mit speziellen Zoom- / Fokuspositionen programmieren. Bewegen Sie einfach den Zoom und stellen Sie den Fokus auf die gewünschte Position, drücken Sie dann auf "Home" und dann auf eine der Tasten, um sie für diese Position zu programmieren. Wenn Sie beim Programmieren jeder dieser Tasten nur den Fokus-Servo bewegen, können Sie Ihren Controller mit 4 voreingestellten Fokuspositionen, die das Zoomobjektiv überhaupt nicht bewegen, wie einen Nachführfokus arbeiten lassen.

Hier ist ein Video, das diesen Vorgang mit dem auf meiner GH2-Kamera montierten Controller zeigt:

Schritt 10: Wickeln Sie es ein

Wenn Sie mit dem Spielen und Teaking fertig sind und sich sicher sind, dass Ihre eigene Version meines Controllers für Sie funktioniert, ist es an der Zeit, alles dauerhaft, hübsch und einfach zu montieren und zu demontieren. Ich werde Sie diesen Teil selbst herausfinden lassen (aber hoffentlich werden Sie Ihre Ergebnisse mit mir teilen). Ich muss einige Änderungen an meinem Controller vornehmen, bevor ich ihn fertig stelle. Daher habe ich mir vorgenommen, meine Pläne hier mitzuteilen, damit Sie in die gleiche Richtung denken.

Gehäuse und bessere Servohalterungen

Ich habe nur noch nicht das richtige Gehege gefunden, daher würde ich Vorschläge hier begrüßen. Ich werde wahrscheinlich einen kleineren Arduino wie einen Mini kaufen, damit ich die Dinge klein halten kann, und das eröffnet mir neue Möglichkeiten. Ich werde jetzt auch die Plastikservohalterungen mit gefrästen Aluminiumhalterungen ausrüsten, da ich weiß, wie gut diese Sache funktioniert. Ich werde auch die Servos selbst aufrüsten.

Netzteil

Im Moment wird mein Controller durch Anschließen des USB-Kabels an ein iPod-Ladegerät vom USB-Stromnetz getrennt. Ich habe jedoch einen externen 9-Volt-DVD-Ersatzakku, der aufgeladen werden kann, während der Controller Strom liefert, und ich mag die Idee, nur über einen Akku zu verfügen. Sobald ich ein geeignetes Gehäuse gefunden habe, werde ich den richtigen verkabeln Anschluss an die externen Poer-Pins auf meinem Board.

LED-Anzeigen

Es Wäre schön (und sehr einfach, eine Anzeige für "Programmiermodus" hinzuzufügen, daher habe ich einige LEDs, die leuchten, wenn sich der Controller im Programmier- oder Ausführungsmodus befindet.

Einfache Servowende

Wie ich bereits angedeutet habe, ist es ein bisschen mühsam, die Richtung des Servos im Verhältnis zu den Stick-Bewegungen zu ändern. Deshalb habe ich begonnen, die Arduino-Servobibliothek zu hacken, um ein Servorichtungs-Flag zu akzeptieren.

Speicher für Objektiveinstellungen

Es wäre auch schön, die Objektivgrenzwerte nicht jedes Mal neu programmieren zu müssen, wenn die Steuerung ausgeschaltet wird. Daher plane ich, für jede Objektiveinstellung einen auf SD-Karten basierenden Speicher hinzuzufügen.

Schritt 11: Feedback und Nachverfolgung

Ein anderes Mitglied. Steve Dray hat großartige Arbeit geleistet, indem er einige seiner eigenen Versionen dieses Riggs gebaut und seine Schaltpläne und Bilder großzügig mit anderen geteilt hat. Ich hoffe, dies inspiriert und hilft anderen, dieses Projekt aufzubauen, zumal ich nur wenig Zeit hatte, um Fragen zu beantworten. Steve hatte einige Probleme, die er als schlechtes Netzteil diagnostizierte, also baute er sein eigenes geregeltes Netzteil und fügte auch den Schaltplan dazu hinzu. Ich habe es geschafft, mit meinem kleinen Würfel-iPod-Ladegerät auszukommen.

Vielen Dank, Steve!