[Guida] Webcam Canon con Raspberry grazie a GPhoto2

Guide e manuali

Moderatori: Moderatore, RaffoxBS

[Guida] Webcam Canon con Raspberry grazie a GPhoto2

Messaggioda RaffoxBS » mar 14 apr, 2020 22:35

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
- Scheda SD da 16 Gb
- Canon A95

Successivamente, quando sarà installata aggiungerò

- Custodia di una vecchia BOX Camera
- Batteria da 18 Ah
- Pannello solare da 30W
- Regolatore di carica
- DC/DC 12V/5V

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) Osservato 768 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) Osservato 768 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
RaffoxBS
Socio ordinario
 
Messaggi: 13133
Iscritto il: sab 01 mar, 2008 17:15
Località: Brescia

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

Messaggioda Daniel » mer 15 apr, 2020 13:21

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

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

Messaggioda alluminio » gio 16 apr, 2020 02:01

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) Osservato 730 volte
alluminio
Sereno
Sereno
 
Messaggi: 12
Iscritto il: dom 07 dic, 2014 12:25

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

Messaggioda rules » ven 17 apr, 2020 09:45

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
rules
Socio fondatore
 
Messaggi: 3626
Iscritto il: ven 29 feb, 2008 21:58
Località: Berlinghetto (BS)

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

Messaggioda RaffoxBS » ven 17 apr, 2020 22:52

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
Socio ordinario
 
Messaggi: 13133
Iscritto il: sab 01 mar, 2008 17:15
Località: Brescia

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

Messaggioda RaffoxBS » sab 18 apr, 2020 10:25

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) Osservato 661 volte


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

Devi cercare nel cassetto :mryellow:
Avatar utente
RaffoxBS
Socio ordinario
 
Messaggi: 13133
Iscritto il: sab 01 mar, 2008 17:15
Località: Brescia

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

Messaggioda Anubis » dom 26 apr, 2020 19:05

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
Anubis
Socio sostenitore
 
Messaggi: 3905
Iscritto il: mer 21 gen, 2009 23:26
Località: Niardo (BS)

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

Messaggioda rules » gio 25 giu, 2020 12:30

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: 3626
Iscritto il: ven 29 feb, 2008 21:58
Località: Berlinghetto (BS)

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

Messaggioda rules » gio 25 giu, 2020 13:04

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
rules
Socio fondatore
 
Messaggi: 3626
Iscritto il: ven 29 feb, 2008 21:58
Località: Berlinghetto (BS)

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

Messaggioda Daniel » gio 25 giu, 2020 13:07

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
Daniel
Temporale
Temporale
 
Messaggi: 251
Iscritto il: sab 19 ott, 2019 18:02
Località: Carpenedolo (BS)

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

Messaggioda rules » gio 25 giu, 2020 13:17

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
rules
Socio fondatore
 
Messaggi: 3626
Iscritto il: ven 29 feb, 2008 21:58
Località: Berlinghetto (BS)

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

Messaggioda Daniel » gio 25 giu, 2020 13:24

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
Daniel
Temporale
Temporale
 
Messaggi: 251
Iscritto il: sab 19 ott, 2019 18:02
Località: Carpenedolo (BS)

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

Messaggioda rules » gio 25 giu, 2020 15:01

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
rules
Socio fondatore
 
Messaggi: 3626
Iscritto il: ven 29 feb, 2008 21:58
Località: Berlinghetto (BS)

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

Messaggioda Daniel » gio 25 giu, 2020 15:10

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


Torna a Guide

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite