[Guida] Webcam Canon con Raspberry grazie a GPhoto2

Guide e manuali

Moderators: Moderatore, RaffoxBS

User avatar
RaffoxBS
Direttivo Meteopassione
Posts: 14557
Joined: Sat 01 Mar, 2008 16:15
Location: Azzano Mella (BS)

[Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by RaffoxBS »

Ciao a tutti,
dopo ben 10 anni dalla mia prima guida sulle webcam Canon (disponibile qui: viewtopic.php?f=4&t=4556 ) in questi giorni ho avuto modo di eseguire qualche test con Raspberry e una Canon A95, sfruttando il software GPhoto che, per vari motivi, non avevo ancora avuto modo di provare.

Partiamo dalle fotocamere compatibili: qui si apre un mondo rispetto al vecchio PSRemote, sono infatti compatibili molti modelli non Canon (attualmente sono più di 2500 modelli compatibili). Tutti i modelli potete trovarli qui: http://www.gphoto.org/proj/libgphoto2/support.php

Questa cosa delle Canon mi ha riattivato la voglia di webcam ad alta risoluzione e quella che sto provando attualmente andrà diretta sul Pizzocolo :D

Partiamo da zero, quindi dal cosa ci serve. Nel mio caso ho quanto segue:

- Raspberry Pi3 https://amzn.to/30cdH4Q
- Scheda SD da 16 Gb https://amzn.to/339gm0X
- Canon A95 (buona ricerca su ebay o simili :D )

Successivamente, quando sarà installata aggiungerò

- Custodia di una vecchia BOX Camera
- Batteria da 18 Ah https://amzn.to/3j70HVD
- Pannello solare da 30W https://amzn.to/3j70HVD
- Regolatore di carica https://amzn.to/2HBhwdn
- DC/DC 12V/5V https://amzn.to/2S3Hg4e

Configurazione del raspberry

Come prima cosa occorre configurare il proprio raspberry, per questo andremo a caricare l'ultima immagine disponibile di Raspbian per la quale potete trovare i dettagli qui: https://www.raspberrypi.org/downloads/

Nota: da poco è disponibile il "Raspberry Pi Imager", molto comodo! Nel mio caso ho scelto la "Raspbian Buster Lite"

Una volta eseguita finito il caricamento dell'immagine, inseriamo la SD nel raspberry. A questo punto bisogna avere un minimo di conoscenza dei comandi in bash, per questo si trovano diverse guide al riguardo e se qualcuno avrà dubbi può postare qui nei commenti. Ricordatevi di abilitare SSH dalla configurazione del raspi e di cambiare la password di default.

Installazione di gPhoto2

Accediamo al raspberry tramite ssh e scriviamo quanto segue:

Code: Select all

sudo apt-get update

sudo apt-get install gphoto2


A questo punto ci verrà chiesto se occupare spazio sulla memoria, diciamo SI e partirà l'installazione di gphoto 2.

Dopo qualche minuto possiamo connettere la nostra fotocamera (verificate che sia presente nell'elenco di quelle compatibili).

Il comando più rapido per verificare che la fotocamera sia connessa e funzionante è il seguente:

Code: Select all

sudo gphoto2 --auto-detect


Senza nome.png


Come vedete nell'immagine sopra, dopo aver lanciato il comando il Raspberry ha individuato la Canon PowerShot A95.

Proviamo ora a fare uno scatto manuale con il seguente comando, che ci salverà un immagine sul raspberry chiamata raspcanon.jpg

Code: Select all

sudo gphoto2 --capture-image-and-download --force-overwrite --filename raspcanon.jpg


Se tutto è andato in porto e avete sentito scattare la fotocamera, passiamo alla fase di pubblicazione sul web e all'automazione con Cron!

Messa online dell'immagine con FTP e CRON

Installiamo il client FTP per l'upload delle immagini con il seguente comando:

Code: Select all

sudo apt-get install ncftp


Dopo poco tempo avremo il client pronto ed installato.

Spostiamoci ora nella directory principale del raspberry

Code: Select all

cd /


E creiamo ora la cartella canon digitando quanto segue.

Code: Select all

sudo mkdir canon


Questo passaggio è consigliato così da essere tutti allineati a prescindere dal proprio nome utente.

Creiamo a questo punto il file per fare lo scatto e caricare sul nostro sito l'immagine.

Code: Select all

sudo nano scatto.sh


Inseriamo ora:

Code: Select all

#!/bin/bash

gphoto2 --set-config iso=0 --set-config whitebalance=0 --set-config photoeffect=1 --set-config shootingmode=0 --set-config flashmode=0 --capture-image-and-download --force-overwrite --filename raspcanon.jpg

ncftpput -u ''UTENTEDACAMBIARE'' -p ''PASSWORDDACAMBIARE'' ''PROPRIOSITODACAMBIARE'' / raspcanon.jpg

#chmod 777 raspcanon.jpg

exit 0



Salviamolo con i nostri dati FTP e rendiamo eseguibile il file:

Code: Select all

sudo chmod +x scatto.sh


Per automatizzare il tutto, inseriamo lo script in Cron così facendo:

Code: Select all

sudo crontab -e


E aggiungiamo alla fine la seguente riga:

Code: Select all

*/5 * * * * sudo /canon/scatto.sh


In questo caso il Raspberry avvierà il file ogni 5 minuti, modificando il /5 in /10 diventano 10 ecc.

cron.png



Spero di essere stato chiaro in questa prima fase di configurazione, come molti di noi sanno però il bello di usare una fotocamera come webcam è la possibilità di andare ad inserire parametri manuali per scatti notturni ad alta risoluzione legati alla posa prolungata. A questo link potete trovare i dettagli di tutti i comandi configurabili: http://www.gphoto.org/doc/manual/ref-gphoto2-cli.html

Nella prossima puntata Daniel vi darà i dettagli di come eseguire una configurazione automatica con il passaggio tra giorno e notte in base agli orari di alba e tramonto!

Fatemi sapere se ci sono dubbi o perplessità riguardo alla guida e spero possa essere utile a molti!
You do not have the required permissions to view the files attached to this post.
User avatar
Daniel
Direttivo Meteopassione
Posts: 660
Joined: Sat 19 Oct, 2019 18:02
Location: Carpenedolo (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by Daniel »

Eccomi! Vediamo ora come integrare l'ottimo lavoro di Raffaele con una chicca in più: il cambio impostazioni dello scatto in due modalità: giorno e notte!
Per fare questo è necessario scrivere un codice in Python che vada a ricavare l'orario di alba e tramonto tramite l'indicazione di latitudine, longitudine ed elevazione. Sono un po' di righe di codice perciò ho già preparato i file pronti all'uso e li faremo scaricare al nostro Raspberry!

Prima di tutto andiamo nella cartella canon che avete creato precedentemente tramite il comando

Code: Select all

cd /canon/


Meglio cancellare tutti i file presenti in modo tale da avere i file nuovi, se preferite potete lanciare questo comando per copiarli in una nuova cartella

Code: Select all

sudo mkdir file_vecchi
sudo mv * file_vecchi/


Scarichiamo i file nuovi facendo

Code: Select all

sudo wget http://meteocarpenedolo.altervista.org/meteopassione/software/canon/canon.zip


Decomprimiamo i file

Code: Select all

sudo unzip canon.zip


Se tutto è andato a buon fine il contenuto della cartella canon sarà il seguente:
Image

Ora è necessario installare 2 componenti aggiuntivi per poter eseguire il calcolo di alba e tramonto, il primo è python-pip, installabile con il comando

Code: Select all

sudo apt-get install python-pip


Il secondo è la libreria astral

Code: Select all

sudo pip install astral


Il grosso del lavoro è fatto, ora basta solo fare le configurazioni dei vari file...
Prima di tutto digitiamo

Code: Select all

sudo nano albatramonto.py

Image
Questo è il contenuto del file che calcola alba e tramonto, è necessario modificare, come indicato anche nel file, i parametri di latitudine (l.latitude), longitudine (l.longitude) e elevazione (l.elevation) del luogo dove è installata la fotocamera, nel file sono già presenti i dati di Brescia città.
E' possibile anche regolare in modo più fine l'orario ritardandolo o anticipandolo con i due comando sotto (variazione_tramonto e variazione_alba), modificare i valori di minutes e hours in modo da ottenere l'orario perfetto per la transizione.

Salviamo il file, usciamo (CRTL+O e CTRL+X) e modifichiamo il file scatto.sh

Code: Select all

sudo nano scatto.sh

Image
Nel file scatto.sh basterà inserire le credenziali per l'invio della foto (come già spiegato sopra da Raffaele) e, se necessario, modificare i parametri di scatto (come ad esempio lo shutterspeed, gli iso... potete ovviamente aggiungere sia nel caso giorno che nel caso notte altri parametri a piacere!

Una volta salvato questo file possiamo verificare che tutto funzioni tramite il comando

Code: Select all

sudo ./scatto.sh

Se tutto va a buon fine il risultato mostrato a terminale sarà questo (vi uscirà "modalita giorno..." se giorno, "modalita notte..." se notte)
Image

Ora la vostra fotocamera Canon è pronta per immortalare i più bei panorami di giorno e anche di notte!

Un'ultima cosa per facilitare l'upload delle immagini su MeteoPassione e l'inserimento delle bande nella fotografia è di impostare l'orario corretto alla fotocamera ad ogni riavvio. Per fare questo ho già predisposto il file impostaora.sh che ha questo. Per automatizzare questa procedura andiamo a modificare la crontab con

Code: Select all

sudo crontab -e

e inseriamo sotto alla riga che fa scattare la foto ogni N minuti questa riga:

Code: Select all

@reboot sudo /canon/impostaora.sh

Perciò dovreste ottenere questo:
Image

Resto anche io a disposizione se c'è qualche dubbio o perplessità!
alluminio
Socio sostenitore
Posts: 36
Joined: Sun 07 Dec, 2014 11:25

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by alluminio »

Ottima guida :clapping:
Avevo giusto nel cassetto una vecchia Canon PowerShot A410 presente nella lista dei modelli supportati ...
ma viene riconosciuta al comando "sudo gphoto2 --auto-detect" se la lascio in "Menù play",
invece non viene riconosciuta se la metto in modalità scatto.
Suggerimenti prima di buttarla e cercarne un'altra in altro cassetto ? :-)
You do not have the required permissions to view the files attached to this post.
User avatar
rules
Socio fondatore
Posts: 3741
Joined: Fri 29 Feb, 2008 20:58
Location: Berlinghetto (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by rules »

Grazie per la guida, veramente completa!!
Qualche anno fa mi ero cimentato con gphoto2 per l'enorme supporto alle fotocamere che ha ed alla possibilità di personalizzazione... da shell si fa veramente tutto.

Questa guida di Raffo e con le implementazioni di Daniel direi che non ha eguali... penso diventerà un must :clapping:
Mi avete fatto venire voglia di rispolverare il mio hw in cantina.. rasp e cam sono pronti :)
Grazie!!!!!!
User avatar
RaffoxBS
Direttivo Meteopassione
Posts: 14557
Joined: Sat 01 Mar, 2008 16:15
Location: Azzano Mella (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by RaffoxBS »

rules wrote:Grazie per la guida, veramente completa!!
Qualche anno fa mi ero cimentato con gphoto2 per l'enorme supporto alle fotocamere che ha ed alla possibilità di personalizzazione... da shell si fa veramente tutto.

Questa guida di Raffo e con le implementazioni di Daniel direi che non ha eguali... penso diventerà un must :clapping:
Mi avete fatto venire voglia di rispolverare il mio hw in cantina.. rasp e cam sono pronti :)
Grazie!!!!!!


Direi che è obbligatorio riesumarli :mryellow:
User avatar
RaffoxBS
Direttivo Meteopassione
Posts: 14557
Joined: Sat 01 Mar, 2008 16:15
Location: Azzano Mella (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by RaffoxBS »

alluminio wrote:Ottima guida :clapping:
Avevo giusto nel cassetto una vecchia Canon PowerShot A410 presente nella lista dei modelli supportati ...
ma viene riconosciuta al comando "sudo gphoto2 --auto-detect" se la lascio in "Menù play",
invece non viene riconosciuta se la metto in modalità scatto.
Suggerimenti prima di buttarla e cercarne un'altra in altro cassetto ? :-)



La A410 non è compatibile con la cattura dell'immagine:

canon.jpg


http://www.gphoto.org/doc/remote/

Devi cercare nel cassetto :mryellow:
You do not have the required permissions to view the files attached to this post.
User avatar
Anubis
Socio sostenitore
Posts: 3928
Joined: Wed 21 Jan, 2009 22:26
Location: Niardo (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by Anubis »

Grazie di questa guida, presto recupererò la vecchia Canon S30 con cui avevo fatto la primissima webcam nel 2010 :shock:
Canale Youtube: www.youtube.com/StargateAtlantis90
Portale dei dati idrometeorologici italiani: www.meteoniardo.altervista.org/portale- ... liani.html
Le mie foto su Panoramio: www.panoramio.com/user/2915007
User avatar
rules
Socio fondatore
Posts: 3741
Joined: Fri 29 Feb, 2008 20:58
Location: Berlinghetto (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by rules »

alluminio wrote:Ottima guida :clapping:
Avevo giusto nel cassetto una vecchia Canon PowerShot A410 presente nella lista dei modelli supportati ...
ma viene riconosciuta al comando "sudo gphoto2 --auto-detect" se la lascio in "Menù play",
invece non viene riconosciuta se la metto in modalità scatto.
Suggerimenti prima di buttarla e cercarne un'altra in altro cassetto ? :-)


Ciao,
io ho una A400 e la uso proprio in modalità PLAY.. hai provato a lasciarla in questa modalità e scattare?
Te la riconosce con lo switch --auto-detect?
User avatar
rules
Socio fondatore
Posts: 3741
Joined: Fri 29 Feb, 2008 20:58
Location: Berlinghetto (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by rules »

Una domanda per Daniel...
Eseguendo lo script scatto.sh appare il messaggio di errore:
scatto.sh: 21: [: giorno!: unexpected operator

Lo script va a buon fine perché fa prima il controllo che non ci sia scritto "notte!" nel txt...
Dove sbaglio?
Grazie, ottimo lavoro!
User avatar
Daniel
Direttivo Meteopassione
Posts: 660
Joined: Sat 19 Oct, 2019 18:02
Location: Carpenedolo (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by Daniel »

rules wrote:Una domanda per Daniel...
Eseguendo lo script scatto.sh appare il messaggio di errore:
scatto.sh: 21: [: giorno!: unexpected operator

Lo script va a buon fine perché fa prima il controllo che non ci sia scritto "notte!" nel txt...
Dove sbaglio?
Grazie, ottimo lavoro!
Hai scaricato i file dal mio sito o hai copiato e incollato da qui? Sembra che ci sia un errore di sintassi...


Inviato dal mio iPhone utilizzando Tapatalk
User avatar
rules
Socio fondatore
Posts: 3741
Joined: Fri 29 Feb, 2008 20:58
Location: Berlinghetto (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by rules »

Scaricati, variando il path per la generazione del file temp.txt e parametri di latitudine, ecc...

Gli apici nello script scatto.sh sono corrretti?
risultato=`sudo cat /home/rules/canon/temp.txt`
User avatar
Daniel
Direttivo Meteopassione
Posts: 660
Joined: Sat 19 Oct, 2019 18:02
Location: Carpenedolo (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by Daniel »

No, vanno usate le \ al contrario rispetto alle tue... poi verifica di aver cambiato path alla fine del file scatto.sh e anche nel file albatramonto.py alla riga 19 (file = open(...)). Così dovrebbe funzionare


Inviato dal mio iPhone utilizzando Tapatalk
User avatar
rules
Socio fondatore
Posts: 3741
Joined: Fri 29 Feb, 2008 20:58
Location: Berlinghetto (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by rules »

Uhm.. gli slash / vanno bene per il path... così come gli apici.
Ho eseguito lo script specificando di usare bash e così funziona correttamente (in crontab.. bash ./scatto.sh), probabilmente usa una sintassi più estesa.

Grazie
User avatar
Daniel
Direttivo Meteopassione
Posts: 660
Joined: Sat 19 Oct, 2019 18:02
Location: Carpenedolo (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by Daniel »

Hai fatto bene a dirmelo, credevo che gli / funzionassero solo in Windows... forse potrebbe essere un problema di permessi se non lo eseguiva ma se mettendo bash prima di scatto.sh funziona meglio così!


Inviato dal mio iPhone utilizzando Tapatalk
iz0cvy
Sereno
Sereno
Posts: 4
Joined: Mon 01 Nov, 2021 12:09

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by iz0cvy »

Buongiorno, OTTIMA GUIDA ma seguendo i vari passi da seguire non capisco dove si trova il testo o il contenuto del file "impostaora.sh" che viene nominato a fine guida per impostare ad ogni riavvio data e ora nella macchina fotografica?
iz0cvy
Sereno
Sereno
Posts: 4
Joined: Mon 01 Nov, 2021 12:09

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by iz0cvy »

alluminio wrote:Ottima guida :clapping:
Avevo giusto nel cassetto una vecchia Canon PowerShot A410 presente nella lista dei modelli supportati ...
ma viene riconosciuta al comando "sudo gphoto2 --auto-detect" se la lascio in "Menù play",
invece non viene riconosciuta se la metto in modalità scatto.
Suggerimenti prima di buttarla e cercarne un'altra in altro cassetto ? :-)



Prima dello scatto inserisci questa riga:

pkill -f gphoto2
User avatar
Daniel
Direttivo Meteopassione
Posts: 660
Joined: Sat 19 Oct, 2019 18:02
Location: Carpenedolo (BS)

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by Daniel »

Ciao, il file lo trovi direttamente sul Raspberry seguendo la procedura (lo faccio scaricare in uno zip), altrimenti ti basta andare al link di altervista che vedi nel codice nella guida e scaricarlo su pc. Riguardo all’istruzione da lanciare prima della foto non l’ho mai usata... cosa fa?


Inviato dal mio iPhone utilizzando Tapatalk
iz0cvy
Sereno
Sereno
Posts: 4
Joined: Mon 01 Nov, 2021 12:09

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by iz0cvy »

Buongiorno Daniel,
Era riferito al messaggio di " alluminio gio 16 apr, 2020 01:01"
con la mia G2 avevo preoblemi di scatto con relativo errore e la macchina non poteva scattare perche' era impegnata in altro, killando gphoto2 viene chiuso il collegamento alla CardFlash della G2 e tutto torna a funzionare.

La segnalazione di errore si presenta sempre al momento del riavvio del Raspberry quando si visualizza la CF sul DESKTOP.


un saluto
alluminio
Socio sostenitore
Posts: 36
Joined: Sun 07 Dec, 2014 11:25

Re: [Guida] Webcam Canon con Raspberry grazie a GPhoto2

Post by alluminio »

iz0cvy wrote:
alluminio wrote:Ottima guida :clapping:
Avevo giusto nel cassetto una vecchia Canon PowerShot A410 presente nella lista dei modelli supportati ...
ma viene riconosciuta al comando "sudo gphoto2 --auto-detect" se la lascio in "Menù play",
invece non viene riconosciuta se la metto in modalità scatto.
Suggerimenti prima di buttarla e cercarne un'altra in altro cassetto ? :-)



Prima dello scatto inserisci questa riga:

pkill -f gphoto2


Niente da fare. anche così non funziona. Peccato.
Grazie!