Advertentie
Kijk hoe de wolken bewegen of een zaailing groeit. Time-lapse-fotografie kan je echt een idee geven van hoe de wereld werkt op macroscopisch niveau, voorbij alles wat je maar kunt bedenken voor de normale menselijke ervaring van tijd. Of met andere woorden: het kan het kijken naar droge verf veranderen in iets heel interessants. Helaas, professionele time-lapse-apparatuur - terwijl u de mogelijkheid toevoegt om uw camera te draaien of te verplaatsen - zoals de Geest kan tot $ 1000 kosten. Vandaag maken we een eenvoudige time-lapse-controller zonder beweging - voor DSLR of een USB-webcam - met alleen een Raspberry Pi.
Bekijk zeker ook al onze andere geweldige Raspberry Pi-projecten te.
DSLR
Zoals gewoonlijk wordt al ons werk met de Pi gedaan via een SSH-opdrachtregel en we kunnen de bestanden met SFTP met dezelfde inloggegevens ophalen als je ze op Pi hebt opgeslagen in plaats van op de camera. Als u niet zeker weet wat het IP-adres van uw Pi is, log dan in op uw router en bekijk de lijst met momenteel verbonden apparaten - deze zou zichzelf correct moeten melden.
Begin met het installeren van enkele essentiële software:
sudo apt-get installeer gphoto2. sudo apt-get install imagemagick.
GPhoto2 is een opdrachtregelprogramma om rechtstreeks te communiceren met ondersteunde DSLR-camera's (bekijk hier de volledige lijst). Ik heb een Canon gebruikt Rebel T4i / 650D Canon Rebel T4i dSLR Review en GiveawayCanon heeft zojuist hun nieuwe Rebel T4i uitgebracht - hun eerste (hopelijk vele) avonturen in de touchscreen dSLR-wereld. Deze camera is een stap hoger dan de Canon Rebel T3i (waardoor het ook de derde ... Lees verder . Verbind nu uw camera via USB met de Pi.
Omdat ik automatische ISO-waarden en AV-modus heb gebruikt, is de installatie relatief eenvoudig en kunnen we de serie vastleggen met alleen de opdrachtregel - het hulpprogramma bevat ingebouwde time-lapse-parameters. Dit is de meest eenvoudige opdracht die u kunt gebruiken om de mogelijkheden te testen:
gphoto2 --capture-image-and-download
die het bestand naar je Pi zal overbrengen, of
gphoto2 --capture-afbeelding
om het beeld op de camera te houden. Met een MB van 8 MB is het misschien het beste om ze op de camera te houden en de filmsteken achteraf uit te voeren vanaf een pc of Mac.
Belangrijk: Standaard worden afbeeldingen opgeslagen op SD-RAM, niet op de geheugenkaart in de camera. Dit betekent dat je ze allemaal zult verliezen (ik spreek uit ervaring). Om ervoor te zorgen dat ze daadwerkelijk worden opgeslagen, moeten we eerst het vastlegdoel instellen:
gphoto2 --get-config / main / settings / capturetarget.
Kijk naar de lijst die het uitvoert en stel het doel als volgt in, vervangend 1 met wat wordt weergegeven als uw kaart.
gphoto2 --set-config / main / settings / capturetarget = 1.
Voeg toe om vast te leggen in de time-lapse-modus -F en -IK om het totale aantal te specificeren kaders u wilt vastleggen en de tijd interval tussen elk. In dit voorbeeld, het vastleggen van één keer per 30 seconden voor een totaal van 1440 frames, wat bij opname in een 24 FPS-film ongeveer een minuut zal zijn. Ik denk toch niet dat de batterij van mijn camera zo lang meegaat, maar ik zal zien hoeveel ik krijg.
gphoto2 --capture-image -F 1440 -I 30.
Een gril 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 bij mijn model wel). Dit zou in het veld geen probleem moeten zijn tijdens gebruik, maar voor testdoeleinden wordt het behoorlijk vervelend. Als je hier een oplossing voor weet, laat het me dan weten in de reacties, alsjeblieft!
Een film maken
Breng de bestanden over naar uw desktopcomputer voor verwerking. Op een Mac heb ik gemerkt dat het het gemakkelijkst is om de opdrachtregel te gebruiken, maar dat heb je nodig XCode, Homebrew, en MPlayer eerst geïnstalleerd. Download hiervoor eerst Xcode van de App Store (het is gratis) en vervolgens van de Voorkeuren -> Downloads tabblad inschakelen Command Line Tools.
Ren dan (een voor een):
ruby
U zou nu de benodigde coderingscomponenten moeten hebben geïnstalleerd. 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 u liever heeft dat de film sneller gaat.
CD
ls * .jpg> list.txt. mencoder -nosound -ovc lavc -lavcopts vcodec = mpeg4: aspect = 16/9: vbitrate = 8000000 -vf schaal = 640: 480 -o timelapse.avi -mf type = jpeg: fps = 24 mf: //@list.txt.
Dit is wat ik uiteindelijk heb bereikt, met 24 FPS van 330 frames die elke minuut van 's ochtends tot halverwege de middag zijn gemaakt. Het weer in Groot-Brittannië is echt zo slecht, van zonnig tot bewolkt met intervallen van 5 minuten gedurende de dag. Zucht.
Download een film om een film in Windows te coderen of, als u liever een grafische gebruikersinterface gebruikt Avidemuxen volg de video-tutorial hieronder. Zorg ervoor dat uw foto's opeenvolgend zijn genummerd.
https://www.youtube.com/watch? v = GZmkfk-YrG4 # t = 73
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 behulp van een standaard USB webcam - in mijn geval een PS3 Eye, dat is meestal nogal een gedoe om aan de slag te gaan op pc of Mac, maar werkt out-of-the-box op de Pi. Mogelijk moet u een USB-hub met eigen voeding gebruiken en camera-ondersteuning is dat vaag.
Controleer eerst of uw webcam correct is gedetecteerd.
ls -l / dev / video *
Hopelijk zie je / dev / video0 als volgt vermeld:
Vervolgens kunnen we doorgaan met het installeren van de webcam-opnamesoftware en een testfoto maken.
sudo apt-get installeer fswebcam.
fswebcam -d / dev / video0 -r 640x480 test.jpeg.
Verwijder het bestand met:
rm test.jpg.
Maak een paar testopnames om de camera goed te kunnen positioneren, dan gaan we verder met het time-lapse-script.
mkdir timelapse. nano runtimelapse.
Plak in het volgende:
#! / bin / bash. # Timelapse-controller voor USB-webcam DIR = / home / pi / timelapse x = 1. terwijl [$ x -le 1440]; doe bestandsnaam = $ (datum -u + "% d% m% Y_% H% M-% S"). jpg fswebcam -d / dev / video0 -r 640x480 $ DIR / $ bestandsnaam x = $ (($ x + 1)) slaap 10; gedaan;
Voor testdoeleinden heb ik de wachttijd tussen de opnamen ingesteld op 10 seconden. Wanneer u daadwerkelijk begint met vastleggen, kunt u dat in plaats daarvan elke minuut wijzigen. Wijzig de volgende regel om te bepalen hoeveel frames moeten worden vastgelegd, in het voorbeeld is deze ingesteld op 1440:
terwijl [$ x -le 1440]; Doen.
Gebruik het volgende om het script uitvoerbaar te maken:
chmod 755 runtimelapse.
Voer het vervolgens uit met:
./runtimelapse.
Een film maken
Nog steeds op de SSH-opdrachtregel, proberen we de film rechtstreeks op de Pi te naaien - als je duizenden foto's hebt gemaakt en je webcam hoger is resolutie, zult u merken dat dit verschrikkelijk traag is, blader in dat geval omhoog naar de filminstructies voor DSLR en breng de bestanden over naar uw pc met behulp van SFTP.
cd timelapse. ls * .jpg> list.txt. sudo apt-get installeer mencoder. mencoder -nosound -ovc lavc -lavcopts vcodec = mpeg4: aspect = 16/9: vbitrate = 8000000 -vf schaal = 640: 480 -o timelapse.avi -mf type = jpeg: fps = 24 mf: //@list.txt.
Als het allemaal goed lijkt, maar je krijgt een uitvoer van 0 KB, betekent dit dat er niet genoeg ruimte is op de tijdelijke map van je apparaat. Ik heb dit opgelost met een schone installatie en het root-systeem opnieuw uitbreiden - het lijkt erop dat BTSync een aantal tijdelijke bestanden had verprutst.
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 het zou me niet verbazen als iemand in de commentaren een nog eenvoudigere methode zou beschrijven! Probeer het eens voor een fascinerende kijk op het leven die anders moeilijk te begrijpen is, en deel een link naar je creaties in de reacties of andere time-lapse-video's die je bijzonder inspirerend vond.
James heeft een BSc in Artificial Intelligence en is CompTIA A + en Network + gecertificeerd. Hij is de hoofdontwikkelaar van MakeUseOf en brengt zijn vrije tijd door met het spelen van VR paintball en bordspellen. Hij bouwt al pc's sinds hij een kind was.