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

02/2019
Neue Energien

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Scheibchenweise

    Zu den Stärken von Sonic Pi gehört es, mit wenigen Zeilen Code Samples dynamisch auszuwählen und zu zerlegen.

  • Unter Strom

    Für einen kleinen Spannungsmesser wie den INA3221 gibt es viele Einsatzmöglichkeiten. Wir zeigen, wie Sie den flexiblen Baustein richtig verdrahten.

  • Vermittlungsstelle

    Fischertechnik-Modelle bieten sich zum Fernsteuern an. Mit dem Ftduino schlagen Sie die Brücke zwischen dem RasPi und dem Technik-Spielzeug.

  • Durchgeschlängelt

    Mit den M0-Boards steigen Sie unkompliziert in die Welt der Mikrocontroller ein – ganz ohne C-Kenntnisse.

  • Gesiebt und gefiltert

    Filter und Werbeblocker einzurichten ist besonders auf Smartphones aufwendig. Den eBlocker hingegen schließen Sie einfach nur an Ihren Router an.

  • Es werde Licht

    Wollen Sie bei beginnender Dämmerung nicht ständig die Helligkeit der heimischen Beleuchtung nachregeln, überlassen Sie das einfach einem RasPi – der macht es automatisch.

  • Energiekontrolle

    Der Gesetzgeber erschwert das Direktvermarkten von Strom durch technische Hürden: So muss sich die Einspeisung etwa aus der Ferne abschalten lassen. Der RasPi löst das Problem.

  • H<->2<->-Power

    Gilt es, Energie aus einer regenerativen Quelle zu speichern, erweist sich die Kombi aus einer Brennstoffzelle und dem RasPi als ideale Lösung.

  • Kleine Wolke

    Lokale Cloud-Lösungen im Heimnetz finden immer mehr Nutzer. Mit dem RasPi und Seafile haben Sie eine Lösung zur Hand, die selbst professionellen Ansprüchen genügt.

  • Planvoll verdrahtet

    Die Leiterplattendesign-Software KiCad leistet trotz einer etwas umständlichen Bedienung auch Hobbybastlern gute Dienste.