Esaminiamo, in questo articolo, un interessante progetto realizzato con il Raspberry Pi, un piccolo display TFT da 3.5 pollici e un economico dispositivo SDR, per ricevere le informazioni di volo degli aerei, dislocati anche a centinaia di chilometri di distanza.
Il ricevitore
Il modello utilizzato nel progetto è un ricevitore SDR (software-defined radio) basato su RTL2832U (vedi figura 1). Esso, in origine, veniva utilizzato per la ricezione del DVB-T. E' possibile, tuttavia, prelevare dal dispositivo i dati grezzi per poterli gestire secondo le proprie esigenze. Il chip RTL2832U è, di solito, associato a un sintonizzatore IC e nel caso del ricevitore USB di Adafruit, esso è un R820T, che consente la ricezione dei dati in una frequenza compresa tra 24MHz e 1850MHz. Si deve osservare che con una risoluzione ADC di 8 bit l'hardware RTL-SDR non sarà in grado di competere con piattaforme SDR più costose, ma per molti usi, il rapporto qualità prezzo risulta molto elevato.
Il display TFT
Il software realizzato e utilizzato per questo progetto ha il compito di predisporre, tra le altre, una interfaccia Web basata su Google Map, pertanto un'unità di visualizzazione TFT non sarebbe, in realtà, d'importanza vitale. Ma l'adozione di un display da 3.5 pollici Adafruit PiTFT (vedi figura 2) migliora, senza dubbio, l'impatto grafico e la presentazione dei dati fornendo, in tal modo, una chiara sintesi di tutta l'attività aerea, in tempo reale. Il display in questione dispone di un touch screen resistivo e si può montare benissimo sugli zoccoletti del Raspberry Pi, senza creare alcuna connessione esterna con cavi o fili elettrici. Come progetto parallelo a questo, si potrebbe anche realizzare un visualizzatore di spettro utilizzando gli stessi dispositivi (Raspberry Pi, display TFT e ricevitore SDR).
Il sistema operativo Raspian per il Raspberry Pi
Per gestire il display TFT con il Raspberry Pi, vi sono due diverse soluzioni, circa la configurazione del sistema operativo:
- Utilizzare "l'immagine" ufficiale e, manualmente, configurarla di conseguenza, secondo le proprie esigenze;
- Scaricare e installare l'immagine del S.O. da Adafruit, con il kernel già configurato e pronto per l'utilizzo dei display TFT.
Il progetto presentato in questo articolo segue la prima soluzione, anche se risulta sicuramente più lunga, tediosa e non proprio facile.
Dopo aver scritto l'immagine del Raspian sulla memoria SD, la prima operazione da effettuare è quella di cambiare l'hostname, da "raspberrypi" a "planepi", andando a modificare i due files di configurazione etc/hostname e etc/hosts.
Setup del PiTFT
La configurazione manuale del kernel per l'uso del display TFT è eseguita utilizzando alcune istruzioni e degli script forniti direttamente dalla Adafruit e presenti sull'omonimo sito. Ecco alcuni comandi per la relativa configurazione:
$sudo apt-get install -y --force-yes raspberrypi-bootloader adafruit-pitft-helper raspberrypi-kernel
$sudo adafruit-pitft-helper -t 35r
Per chi non voglia "smanettare" molto con il sistema operativo si consiglia, specialmente ai principianti e ai programmatori alle prime armi, di scaricare l'immagine del Raspian già configurata e funzionante. Se occorre ruotare la visualizzazione del display, si deve modificare il file /boot/config.txt e specificare l'angolo di rotazione desiderato.
Il software dump1090
Esistono diversi software per la ricezione e la decodifica delle trasmissioni in S-Mode. Quello esaminato nell'articolo si chiama dump1090, nome attribuito al programma per via della frequenza utilizzata. Esso ha il vantaggio di avere pochissime "dipendenze" esterne e si presta ottimamente per la decodifica dei segnali estremamente deboli. Per la sua compilazione è necessario eseguire i seguenti comandi da console:
$ sudo apt-get install libusb-1.0-0-dev librtlsdr-dev rtl-sdr $ git clone https://github.com/DesignSparkrs/dump1090 $ cd dump1090 $ make
Dopo di ciò si deve modificare il file etc/rc.local e, subito prima della linea "exit 0", in esso contenuta, occorre aggiungere la seguente riga:
cd ~pi/dump1090; ./dump1090 --net --net-http-port 80 --interactive &
Prove e verifiche di funzionamento
Una volta approntati sia il software che l'hardware, occorre riavviare il sistema, cosicché il display TFT venga riconosciuto correttamente. Se tutto è a posto, il software dump1090 si avvierà automaticamente in background, grazie alla riga aggiunta in precedenza al file /etc/rc.local e, subito dopo, il display TFT dovrebbe iniziare a visualizzare le informazioni relative alla ricezione dei segnali degli aerei, come mostrato in figura 3.
Come si vede, sono mostrate le informazioni più significative del volo come, ad esempio, la sigla dell'aereo, l'altitudine, la velocità, la direzione, la posizione espressa in latitudine e longitudine e altri. Se, addirittura, si specifica al Raspberry Pi anche un browser si otterrà, in modo estremamente semplice, un'applicazione Web, basata sulle mappe di Google, con la posizione degli aerei e altri preziosi dati, come mostrato in figura 4.
Ulteriori applicazioni
Il programma dump1090 permette di ottenere anche le informazioni Mode-S in modo Raw consentendo, in questo modo, di ottenere visualizzazioni molto più sofisticate usando, ad esempio, dei software simili a PlanePlotter, come visibile in figura 5. In aggiunta, le informazioni possono essere inviate a dei servizi online che consentono l'accesso ai dati di volo come, ad esempio, OpenSky Network e FlightAware.
Conclusioni
Come si vede, disponendo di un buon dispositivo embedded (Raspberry Pi con sistema operativo Linux), un economico ma affidabile ricevitore SDR e un'unità di visualizzazione, assieme ai software adatti, è abbastanza semplice realizzare un progetto molto sofisticato che abbia una funzionalità davvero notevole, che è quella di ricevere tutti i dati degli aerei in volo, in tempo reale, e di rappresentarli in forma testuale e in forma grafica agli utilizzatori dell'applicazione.
Links
Ecco, di seguito, qualche link utile per l'eventuale realizzazione del progetto presentato in questo articolo:
- Ricevitore Adafruit USB 24MHz-1850MHz Software Defined Radio (SDR) Dongle
- Display PiTFT Adafruit 2441, Plus 3.5 pollici Touch Screen resistivo per Raspberry Pi
- Progetto di un visualizzatore di spettro per Raspberri Pi
- Istruzioni per la configurazione del kernel per l'utilizzo del display TFT
- Istruzioni per il settaggio del WiFi con il Raspberry Pi
- Un altro metodo per visualizzare i dati di volo degli aerei
- Sito ufficiale del software PlanePlotter, con cui ricevere e decodificare i segnali degli aerei in tempo reale e visualizzarli su un grafico
- Sito ufficiale di OpenSky
- Sito ufficiale di FlightAware