Comandare una fotocamera Canon con Capture
In ambiente Linux se vogliamo pilotare da remoto una fotocamera possiamo utilizzare Gphoto2 oppure Digital Camera Remote Capture.
Con il primo, più generico, è possibile scaricare le foto dalla maggior parte delle fotocamere, tuttavia non tutte sono comandabili e su queste ultime non è detto che siano controllabili tutti gli aspetti.
Capture al contrario è scritto in modo specifico per la cattura remota delle immagini e funziona su un set abbastanza esteso di fotocamere Canon.
Non essendo integrato tra i pacchetti Ubuntu per provarlo occorre compilarlo.
Questi sono i passi che ho seguito sulla mia Linux Box.
Installare questi pacchetti:
sudo apt-get install libreadline-dev sudo apt-get install libusb-dev sudo apt-get install libgtk2.0-dev
Scaricare libptp2.
Una volta scaricato:
tar -xzvf libptp2-1.1.10.tar.gz cd libptp2-1.1.10 ./configure make sudo make install sudo ldconfig
A questo punto dovremmo avere tutti i prerequisiti per compilare e installare capture.
Dopo aver scaricato capture
tar -xzvf capture-1.0.4-cvs-20071123.tar.gz cd capture-1.0.4-cvs-20071123 make sudo make install sudo ldconfig
A questo punto se lanciate “capture” si aprirà uno shell interattivo tramite il quale è possibile comandare la fotocamera che avrete collegato al PC tramite cavetto USB.
Ricordate di dare il comando “start”, a questo punto potete controllare tutti gli aspetti della fotocamera e scattare delle foto con il comando “capture”.
Il comando “help” elenca tutti i comandi disponibili, “help <comando>” fornisce informazioni su quel comando.
capture> iso iso info: Current value = "50". capture> aperture aperture info: Current value = "4.0". capture> aperture 4.0 capture> aperture aperture info: Current value = "4.0". capture>
Gli stessi comandi possono essere dati via shell script.
Sto utilizzando correntemente capture per scattare delle foto al cielo su Meteo Valle Muricana.
La fotocamera, una Canon PowerShot A520, viene pilotata da uno script che provvede anche ad adattare le impostazioni di scatto al giorno o alla notte.
Per sapere se è giorno o notte viene utilizzato un semplice script php che ho chiamato “dayornight.php“.
fabrizio@fabrizio-laptop:~/scripts/canon$ cat dayornight.php <?php date_default_timezone_set('Europe/Rome'); $uT=time(); $sun_info = date_sun_info($uT, 42.01,12.47); $sunrise = $sun_info['civil_twilight_begin']; $sunset = $sun_info['civil_twilight_end']; if ($uT>$sunrise && $uT<$sunset) echo "Day"; else echo "Night"; ?>
La scelta del php è dovuta al fatto che è presente già a costo 0 la funzione date_sun_info che, data la posizione geografica di una località ne calcola, oltre che l'alba e il tramonto, il crepuscolo civile, nautico ed astronomico.
Io ho usato gli orari di crepuscolo civile per cambiare la modalità di scatto.
Lo script si lancia con il comando:
php dayornight.php
Chiaramente occorre cambiare la latitudine e la longitudine mettendo quella del posto dove è installata la fotocamera che nel mio caso è Roma Nord.
Il prerequisito è l'aver installato php5-cli
sudo apt-get install php5-cli
A questo punto uno script in crontab provvede, ogni 5 minuti, a scattare la foto e a caricarla su un server.
Eccone una parte:
#/bin/bash capture aperture if [ $? != '0' ]; then rm -f cameradayornight.txt capture start if [ $? != '0' ]; then echo "capture failure" exit 1 fi capture 'size large' capture 'zoom 0' fi dayornight=$(php dayornight.php) if [ -e cameradayornight.txt ]; then cameradayornight=$(cat cameradayornight.txt) else cameradayornight='Undefined' fi echo "DayOrNight: $dayornight" echo "CameraDayOrNight: $cameradayornight" if [ "$dayornight" != "$cameradayornight" ]; then #switch mode if [ "$dayornight" = "Day" ]; then echo "Switching to day mode" capture 'qual fine' capture 'shutter 1/125' capture 'tv/av program' else echo "Switching to night mode" capture 'tv/av manual' capture 'shutter 15"' capture 'aperture 4.0' capture 'qual normal' fi fi echo -n $dayornight > cameradayornight.txt # # now capture the image capture 'capture /home/helios/scripts/canon/latest.jpg' if [ $? != '0' ]; then echo "capture failure" capture quit exit 1 fi # # do something with image ......
Di giorno si usa la modalità auto, di notte manuale, esposizione di 15 secondi e apertura f/4.0.
Riferimenti
- Gphoto2
- Digital Camera Remote Capture
- libptp (Picture Transfer Protocol lib)
- date_sun_info
- Crepuscolo
Stai leggendo “ Comandare una fotocamera Canon con Capture ”, un post di Fabrizio Zellini
- Pubblicato il
- 26 Novembre 2010 //php the_time('G:i') ?>
- Categorie:
- fotografia, linux
4 Commenti
commenta | feed commenti [?] | trackback uri [?]