Positionner les avions de ligne

10/2017 : avec un dongle rtl-sdr, la réception des données transmises par les transpondeurs des avions de ligne est à la porte de tous. En effet, ceux ci émettent en permanence leurs positions, vitesse, cap, altitude via le protocole ADS-B sur la fréquence 1090 MHz.

C'est avec ce principe que les sites tels que flightradar24 positionnent les avions en temsp réel sur une carte interactive.

Plusieurs articles décrivent différents modes d'installation comme sur sur le site de framboise314 ou ici.

rtl-sdr + antenne

J'ai testé plusieurs logiciels et ma préférence va pour adsb-receiver. Il offre à la fois une carte avec la position des avions reçu dessus mais également des métriques sur la qualité de réception au cours du temps, le nombre d'avions reçus ainsi que la distance max etc… De plus, il enregistre dans une base hsqldb tous les avions vus afin d'en proposer une visualisation à posteriori. Cet dump1090-mutability

Installation

Installation des dépendances nécessaires :

sudo apt-get install git cmake build-essential

Récupération des sources :

git clone https://github.com/jprochazka/adsb-receiver.git

L'installation s'effectue par l'intermediaire d'un script qui déroule toute les étapes d'installation/configuration des autres composants :

cd adsb-receiver/ && sudo ./install.sh

Une fois terminé, ouvrir un naviguateur et aller à l'adresse http://<ip du pi>, une carte s'affiche avec les premiers avions reçus !

Customisation

Par défaut, 3 cercles concentriques sont dessinés autour du point central de réception à des distances de 100, 150 et 200 km. Pour changer ces distances, editer le fichier /usr/share/dump1090-mutability/html/config.js en changeant les valeurs du tableau SiteCirclesDistances.

/usr/share/dump1090-mutability/html/config.js
SiteCirclesDistances = new Array(50,100,150);

Tour d'horizon

La page principale de l'application affiche une carte OpenStreetMap avec la position des avions. La liste des avions captés est affichée sur la droite de l'écran sous forme de tableau avec notamment l'ICAO (équivalent de l'adresse mac des cartes réseau), le numéro de vol, altitude, vitesses etc…

Carte avec les avions

De nombreuses métriques sont collectées dans une base RRD telles que :

  • Nombre de messages reçus par secondes
  • Nombre d'avions détectés
  • Force du signal
  • Distance maximale des avions détectés
  • CPU / Ram / utilisation de l'eth0

Différentes échelles de temps de visualisation sont disponibles : heure / 6 heures / jour / semaine / mois / année. Très utile pour faire des comparaisons.

Métriques collectées

Les trajectoires des avions sont également stockées dans une base hsqldb pour les retrouver par numéro de vol :

Affichage des trajectoires enregistrées

Doublet demi onde

L'antenne TNT fournit avec la clé USB mesure 12 cm environ et offre une portée de 70 km environ. Pour quelques euros, il est possible de fabriquer une antenne dont la portée de réception passe à 150 km (!!).

La qualité d'une antenne dépend de sa taille et de sa forme, La littérature autour des antennes est très riche : la forme, la taille influent sur la qualité de réception. La dimension d'une antenne peut se calculer en fonction de la longueur d'onde notée $\lambda$.

Cette dernière s'exprime très simplement : $\lambda=\frac {c}{f}$

  • $c$ est la vitesse de la lumière dans le vide;
  • $f$ est la fréquence de l'onde.

Ici, $f = 1 090 000\,kHz$ et $c = 299 792\,km/s$ ce qui donne $\lambda = 0,275\,m$. La taille doit être un multiple de cette valeur.

J'ai choisi de fabriquer une variante de l'antenne "doublet demi onde" :

  • l'alimentation de l'antenne s'effectue par le milieu
  • la longueur totale est $\lambda / 2$, chaque brin mesure donc la moitiée, soit 68 mm
  • 4 fils composent le plan de sol, ils sont répartis suivant les diagonales d'un carré et sont inclinés de 45°.

Voici une coupe de l'antenne : Coupe de l'antenne

J'ai utilisé du fil de cuivres dont la section est de de 2.5 mm2 (fils électriques des prises de courant d'une maison) soudés sur un support de cable d'antenne.

Fils soudés sur le support d'antenne

J'ai ensuite soudé un fil d'antenne avec un connecteur MCX pour relier l'ensemble à la clé USB de réception radio.

Connecteur MCX

L'ensemble monté tient naturellement debout. Le cable d'antenne est le plus court possible pour réduire les interférences.

Raspberry Pi avec son antenne

Comparaison

J'ai mesuré l'influence de la taille de l'antenne sur la qualité de réception en comparant 3 antennes :

  • antenne TNT fournit avec la clé USB; elle mesure 12 cm
  • même antenne TNT que précédement coupée à 6,8 cm
  • antenne doublet demi onde décrite juste au dessus

Chaque antenne est branchée une journée, la mesure totale s'étale donc sur 3 jours : la journée du 3 novembre la grande antenne est utilisée, le 4, la petite antenne, le 5, l'antenne doublet demi onde.

Ci dessous, le graphique montre le nombre d'avions détéctés : j'ai été surpris de constaté qu'avec une antenne dont les dimensions ne sont pas en adéquation avec la longueur d'onde, la réception est mauvaise par rapport à la plus petite. Avec l'antenne faite maison, la réception est sensiblement meilleure

Nombre d'avions détéctés

Le constat précédent se retrouve également sur la portée maximale : 65 km avec la grande, 80 km avec la petite, 110 km avec la doublet demi onde.

Portée maximale

Au final l'antenne quadripod est la meilleure, cela me conforte dans l'effort de fabrication ! 8-)