Die Idee
… für das Zeitraffervideo oder zum bloggen überhaupt entstand beim Lesen des Hausbaublogs eines Bekannten (http://haus.blog.geekbetrieb.de/). Er hat relativ detailliert beschrieben wie er es realisiert hat und zwar mit einer Canon Kompaktkamera (mit speziellem Skript) aus einem vor dem Hausbau erstellten Gartenhäuschen heraus.
Vorab ein Gartenhäuschen zu bauen scheiterte bei uns hauptsächlich am Platz auf dem Grundstück. Alleine der Aushub nimmt 1/4 der Fläche ein und der Rest wird praktisch für das Haus selbst und die Arbeiten gebraucht. Außerdem wollte ich nicht manuell die SD-Karten austauschen. Es musste eine elegantere Lösung her.
In meiner Freizeit hatte ich mich schon einige Zeit mit dem Kleinstcomputer Raspberry Pi beschäftigt. Er hat schon als Media-Center gute Dienste geleistet und wird vermutlich auch im fertigen Haus eine (kleinere) Rolle spielen. Eines Tages las ich, dass es für das Teil ein Kameramodul gibt. Da stand fest: damit wird das Zeitraffervideo gemacht. Die Vorteile lagen für mich klar auf der Hand:
- klein
- günstig
- und durch das Linux als Betriebssystem und die riesige Community enorm flexibel was die Möglichkeiten angeht.
Jetzt hatte ich etwas, was zwar Bilder macht, aber die waren immer noch auf der SD-Karte. Und die kann man nicht so einfach heraus ziehen wie bei einer Fotoknippse, da auf der Karte das Betriebssystem des Pi läuft und ein Entfernen zum Absturz führt. Außerdem will man als grundsätzlich fauler Informatiker möglichst bequem im Auto sitzen bleiben 🙂 Die Lösung war auch hier schnell gefunden und erstaunlich leicht umzusetzen. Mit einem kleinen WLAN-USB-Dongle wird ein WLAN Hotspot erzeugt über den man sich mit einem Notebook auf den Pi verbindet und die Daten runter kopieren kann.
Die Realisierung
Jeden einzelnen Schritt zu erklären würde zu weit gehen. Ich werde aber versuchen die wichtigsten Knackpunkte zu nennen. Damit kommt man mit Googles Hilfe auf jeden Fall zum Ziel. Die Hardware ist klar:
- Raspberry Pi (Version ist egal) mit Kameramodul (hier bitte das mit IR-Filter, sonst hat man zwar gut Nachbilder aber tagsüber sind die Farben verfälscht)
- Gehäuse für den Pi
- Netzteil für Pi, ich habe eins mit 2000 mA genommen
- SD-Card
- Möglichst wasserdichtes/regengeschütztes Gehäuse
- Holzpfahl
Positionen 1-4 gibt es in vielen, vielen Online-Shops, u.a. Amazon. Das Gehäuse fand ich in der Werkstadt meines Paps und der Holzpfahl hat im Baumarkt um die 2 € gekostet.
Die Installation des Betriebsystems für den Pi und der Kamera ist im Netz sehr gut dokumentiert. Die Installation als AccessPoint habe ich unter http://www.tacticalcode.de/2013/02/raspberry-pi-als-accesspoint-oder-wlan-bridge.html gefunden. Wenn das alles läuft kann man sich per SSH auf dem Pi anmelden und der Befehl
raspistill -o image.jpg
macht ein erstes Bild. Die Bilder sind warum auch immer spiegelverkehrt, so dass man noch ein paar Optionen hinzufügen muss, damit es so aussieht, wie das sein sollte. Als Qualitätssufe ist „25“ vollkommen ausreichend und halbiert die Dateigröße eines Bildes um ca. 50 %. Und damit man nicht jedes Foto immer überschreibt, nimmt man Datum und Uhrzeit in den Dateinamen. Das fertige Skript camera.sh sieht folgendermaßen aus:
#!/bin/bash DATE=$(date +"%Y-%m-%d_%H%M%S") raspistill -q 25 -vf -hf -o /home/pi/Haus/$DATE.jpg
Ein cronjob sorgt dafür, dass von 5.00 Uhr bis 18.59 Uhr jede Minute ein Foto gemacht wird:
* 05,06,07,08,09,10,11,12,13,14,15,16,17,18 * * * /home/pi/Haus/camera.sh
Da die innere Uhr des Pi nicht läuft, wenn er ausgeschaltet ist, muss man nach jedem Starten die Uhrzeit richtig setzen. Hat man ein Linux oder Mac OS als Betriebssystem erledigt das folgender Befehlt in einer Shell:
date "+%m%d%H%M%Y.%S" | ssh pi@10.1.0.1 'sudo date "$(cat -)"'
wobei 10.1.0.1 die IP-Adresse des Pi ist, wenn man sich z.B. mit ihm als AccessPoint verbunden hat. Windows-Nutzer müßten sich eine andere Lösung überlegen. Man kann das ganze auch weglassen, müßte dann aber rund um die Uhr Bilder machen (1440 Minuten mal 1,4 MB pro Bild = 2 GB pro Tag!). So sind es „nur“ 1,3 GB 🙂
Das Zeitraffervideo ansicht wird aus den vielen, vielen Einzelbildern generiert. Benutzt wird dazu die freie Software ffmpeg, die es kostenlos zum Download für die verschiedensten Plattformen gibt. Unter Linux/Mac OS erstellt folgender Befehl ein Video in VGA-Auflösung, wobei 30 Bilder pro Sekunde verwendet werden:
ffmpeg -i '%*.jpg' -r 30 -s vga -an -q:v 2 timelapse.mp4
Theoretisch kann das Video auf auf dem Pi erstellt werden. Praktisch ist das aufgrund der mageren Prozessorleitung jedoch nicht.
Softwareseitig ist nun alles vorbereitet, jetzt kommt das handwerkliche. Den Pi + Kamera habe ich mit einer Heissklebepistole am Gehäuse fixiert und vorher ein kleines Loch für die Kameralinse hineingebohrt. Das Gehäuse sollte nicht zu klein sein, damit die diversen Kabel, Netzteil, Steckdose und natürlich der Pi + Kameramodul selbst hineinpassen.
Jetzt ging es raus auf die Baustelle. Die Kamera ist nicht sehr weitwinklig, daher braucht man einen gewissen Abstand zum Haus. Pfahl in die Erde schlagen, Gehäuse montieren, ein paar Bilder schiessen, die Ausrichtung nachjustieren und voila. Ein Brett oben quer dient als Regenschutz.
Kleiner Tipp zum Schluss: Wer so etwas vor hat sollte sich rechtzeitig damit beschäftigen. Die Fehler liegen wie so oft im Detail und kurz vor Baubeginn hat man ganz andere Sorgen als sich damit zu behängen.
Die Fallstricke
Je ein technischer und ein menschlicher. Fangen wir mit der Technik an. Anfangs war ich vorsichtig und habe den Cronjob gestoppt, als ich die Bilder vom Pi per WALN auf das Notebook kopiert habe. Da lief das Kopieren wunderbar. Mit der Zeit wird man mutiger/fauler und läßt den Cronjob laufen mit dem Ergebnis, dass sich der Pi aufhängt. Vermutlich ist WLAN-Traffic und Bild machen einfach zu viel für den Winzling. Es hat leider ein paar Tage gedauert bis ich hinter die Ursache gekommen bin. Zwischenzeitlich habe ich umständlich das Gehäuse aufgeschraubt und per USB-Stick die Bilder runter geladen. Anyway: Cronjob stoppen beim Kopieren. Lesson learned.
Bilder von arbeitenden Menschen zu machen ist ja immer so eine Sache. Es drängt sich unweigerlich der Verdacht auf es soll jemand überwacht werden. Das ist natürlich nicht meine Motivation, sondern das Video soll auch noch in 20 Jahren an dieses (hoffentlich) einzigartige Projekt im Leben erinnern und auch unseren Sohn Freude bereiten wenn er etwas älter ist. Also tut man das einzig richtige in so einer Situation: man redet VORHER mit den Betroffenen. Zur Tiefbauphase hat auch alles wunderbar geklappt. Nur als der Hochbauer anfing gab es Tage, wo 80% der Bilder unbrauchbar waren, da offensichtlich etwas vor der Kamera hing. Es stellte sich heraus, dass einer der Mitarbeiter die Befürchtung hatte, dass auch Ton aufgenommen wird – was natürlich nicht gemacht wird. Ich denke er wollte einfach nur persönlich gefragt werden, ob es OK ist – verständlich. Nach dem Gespräch lief auch alles wieder prima. Was lernen wir daraus? Nicht nur den Chef oder Vorarbeiter fragen, sondern ALLE die sich auf der Baustelle tümmeln. Lesson learned.
ToDo: Bilder vom Pi, Gehäuse und wie er bei Wind und Wetter ausharrt folgen noch.
Hallo,
hoffe der Bau schreitet gut voran. Durch die gute Dokumentation hat man einen Prima Eindruck davon!
Danke für die gute Anleitung. Leider bin ich nicht das große Linux Ass. Hoffe ich bekomme es trotzdem hin.
Gruß
Hi Andreas,
viel Glück beim Basteln. Wann geht bei dir der Bau los? Wirst du auch bloggen?
Schönen Gruß,
Thomas