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.
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. |
edalcuni 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.
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
![Redazione Coelum](https://www.coelum.com/wp-content/uploads/avatars/34296/1673115103-bpfull.jpg)