Hoe Time-Lapse-fotografie vast te leggen met uw Raspberry Pi en DSLR of USB Webcam

Time-lapse fotografie kan je een idee geven van hoe de wereld op macroscopisch niveau werkt, boven alles wat denkbaar is aan de normale menselijke ervaring van tijd.

Time-lapse fotografie kan je een idee geven van hoe de wereld op macroscopisch niveau werkt, boven alles wat denkbaar is aan de normale menselijke ervaring van tijd.
Advertentie

Kijk hoe de wolken bewegen of een zaailing groeit. Time-lapse fotografie kan je een idee geven van hoe de wereld op macroscopisch niveau werkt, boven alles wat denkbaar is aan de normale menselijke ervaring van tijd. Of met andere woorden: het kan het kijken van verf droog maken in iets heel interessants. Helaas kost professionele time-lapse apparatuur - terwijl je de mogelijkheid om je camera te draaien of te verplaatsen - zoals de Genie, tot $ 1000. Vandaag zullen we een eenvoudige time-lapse-controller maken zonder beweging - voor DSLR of een USB-webcam - met alleen een Raspberry Pi.

Bekijk ook al onze andere geweldige Raspberry Pi-projecten.

DSLR

Zoals gewoonlijk gebeurt al ons werk met de Pi via een SSH-opdrachtregel en kunnen we de bestanden pakken met SFTP met dezelfde inloggegevens als je ze op Pi hebt opgeslagen in plaats van de camera. Als u niet zeker weet wat het IP-adres van uw Pi is, meldt u zich aan bij uw router en bekijkt u de lijst met apparaten die op dit moment zijn aangesloten - het moet zichzelf correct rapporteren.

verbonden apparaten

Begin met het installeren van enkele essentiële software:

sudo apt-get install gphoto2 sudo apt-get install imagemagick 

GPhoto2 is een opdrachtregelhulpprogramma om rechtstreeks te koppelen met ondersteunde DSLR-camera's (bekijk de volledige lijst hier). Ik gebruikte een Canon Rebel T4i / 650D Canon Rebel T4i DSLR Review en Giveaway Canon Rebel T4i DSLR Review en Giveaway Canon heeft zojuist hun nieuwe Rebel T4i uitgebracht - hun eerste (van hopelijk vele) avonturen in de touchscreen dSLR-wereld. Deze camera is een stap hoger dan de Canon Rebel T3i (en is daarmee ook de derde ... Lees nu) Verbind je camera via USB met de Pi.

Omdat ik automatische ISO-waarden en AV-modus heb gebruikt, is de setup relatief eenvoudig en kunnen we de serie vastleggen met alleen de opdrachtregel - het hulpprogramma bevat ingebouwde tijdverloopparameters. Dit is de eenvoudigste opdracht die u kunt gebruiken om de mogelijkheden te testen:

 gphoto2 --capture-image-and-download 

waardoor het bestand naar uw Pi wordt overgebracht, of

 gphoto2 --capture-image 

om het beeld op de camera te houden. Bij 8 MB per pop is het misschien het beste om ze op de camera te houden en de filmstikking achteraf vanaf een pc of Mac uit te voeren.

Belangrijk: standaard worden afbeeldingen opgeslagen in SD-RAM en niet op de geheugenkaart in de camera. Wat betekent dat je ze allemaal zult verliezen (ik spreek uit ervaring). Om ervoor te zorgen dat ze daadwerkelijk worden opgeslagen, moeten we eerst het vangstdoel instellen:

 gphoto2 --get-config /main/settings/capturetarget 

Kijk naar de lijst die wordt weergegeven en stel het doel als volgt in, waarbij 1 wordt vervangen door de kaart die als kaart wordt weergegeven.

 gphoto2 --set-config /main/settings/capturetarget=1 

Om vast te leggen in de time-lapse-modus, voegt u -F en -I toe om het totale aantal frames op te geven dat u wilt vastleggen, en het tijdsinterval tussen elk. In dit voorbeeld wordt elke 30 seconden een opname gemaakt voor een totaal van 1440 frames, wat bij het maken van een 24 FPS-film ongeveer een minuut is. Ik denk niet dat de batterij van mijn camera hoe dan ook zo lang meegaat, maar ik zal zien hoeveel ik krijg.

 gphoto2 --capture-image -F 1440 -I 30 

Eén redenering om in gedachten te houden; nadat de opdracht is voltooid, wordt de camera mogelijk uitgeschakeld en reageert deze niet meer - u moet de aan / uit-schakelaar handmatig doorlopen (althans op mijn model). Dit zou geen probleem moeten zijn in het veld wanneer het in gebruik is, maar voor testdoeleinden wordt het behoorlijk vervelend. Als je hier een oplossing voor weet, laat het me alsjeblieft weten in de reacties!

gphoto2-werkende

Een film maken

Breng de bestanden over naar uw computer voor verwerking. Op een Mac heb ik gemerkt dat het het gemakkelijkst is om de opdrachtregel te gebruiken, maar je hebt XCode, Homebrew en MPlayer eerst geïnstalleerd. Om dit te doen, download eerst Xcode uit de App Store (het is gratis) en schakel vervolgens Command Line Tools in via het tabblad Voorkeuren -> Downloads .

Xcode-install-CLT

Ren dan (één tegelijk):

 ruby<(curl -fsSkL raw.github.com/mxcl/homebrew/go) brew doctor brew install mplayer 

homebrew

U moet nu de benodigde coderingscomponenten geïnstalleerd hebben. Voer de volgende opdrachten uit om eerst een lijst met de vastgelegde JPG-bestanden te maken en voer die lijst vervolgens in mencoder, een hulpprogramma dat wordt gebruikt om video's te maken. Wijzig de FPS-waarde als je wilt dat de film sneller gaat.

 cd ls *.jpg">list.txt mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=640:480 -o timelapse.avi -mf type=jpeg:fps=24 mf://@list.txt 

Hier is wat ik uiteindelijk mee deed, met 24 FPS van 330 frames die elke minuut van 's ochtends tot midden van de middag zijn gemaakt. Het weer is Groot-Brittannië is echt zo slecht, van zonnig tot bewolkt met intervallen van 5 minuten gedurende de dag. Zucht.

Om een ​​film in Windows te coderen, of als u liever een GUI gebruikt, downloadt u Avidemux en volgt u de videozelfstudie hieronder. Zorg ervoor dat uw foto's opeenvolgend zijn genummerd.

Een USB-webcam gebruiken

Natuurlijk heeft niet iedereen een DSLR, maar in plaats van een dure officiële cameramodule voor de Raspberry Pi te kopen, kun je ook time-lapse-fotografie uitvoeren met een standaard USB-webcam - in mijn geval een PS3-oog dat meestal nogal een gedoe om te werken op pc of Mac, maar werkt uit de doos op de Pi. Mogelijk moet u een USB-hub met eigen voeding gebruiken en is de ondersteuning van de camera vaag.

Controleer eerst of uw webcam correct is gedetecteerd.

 ls -l /dev/video* 

Hopelijk zie je dat / dev / video0 als volgt wordt weergegeven:

dev-video0

Dan kunnen we doorgaan met het installeren van de webcam vastleggingssoftware en een testopname maken.

 sudo apt-get install fswebcam 
 fswebcam -d /dev/video0 -r 640x480 test.jpeg 

Verwijder het bestand met:

 rm test.jpg" 

Voer een paar testopnames uit om je in staat te stellen de camera op de juiste manier te positioneren, dan gaan we door met het time-lapse-script.

 mkdir timelapse nano runtimelapse 

Plak in het volgende:

 #!/bin/bash # Timelapse controller for USB webcam DIR=/home/pi/timelapse x=1 while [ $x -le 1440 ]; do filename=$(date -u +"%d%m%Y_%H%M-%S").jpg" fswebcam -d /dev/video0 -r 640x480 $DIR/$filename x=$(( $x + 1 )) sleep 10; done; 

Voor testdoeleinden heb ik de wachttijd tussen de opnamen ingesteld op 10 seconden. Wanneer u daadwerkelijk begint met opnemen, kunt u dat in plaats daarvan wijzigen naar elke minuut. Wijzig de volgende regel om te bepalen hoeveel frames moeten worden vastgelegd, in het voorbeeld is dit 1440:

 while [ $x -le 1440 ]; do 

Gebruik het volgende om het script uitvoerbaar te maken:

 chmod 755 runtimelapse 

Voer het vervolgens uit met:

 ./runtimelapse 

usb-werkende

Een film maken

Nog steeds op de SSH-opdrachtregel proberen we de film direct op de Pi te naaien - als je duizenden foto's hebt genomen en je webcam een ​​hogere resolutie heeft, zul je zien dat dit verschrikkelijk langzaam is, scroll dan omhoog naar de film instructies voor DSLR en breng de bestanden over naar uw pc met behulp van SFTP.

usb-sftp

 cd timelapse ls *.jpg">list.txt sudo apt-get install mencoder mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=640:480 -o timelapse.avi -mf type=jpeg:fps=24 mf://@list.txt 

Als alles goed lijkt te gaan, maar je krijgt een bestand van 0 KB, betekent dit dat er niet genoeg ruimte is in de tijdelijke map van je apparaat. Ik heb dit opgelost met een schone installatie en het root-systeem opnieuw uitgebreid - het lijkt erop dat BTSync een aantal tijdelijke bestanden heeft verknoeid.

Hier is de voltooide scène van een USB-webcam, van laat in de middag tot donker.

Dit was veel gemakkelijker dan ik dacht dat het zou zijn - en ik zou niet verrast zijn iemand in de commentaren te vinden die een nog eenvoudiger methode beschrijft! Probeer het voor een fascinerend beeld van het leven dat anders moeilijk te begrijpen is en deel een link naar je creaties in de opmerkingen of andere video's met tijdsverloop die je bijzonder inspirerend vindt.

In this article