Flugzeuge via ADS-B live beobachten

© mikekiev, 123RF

Wo isser nu?

Flugzeuge senden kontinuierlich Positionssignale aus, die verraten, um welchen Flug auf welcher Route es sich handelt. Mit dem Raspberry Pi und einem preiswerten Empfänger lassen sich diese ADS-B-Transponderdaten unmittelbar empfangen und auswerten.

Verkehrsflugzeuge senden kontinuierlich Positionssignale aus, die verraten, um welchen Flug und welche Flugroute es sich handelt. Im Web gibt es unzählige Seiten, die damit die Jets tracken und auf einer Karte darstellen [1]; ähnliche Programme laufen auch auf Mobiltelefonen [2]. Da ein Smartphone Standort und Blickrichtung kennt, sieht es für den Benutzer so aus, als würde es unmittelbar die Flugdaten empfangen. Tatsächlich stammen sie aus einer Datenbank, die das Handy über Internet abfragt. Mit dem Raspberry Pi lässt sich ein preiswerter Empfänger realisieren, der die Positionssignale der Maschinen unmittelbar empfängt und auswertet – ohne Hilfe aus dem Netz.

Als Empfänger dient dabei ein DVB-T-Stick, ursprünglich dafür ausgelegt, Fernsehen über terrestrische Funkfrequenzen zu empfangen (Abbildung 1). Um mit dem Empfangs- und Auswertungsprogramm zu kommunizieren, sollte der Stick auf dem Chip RTL2832 von Realtek basieren. Bekannte Verkaufsplattformen bewerben passende Empfänger unter Bezeichnungen wie "USB DVB-T RTL-SDR Realtek RTL2832U" und bieten sie für weniger als 10 Euro an. In den meisten Fällen genügt die beiliegende Antenne den Anforderungen. Andernfalls bastelt man sich eine an die Frequenz von 1090 MHz angepasste Richtantenne [3] und verbindet sie über den MCX-Steckkontakt mit dem Stick.

Abbildung 1: Ein simpler DVB-T-Stick dient als SDR-Empfänger für den Raspberry Pi.

Der Empfänger basiert auf einem Software-defined Radio, kurz SDR. Ein idealer SDR-Empfänger besteht aus einer Antenne, einem ADC (Analog-Digital Converter), der die Analogspannung der Antenne digitalisiert, sowie einem Rechner für das Weiterverarbeiten der eingehenden Daten. Reale SDRs arbeiten mit Analogverstärkern und Zwischenfrequenzen, da die Empfindlichkeit gängiger ADC-Chips für einen Direktempfang in der Regel nicht ausreicht.

Software

In diesem Artikel beschränken wir uns auf das Auslesen des Flugsignals auf Basis des Programms Dump1090. Gegenüber anderen Programmen mit ähnlicher Zielsetzung, wie etwa RTL1090 oder BaseStation [4], zeichnet sich Dump1090 durch eine hohe Empfangsgüte aus. Die erste Version des Programms schrieb Salvatore Sanfilippo im Jahr 2012 [5]. Für den Einsatz auf dem Raspberry Pi sollten Sie die aktualisierte Version von Malcom Robb [6] verwenden – schon deshalb, weil sie die freie Karte OpenStreetMap unterstützt. Sie laden das Programm entweder als ZIP-Archiv herunter (Listing 1, erste Zeile) oder – einfacher – klonen es direkt via Git (Listing 1, zweite Zeile).

Listing 1

 

$ wget https://github.com/MalcolmRobb/dump1090/archive/master.zip
$ git clone git://github.com/MalcolmRobb/dump1090.git

Mit dem Befehl aus der ersten Zeile von Listing 2 wechseln Sie anschließend in das Verzeichnis, in dem die heruntergeladenen Dateien liegen. Die zweite Zeile stellt den ersten Versuch dar, das Programm zu kompilieren. In den meisten Fällen quittiert das System das mit einer Fehlermeldung und dem Hinweis auf nicht gefundene Hilfsprogramme.

Listing 2

 

$ cd Dump1090-Ordner
$ make # vermutlich Abbruch mit Fehlermeldungen
$ sudo apt-get install libusb-1.0-0-dev
$ sudo apt-get install build-essential
$ sudo apt-get install pkg-config
$ sudo apt-get install rtl-sdr
$ sudo apt-get install librtlsdr-dev
$ make # falls Fehler: weitere Bibliotheken nötig

Meist müssen Sie zumindest die Entwicklerversion der Libusb nachziehen, die die Kommunikation mit dem USB-Port abwickelt. Manchmal fehlen auch elementare Dinge wie ein C-Compiler, den die Zeilen 4 und 5 nachinstallieren. Für das Programmieren und Auswerten des SDR-Chips benötigen Sie die Bibliotheken aus den Zeilen 6 und 7. Je nach Software-Ausstattung des Rechners müssen Sie eventuell noch weitere Bibliotheken einrichten, bis der Make-Aufruf in Zeile 8 ohne Fehlermeldung durchläuft.

Nach der Installation gemäß Listing 2 testen Sie mit dem Aufruf rtl_test -t die Verbindung zum DVB-T-Stick. Wenn das Ergebnis dem aus Listing 3 ähnelt, hat der Rechner den SDR-Chip RTL2832U erfolgreich erkannt. Erscheint hingegen der Hinweis, der Stick sei bereits eingebunden, identifiziert Linux ihn als DVB-T-Empfänger. In diesem Fall fügen Sie der Datei /etc/modprobe.d/blacklist.conf die Zeile blacklist dvb_usb_rtl28xxu hinzu. Gelegentlich müssen Sie auch die weiteren Zeilen aus Listing 4 nachtragen. Dadurch unterdrückt das System nach einem Neustart das Laden der DVB-T-Treiber – erwartungsgemäß empfängt der Rechner anschließend kein DVB-T-Fernsehen mehr.

Listing 3

 

$ rtl_test -t
  Found 1 device(s):
  0:  Generic, RTL2832U, SN: 77771111153705700
  Using device 0: Generic RTL2832U
  Found Rafael Micro R820T tuner
  Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 ...
  [R82XX] PLL not locked!
  Sampling at 2048000 S/s.
  No E4000 tuner found, aborting.

Listing 4

 

blacklist dvb_usb_rtl28xxu
blacklist dvb_usb_v2
blacklist rtl_2830
blacklist rtl_2832
blacklist r820t

ADS-B-Empfang

Das als ADS-B (siehe gleichnamiger Kasten) bezeichnete Verfahren sieht vor, dass Luftfahrzeuge fortlaufend Statusinformationen aussenden, um die Flugsicherheit zu erhöhen. Für Verkehrsflugzeuge im europäischen Luftraum ist das sogenannte ADS-B ModeS extended squitter vorgeschrieben. Kurze Sendepulse von 0,5 µs Dauer auf einer Frequenz von 1090 MHz kodieren jeweils ein Bit – eine logische Eins, wenn der Puls am Anfang, sonst eine logische Null, wenn er am Ende der Referenzfrequenz steht. Es gibt kurze Squitter von 64 µs Dauer – sie kodieren 56 Bits, davon 27 Datenbits – und lange Squitter von 120 µs Dauer mit weiteren 56 Datenbits.

Die Arbeit der Dekodierung des 1090-MHz-Signals übernehmen die SDR-Bibliotheken. Die ersten Tests mit dem Programm Dump1090 protokolliert Listing 5. Wurde das Programm fehlerfrei kompiliert, erscheint mit dem Schalter --help das Hilfsmenü. Wenn Sie nach einem Aufruf mit dem Schalter --raw (Zeile 7) kurze und lange Hexadezimalzahlen als Antwort erhalten, dann empfangen Sie damit die ersten ADS-B-Datentelegramme. Der Rest ist nur noch Dekodierungsarbeit an der 14 (14 Zeichen x 4 Bit = 56 Bit) beziehungsweise 28 (28 Zeichen x 4 Bit = 112 Bit) Bytes langen Zeichenkette.

Listing 5

 

$ ./dump1090 --help
-----------------------------------------------------------------
|                dump1090 ModeS Receiver     Ver : 1.10.3010.14 |
-----------------------------------------------------------------
--device-index <index>   Select RTL device (default: 0)
[...]
$ ./dump1090 --raw
0: Generic, RTL2832U, SN: 77771111153705700 (currently selected)
Found Rafael Micro R820T tuner
Max available gain is: 49.60
Setting gain to: 49.60
Exact sample rate is: 2000000.052982 Hz
Gain reported by device: 49.60
*8d4408d758c3758d7d6b59c39614;
*5d4408d752975c;
*5d3c5eea681552;
*a000053900000000000000f1c42d;
[...]

ADS-B

Das Kürzel ADS-B steht für den etwas sperrigen englischen Begriff Automatic Dependent Surveillance – Broadcast. Das lässt sich etwa als "Automatische abhängige Überwachung durch Rundsendung" ins Deutsche übersetzen. Ein Luftfahrzeug bestimmt dabei selbstständig seine Position, etwa per GPS, und sendet diese – typischerweise einmal pro Sekunde – zusammen mit anderen Daten wie Flugnummer, Flugzeugtyp, Geschwindigkeit, Flughöhe und -richtung kontinuierlich auf 1090 MHz ungerichtet aus. Die Reichweite der ADS-B-Signale beträgt bis zu 200 Seemeilen, also rund 370 Kilometer. In Gebieten mit einer schlechten Funkmessabdeckung – etwa über dünn besiedelten Gebieten oder dem Meer – dient ADS-B heute der Flugsicherung quasi als Radar-Ersatz, bei erheblich geringeren Kosten als für eine aktive Flugverfolgungsanlage. ADS-B erhöht jedoch auch in radarüberwachten Zonen die Flugsicherheit, da es im Vergleich zur klassischen Flugverfolgung eine erheblich höhere Aktualisierungsrate bietet.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

04/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.