Differenze tra le versioni di "Timelapse"
Da Lecco.
Riga 73: | Riga 73: | ||
== mycapture.sh == | == mycapture.sh == | ||
+ | |||
+ | <pre><nowiki> | ||
+ | #!/bin/bash | ||
+ | # | ||
+ | |||
+ | case "$1" in | ||
+ | |||
+ | start) | ||
+ | # Avvia il ciclo perenne di cattura | ||
+ | while true do | ||
+ | |||
+ | # Controlla che Capture sia attivo | ||
+ | ps aux | grep capture > /dev/null | ||
+ | |||
+ | if [ $? ]; then | ||
+ | |||
+ | # Cattura l'immagine | ||
+ | capture 'capture /tmp/imagetemp.jpg' | ||
+ | |||
+ | # Ricava data e ora di sistema assegnandoli a una variabile | ||
+ | date = $(/bin/date '+%d/%m/%Y %H:%M:%S') | ||
+ | |||
+ | # Aggiunge data e ora all'immagine | ||
+ | convert /tmp/imagetemp.jpg -gravity southeast -pointsize 20 -stroke black -strokewidth 4 \ | ||
+ | -annotate 0 "${text}" -stroke white -strokewidth 1 -fill white -annotate 0 "${text}" \ | ||
+ | /tmp/imageconv.jpg | ||
+ | |||
+ | # Carica l'immagine sul server remoto | ||
+ | ncftpput -u user -p password -C ftp /tmp/imageconv.jpg /dest/remota | ||
+ | |||
+ | # Attesa tra uno scatto e l'altro | ||
+ | sleep 240 | ||
+ | |||
+ | else | ||
+ | |||
+ | # Se capture non è attivo lo lancia utilizzando lo script personalizzato | ||
+ | capture-start.sh start | ||
+ | |||
+ | fi | ||
+ | |||
+ | done | ||
+ | ;; | ||
+ | |||
+ | stop) | ||
+ | # Termina qualunque istanza avviata in precedenza | ||
+ | killall mycapture.sh | ||
+ | ;; | ||
+ | |||
+ | *) | ||
+ | echo "Usage: $0 {start|stop}" >&2 | ||
+ | exit 1 | ||
+ | ;; | ||
+ | |||
+ | esac | ||
+ | </nowiki></pre> | ||
== Ringraziamenti == | == Ringraziamenti == |
Versione delle 21:25, 5 feb 2009
Ideato da: Gigiv Licenza: GPL Download:
Indice
Introduzione
Questi due script servono ad utilizzare una semplice fotocamera digitale per l'acquisizione ciclica di scatti, applicare data e ora allo scatto acquisito ed inviarlo ad un server remoto tramite FTP
Requisiti
Per la realizzazione del tutto è stato usato:
Hardware
- PC dotato di porta USB equipaggiato con Ubuntu 7.04 Server (la potenza della macchina è ininfluente. Se riesce a girare Ubuntu, riuscirà a girare anche lo script)
- Fotocamera Canon Powershot A400/A520 (potete vedere le fotocamere supportate sul sito del software di cattura citato più avanti)
Software
- Software di cattura degli scatti da fotocamere Canon. In alternativa potete usare gPhoto2 che supporta anche Nikon e Olympus.
- Tools di modifica dinamica delle immagini. Utilizzato per l'aggiunta di data e ora all'immagine.
- Client FTP per l'uppload della foto sul server remoto.
- Librerie di comunicazione con la fotocamera. Necessarie per il funzionamento di Capture.
- Librerie per l'accesso agli USB Device. Necessarie per il funzionamento di Capture.
Capture
Capture è un ottimo software di controllo di fotocamere Canon.
Il funzionamento è gestito tramite linea di comando con un ampia gamma di opzioni.
Per il lancio e lo stop del demone si utilizza rispettivamente
~$ capture start
~$ capture quit
Per il passaggio delle opzioni al demone si devono includere le opzioni con i rispettivi valori tra apici singoli.
Ad esempio per zommare si dovrà usare
~$ capture 'zoom 5'
capture-start.sh
#/bin/bash # case "$1" in start) # Avvia Capture capture start # Setta la risoluzione dello scatto a 640x480 capture 'size small' # Setta lo zoom al massimo dell'ottica capture 'zoom 6' ;; stop) # Ferma Capture capture quit ;; *) echo "Usage: $0 {start|stop}" >&2 exit 1 ;; esac
mycapture.sh
#!/bin/bash # case "$1" in start) # Avvia il ciclo perenne di cattura while true do # Controlla che Capture sia attivo ps aux | grep capture > /dev/null if [ $? ]; then # Cattura l'immagine capture 'capture /tmp/imagetemp.jpg' # Ricava data e ora di sistema assegnandoli a una variabile date = $(/bin/date '+%d/%m/%Y %H:%M:%S') # Aggiunge data e ora all'immagine convert /tmp/imagetemp.jpg -gravity southeast -pointsize 20 -stroke black -strokewidth 4 \ -annotate 0 "${text}" -stroke white -strokewidth 1 -fill white -annotate 0 "${text}" \ /tmp/imageconv.jpg # Carica l'immagine sul server remoto ncftpput -u user -p password -C ftp /tmp/imageconv.jpg /dest/remota # Attesa tra uno scatto e l'altro sleep 240 else # Se capture non è attivo lo lancia utilizzando lo script personalizzato capture-start.sh start fi done ;; stop) # Termina qualunque istanza avviata in precedenza killall mycapture.sh ;; *) echo "Usage: $0 {start|stop}" >&2 exit 1 ;; esac