Construire son traceur GPS
Il est aisé aujourd’hui de construire un système de suivi GPS pour des applications mobiles adaptable à son besoin. En fait il est plus juste de parler de traceur GNSS ( Global Navigation Satellite System) , terme qui englobe les 4 systèmes de localisation ou constellations de satellites :
- le GPS historique d’origine US
- Galileo développé par l’Europe
- Glonass développé par la Russie
- Beidou développé par la Chine
Le récepteur GPS ou GNSS
On trouve des récepteurs montés sur circuit imprimé permettant de s’interfacer facilement en USB ou par un port série TTL. Ils sont à base du chip NEO-M8. Prendre de préférence le M8 et non le M6 ou M7 car il permet de travailler sur 3 constellations de satellites simultanément. Au dos lorsque la LED rouge clignote toutes les secondes cela mentionne que l’acquisition des satellites est faite. À la première mise en route cela peut prendre du temps. Par la suite les paramètres des satellites étant sauvegardés, cela sera plus rapide.
L’antenne externe
Si la platine du récepteur est masqué par un bâtiment ou une enveloppe métallique, on peut utiliser une antenne extérieure avec son préamplificateur qui est alimenté directement par le coaxial relié au connecteur SMA.
L’ensemble récepteur et antenne externe s’achète pour moins de 10€ chez Aliexpress. Prenez l’expédition standard Aliexpress et vous recevrez votre colis sous 10 à 15 jours.
Lecture des données
Le plus simple est de se connecter via le micro-USB à un PC ou un micro-ordinateur comme un Raspberry-Pi ou un Orange-Pi. On peut utiliser l’interface série en se connectant sur un UART. Attention à bien choisir la tension d’alimentation 3.3v ou 5v suivant l’UART choisi. Pour lire le contenu envoyé chaque seconde par le récepteur, il faut un logiciel « moniteur série » comme Putty pour Windows ou Minicom pour Linux.
Se connecter à 9600bauds, 8 bit, 1 stop bit sur le bon port de COM.
Si vous avez un logiciel comme Arduino, utilisez le moniteur inclu.
Sur les 5 pins de sortie se trouve la sortie notée PPS (Pulse Per Second). Elle fournit 1 front montant toutes les secondes très précisement. Elle peut être utilisée pour faire un comptage du temps écoulé avec la précision des horloges du GNSS.
Données NMEA
Les données fournies sont au format NMEA0183 bien connu des marins. Chaque seconde le récepteur envoi de nombreuses informations comme :
$GNRMC,145341.00,A,4338.87446,N,00707.82656,E,0.030,,040621,,,D*65 $GNVTG,,T,,M,0.030,N,0.056,K,D*38 $GNGGA,145341.00,4338.87446,N,00707.82656,E,2,11,0.81,3.9,M,47.3,M,,0000*4E $GNGSA,A,3,23,01,27,21,32,22,10,16,,,,,1.56,0.81,1.34*10 $GNGSA,A,3,426,420,419,,,,,,,,,,1.56,0.81,1.34*2B $GPGSV,4,1,13,01,24,271,41,03,00,216,,08,77,302,09,10,47,054,27*78 $GPGSV,4,2,13,14,04,330,,16,16,184,26,21,48,284,36,22,26,216,27*75 $GPGSV,4,3,13,23,14,045,23,27,64,131,20,32,26,113,16,36,34,147,*7F $GPGSV,4,4,13,49,40,183,*48 $GBGSV,3,1,12,402,02,098,,405,20,118,,406,15,054,,409,17,080,*60 $GBGSV,3,2,12,416,17,059,,419,43,171,18,420,56,085,25,422,00,200,*6C $GBGSV,3,3,12,424,07,318,27,426,11,273,26,429,68,091,08,430,15,111,*63 $GNGLL,4338.87446,N,00707.82656,E,145341.00,A,D*7E
Chaque message commence par un $ suivi de 5 lettres puis une suite de chiffres ou caractères séparés par des virgules.
Les deux premiers caractères après le signe $ identifient l’origine du signal (la constellation de satellites). Les principaux préfixes sont :
- BD ou GB – Beidou ;
- GA – Galileo ;
- GP – GPS ;
- GL – GLONASS.
Le préfixe GN est utilisé dans le cas de signaux mixés GPS + GLONASS.
$GNRMC : type de trame 145341.00 : heure UTC exprimée en hhmmss.sss A : état A=données valides, V=données invalides 4338.87446 : Latitude exprimée en ddmm.mmmm : 43° 38.87446 mn N : indicateur de latitude N=nord, S=sud 00707.82656 : Longitude exprimée en dddmm.mmmm : E : indicateur de longitude E=est, W=ouest 0.3 : vitesse sur le fond en nœuds 0 : route sur le fond en degrés 040621 : date exprimée en qqmmaa : 4 Juin 2021 , : déclinaison magnétique en degrés (souvent vide pour un GPS) , : sens de la déclinaison E=est, W=ouest (souvent vide pour un GPS) A : mode de positionnement A=autonome, D=DGPS, E=DR *53 : somme de contrôle de parité au format hexadécimal3
Pour le détail de tous les messages reçu, allez sur le site U-Blox (société Suisse)
https://www.u-blox.com/en/docs/UBX-13003221
L’analyse des messages est facile dans un micro-ordinateur pour avoir une solution de localisation adaptée à son besoin.
Il n’y a plus qu’à construire la référence 40 mhz pour le Pluto, verouillé sur le signal 1PPS.
73’s
F1FHK
C’est en cours. Le proto d’une référence 40 MHz commence à fonctionner. Ici, c’est le premier article d’introduction au sujet.