Annonse

Se skyene bevege seg eller en frøplante vokse. Time-lapse-fotografering kan virkelig gi deg en følelse av hvordan verden fungerer på et makroskopisk nivå, utover alt som kan tenkes den normale menneskelige opplevelsen av tid. Eller andre ord: det kan gjøre at maling tørker til noe ganske interessant. Dessverre er det profesjonelt tidsforsinkelsesutstyr - som gir muligheten til å rotere eller bevege kameraet - som Genie kan koste opptil 1000 dollar. I dag lager vi en grunnleggende time-lapse-kontroller uten bevegelse - for DSLR eller et USB-webkamera - med bare en Raspberry Pi.

Sørg for å sjekke ut alle våre andre gode Raspberry Pi-prosjekter også.

DSLR

Som vanlig vil alt vårt arbeid med Pi utføres over en SSH-kommandolinje, og vi kan ta tak i filene ved å bruke SFTP med samme legitimasjon hvis du har lagret dem på Pi i stedet for kameraet. Hvis du ikke er sikker på hva IP-adressen til Pi-en din er, kan du logge på ruteren og se listen over tilkoblede enheter - den skal rapportere seg selv riktig.

tilkoblede-innretninger

Begynn med å installere viktig programvare:

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

GPhoto2 er et kommandolinjeverktøy for direkte grensesnitt med støttede DSLR-kameraer (se hele listen her). Jeg brukte en Canon Rebel T4i / 650D Canon Rebel T4i dSLR Review and GiveawayCanon har nettopp gitt ut sin nye Rebel T4i - deres første (av forhåpentligvis mange) eventyr i berøringsskjermen dSLR verden. Dette kameraet er et skritt opp fra Canon Rebel T3i (og gjør det også til den tredje ... Les mer . Nå, koble kameraet til Pi via USB.

Siden jeg har brukt automatiske ISO-verdier og AV-modus, er oppsettet relativt enkelt, og vi kan fange serien med bare kommandolinjen - verktøyet inkluderer innebygde tidsforløpsparametere. Her er den mest grunnleggende kommandoen du kan bruke til å teste funksjonene:

gphoto2 - Capture-image-and-download

som vil overføre filen til din Pi, eller

gphoto2 - Capture-image

for å beholde bildet på kameraet. På 8 MB en pop er det muligens best å holde dem på kameraet og utføre filmsting etter faktum fra en PC eller Mac.

Viktig: Som standard blir bilder lagret på SD-RAM, ikke minnekortet i kameraet. Betydning at du vil miste dem alle (jeg snakker av erfaring). For å sikre at de faktisk sparer, må vi først sette fangstmålet:

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

Se på listen det gir ut og sett målet som følger, erstatt 1 med det som vises som kortet ditt.

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

Hvis du vil ta bilder i tidsforløpsmodus, legger du ved -F og -JEG å spesifisere det totale antallet av rammer du vil fange, og tiden intervall mellom hver og en. I dette eksemplet er det å fange en gang hvert 30. sekund i totalt 1440 bilder, som når den blir gjort til en 24 FPS-film vil være omtrent et minutt. Jeg tror ikke batteriets kamera vil vare så lenge uansett, men jeg får se hvor mange jeg får.

gphoto2 - Capture-image -F 1440 -I 30. 

En sære ting å huske på; etter at kommandoen er fullført, kan det hende at kameraet slås av og reagerer - du må sykle strømbryteren manuelt (i det minste, på min modell det gjorde). Dette skal ikke være et problem ute i feltet når det er i bruk, men for testformål blir det ganske irriterende. Hvis du vet en løsning for dette, gi meg beskjed i kommentarene, vær så snill!

gphoto2 arbeidende

Lage en film

Overfør filene til din stasjonære datamaskin for behandling. På en Mac har jeg funnet det enkleste er å bruke kommandolinjen, men du trenger det XCode, Hjemme brygget, og MPlayer installert først. For å gjøre dette, last ned først Xcode fra App Store (det er gratis), deretter fra Preferanser -> Nedlastinger fane, aktiver Kommandolinjeverktøy.

Xcode-install-CLT

Så løp (en om gangen):

ruby 
Hjemme brygget

Du skal nå ha de nødvendige kodingskomponentene installert. Kjør følgende kommandoer for først å opprette en liste over de fangede .jpg-filene, deretter mate den listen i mencoder, et verktøy som brukes til å lage videoer. Endre FPS-verdien hvis du foretrekker at filmen går raskere.

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

Dette er hva jeg endte opp med å bruke 24 FPS fra 330 bilder som ble skutt hvert minutt fra morgen til midt på ettermiddagen. Været er at Storbritannia virkelig er så ille, fra sol til overskyet i 5 minutters intervaller gjennom dagen. Sukk.

Last ned for å kode en film i Windows, eller hvis du foretrekker å bruke et GUI Avidemux, og følg videoopplæringen nedenfor. Forsikre deg om at bildene dine er nummerert i rekkefølge.

https://www.youtube.com/watch? v = GZmkfk-YrG4 # t = 73

Bruke et USB-webkamera

Selvfølgelig har ikke alle en DSLR, men i stedet for å kjøpe en dyr offisiell kameramodul for Raspberry Pi, kan du også utføre time-lapse-fotografering ved hjelp av en USB-hylle webkamera - i mitt tilfelle, et PS3 Eye som vanligvis er ganske vanskelig å jobbe på PC eller Mac, men som fungerer ut av boksen på Pi. Du må kanskje bruke en drevet USB-hub, og kamerastøtte er det tvilsom.

Kontroller først om webkameraet ditt har blitt oppdaget riktig.

ls -l / dev / video *

Forhåpentligvis får du se / dev / video0 oppført slik:

dev-Video0

Da kan vi gå videre med å installere programvaren for fange webkameraer, og ta et testskudd.

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

Slett filen med:

rm test.jpg. 

Ta noen testbilder for å gjøre det mulig for deg å plassere kameraet riktig, så fortsetter vi med time-lapse-skriptet.

mkdir timelapse. nano runtimelapse. 

Lim inn følgende:

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

For testformål har jeg satt ventetiden mellom skudd som 10 sekunder. Når du faktisk begynner å fange, kan det være lurt å endre det til hvert minutt i stedet. Endre følgende linje for å bestemme hvor mange bilder du vil ta, i eksempelet er den satt som 1440:

mens [$ x -le 1440]; gjøre. 

For å gjøre skriptet kjørbart, bruk:

chmod 755 runtimelapse. 

Kjør den deretter ved å bruke:

./runtimelapse. 
usb-arbeider

Lage en film

Fortsatt på SSH-kommandolinjen vil vi prøve å sy filmen direkte på Pi - hvis du har tatt tusenvis av bilder og webkameraet ditt er høyere oppløsning, kan det hende du synes dette er rystende sakte, i så fall bla deg opp til filminstruksjonene for DSLR, og overfør filene til din PC bruker 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 skala = 640: 480 -o timelapse.avi -mf type = jpeg: fps = 24 mf: //@list.txt. 

Hvis det hele virker bra, men du får en fil på 0 KB, betyr det at det ikke er nok plass på enhetens temp-mappe. Jeg løste dette med en ren installasjon og utvidet rotsystemet igjen - det virker som om BTSync hadde rotet bort noen temp-filer.

Her er den ferdige scenen fra et USB-webkamera, fra sen ettermiddag til mørkt.

Dette var langt enklere enn jeg trodde det ville være - og jeg ville ikke bli overrasket over å finne noen i kommentarene som beskriver en enda enklere metode! Gi den en sjanse til et fascinerende livssyn som ellers er vanskelig å forstå, og del en lenke til kreasjonene dine i kommentarene eller andre tidsforfallsvideoer du har funnet spesielt inspirerende.

James har en BSc i kunstig intelligens, og er CompTIA A + og Network + sertifisert. Han er hovedutvikler av MakeUseOf, og bruker fritiden sin på å spille VR paintball og brettspill. Han har bygd pc-er siden han var liten.