Le club a récupéré un GPS de marque UMA (merci Yad). Il se connecte avec un driver USB/série PL2303 de Prolific. L’idée est déjà d’apprendre à s’en servir en tant que GPS, mais j’aimerais bien percer le mystère de la précision absolue/relative du GPS. En effet, on entend souvent en robotique des personnes dire "effectivement un GPS n’est précis qu’à 10 mètres, mais si vous avez un point fixe alors vous pouvez obtenir 5 centimètres de précision"... C’est surprenant, alors autant vérifier par nous-même.
Premiers pas
Tout d’abord, le driver, au cas où :
On peut recevoir des données sans rien lui envoyer, en s’y connectant avec les paramètres standards : 9600 bauds, 8 bits, 1 bit de stop, pas de parité.
Voici le résultat avec Docklight :
Interprétation
Ces lignes sont au format NMEA utilisé de manière standard par les GPS (même si des formats propriétaires existent, comme Garmin). On peut déduire du premier code de chaque ligne quelle information est donnée. Ici on en a 5 mais la liste des possibles est beaucoup plus complète :
Code | Signification |
---|---|
GPGLL | position Géographique, Latitude et Longitude |
GPVTG | en anglais, "Track Made Good and Ground Speed" |
GPRMC | en anglais, "Recommended minimum specific GPS/TRANSIT data" |
GPGSA | en anglais, "GPS DOP and active satellites " |
GPGGA | en anglais, "Global Positioning System Fix Data" |
Comme vous le devinez, je n’ai compris que le premier code, donc pour l’instant on s’en contentera.
Voici une ligne GPGLL complète :
$GPGLL,2503.4661,N,12334.8333,E,002219.00,V,N*76
Je me précipite sur Google Earth, en pensant que
– 2503.4661,N signifie 25°03,4661’ North
– 12334.8333,E signifie 123°34,8333’ Est
Mais voilà ce que ça donne, l’océan à côté de Taiwan : il s’agit de la dernière position reçue (donc peut-être son lieu de fabrication ?).
D’ailleurs 002219 est l’heure (puisque le GPS donne aussi l’heure) qui signifie donc 00h22’19"
Nouvelle tentative
Il faut donc sortir le GPS pour qu’il reprenne une nouvelle position. C’est ce que nous avons fait en atelier et voici le résultat obtenu :
$GPGLL,4338.5110,N,00700.5274,E,002003.00,V,N*7A
Il faut convertir la dernière partie en secondes (lu en 10 000 èmes) et voici la nouvelle position : +43° 38’ 30.66", +7° 0’ 31.66" ce qui correspond parfaitement au lieu de nos réunions.
Lecture exacte de la trame
Maintenant qu’on a bien ri, on va trouver des explications plus détaillées sur le standard NMEA et on va essayer de comprendre, voire de corriger ou paramétrer notre GPS. Tout d’abord on va utiliser en fait GPRMC, qui représente les données minimales suffisantes.
$GPRMC,002051.00,V,2503.4661,N,12134.8333,E,0.62,0.00,010100,3.2,W,N*33
Il est donc 00h22’19" (en fait chez moi il est 21h et des poussières), les latitude et latitude sont les mêmes que pour le GPGLL, mais on découvre qu’on est le 1er janvier 2000 (010100).
Donc plus de doute, le GPS n’a été allumé qu’il y a 20 minutes et il n’est plus du tout opérationnel. Encore un mystère démystérisé :)
Et la suite sera découverte par un des membres du club pendant une de nos réunions.. pourquoi pas vous ? rejoignez-nous !