[Guida] Webcam Canon con Raspberry grazie a GPhoto2

Guide e manuali

Moderatori: Moderatore, RaffoxBS

Rispondi
Avatar utente
RaffoxBS
Direttivo Meteopassione
Messaggi: 14380
Iscritto il: sab 01 mar, 2008 16:15
Località: Azzano Mella (BS)
Contatta:

[Guida] Webcam Canon con Raspberry grazie a GPhoto2

Messaggio da 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:

Codice: Seleziona tutto

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:

Codice: Seleziona tutto

sudo gphoto2 --auto-detect


Senza nome.png
Senza nome.png (3.31 KiB) Visto 11682 volte


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

Codice: Seleziona tutto

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:

Codice: Seleziona tutto

sudo apt-get install ncftp


Dopo poco tempo avremo il client pronto ed installato.

Spostiamoci ora nella directory principale del raspberry

Codice: Seleziona tutto

cd /


E creiamo ora la cartella canon digitando quanto segue.

Codice: Seleziona tutto

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.

Codice: Seleziona tutto

sudo nano scatto.sh


Inseriamo ora:

Codice: Seleziona tutto

#!/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:

Codice: Seleziona tutto

sudo chmod +x scatto.sh


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

Codice: Seleziona tutto

sudo crontab -e


E aggiungiamo alla fine la seguente riga:

Codice: Seleziona tutto

*/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
cron.png (12.03 KiB) Visto 11682 volte



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!
Avatar utente
Daniel
Direttivo Meteopassione
Messaggi: 653
Iscritto il: sab 19 ott, 2019 18:02
Località: Carpenedolo (BS)
Contatta:

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

Messaggio da 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

Codice: Seleziona tutto

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

Codice: Seleziona tutto

sudo mkdir file_vecchi
sudo mv * file_vecchi/


Scarichiamo i file nuovi facendo

Codice: Seleziona tutto

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


Decomprimiamo i file

Codice: Seleziona tutto

sudo unzip canon.zip


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

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

Codice: Seleziona tutto

sudo apt-get install python-pip


Il secondo è la libreria astral

Codice: Seleziona tutto

sudo pip install astral


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

Codice: Seleziona tutto

sudo nano albatramonto.py

Immagine
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

Codice: Seleziona tutto

sudo nano scatto.sh

Immagine
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

Codice: Seleziona tutto

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)
Immagine

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

Codice: Seleziona tutto

sudo crontab -e

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

Codice: Seleziona tutto

@reboot sudo /canon/impostaora.sh

Perciò dovreste ottenere questo:
Immagine

Resto anche io a disposizione se c'è qualche dubbio o perplessità!
alluminio
Socio sostenitore
Messaggi: 34
Iscritto il: dom 07 dic, 2014 11:25

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

Messaggio da 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 ? :-)
Allegati
2020-04-16_015822.jpg
2020-04-16_015822.jpg (141.96 KiB) Visto 11644 volte
Avatar utente
rules
Socio fondatore
Messaggi: 3739
Iscritto il: ven 29 feb, 2008 20:58
Località: Berlinghetto (BS)

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

Messaggio da 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!!!!!!
Avatar utente
RaffoxBS
Direttivo Meteopassione
Messaggi: 14380
Iscritto il: sab 01 mar, 2008 16:15
Località: Azzano Mella (BS)
Contatta:

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

Messaggio da RaffoxBS »

rules ha scritto: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:
Avatar utente
RaffoxBS
Direttivo Meteopassione
Messaggi: 14380
Iscritto il: sab 01 mar, 2008 16:15
Località: Azzano Mella (BS)
Contatta:

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

Messaggio da RaffoxBS »

alluminio ha scritto: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
canon.jpg (227.54 KiB) Visto 11575 volte


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

Devi cercare nel cassetto :mryellow:
Avatar utente
Anubis
Socio sostenitore
Messaggi: 3927
Iscritto il: mer 21 gen, 2009 22:26
Località: Niardo (BS)

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

Messaggio da 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
Avatar utente
rules
Socio fondatore
Messaggi: 3739
Iscritto il: ven 29 feb, 2008 20:58
Località: Berlinghetto (BS)

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

Messaggio da rules »

alluminio ha scritto: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?
Avatar utente
rules
Socio fondatore
Messaggi: 3739
Iscritto il: ven 29 feb, 2008 20:58
Località: Berlinghetto (BS)

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

Messaggio da 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!
Avatar utente
Daniel
Direttivo Meteopassione
Messaggi: 653
Iscritto il: sab 19 ott, 2019 18:02
Località: Carpenedolo (BS)
Contatta:

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

Messaggio da Daniel »

rules ha scritto: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
Avatar utente
rules
Socio fondatore
Messaggi: 3739
Iscritto il: ven 29 feb, 2008 20:58
Località: Berlinghetto (BS)

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

Messaggio da 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`
Avatar utente
Daniel
Direttivo Meteopassione
Messaggi: 653
Iscritto il: sab 19 ott, 2019 18:02
Località: Carpenedolo (BS)
Contatta:

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

Messaggio da 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
Avatar utente
rules
Socio fondatore
Messaggi: 3739
Iscritto il: ven 29 feb, 2008 20:58
Località: Berlinghetto (BS)

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

Messaggio da 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
Avatar utente
Daniel
Direttivo Meteopassione
Messaggi: 653
Iscritto il: sab 19 ott, 2019 18:02
Località: Carpenedolo (BS)
Contatta:

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

Messaggio da 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
Messaggi: 4
Iscritto il: lun 01 nov, 2021 12:09

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

Messaggio da 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
Messaggi: 4
Iscritto il: lun 01 nov, 2021 12:09

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

Messaggio da iz0cvy »

alluminio ha scritto: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
Avatar utente
Daniel
Direttivo Meteopassione
Messaggi: 653
Iscritto il: sab 19 ott, 2019 18:02
Località: Carpenedolo (BS)
Contatta:

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

Messaggio da 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
Messaggi: 4
Iscritto il: lun 01 nov, 2021 12:09

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

Messaggio da 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
Messaggi: 34
Iscritto il: dom 07 dic, 2014 11:25

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

Messaggio da alluminio »

iz0cvy ha scritto:
alluminio ha scritto: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!
Rispondi