ABSTRACT
L’articolo descrive la realizzazione di una AllSkyCam fai-da-te, una camera che riprende tutto il cielo, utile per astrofili e astrofotografi per monitorare in tempo reale le condizioni della volta celeste. Questo dispositivo diventa indispensabile quando si opera da postazioni remote, permettendo di decidere se iniziare o terminare una sessione di ripresa.
L’idea nasce dalla necessità di sostituire una AllSkyCam non più funzionante dell’associazione ADARA. I costi dei nuovi modelli erano elevati, quindi si è optato per una soluzione economica fai-da-te utilizzando un Raspberry Pi con una camera compatibile, montato in una scatola stagna. Il costo totale è inferiore ai 250 euro.
Per il software, si è scelto frankAllSkyCam, un programma gratuito e leggero che fornisce funzionalità essenziali come gli orari di alba e tramonto, le fasi lunari, umidità e temperatura. La costruzione richiede componenti come un Raspberry Pi4, una scheda micro-SD ad alte prestazioni, una camera Pi HQ Cam, una lente fish-eye, resistenze anticondensa, un relè, un sensore di temperatura e umidità, una scatola stagna, un alimentatore e vari cavi e connettori.
L’articolo guida passo dopo passo l’assemblaggio, dalla preparazione della scatola, al montaggio dei componenti, alla configurazione della camera e del software. La messa a fuoco della camera può essere effettuata tramite un monitor locale o streaming video.
Il software frankAllSkyCam include funzionalità come la visualizzazione in tempo reale delle immagini del cielo, l’indicazione dei pianeti principali, la generazione automatica di timelapse e startrail, e l’integrazione con sensori interni ed esterni per monitorare le condizioni ambientali e gestire il sistema anticondensa. La configurazione del software è flessibile, permettendo di personalizzare aspetti come la risoluzione delle immagini, i parametri dei sensori e l’upload delle immagini su un sito web remoto.
Il progetto, testato in diverse condizioni climatiche per oltre due anni, si è dimostrato affidabile e stabile. Il software è disponibile su GitHub e offre una soluzione economica e facile da implementare per gli astrofili.
Realizzare una AllSkyCam e farla funzionare in pochi minuti con un software gratuito
Cos’è una AllSkyCam? A cosa serve?
Si tratta di una camera che inquadra tutto il cielo, da cui, il nome AllSkyCam. È molto utile agli astrofili, specialmente agli astrofotografi perché, grazie all’immagine del cielo in tempo reale, si riesce a guardare lo stato della volta celeste e, quindi, a capire se è il caso di cominciare/terminare una sessione. È evidente che diventa davvero necessaria quando si lavora da postazioni remote. In questi casi, la AllSkyCam è l’unico mezzo per capire in autonomia la situazione attuale e la tendenza evolutiva del cielo.
Alcuni astrofili usano la AllSkyCam per catturare foto delle meteore. Altri ancora, per generare simpatici video Timelapse del cielo e, perché no, la classica “strisciata al polo”, nota come “startrail”.
L’idea
Tutto è nato per necessità. Nella nostra associazione astrofili ADARA, sita a Brallo di Pregola, un’incantevole località dell’Oltrepò Pavese, avevamo già una AllSkyCam in servizio da diversi anni. Era la nostra finestra sul cielo, il nostro “corrispondente” che ci comunicava se potevamo attivare le nostre postazioni remote e cominciare le sessioni di ripresa.
Improvvisamente, la nostra AllSkyCam ha cessato di funzionare. Così, ci siamo posti il problema di sostituirla con una nuova. Pronti a cercare il nuovo modello… ed ecco l’amara sorpresa: per sostituirla con qualcosa di più recente, si sarebbe arrivati a spendere almeno 700 euro per un modello base, se non di più.
Subito ci sembrano troppi. Ci domandiamo: è mai possibile che, con la disponibilità di sensori CMOS a basso costo e con la diffusione delle videocamere di sorveglianza, ormai disponibili per qualche decina di euro, si debba arrivare a cifre così elevate?
Dopo un veloce giro in rete, troviamo l’alternativa fai-da-te. Ci occorre un Raspberry PI con una camera compatibile (ne esistono diversi modelli). Il tutto va montato in una scatola stagna, con una apertura protetta verso il cielo. Poi, un po’ di software per gestirla. E te la cavi con meno di 250 euro.
E il software? Girando per il web, è stato facile trovare diversi progetti open source, molto evoluti e molto carini, che arrivano a fornire funzionalità che, francamente, vanno anche oltre le nostre esigenze. Ed è proprio questo il punto. Qual è il problema da risolvere? Nel nostro caso, capire le condizioni del cielo ed avere qualche informazione a corredo, tipo:
- Quando sorge/tramonta il sole e comincia/finisce il buio astronomico?
- Quando sorge/tramonta la luna?
- Qual è la fase lunare attuale?
- Umidità e temperatura?
Insomma, sono queste le informazioni di base che ci aiutano a pianificare una sessione di ripresa o le attività da visualista.
Ebbene, in questo articolo vedremo come realizzare una AllSkyCam completa e ci affideremo ad uno dei software più leggeri esistenti. Si tratta del frankAllSkyCam, realizzato da… me!
Vediamo ora come costruirla.
La realizzazione
Va precisato che quando ti cimenti in un progetto fai-da-te, costruisci prototipi, capisci quello che non funziona, quello che va modificato. Commetti errori, impari e migliori. E questo ahimè ha un impatto economico. Ho comprato pezzi inutili, parti inadeguate, distrutto componenti… ma sono arrivato al risultato atteso. Ci sono arrivato divertendomi e raggiungendo un livello di prestazioni stabile. Le sperimentazioni, una volta realizzato il tutto, sono durate oltre un anno: la AllSkyCam è stata testata in ogni stagione e condizione meteo. E quindi neve, sole, pioggia, grandine e temperature estreme hanno aiutato a correggere il tiro e migliorare nel tempo. Ormai sono oltre due anni che le AllSkyCam installate lavorano bene. Il livello di maturità è soddisfacente e lo scopo di questo articolo è cercare condividere la mia esperienza per aiutare gli astrofili interessati ad arrivare velocemente alla realizzazione, evitando di commettere di nuovo gli stessi errori.
Partiamo subito dall’occorrente. Ecco la lista della spesa:
- Raspberry Pi4 Model B. Va benissimo il modello 4GB RAM. Costo intorno ai 100 euro. Attenzione. Va bene anche un Pi Zero, anche se lo sconsiglierei. Alcuni amici astrofili hanno testato con il Pi zero e funziona senza problemi. Ovviamente, la generazione dei timelapse è veramente lenta. Andrebbe bene anche un vecchio Pi3 ma più avanti scopriremo che disporre di un Pi4 può offrire anche altre opportunità.
- Una schedina di memoria micro-SD Card. Ho scelto quella ad alte prestazioni, essendo esposta alle intemperie h24. Nella mia esperienza, quelle ordinarie si danneggiano dopo qualche mese. I modelli “high endurance” sono molto più affidabili. Bastano 32GB. Ma vista la poca differenza di prezzo, ho scelto il taglio da 64GB, reperibile a circa 30 euro.
- Una camera Raspberry Pi. Io ho optato per la Pi HQ Cam, ma funziona qualsiasi PiCam. Anche le ben note ArduCam. L’importante è che queste camerine funzionino con il pacchetto libcamera. Naturalmente è necessario il cavo flat per il collegamento della camerina. Di solito viene fornito a corredo. Il costo della HQ Cam si aggira intorno ai 65 euro
- Lente fish-eye da montare davanti alla camerina. L’ho recuperata a circa 15 euro (170° totali, 1,7mm di focale).
- Resistenze per evitare la formazione di condensa. Si possono utilizzare 2 striscette adesive da 12W, alimentate a 12V. Costo sui 10 euro. Naturalmente, è possibile usare qualsiasi altro tipo di resistenza (purché scaldi abbastanza) ma questo richiede alcune considerazioni che faremo più avanti, in un paragrafo dedicato.
- Relè per comandare l’accensione/spegnimento delle resistenze. Circa 5 euro.
- Sensore di temperatura e umidità, per misurare le condizioni interne al box. Circa 8 euro.
- Scatola per contenere il tutto (esempio una IP65). Si recupera tra i 15 e i 20 euro.
- Alimentatore 12V 10A, circa 10 euro.
- Convertitore DC 12V – 5V per alimentare il Raspberry, circa 10 euro.
- Connettore “aeronautico” RJ45, per collegare la AllSkyCam al cavo LAN. Evitabile se si dispone di copertura WiFi. Per prenderne 2 ci vogliono circa 15 euro.
- Passacavi ermetico, per il cavo di alimentazione. Costa circa 1 euro se comprato in un Brico.
- Cupolino in plexiglass, diametro da 3,5 pollici. Una dimensione maggiore risulta essere più sensibile a problemi di condensa interna. Costo inferiore ai 10 euro.
- Una piccola tavoletta di legno multistrato, delle dimensioni della base della scatola elettrica, da inserire come supporto su cui montare i vari componenti.
- Un po’ di cavo elettrico rosso-nero (DC)
- Alcuni cavetti jumper Dupont, per collegare i sensori ed il relè al Raspberry PI. Un pacco intero costa sui 10 euro.
- Silicone, per sigillare il cupolino alla scatola elettrica.
- Un sacchetto da 50g di silica gel da lasciare nella scatola elettrica. Un pacchetto da 6 costa circa 15 euro.
Come si può notare, l’intero costo si aggira intorno ai 300 euro. Direi che tutto l’occorrente è reperibile su Amazon.
Assembliamo la nostra AllSkyCam!
Procediamo per passi.
- La scatola deve essere dotata di un fondo “millefori” su cui montare i componenti. La mia ne era sprovvista, ragion per cui è stato necessario sagomare una tavoletta in multistrato su cui montare i componenti da posizionare sul fondo della scatola. Bisogna avere l’accortezza di non coprire tutto il fondo, ma lasciare una zona libera, per consentire l’ingresso del cavo LAN e del cavo di alimentazione 12V, che entreranno, appunto, dal fondo attraverso, rispettivamente, un connettore aeronautico RJ45 ed un passacavi. È ovvio che, in caso di uso del WiFi, entra solo il cavo di alimentazione. Va fatta una precisazione su questo punto. Il Raspberry Pi può essere alimentato con un PoEHat, cosa che ho voluto evitare per limitare i costi ed anche perché, nel caso specifico, la posizione della SkyCam è raggiunta dall’alimentazione.
- Successivamente sono da posizionare il Raspberry Pi, l’adattatore DC 12V-5V ed il relè (che dovrà comandare le resistenze anticondensa) nel fondo della scatola cercando di ottenere la migliore combinazione di posizioni nella zona destra, lasciando, sul lato opposto, lo spazio per poter sistemare la camera. Una volta individuata la disposizione più ottimale dei componenti, è preferibile procedere con le operazioni di montaggio vere e proprie fuori della scatola, sulla tavoletta di legno sagomata, in modo da avere gradi di libertà nelle attività di assemblaggio.
- Trovato un layout comodo, si procede con il fissaggio dei componenti, semplicemente avvitandoli sulla tavoletta di cui sopra (in alternativa, si possono usare dei ganci con fascette a stringere).
- Trapano alla mano, si praticano 2 fori nel fondo della scatola per installare rispettivamente il passacavi attraverso il quale arriverà l’alimentazione 12V, ed il connettore aeronautico per il cavo LAN RJ45. Una nota. Se si vuole, si può evitare il connettore LAN RJ45 ed utilizzare, al suo posto, un normale passacavi. In tal caso, si passa il cavo 8 poli (Cat. 5e o 6) e poi si crimpa il connettore RJ45 maschio. Il problema però è che, in caso di smontaggio della AllSkyCam per manutenzione, dovremo tagliare il cavo e poi, al montaggio, ri-crimpare lo spinotto RJ45.
- E’ il momento di collegare i primi cavi. La linea 12V deve arrivare direttamente all’alimentatore del Raspberry (convertitore 12V-5V) ed alle resistenze anticondensa, qui previa connessione al relé che ne comanderà accensione e spegnimento. Il connettore aeronautico andrà nella presa LAN del Raspberry.
- Il relè offre, da un lato, tre connessioni verso il Raspberry: tensione di riferimento, tensione 5V+ e comando. Qui suggerirei di collegarli alla board del raspberry, tramite i cavetti Dupont, ai pin n.2 (5V), n.6 (Gnd)e n.18 (GPIO 24). E’ possibile scegliere anche pin diversi. Dall’altro lato, il relè offre l’uscita di tensione che alimenterà le resistenze.
- E’ il momento di installare la camera di ripresa, nel nostro caso, la Pi HQ Cam. L’ho fissata al fondo della scatola usando dei piedini ad “L”, che hanno, sulla base, un foro di fissaggio e sull’apice, un foro filettato che consente il montaggio della camera. Naturalmente, dovremo montare la lente grandangolare, semplicemente avvitandola davanti al sensore CMOS. La camerina dovrà essere “innalzata” per uscire dalla scatola fino a sfiorare la superficie interna del cupolino. Quindi, va considerato l’uso di prolunghe facilmente reperibili anche su Amazon. Per regolare l’altezza, occorre quindi montare il cupolino al coperchio della scatola (vedi punti successivi) e poi fissare l’altezza definitiva della camera CMOS, che andrà collegata, tramite il suo cavo flat, alla board del Raspberry Pi, facendo attenzione al verso del cavo, il cui pin 0 è tipicamente quello azzurro (seguire il foglietto di istruzioni).
- E’ giunto il momento di forare il coperchio della scatola elettrica per il successivo montaggio del cupolino. Occorre una fresa montata ad un trapano. Il foro deve essere centrato in corrispondenza dell’obbiettivo della camerina CMOS e deve avere un diametro tale da poter consentire il successivo montaggio del cupolino. In altre parole, se il diametro interno del cupolino è 3 pollici (circa 7,7cm) farei un foro da 6cm. Occorre, quindi, una fresa da 6cm. Effettuato il foro, procediamo con il fissaggio del cupolino. Questo, tipicamente, dispone di una serie di fiorellini sulla sua base di appoggio. E’ necessario praticare i fiorellini corrispondenti anche sul coperchio della scatola elettrica, in modo da consentire il fissaggio tramite piccoli perni e bulloni (tipicamente M2 o M3). Prima di avvitare, dobbiamo distribuire della colla siliconica sulla base di appoggio del cupolino. Dopo l’avvitatura dello stesso, occorre sigillare per bene i bordi esterni del cupolino stesso.
- Montiamo ora le resistenze anticondensa. Ho utilizzato 2 striscette adesive da 12Watt. Mi sono accorto che producono un calore molto forte. L’idea era di attaccarle al cupolino, ma avrei rischiato deformazioni al plexiglass, per cui le ho incollate ad una striscetta di silicone che ho poi sistemato all’interno del cupolino. Le resistenze andranno collegati al polo positivo, in uscita dal relè, ed al polo negativo dell’alimentazione generale.
Ora che tutto è pronto, non rimane altro che installare il sistema operativo e procedere con la messa a fuoco della camera. Soltanto dopo sarà possibile chiudere definitivamente la scatola con le sue viti. Da notare che la Pi HQ Cam è quanto più possibile vicina al cupolino, in modo da limitare le distorsioni di immagine.
![AllSkyCam](https://www.coelum.com/wp-content/uploads/2024/05/image17.png)
Si notino le resistenze montate direttamente sul lato interno del cupolino, poi dopo
rimosse per l’eccessivo calore generato.
La preparazione del software di sistema
E’ necessario disporre di una microSD Card (32GB è già sufficiente). La card va preparata con il sistema operativo Bullseye. Per far questo, occorre utilizzare il Raspberry PiImager (disponibile al sito www.raspberry.com/software), un tool molto semplice da usare.
Una volta installato sul PC/Mac, prima di scrivere l’immagine sulla microSD, vanno configurate le opzioni base (es. Hostname, WiFi/LAN, layout tastiera, time zone, username/password), ma questa configurazione esula dallo scopo di questo articolo. Va detto che il software AllSkyCam non necessita del sistema operativo completo di desktop. La versione “Lite” va più che bene. Anzi, è raccomandata.
Procediamo ora con il primo avvio del sistema. Inseriamo la scheda microSD nel Raspberry Pi, colleghiamo un monitor e, una volta avviato il sistema, procediamo all’aggiornamento del sistema operativo, digitando, al prompt dei comandi:
- sudo apt update
- sudo apt upgrade(alla eventuale domanda, rispondere y)
Adesso bisogna installare alcuni pacchetti software. E’ necessaria la connessione ad internet.
- pip (per l’installazione di pacchetti Python, dovrebbe già essere presente nel sistema) – sudo aptinstall python3-pip
- ImageMagick (libreria pythonper la gestione delle immagini) – sudo apt-get install libmagickwand-dev
- ffmpeg (software per la generazione video, nel nostro caso, timelapse) – sudo aptinstallffmpeg
Procediamo adesso con la messa a fuoco della camera, digitando: libcamera-vid -t 100000
Ora vedremo, al monitor locale, il video trasmesso dalla Pi HQ Cam. Possiamo quindi mettere a fuoco ruotando la ghiera della camera, avendo cura di inquadrare il cielo. Possiamo aumentare la durata del video aumentando il valore 100000 della riga di comando. Nota: se non abbiamo un monitor da collegare al Raspberry Pi, possiamo comunque generare uno stream video e renderlo disponibile sulla rete: libcamera-vid -t 0 —inline —listen -o tcp://0.0.0.0:8888
Dopodiché, da un’altra postazione sulla stessa rete, possiamo usare, ad esempio un client VLC ed aprire il network stream, indicando l’indirizzo IP del Raspberry Pi e la porta sulla quale il Raspberry sta generando lo streaming (es. tcp/h264://raspberrypi.local:8888). La messa a fuoco tramite streaming video non è il massimo. Bisogna tener conto di qualche secondo di ritardo introdotto dalla trasmissione. Per cui bisogna procedere con piccole rotazioni della ghiera di messa a fuoco ed attendere di vedere l’effetto sul client video.
Una volta terminata la messa a fuoco, possiamo inserire nella scatola il sacchetto di silica gel e chiudere la AllSkyCam.
Nota: frankAllSkyCam utilizza il software libcamera (incluso nell’ultimo sistema operativo Raspberry). La versione precedente (raspistill) non è supportata.
Configurazione di frankAllSkyCam
È possibile configurare diversi aspetti, dalla risoluzione dell’immaginealla dimensione del font di caratteri, alla posizione del testo sull’immagine, etc. Ma concentriamoci sugli aspetti più importanti, lasciando gli altri settings con i valori predefiniti.
Il file di configurazione è situato in: /home/pi/frankAllSkyCam/config.txt
Per modificarlo,è possibile utilizzare l’editor nano: nano /home/pi/frankAllSkyCam/config.txt
Parametri base:
- inte = AstroBrallo.com #nome della AllSkyCam
- latitude = 44,73#latitudine del sito di osservazione
- longitude = 9.31 #longitudine del sito di osservazione
- time_zone = Europe/Rome #time zone
- nel caso in cui si possegga un SQM-LE, bisogna abilitarlo in questo modo:
- use_sqm = y #y = ho un SQM-LE; n=non ho un SQM-LE
- ip_addess = 192.168.1.10 #indirizzoipdel dispositivo SQM_LE
- port = 10001 #porta di comunicazione del SQM LE
- write_log = n #abilitazione ai log
Se si vuole utilizzare un sito web esterno su cui pubblicare l’immagine AllSky, bisogna configurare i seguenti parametri FTP:
- isFTP=True #True = attivo il trasferimento verso sito web esterno. False=no
- FTP_server = tuo_ftpserver.com
- FTP_login = tuo_nomeutente
- FTP_pass = tua_password
- FTP_uploadFolder =tua_upload_dir
- FTP_filenameAllSkyImgJPG = allskycam #solo nome file. Non aggiungere “.jpg”
- FTP_fileNameStarTrailJPG = /startrails/starTrail.jpg #nome file startrail
- FTP_fileNameTimelapseMP4 = /videos/frankAllSkycam #cartella dei video timelapse
In base alla configurazione di cui sopra, la allskycam, le immagini startrail e i video timelapse verranno caricati su un sito remoto, tramite FTP. Naturalmente, se non si desidera usare un FTP remoto basta impostare isFTP=False
Due ulteriori parametri abilitano/disabilitano la generazione dei timelapse:
- nightTL = True #True = viene generato il timelapse notturno; False = no
- fullTL = True#True = viene generato il timelapse 24h; False = no
Il file allskycam_night.mp4 mostrerà solo il timelapse notturno, dal tramonto all’alba e verrà generato se nightTL = True
Analogamente, allskycam_24h.mp4 mostrerà le 24 ore e verrà generato se fullTL = True
Ci sono alcune altre opzioni. Il file config.txt è autoesplicativo ed è possibile personalizzare molti aspetti, incluso il logo, l’immagine della bussola, e “dati extra” che potremmo decidere di scrivere sulla nostra immagine AllSkyCam, ad esempio informazioni provenienti da sensori esterni,quali la velocità del vento, l’umidità, la temperatura e/o altro.
Una volta completata la configurazione, è necessario verificare se il tutto funziona. Dalla riga di comando, basta digitare: python3 -m frankAllSkyCam
Per verificare il funzionamento facciamo attenzione ad eventuali messaggi di errore (quasi sempre sono dovuti ad errori di configurazione. Quindi controlliamo bene il file config.txt)abbiamo diverse opzioni:
- tramite browser, provarehttp://<your_raspberry_IP>
- Sul disco locale del Raspberry Pi, verificare l’esistenza del file jpeg (nome del file contiene data ed ora): /home/pi/frankAllSkyCam/img/<img_folder_with_date>/
- Sul sito web remoto (nel caso sia stato configurato) dovrebbe essere visibile l’immagine AllSkyCam
Se tutto funziona, rendiamo tutto automatico. Basta digitare questo comando: python3 -m frankAllSkyCam.crontab
![AllSkyCam](https://www.coelum.com/wp-content/uploads/2024/05/image16.png)
Si noti l’anello di silicone azzurro, interno al cupolino, introdotto per evitare il contatto diretto tra le resistenze ed il cupolino
(al fine di evitare il rischio di deformazione dello stesso, dovuto all’eccessivo calore generato).
Gestione del sistema anticondensa
Il tema della formazione della condensa sul cupolino, e della sua gestione, è probabilmente la parte più complessa della realizzazione di una AllSkyCam. Esistono diverse scuole di pensiero: AllSkyCam ventilata, completamente sigillata, valvole di pressione, ed altre idee creative. Tutte sono più o meno funzionanti ma, nel mio caso, ho testato con successo questo approccio:
- AllSkyCam completamente (ben) sigillata.
- Installazione di un sensore di temperatura ed umidità interno al box, preferibilmente nell’area sottesa dal cupolino
- Installazione di un sensore di temperatura ed umidità esterno al box
I due sensori potrebbero anche non essere necessari. Infatti, nel mio caso, per diversi mesi ho interrogato, via http, una stazione meteo che si trova a qualche Km di distanza, ricavando direttamente il valore del punto di rugiada della zona. Data la distanza, i valori non erano sempre attendibili, per cui ho pensato di rendermi autonomo e di installare i due sensori di cui sopra.
Mentre il sensore interno (2) sarà collegato direttamente al Raspberry Pi (ho usato un sensore DHT22 che costa circa 8 euro. Il software frankAllSkyCam include lo script per la lettura della temperatura), il sensore esterno (3) potrà essere anche lontano, comunque nella stessa zona di installazione. Nel mio caso, ho usato un sensore di umidità e temperatura WiFi, facilmente interrogabile via http. Una volta acquisiti i valori dei due sensori, diventa immediato calcolare direttamente il punto di rugiada con una delle formule che si possono trovare facilmente in Rete.
Il nostro software frankAllSkyCam dispone di un file python: /home/pi/frankAllSkyCam/tools/checkDew.py
che implementa la logica sopra descritta, e che ogni 10 minuti (è in crontab) acquisisce le letture dai sensori e provvede ad accendere o spegnere le resistenze, dopo aver ricavato il valore del punto di rugiada. In alternativa, è possibile guardare al valore del tasso di umidità interno e/o combinare questa informazione con quella relativa al punto di rugiada.
Alcuni astrofili hanno usato un approccio altrettanto empirico, probabilmente più semplice, e con ottimi risultati. Senza basarsi sui valori del punto di rugiada/umidità interna, hanno programmato l’accensione delle resistenze in modo incondizionato: accensione al tramonto e spegnimento dopo l’alba. In questo modo, hanno evitato l’installazione dei sensori. Attenzione però a non utilizzare resistenze troppo scaldanti: il cupolino potrebbe deformarsi in caso di calore eccessivo.
Le funzionalità del software frankAllSkyCam
Prima di procedere con l’installazione, mi soffermo sulle funzionalità di questo software, scritto da me (da cui il nome frankAllSkyCam). Oltre a fornire l’immagine del cielo in tempo reale, fornisce le seguenti informazioni:
- Immagine fase della Luna (fase, %illuminazione, orari di alba e tramonto, prossima luna nuova)
- Sole (orari di alba e tramonto)
- Orari di inizio e fine del buio astronomico
- SQM (calcolato dall’analisi dell’immagine, oppure letto dal lettore SQM-LE, se disponibile)
- Indicazione dei pianeti principali presenti in cielo, con le rispettive icone
- Valori provenienti da eventuali sensori sia collegati al Raspberry Pi, sia disponibili tramite rete (es. Temperatura, Umidità, dati di stazioni meteo, …)
Tali dati vengono riportati sull’immagine insieme con 2 loghi a scelta (es. Bussola e logo personale) e nome della location. Le posizioni di queste informazioni, la dimensione del testo, il colore del font (diurno e notturno) sono customizzabili da un file di configurazione.
Ogni mattina, questo software genera automaticamente:
- Timelapse delle ultime 24 ore
- Timelapse della notte appena trascorsa
- Startrail della notte precedente
Inoltre, attraverso l’interfaccia web, visualizza le costellazioni in overlap all’immagine del cielo. In questo modo, accedendo – tramite browser – alla AllSkyCam è possibile vedere, tutte insieme, le informazioni utili a pianificare e gestire una eventuale osservativa.
Altra funzionalità è la gestione automatica anticondensa, ma questa verrà trattata più avanti, in un paragrafo dedicato.
Una nota a parte la merita la misurazione dell’SQM. Il software frankAllSkyCam comunica con un SQM LE leggendo i valori SQM ed adeguando, di conseguenza, il tempo di esposizione dell’immagine del cielo. Qualora non fosse disponibile un SQM-LE, il software fornisce una ottima stima del valore SQM, analizzando i dati del fotogramma. Per raggiungere questo risultato ho scritto un algoritmo “machine learning” addestrato con le letture reali dell’SMQ-LE. Il training è durato una settimana ed i valori di SQM calcolati sono quasi sovrapponibili a quellirilevati dall’SQM-LE.
Se si intende usare il Raspberry Pi anche come server web, è necessario che installare Apache (o altro server web). Per installare Apache, basta digitare questo comando: sudo aptinstall apache2 -y
dopodiché occorrerà creare la cartella che ospiterà l’immagine allskycam.jpg: sudo mkdir /var/www/html/img
A questo punto, occorre spostare il file index.html, generato durante l’installazione, nel server web locale: sudo mv /home/pi/frankAllSkyCam/index.html /var/www/html/
In questo modo, potremo vedere la nostra immagine del cielo usando semplicemente questo indirizzo: http://<indirizzo_IP raspberry/
Se vogliamo un vero e proprio sito web, questo viene fornito a corredo del software frankAllSkyCam, ed è immediatamente utilizzabile e personalizzabile.Una delle sue particolarità è la possibilità di mostrare l’overlay della mappa celeste sull’immagine del cielo, grazie ad un codice javascript open source disponibile in Rete. Un esempio reale è visibile qui:
http://www.meteobrallo.com/webcam/allsky/
Ultimo punto da considerare: dobbiamo decidere se la nostra AllSkyCam sarà destinata ad essere accessibile da utenti esterni oppure no. Se si, come credo, dovremo scegliere se utilizzare un sito web esterno alla nostra rete locale, oppure se usare il Raspberry Pi come web server pubblico. Nel primo caso, il software frankAllSkyCam esporterà l’immagine del cielo (via FTP) sul sito esterno. Questa soluzione potrebbe essere preferibile, sia per ragioni di sicurezza (in modo da evitare di esporre il Raspberry Pi su una rete pubblica), sia per evitare sovraccarico di richieste http che potrebbero degradare le prestazioni della nostra rete locale. Fare leva su un sito esterno è la mia preferenza personale. Ma comunque, qualora lo volessimo, è ovviamente possibile usare il Raspberry Pi come web server pubblico. In tal caso, sul nostro router, sarebbe necessaria una configurazione di “port forwarding” per esporre il servizio http del Raspberry Pi (su porta 80) su rete pubblica, associandolo ad una porta esterna (es. 8080). Il router si occuperà di reindirizzare le richieste in arrivo sulla porta 8080 verso la AllSkyCam che risponderà sulla porta 80. Dall’esterno bisognerà usare un indirizzo tipo questo:
http://<IP pubblico del mio router>:8080/
al posto dell’indirizzo IP pubblico del mio router è preferibile usare un servizio DNS (dinamico o statico, a seconda della natura del mio IP pubblico.
Naturalmente, frankAllSkyCam è gratuito e presente su GitHub.
Installazione del software frankAllSkyCam
L’installazione è davvero immediata. Assicurarsi di essere connessi ad internet e, dal prompt dei comandi del Raspberry Pi, digitare:
pip3 installfrankAllSkyCam
Se non si rilevano messaggi di errore, l’installazione è terminata, ma è necessario configurare ancora alcuni parametri, in base alle proprie preferenze. Per fare ciò, bisogna avviare il programma digitando: python3 -m frankAllSkyCam
Verranno create alcune cartelle:
/home/pi/frankAllSkyCam | cartella principale del programma |
/home/pi/frankAllSkyCam/img | cartella delle immagini generate. Conterrà delle sottocartelle, ognuna relativa alle immagini di 24 ore. Il nome delle sottocartelle conterrà la data delle riprese. Queste cartelle verranno automaticamente cancellate dopo un numero “x” di giorni, definito nel file di configurazione |
/home/pi/frankAllSkyCam/log | Cartella contenente i log del software |
/home/pi/frankAllSkyCam/mq | Cartella contenente i file di supporto per il calcolo dell’SQM, quando il dispositivo SQM-LE non è disponibile |
/home/pi/frankAllSkyCam/png | Cartella contenente il proprio logo, la bussola (entrambi personalizzabili), le immagini di luna e pianeti. |
ed alcuni file, tra cui:
/home/pi/frankAllSkyCam/config.txt
/home/pi/frankAllSkyCam/index.html
config.txtcontiene la configurazione di frankAllSkyCam.
index.txt è una pagina web semplice che mostra l’immagine AllSky
Ora non resta che configurare le preferenze.
Conclusione
frankAllSkyCam ha un footprint bassissimo (richiede pochi Kb) ed una robustezza elevata, essendo basato sulle componenti del sistema operativo e su alcune librerie software consolidate. Nel corso del tempo (ormai è live da oltre 2 anni) è stato adottato da diversi astrofili nel mondo, anche su modelli di Raspberry molto economici (es. Raspberry Zero) e camere CMOS, pur compatibili con Raspberry Pi, ma con caratteristiche davvero base. Diciamo che fa il suo lavoro ed ha zero-issue riportate su GitHub. Quindi, se cercate una soluzione economica e “zero-sbatti”, questo potrebbe fare al vostro caso