fotocam

Mit dem Raspberry Pi kann man auch Fotos machen. Viele nutzen die originale Pi-Cam dazu. Als Sammler von Münzen und Ansichtskarten lag mein Fokus darin, die Objekte schnell fotografieren und weiterverarbeiten zu können. Für Münzen taugt ein Scanner nicht, deshalb habe ich schon seit jeher eine Kamera genutzt. Mit der eigenen Digitalkamera geht das schon, man muss sich aber immer Gedanken über einen geeigneten Platz und den Schattenwurf machen. Man braucht ein Stativ und möglichst gleiche Lichtverhältnisse, sonst sind die Ergebnisse einfach zu verschieden.

Deshalb wollte ich gern eine automatisierte Lösung mit gleichbleibender Qualität. Welche man auch reproduzieren kann, ohne immer alles neu aufbauen zu müssen. Hier ist nun unsere „fotocam“ entstanden. Aber von Anfang an. Was braucht man alles dazu?

Ein Pi Version 2 oder 3 eignet sich gut, daneben ein LCD-Panel als Kontrollmonitor. In der Testphase haben wir Maus und Tastatur direkt angeschlossen. Für später braucht man keine diversen Eingabegeräte mehr, denn man kann alles über ssh von seinem gewohnten PC im Netzwerk steuern.

Da wir eine originale Pi-Cam nutzen, war auch die Ansteuerung mittels raspistill klar. Obwohl eine Konsolenanwendung, kann man beim Snapshot auf dem Zielrechner ein Bild erzeugen und dessen Anzeigedauer variabel festlegen. Ein super Vorteil für unser Projekt.

Denn damit sind alle Tools vorhanden, und wir können uns um den Aufbau kümmern. Also mit der Hardware hinein in ein Gehäuse. Zuerst wollte ich mich um die Beleuchtung kümmern.

Als Vorteil fand ich beim käuflichen Gehäuse (Kasten für Kleinteile), dass dieser einen Deckel hat, der gleich als Diffusor dienen kann. Damit konnten wir gewöhnliche LED-Strips verwenden und haben eine Kombination aus Neutralweiß und etwas wärmeren Licht gewählt. Es wurde auf einer Grundplatte verdrahtet und etwa 1cm in das Gehäuse eingesenkt.

Die Spannung für die Beleuchtung (12V) kann dann separat kommen, oder man nimmt einen DC/DC-Wandler, um auch die restliche Elektronik aus einem einzigen Netzteil zu versorgen. Die Lichtstärke hat sich auf unserer kurzen Distanz von 25cm als absolut ausreichend herausgestellt. Und tatsächlich hatten wir beim ersten Netzteil Probleme mit Streifenbildung im Bild, da es nicht genug Glättung hatte. Ausgetauscht gegen ein neues, war dann alles OK.

Auch mit einer neuen Cam mit 8MP sind die Bilder, die man erzielt, logischerweise nicht mit einer modernen Handykamera oder Spiegelreflexkamera vergleichbar. Aber das braucht sie für unseren Zweck (Dokumentation vom Sammelarchiv) auch gar nicht zu sein. Ziel bei Ansichtskarten war, nach dem Zurechtschneiden eine lange Kantenlänge von mindestens 2000 Pixel zu erreichen, was auch klappt, wenn man eine solche Karte gut bildfüllend aufnimmt.

Außerdem musste noch der Fixfokus der Cam angepasst werden, da die standardmäßig nicht auf so kurze Brennweiten eingestellt ist. Bei unserer Stativhöhe von 25cm haben wir das mit ein paar vorsichtigen Umdrehungen am schwarzen Plastik hingekriegt. Dazu gibt es geeignetes Werkzeug, was man sich auch selbst herstellen kann, eine kleine Zange und etwas Gefühl tun es aber auch.

Der Pi findet im Boden des Fertiggehäuse Platz, der zeigt in unserer Anordnung nach oben. Die entsprechende Aussparung war aus dem Plastik gut mit einem Cutter-Messer herauszuschneiden. Überdeckt wird das Ganze dann durch den LCD-Screen, welcher mit vier Abstandhaltern angebracht ist. Soweit so gut. Mit dem Raspi Fotos aufzunehmen, ist ja nun wie gesagt weniger spektakulär. Und man kann sich mit wenig Aufwand auch eine an die eigenen Bedürfnisse angepasste Software selber bauen.

Eine wirklich komplexe Softwarelösung kam für mich nicht in Frage, denn man will ja im Wesentlichen die Kamera auslösen. Also ein Python-Script gemacht, welches für den entsprechenden Grundkomfort sorgen soll. Das starten wir an einem beliebigen Rechner im Netzwerk, welcher ssh-Zugriff auf den Kamera-Raspi hat.

Unser „fotocam“-Skript lässt sich mit verschiedenen Optionen auf der Kommandozeile starten. Im normalen Modus wird ein Livebild auf dem angeschlossenen Screen angezeigt, danach hat man Zeit, das Fotoobjekt divers auszurichten.

Nach 40 Sekunden wird „abfotografiert. Damit muss ich mir die Einstellungen von raspistill nicht merken. Wie zum Beispiel folgende, in Python in einem Subprozess:

subprocess.call([„sudo“,“raspistill“,“-q“,“80″,“-t“,“40000″,“-o“,dname])

„-t“ gibt dabei die Zeitverzögerung bis zur eigentlichen Aufnahme an. Daneben gibt es den Schnappschuss ohne Verzögerung (immediatly) und den Shutdown vom Pi nach getaner Arbeit. Außerdem kann man im Demo-Mode arbeiten, bei dem nur ein Bild auf dem LCD-Monitor erzeugt, aber keine Datei geschrieben und nichts hochgeladen wird. Die Ausgabe im Terminal ist spartanisch vorgesehen, schließlich zählt das Endergebnis. Will man mehr mitlesen, gibt es einen „Verbose-Modus“.

fotocam [-i s d] [-v]

Zwar ist es unerheblich, ob der Steuerrechner mehr oder weniger weit vom Kameraufbau mit dem RPi steht, in der Nähe sollte er aber schon sein, gerade wenn es gilt, mehrere Fotoobjekte nacheinander abzulichten. Ansonsten kann man aber auch eine Tastatur direkt an den Pi anschließen, dann öffnet man direkt dort ein Terminal und startet das Skript, über den angeschlossenen LCD Monitor kann man genauso gut arbeiten.

Dass wir beim Pi nur eine Cam mit Fixfokus haben, stört bei flachen Objekten nicht wirklich. Zur Not kann man am Stativ nachregulieren. Der Objekttisch ist derzeit eine Korkplatte, gut um auf einfache Art und Weise etwas zu fixieren und mit Lineal, an dessen Kante man anlegen kann. Jetzt kann man also Aufnahmen am besten in einem dunklen Raum machen, wo die Verhältnisse nicht durch Einfall von grellem Sonnenlicht gestört werden. Etwas mehr oder weniger Tageslicht ist aber kein Problem. Da wir mit der Fotocam divers vernetzt sind, werden die erzeugten Bilder auch gleich auf den Heimserver hochgeladen, von dem aus sie dann weiter verarbeitet werden können. Ja, Randbeschnitt brauchen alle Bilder noch. Dort zu automatisieren, ist vielleicht ein weiteres Projekt…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert