Water Drop (Advanced)

Wer einen Wassertropfen reproduzierbar fotografieren will, der ist hier richtig. Mit etwas Aufwand kann man in wenigen Stunden aufregende Bilder von Tropfen schießen. Ich versuche dabei, jeden Schritt so ausführlich wie nötig zu erklären, um zum Schluss gute Ergebnisse zu erzielen. Hier will ich zeigen, wie ich einen Wassertropfen mit einem Standalone-Projekt fotografiere.

Water_Drop_Advanced

Die Idee basiert auf der Simple-Version, mit dem Unterschied, dass hier kein PC mehr nötig ist. Alle Parameter werden direkt am Controller geändert.

Das Bild oben ist übrigens mit Hilfe eines Blitzes entstanden (Yongnuo YN-560 IV).

Der elektrische Aufbau

Im Gegensatz zur Simple-Version werden hier etwas mehr Komponenten benötigt. Vor allem der kleine Display ist wichtig, da ohne ihn die Idee des Menüs nicht möglich ist. Ich habe folgende Komponenten verwendet:

Die Verdrahtung habe ich wie hier gezeigt erstellt. Der große Vorteil vom Arduino Nano ist, dass es sich direkt auf die Steckplatine setzen lässt. Das macht den Aufbau wesentlich übersichtlicher. Die 4 Pushbuttons sind so angeordnet, dass diese von links nach rechts folgende Zuordnung haben: Ok, Cancel, Left, Right. Der Sensor wird, wie hier zu sehen ist erst später angeschlossen, weil ich zwei Arten von Sensoren vorstellen werde.

Water_Drop_Advanced_Breadboard

Der Schaltplan soll alle letzten Unstimmigkeiten in der Verdrahtung beseitigen. Die Komponenten wie Camera, Sensor und Display werden im Anschluss erklärt.

Water_Drop_Advanced_Shematic

Hinweis: Wer bereits ein Arduino Uno besitzt, und dieses auch verwenden mag, der hat hier ein leichtes spiel. Da sich im Nano v3 und im Uno Rev3 der selbe Prozessor befindet, und auch die Pinbelegung ident ist, kann man das Nano einfach gegen das Uno austauschen, ohne dabei die Pins ändern zu müssen.

Komponente Camera

Der Kameraanschluss ist ein einfacher 3.5mm Stereo-Klinkenstecker. Viele Kameras und Blitze unterstützen ein Auslösen mit einem solchen Stecker. Um einen solchen Stecker zu bauen, braucht man folgende Komponenten:

  • 3.5mm Stereo-Klinkenstecker
  • 2.5mm zu 3.5mm Adatperkabel
  • 3.5mm Stereo-Kabel (Male-Male)

Audio_Jack_Real_Image

Die Verdrahtung zwischen Optokoppler und Klinkenstecker muss so ausgeführt sein, dass das Gehäuse (SLEEVE) des Steckers mit dem Emitter des Kopplers verbunden ist. Der Kollektor des Optokopplers muss mit dem Left-Pin des Steckers verbunden werden, da dieser für das Auslösen der Kamera zuständig ist. Mit Right-Pin kann man den Autofokus betätigen, dies ist hier jedoch nicht relevant.

Audio_Jack_Shematic

Pin 1 des Optokopplers ist die Anode (+) und Pin 2 ist die Kathode (-). Wenn sich nun jemand fragt, warum ich hierfür einen Optokoppler verwende: Keeps you from frying your stuff!

Das Arduino gibt durch den digitalWrite()-Befehl 5V am entsprechenden Pin aus. Diese 5V könnten an der Kamera Schäden verursachen, deshalb muss man etwas zur Sicherheit zwischenschalten. Diese Sicherheit ist der Optokoppler, er ist von der Funktion her vergleichbar mit einem Relais, jedoch ist die Schaltzeit wesentlich kürzer – also perfekt für solche Anwendungen! Wer sich unsicher ist, wo sich die Kontakte des Optokopplers befinden: Datenblatt!

Komponente Sensor

Für den Sensor habe ich zwei Varianten zur Auswahl. Die erste ist gleich dem Sensor von Water Drop (Simple). Also eine einfache Lichtschranke, aufgebaut aus einer Infrarot-LED und einem Phototransistor. Beide Elemente sollen sich im späteren Aufbau gegenüberstehen, sodass die LED den Transistor anleuchtet. Als Abstand dazwischen wähle ich eine Distanz von 15 bis 20 Millimetern. Für einen Funktionierenden Sensor benötigt man mindestens 4 Komponenten:

Water_Drop_Advanced_Sensor_Shemati

„Sensor Jack“ stellt einfach nur die Verbindung zwischen dem Sensor und dem Steckbrett dar. Diese kann mit 5 Kabeln sehr einfach hergestellt werden – eigentlich reichen 4, da man die beiden GND-Leitungen zusammenfassen kann. Wer so günstig und so einfach wie möglich einen solchen Sensor herstellen will, der kann dies mit einfachen Klemmen erledigen. Das funktioniert besser als man vielleicht glauben mag.

Light_Sensor_Real_Image

Die zweite Variante ist etwas ausgereifter. Ich habe einen Infrarot-Reflexlichttaster besorgt, welcher als Output ein digitales Signal liefert. In diesem Fall habe ich darauf geachtet, dass bei Detektion eines Objektes das Signal LOW wird, sodass ich beide Sensoren vertauschen kann, ohne den Code dafür ändern zu müssen.

Light_Sensor_Advanced

Den Reflexlichttaster muss man so positionieren, dass er den Wassertropfen gut detektieren kann. Hierfür bedarf es etwas Geduld und mehrere Versuche, bis man die perfekte Distanz gefunden hat. Der Anschluss erfolgt genau gleich wie beim ersten Sensor: +5V, Signal und Ground. Die beiden Pins für die IR-LED bleiben dabei frei. Man muss nur darauf achten, dass der Sensor auch wirklich für 5V ausgelegt ist.

Komponente Display

Display_Real_Image

Bei dem Display handelt es sich um einen 0,96″ OLED Display, welcher mit dem BUS-System I²C angesteuert wird. Das Arduino Nano unterstützt dies, indem man die Library Wire.h implementiert. Dann sind allerdings die beiden Pins A4 & A5 für eben diese Übertragung reserviert und können nicht mehr für andere Zwecke verwendet werden. Wichtig ist hier, dass die Verbindung des Displays mit dem Arduino folgendermaßen ausgeführt wird:

  • SDA ⇒ A4
  • SCL ⇒ A5
  • VCC ⇒ 5V
  • GND ⇒ Ground

Wer für die Beschaltung ein Arduino UNO verwenden will, der kann die Pinbelegung beibehalten, denn am UNO greift die Wire.h Library auf die selben Pins zu. Um auch tatsächlich etwas auf dem Display anzeigen zu können bedarf es einer eigenen Programmbibliothek. Ich habe für diesen Zweck eine einfache Bibliothek erstellt. Die Erklärung und Verwendung findet man hier. Die Beschreibung des Codes findet man etwas weiter unten im Beitrag!

Der mechanische Aufbau

Als Podest für den Tropfen nutze ich eine art Tisch, den man schnell und einfach selbst bauen kann. Das Holz hat die Abmaße 40x20mm, die Beinlänge beträgt 700mm und die Länge der Verbindungshölzer beträgt 500mm. Auf den oberen Rahmen habe ich ein Gestell gesetzt, welches man in eine Richtung verschieben kann.

Construction

Den Tropfen selbst kann man sehr einfach mit einer Spritze erzeugen, und um nicht am Gestell zu wackeln, nutze ich einen dünnen PTFE-Schlauch, welcher in einer gedrehten Düse endet (man kann auch den Schlauch eines Infusionsbestecks nutzen).

Syringe

Die Düse ist so ausgeführt, dass man einfach mit einer M8 Sechskantmutter befestigen kann. Den Schlauch zieht man einfach oben über die Düse.

Nozzle

Die Düse wird, wie im 3D-Modell gezeigt, einfach mit einer M8 Mutter an ein 2mm dickes Blech geschraubt. Das Blech selbst kann dann in ein Holzbrett geschraubt werden, in welchem sich eine Ausnehmung für die Düse befindet.

Nozzle_Outlet

Die Skizze oben zeigt die Düse. Am oberen Ende der Düse muss der Durchmesser passend zum Schlauch gewählt werden, sodass dieser auch tatsächlich dicht ist. Falls jemandem der Aufwand für die Düse zu groß ist: Ein dünner Schlauch tut’s auch!

Der Programmcode

Wie sollte es anders sein – GitHub!

Der Großteil des Codes besteht aus dem Menü. Falls jemand Interesse an Menü-Programmierung hat, der kann sich meine Idee dazu gerne ansehen, und sich bei Fragen an mich wenden. Natürlich gibt es bessere, oder schönere Wege.

Ein paar Details zu dem Auslöse-Code. Wird im Menü der Punkt Start Process gewählt, so berechnet der Controller aus den gegebenen Parametern die Zeit, welche der Wassertropfen vom Sensor bis zur Wasseroberfläche benötigt. Durch eine zusätzliche Zeitangabe kann diese Zeit variiert werden.

Das Signal des Sensors wird zu Beginn ausgelesen. Dieser Wert wird als Referenz für den Tropfen genommen. Fällt der Tropfen durch den Sensor, so ist der aufgenommene Wert niedriger als der Referenzwert -> die Kamera wird ausgelöst. Die Berechnung der Fallzeit erfolgt über die folgende Formel:

Formula

Die Formel ist aus dem einfachen Zusammenhang Geschwindigkeit = Weg / Zeit entstanden. Ich habe lediglich die Höhe vor und nach dem Sensor mit einfließen lassen, und das Ganze in eine etwas schönere Form gebracht. Die beiden Terme ha[m] und hu[m] beziehen sich auf die Höhen, der Parameter g[m/s²] bezeichnet die Erdbeschleunigung.

Die Vorgehensweise

Ist der Programmcode auf das Arduino geladen, und sind der Sensor und die Kamera damit verbunden, so kann dieses im Standalone-Betrieb genutzt werden. Es benötigt lediglich eine Spannungsquelle. Als Quelle nutze ich gerne ein USB-Akku-Pack. Diese sind leicht, einfach zu montieren und gut zu transportieren. Außerdem benötigt das Arduino Nano so wenig Energie, dass das Akku-Pack eine gefühlte Ewigkeit durchhält. Über das Menü müssen dann alle Einstellungen getätigt werden. Dazu muss man einfach nur die 4 Tasten nutzen. Die Tasten OK und Cancel wechseln je nach Menüpunkt ihre Eigenschaften:

  • Hauptmenu
    • OK dient zum Bestätigen des selektierten Eintrages
    • Cancel ändert das Vorzeichen der Time
  • Untermeü
    • OK dient nun als Taste Right
    • Cancel dient nun als Taste Left

Menu_Preview

Die veränderbaren Parameter des Menüs lauten:

  • Time. Mit diesem Parameter lässt sich jene Zeit einstellen, welche zusätzlich zur Fallhöhe gewartet wird. Die Zeit kann auch negativ sein, sodass die Kamera etwas früher ausgelöst wird.
  • H.A. Dieses Kürzel steht für Height Above Sensor, man gibt also die Distanz zwischen Sensor und Düsenauslass an.
  • H.U. Die Buchstaben stehen für Height Under Sensor. Hier gibt man die Distanz zwischen Sensor und Wasseroberfläche an.
  • Mirror L. Wenn die Spiegelverriegelung der Kamea aktiviert ist, so sollte man auch diesen Menüpunkt aktivieren. Dann wird der Spiegel der Kamera hochgeklappt, bevor die eigentliche Aufnahme entstehen kann.

Die Kamera

Nachdem alle Parameter eingestellt sind, kann die Kamera positioniert werden. Diese sollte sich am besten auf einem Stativ befinden. Die Belichtung nehme ich mit einem Blitz vor.

Es gibt auch einige Blitze, welche mit einem 2.5mm Klinkenstecker ausgelöst werden können.

Ich gehe dabei so vor, dass ich den Raum abdunkle, dann die Kamera einige Sekunden belichten lasse. Das Bild entsteht dann, indem der Blitz das Set erhellt. So bekommt man gestochen scharfe Bilder der Tropfen.

Den Fokus nehmen ich manuell vor. Da ich die Düse exakt positionieren kann, weis ich wo der Tropfen im Bild sein wird. An diese Stelle stelle ich ein Stück Metall, welches ich fokussiere. Die Blende setze ich recht hoch an, ich gehe dabei bis zu f/16. Bei dem verwendeten Objektiv handelt es sich um das 100mm Macro von Canon.

Das Wasser

Die Tropfflüssigkeit, also jene, die von der Düse auf das Wasser trifft, befindet sich in einer Kunststoff-Spritze. So kann man sehr einfach die Tropfen exakt austreten lassen. Hierzu kann man folgende Flüssigkeiten nutzen:

  • Reines Wasser – ergibt starke Spritzer
  • Wasser-Guarkernmehl-Mischung – ergibt gebundenere Formen.

Die Guarkernmehl-Mischung bereitet man mit etwa 5cl Spiritus zu. Diesen Spiritus gibt man zu einem Teelöffel Guarkernmehl. Nach dem Umrühren gibt man das Gemisch in einen Behälter mit 2 Liter warmen Wasser. Danach muss man 15 Minuten stark rühren, sodass sich das Guarkernmehl gut mit dem Wasser vermischt. Dieses Gemisch lasse ich dann ein paar Stunden so stehen. Für besonders klare Tropfen sollte man das Wasser/die Mischung vor den Fotos filtrieren – ein Taschentuch oder ein Kaffeefilter reicht hier als Filter.

Water_Basin

Die Dichte des Beckenwassers behandle ich nicht. Ich filtriere lediglich reines Leitungswasser, und achte darauf, dass das Becken sauber ist. Als Becken nutze ich einen rechteckigen Glasbehälter, der etwa 90mm hoch ist und unter mein Gestell passt. Das Becken muss bis zum Rand gefüllt werden, sodass man den „Horizont“ nicht mehr erkennen kann. Hinter das Becken kann man verschiedenfarbige Platten stellen, um so eine tolle Farbgebung der Szene zu erreichen.

Wer einen externen Blitz verwenden möchte, der kann diesen hinter eine färbige Milchglasplatte, welche hinter dem Becken steht, positionieren, so erreicht man tolle Ergebnisse in der Beleuchtung.

Start Process

Wird ein Durchgang gestartet, so berechnet der Mikrocontroller alle nötigen Parameter, und gibt dann das Signal, dass der Wassertropfen fallen gelassen werden kann. Das Signal ist das Leuchten der LED. Erst wenn diese durchgehend hell ist, sind alle nötigen Vorkehrungen für eine erfolgreiche Aufnahme getroffen. Bleibt nur noch eines zu sagen:

Viel Spaß beim Fotos machen, mein erstes Bild mit Water Drop (Advanced) seht ihr hier:

Water_Drop

 

Edit

Ich habe nun endlich die Zeit gefunden, doch noch ein Gehäuse für den Aufbau zu basteln. Es ist wohl nicht das schönste oder genaueste Gehäuse, doch es erfüllt seinen Zweck und ich bin zufrieden damit.

Housing

Darin befindet sich ein kurzes Steckbrett, worauf alle Komponenten sitzen, welche auch auf dem oben gezeigten platziert sind (ausgenommen der Bildschirm und die 4 Buttons). Auf der rechten Seite (hier nicht zu sehen) findet man zusätzlich eine Buchse, durch welche 12V gespeist werden können. Diese habe ich mit dem Arduino Vin und GND – Pin verbunden. Auf der linken Seite kann man eine kleine Ausnehmung erkennen, durch welche man an die USB-Buchse des Arduino gelangt. So kann man Änderungen im Programm vornehmen, ohne das Gehäuse öffnen zu müssen.

Warum das Gehäuse so groß ist? Nun ich hatte keine Steckbrett-Kabel mehr zur Hand, so musste ich Jumper-Wire nehmen. Und um diese nicht zu knicken, habe ich das Gehäuse einfach etwas größer gebaut.

Advertisements

5 Gedanken zu “Water Drop (Advanced)

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s