Guarda le nuvole muoversi o una piantina crescere. La fotografia time-lapse può davvero darti un'idea di come il mondo funziona a livello macroscopico, al di là di qualsiasi cosa concepibile per la normale esperienza umana del tempo. O altre parole: può trasformare la pittura a secco in qualcosa di abbastanza interessante. Sfortunatamente, le attrezzature time-lapse professionali - pur aggiungendo la possibilità di ruotare o spostare la fotocamera - come il Genie possono costare fino a $ 1000. Oggi creeremo un semplice controller time-lapse senza movimento, per DSLR o una webcam USB, con solo un Raspberry Pi.
Assicurati di controllare anche tutti i nostri altri grandi progetti Raspberry Pi.
DSLR
Come al solito, tutto il nostro lavoro con il Pi verrà eseguito tramite una riga di comando SSH e possiamo catturare i file utilizzando SFTP con le stesse credenziali se li avete memorizzati su Pi invece che sulla fotocamera. Se non sei sicuro di quale sia l'indirizzo IP del tuo Pi, accedi al tuo router e visualizza l'elenco dei dispositivi attualmente connessi - dovrebbe essere segnalato correttamente.
Inizia installando alcuni software essenziali:
sudo apt-get install gphoto2 sudo apt-get install imagemagick
GPhoto2 è un'utilità della riga di comando per interfacciarsi direttamente con le fotocamere DSLR supportate (visualizzare l'elenco completo qui). Ho usato un Canon Rebel T4i / 650D Canon Rebel T4i dSLR Review e Giveaway Canon Rebel T4i dSLR Review e Giveaway Canon ha appena rilasciato il suo nuovo Rebel T4i - la loro prima (o speranzosa) avventura nel mondo del dlsl touchscreen. Questa fotocamera è un passo avanti rispetto alla Canon Rebel T3i (anche rendendola la terza ... Leggi di più. Ora collega la tua fotocamera al Pi tramite USB.
Poiché ho utilizzato valori ISO automatici e modalità AV, la configurazione è relativamente semplice e possiamo acquisire le serie utilizzando solo la riga di comando: l'utilità include parametri di intervallo di tempo incorporati. Ecco il comando di base che puoi utilizzare per testare le funzionalità:
gphoto2 --capture-image-and-download
che trasferirà il file sul tuo Pi, o
gphoto2 --capture-image
per mantenere l'immagine sulla fotocamera. Con 8 MB di pop, è probabilmente meglio tenerli sulla fotocamera ed eseguire i punti del film dopo il fatto da un PC o Mac.
Importante: per impostazione predefinita, le immagini vengono salvate su SD-RAM, non sulla scheda di memoria nella fotocamera. Significa che li perderai tutti (parlo per esperienza). Per assicurarci che effettivamente salvi, dobbiamo prima impostare la destinazione di cattura:
gphoto2 --get-config /main/settings/capturetarget
Guarda l'elenco che emette e imposta il target come segue, sostituendo 1 con quello che viene mostrato come la tua carta.
gphoto2 --set-config /main/settings/capturetarget=1
Per catturare in modalità time-lapse, aggiungi -F e -I per specificare il numero totale di fotogrammi da catturare e l' intervallo di tempo tra ognuno di essi. In questo esempio, catturando una volta ogni 30 secondi per un totale di 1440 fotogrammi, che quando viene trasformato in un filmato a 24 FPS equivale a circa un minuto. Non credo che la batteria della mia fotocamera durerà così a lungo, ma vedrò quanti ne ottengo.
gphoto2 --capture-image -F 1440 -I 30
Una stranezza da tenere a mente; una volta completato il comando, la fotocamera potrebbe spegnersi e non rispondere: sarà necessario eseguire manualmente il ciclo dell'interruttore di alimentazione (almeno sul mio modello). Questo non dovrebbe essere un problema in campo quando è in uso, ma a fini di test diventa piuttosto fastidioso. Se conosci una soluzione per questo, fammi sapere nei commenti, per favore!
Fare un film
Trasferisci i file sul tuo computer desktop per l'elaborazione. Su un Mac, ho trovato che il più semplice è usare la riga di comando, ma occorrerà prima installare XCode, Homebrew e MPlayer . Per fare ciò, prima scaricare Xcode dall'App Store (è gratuito), quindi dalla scheda Preferenze -> Download, abilitare gli strumenti della riga di comando .
Quindi esegui (uno alla volta):
ruby<(curl -fsSkL raw.github.com/mxcl/homebrew/go) brew doctor brew install mplayer
Ora dovresti avere i componenti necessari per la codifica installati. Esegui i seguenti comandi per creare prima un elenco dei file .jpg" acquisiti, quindi alimentalo nell'elenco in mencoder, un'utilità usata per creare video. Cambia il valore FPS se preferisci che il film vada più veloce.
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
Ecco cosa ho ottenuto, utilizzando 24 FPS da 330 fotogrammi eseguiti ogni minuto dalla mattina a metà pomeriggio. Il clima è davvero brutto in Gran Bretagna, da soleggiato a coperto a intervalli di 5 minuti per tutto il giorno. Sospiro.
Per codificare un film in Windows, o se preferisci usare una GUI, scarica Avidemux e segui il tutorial video qui sotto. Assicurati che le tue foto siano numerate in sequenza.
Utilizzando una webcam USB
Naturalmente, non tutti hanno una reflex digitale, ma piuttosto che acquistare un costoso modulo fotocamera ufficiale per il Raspberry Pi, è anche possibile eseguire fotografie time-lapse utilizzando una webcam USB standardizzata - nel mio caso, una PS3 Eye che è di solito un bel problema per lavorare su PC o Mac, ma funziona fuori dalla scatola sul Pi. Potrebbe essere necessario utilizzare un hub USB alimentato e il supporto della videocamera è approssimativo.
Innanzitutto, controlla se la tua webcam è stata rilevata correttamente.
ls -l /dev/video*
Spero che vedrai / dev / video0 elencati in questo modo:
Quindi possiamo procedere con l'installazione del software di acquisizione webcam e fare un colpo di prova.
sudo apt-get install fswebcam
fswebcam -d /dev/video0 -r 640x480 test.jpeg
Elimina il file con:
rm test.jpg"
Fai alcuni scatti di prova per permetterti di posizionare la fotocamera in modo appropriato, quindi procederemo con lo script time-lapse.
mkdir timelapse nano runtimelapse
Incolla quanto segue:
#!/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;
A scopo di test, ho impostato il tempo di attesa tra i colpi di 10 secondi. Quando si avvia effettivamente l'acquisizione, è possibile cambiarla in ogni minuto. Cambia la seguente riga per determinare quanti fotogrammi catturare, nell'esempio è impostato come 1440:
while [ $x -le 1440 ]; do
Per rendere eseguibile lo script, utilizzare:
chmod 755 runtimelapse
Quindi eseguilo usando:
./runtimelapse
Fare un film
Sempre sulla riga di comando SSH, proveremo a cucire il film direttamente sul Pi - se hai scattato migliaia di scatti e la tua webcam ha una risoluzione più alta, potresti scoprire che è tremendamente lento, nel qual caso scorri fino al film istruzioni per DSLR e trasferire i file sul PC utilizzando 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
Se tutto sembra bene ma ottieni un output di file da 0 KB, significa che non c'è abbastanza spazio nella cartella temporanea del tuo dispositivo. Ho risolto questo problema con un'installazione pulita e espandendo nuovamente il sistema di root - sembra che BTSync abbia incasinato alcuni file temporanei.
Ecco la scena finale da una webcam USB, dal tardo pomeriggio al buio.
Questo è stato molto più facile di quanto pensassi - e non sarei sorpreso di trovare qualcuno nei commenti che descrivono un metodo ancora più semplice! Provalo per un'affascinante visione della vita che è altrimenti difficile da comprendere e condividi un link alle tue creazioni nei commenti o altri video che ti hanno reso particolarmente interessante.