Vedremo oggi come creare un Timelapse con Raspberry pi ed il modulo camera disponibile per questa scheda.
Ma cos’è un Timelapse?
Il time-lapse è una tecnica cinematografica nella quale la frequenza di cattura di ciascun fotogramma è nettamente inferiore a quella di riproduzione. A causa di questa differenza, la proiezione degli stessi a 24fps fa sì che il tempo, nel video finale, sembri scorrere più velocemente del normale.
In breve: grazie a questo metodo di cattura della scena si è quindi in grado di velocizzare così tanto il tempo che passa da illustrare qualcosa che nella quotidianità non noteremmo (ad esempio il movimento relativo delle stelle, il semplice movimento delle nuvole, lo scioglimento di cubi di ghiaccio in un bicchiere di aranciata, ecc.).
La tecnica del time-lapse è in grado di produrre quindi video davvero sbalorditivi, e la sua applicazione spazia dai documentari naturalistici, alla realizzazione di clip aziendali, e al semplice racconto di piccole storie di vita.
ecco un esempio di timelapse:
Vediamo ora il materiale di cui necessitiamo per creare il nostro timelapse.
Necessario:
- Raspberry Pi Modello A o B o B+(il modello A consuma meno energia rispetto al B quindi sembra più indicato in caso di utilizzo con delle batterie)
- Un modulo camera compatibile con il modello di raspberry scelto
- L’immagine di Raspian Debian Wheezy disponibile QUI
- Una connessione internet
Per prima cosa masterizziamo l’iso di Debian sulla SD che andrà nel nostro raspberry.
Successivamente procediamo con la configurazione.
Aggiorniamo il sistema con:
sudo apt-get update sudo apt-get upgrade
Rechiamoci ora nella cartella bin:
cd /usr/local/bin
Scarichiamo lo scrypt Python con il comando:
sudo wget https://bitbucket.org/fotosyn/fotosynlabs/raw/0a5f212958637ce20f502fc579fc28338b33d87e/RaspiLapseCam/raspiLapseCam.py
Verifichiamo la corretta presenza del file scaricato:
ls
Possiamo ora modificare lo script a nostro piacimento. Le voci generalmente più modificate sono quelle legate alla risoluzione della foto scattata e l’intervallo di tempo tra un fotogramma e l’altro:
sudo nano raspiLapseCam.py
Rendiamo eseguibile il file:
sudo chmod 755 raspiLapseCam.py
Avviamo lo script per testarne il funzionamento con:
Python /usr/local/bin/raspiLapseCam.py
Se compare una cartella del tipo “timelapse_201411280329” in /home/pi/ ,con le foto appena scattate dal raspberry, tutto ė andato a buon fine!
Non ci resta che impostare l’avvio automatico di questo script ogni qualvolta che raspberry si accende.
Imposteremo un file dentro a init.d che verrà richiamato all’avvio della scheda avviando il timelapse. Questo file lo copieremo da “skeleton” per poi modificarlo. Digitiamo quindi:
cd /etc/init.d && sudo cp skeleton timelapse
Passiamo ora alla modifica:
sudo nano /etc/init.d/timelapse
Le voci che io ho cambiato sono:
# Provides: timelapse
# Short-Description: timelapse camera
+DESC=”Timelapse camera”
+NAME=raspiLapseCam.py
+DAEMON=/usr/local/bin/$NAME
+DAEMON_ARGS=””
Usciamo e salviamo con Ctrl+x.
Rendiamo eseguibile il file appena modificato:
sudo chmod 755 /etc/init.d/timelapse
Aggiorniamo le impostazioni, per vedere funzionare in automatico il nostro timelapse al prossimo riavvio.
sudo update-rc.d timelapse enable
Quindi riavviamo:
sudo reboot
Con questo abbiamo terminato ora il nostro timelapse è pronto per funzionare ed avviarsi a ogni avvio della nostra amata scheda!
Avviandosi in automatico all’accensione, raspiLapseCam creerà le cartelle, delle foto appena scattate, all’interno della cartella iniziale ovvero: /
Dato che in fase di test ho riscontrato un errore quando andavo a digitare: sudo update-rc.d timelapse enable , ho trovato una soluzione illustrata come segue:
sudo ln -s /etc/init.d/timelapse /etc/rc2.d/S02timelapse
sudo update-rc.d timelapse enable
Appena vedremo che il comando “enable” è andato a buon fine possiamo riavviare definitivamente
sudo reboot
Possono tornare utili alcuni comandi di raspistill che per comodità riporto qui:
usage: raspistill [options] Image parameter commands -?, --help : This help information -w, --width : Set image width <size> -h, --height : Set image height <size> -q, --quality : Set jpeg quality <0 to 100> -r, --raw : Add raw bayer data to jpeg metadata -o, --output : Output filename <filename> (to write to stdout, use '-o -'). I f not specified, no file is saved -l, --latest : Link latest complete image to filename <filename> -v, --verbose : Output verbose information during run -t, --timeout : Time (in ms) before takes picture and shuts down (if not speci fied, set to 5s) -th, --thumb : Set thumbnail parameters (x:y:quality) or none -d, --demo : Run a demo mode (cycle through range of camera options, no cap ture) -e, --encoding : Encoding to use for output file (jpg, bmp, gif, png) -x, --exif : EXIF tag to apply to captures (format as 'key=value') or none -tl, --timelapse : Timelapse mode. Takes a picture every <t>ms -fp, --fullpreview : Run the preview using the still capture resolution (ma y reduce preview fps) -k, --keypress : Wait between captures for a ENTER, X then ENTER to exit -s, --signal : Wait between captures for a SIGUSR1 from another process -g, --gl : Draw preview to texture instead of using video render componen t -gc, --glcapture : Capture the GL frame-buffer instead of the camera imag e -set, --settings : Retrieve camera settings and write to stdout -cs, --camselect : Select camera <number>. Default 0 -bm, --burst : Enable 'burst capture mode' -md, --mode : Force sensor mode. 0=auto. See docs for other modes available -dt, --datetime : Replace frame number in file name with DateTime (YearMonthDayH ourMinSec) -ts, --timestamp : Replace frame number in file name with unix timestamp (seconds since 1900)
Hai altre domande riguardo quanto appena trattato?
Aggiungi un commento qui sotto e vedrai che troverai risposta quanto prima!