I comandi in Gphoto2

Da MeteoNetwork Wiki.
Jump to navigation Jump to search

Comandi Principali

Vediamo i comandi principali in gphoto2 e come utilizzarli per creare un file bash che faccia eseguire lo scatto alla macchina fotografica ogni 5 minuti.

La pagina per  vedere il l'elenco completo dei comandi è  www.gphoto.org/doc/manual/ref-gphoto2-cli.html




Elenco comandi principali di Gphoto2 (ogni comando và preceduto da gphoto2, esempio gphoto2 --auto-detect)
--auto-detect
Visualizza le fotocamere collegate
-v o --version
Visualizza la versione installata di gphoto2 e di libgphoto
--list-cameras
Visualizza l'elenco delle fotocamere supportate
--camera MODEL

Specifica, nel caso in cui siano collegate 2 o più fotocamere, quale fotocamera usare.

(es. gphoto2 --camera "Canon Powershot A520 (PTP Mode)

Se viene usata questa opzione è obbligatorio  usare l'opzione --port PATH)

--port PATH

Specifica la porta USB alla quale è collegata la fotocamera

(obbligatorio nel caso in cui venga usata l'opzione --camera MODEL)

--filename FILENAME

Quando si fà il download della foto dalla macchina fotografica al PC specifica il nome

con il quale il file verrà memorizzato (es. --filename webcam.jpg)

--force-overwrite
Sovrascrive il file senza chiedere conferma
-F COUNT, --frames COUNT
Numero di scatti da eseguire durante una sessione (default infinito)
-I SECONDS, --interval SECONDS
Intervallo di tempo in secondi tra due scatti multipli eseguiti con l'opzione -F
--capture-image
Scatta una foto e la lascia memoizzata sulla fotocamera
--capture-image-and-download
Scatta una foto ed esegue il download sul PC
--list-config
Elenca le impostazioni supportate dalla fotocamera
--summary
Elenca il sommario delle impostazioni della fotocamera




Creare uno script bash

Vediamo ora come creare uno script che esegua uno scatto specificando le impostazioni che preferiamo (useremo per l'esempio una Canon A520, i comandi andranno poi adattati in base alla fotocamera usata in base all'output del comando --list-config e -summary)

Digitando gphoto2 --list-config otteniamo le varie impostazioni possibili con la fotocamera collegata:

Ecco l'outpup di una Canon A520:

/main/settings/owner /main/settings/model
/main/settings/firmwareversion
/main/settings/time
/main/settings/synctime
/main/settings/output
/main/settings/orientation
/main/settings/capturetarget
/main/settings/capture
/main/imgsettings/canonimgquality
/main/imgsettings/canonimgformat
/main/imgsettings/canonimgsize
/main/imgsettings/iso
/main/imgsettings/whitebalance
/main/imgsettings/photoeffect
/main/capturesettings/zoom
/main/capturesettings/assistlight
/main/capturesettings/autorotation
/main/capturesettings/exposurecompensation
/main/capturesettings/canonflashmode
/main/capturesettings/shootingmode
/main/capturesettings/aperture
/main/capturesettings/focusingpoint
/main/capturesettings/shutterspeed
/main/capturesettings/meteringmode
/main/capturesettings/afdistance
/main/capturesettings/focuslock


Creiamo ora uno script utilizzando parte dei comandi disponibili nella cartella /va/www/

Digitamo da terminale


cd /var/www

vi scatto.sh


e incolliamo le righe in corsivo:


#!/bin/bash
gphoto2 --set-config canonimgsize=2 --set-config canonimgquality=1 --set-config iso=0 --set-config whitebalance=0 --set-config photoeffect=1 --set-config shootingmode=0 --capture-image-and-download --force-overwrite --filename webcam.jpg



Se vogliamo aggiungere anche il trasferimento del file in remoto via ftp aggiungiamo una riga che mandi in esecuzione ncftpput.

Per maggiori informazioni vedere Installazione_Gphoto2

Registriamo lo script e usciamo dall'editor i con :wq  oppure con ZZ

Rendiamo lo script eseguibile con il comando


chmod 777 scatto.sh


Analizziamo in dettaglio le opzioni usate:

canonimgsize specigica la grandezza dell'immagine

canonimgquality specifica la qualità dell'immagine
iso specifica gli iso da usare

whitebalance specifica il bilanciamento del bianco

photoeffect specifica gli effetti (vivid neutral ecc.)

shootingmode specifica la modalità di scatto (auto, manual ecc)

--capture-image-and-download scatta una foto e fà il download sul PC

--force-overwrite sovrascrive il file se presente sul PC

--filename specifica il nome con il quale il file deve essere memorizzato sul PC


I valori da inserire vicino ad ogni opzione possiamo ricavarli analizzando l'output del comando  gphoto2 --get-config "nome comando" (ad esempio gphoto2 --get-config aperture) ed avremo l'output di tutti i possibili valori da inserire.


Per mandare in esecuzione lo script digitiamo


./scatto.sh


e avremo la foto scattata dalla nostra fotocamera rinominata in webcam.jpg nella cartella dove si trova lo script scatto.sh


Per far eseguire lo script ad intervalli regolari sarà sufficiente richiamarlo dalla crontab.


Se usiamo Debian avremo diverse directory per gestire le nostre crontab. Noi useremo la cron.hourly che si trova in /etc

Spostaimoci nella directory digitando


cd /etc/cron.hourly


e andiamo a editare se già presente, oppure a creare il file root digitando il comando


vi root


ora copiamo ed incolliamo la seguente riga, ricordandoci di premerei per passare alla modalità inserimento



01,06,11,16,21,26,31,36,41,46,51,56 * * * *      /var/www/./scatto.sh


Usciamo dall'editor con :wq o con ZZ e digitiamo


crontab root root


Ora se digitiamo il comando crontab -l dovremmo vedere visualizzate le operazioni che il demone Cron esegue, tra cui lo script che abbiamo appena inserito.



Il testo seguente su crontab per chi volesse approfondire l'argomento è tratto dalla pagina di Wikipedia visibile a questo indirizzo:[ http://it.wikipedia.org/wiki/Crontab]



I file crontab

I file crontab contengono la lista dei job e altre istruzioni per il demone di cron. Gli utenti possono avere dei file crontab individuali e spesso ci sono dei file crontab a livello di sistema (solitamente in /etc o in una sottodirectory di /etc) che possono essere utilizzati, ma modificati solo dagli amministratori di sistema.

Ogni linea di un file crontab segue un formato particolare, composta da una serie di campi separati da spazi o tabulazioni. I campi possono avere un solo valore o una serie di valori.

Operatori

Esistono diversi modi per specificare valori multipli in un campo:

  • L'operatore virgola («,») specifica una lista di valori, ad esempio: «1,3,4,7,8».
  • L'operatore trattino («-») specifica un intervallo di valori, ad esempio: «1-6», che equivale a «1,2,3,4,5,6».
  • L'operatore asterisco («*») specifica tutti i possibili valori di un campo. Ad esempio, un asterisco nel campo dell'ora è equivalente a «ogni ora».

Esiste anche un operatore supportato da alcune versioni estese del cron, l'operatore sbarra («/»), che può essere usato per saltare un certo numero di valori. Ad esempio, «*/3» nel campo dell'ora equivale a «0,3,6,9,12,15,18,21»; l'operatore «*» specifica «ogni ora», ma il «/3» indica che solo il primo, quarto, settimo e così via dei valori restituiti da «*» vengano usati.

Campi

I primi cinque campi su ogni riga specificano con che frequenza e quando eseguire un comando.

.---------------- [m]inute: minuto (0 - 59) 
|  .------------- [h]our: ora (0 - 23)
|  |  .---------- [d]ay [o]f [m]onth: giorno del mese (1 - 31)
|  |  |  .------- [mon]th: mese (1 - 12) OPPURE jan,feb,mar,apr... 
|  |  |  |  .---- [d]ay [o]f [w]eek: giorno della settimana (0 - 6) (domenica=0 or 7)  OPPURE sun,mon,tue,wed,thu,fri,sat 
|  |  |  |  |

*  *  *  *  *  comando da eseguire

Note:

  1. Per «giorno della settimana» (5° campo), sia 0 che 7 sono considerati il valore domenica.
  2. Se sia «giorno del mese» (3° campo) che «giorno della settimana» (5° campo) sono presenti sulla stessa linea, il comando viene eseguito quando almeno uno dei due è vero.

Il sesto campo e i successivi (ossia, il resto della linea) specificano il comando da eseguire.