Indice
- Introduzione
- Configurazione degli script (
⚠️ Consiglio di leggerlo) - Scripts
- Script base
- Script con GUI (
⚠️ Consiglio di leggerlo prima di usarlo)
Questo progetto scolastico fatto in python serve a tracciare latitudine, longitudine e altitudine della ISS.
È stato pensato per essere eseguito su un Rasberry Pi per essere collegato ad uno schermo informativo, ma può essere eseguito su qualsiasi computer.
Per questo motivo ho fatto 2 versioni dello script:
- La prima versione
mainBase.py
è quella più semplice, e genera un graficooutput.png
con latitudine, logitudine e altitudine in funzione del tempo. - La seconda versione
gtk.py
, costruita sumainBase.py
genera una interfaccia grafica fatta con il toolkit GTK
Ogni versione dello script, dopo gli import, ha delle "costanti" che possono essere utilizzate per impostare alcuni parametri
URL
- Non è da cambiare - Url da dove vengono presi i dati della iss
MAX_DATA_STORE_LEN
- Numero massimo di valori che vengono salvati. Più questo numero è grande e più informazioni verranno tenute nel grafico.
POLLING_DELAY
- Delay in secondi tra gli aggiornamenti. Il rate limit della API è di circa 1 richiesta al secondo.
REQ_TIMEOUT
- Timeout in secondi prima che la richiesta viene interrotta. Se la richiesta viene interrotta, lo script ne effettuerà un'altra dopo 2 secondi.
OUTPUT_DPI
- I DPI del grafico. All'aumentare di questo numero aumenta la dimensione dell'immagine. Consiglio di non andare sotto i 300 altrimenti l'immagine verrà tagliata
LIVE_URL_ID
- Id della diretta YouTube
LAYOUT
- Tipo di layout. Può avere 2 valori: "horizontal" o "vertical".
FULLSCREEN
- Scegli se mostrare la finestra in fullscreen o meno. Si può uscire dal fullscreen con la combinazione Alt
+ F4
Questo script è la versione "base": genera un grafico con Latitudine, Longitudine e Altitudine in funzione del tempo trascorso.
Librerie esterne usate:
matplotlib
requests
Installazione
pip install requests matplotlib
ℹ️ Assicurarsi che siano alla versione più recente!
Per eseguire lo script basta fare
python mainBase.py
Questa versione dello script genera una interfaccia grafica con a sinistra / sopra (varia dal layout specificato nella configurazione) il grafico della latitudine, longitudine e altitudine in funzione del tempo e a destra / sotto la live stream della ISS
⚠️ NOTA 1: Al primo avvio darà errore perché non trova il file output.png.
Bisogna aspettare un pochino fino a quando non genera questo file.
Una volta generato, basterà chiudere e riaprire lo script e tutto dovrebbe andare correttamente.
⚠️ NOTA 2: Nella seconda e terza linea ho messo come versioni di gtk e webkit2 rispettivamente 3.0 e 4.1
Questi valori possono cambiare da dispositivo a dispositivo, quindi se esce un errore del tipo
"ValueError: Namespace WebKit2/Gtk not available for version x" significa
che Gtk/Webkit2 è installato ma non è stata selezionata la versione corretta.
L'importante è che sia Gtk che Webkit2 stiano nelle loro major release (gtk 3.x webkit 4.x)
Per la GUI ho usato come toolkit GTK in modo da tenere tutto in un singolo file e avere migliori prestazioni sulla memoria rispetto ad un browser.
Librerie esterne
matplotlib
requests
gtk
Installazione
pip install requests matplotlib
ℹ️ Assicurarsi che siano alla versione più recente!
sudo apt install libwebkit2gtk-4.0-dev
- Webkit2 4.0 (Debian e derivate)
sudo pacman -S webkit2gtk-4.1
- Webkit2 4.0 (con pacman, generalmente disponibile su Arch)
Gtk dovrebbe essere già installato su linux (come la maggior parte delle librerie)
Per eseguire lo script basta fare
python gtk.py