Connecter un GPS bluetooth à son PDA et lire les données reçues? Pas si compliqué que ça! Nous allons parler ici
sommairement du protocole NMEA ( National Marine Electronics Association ) introduit par la marine et qui est utilisé
par les récepteurs GPS pour transmettre des données via le port série à un ordinateur. Ce protocole de type ASCII (
tous les messages sont envoyés au format texte ) définit un certain nombre de codes ( GPGGA / GPGSA / GPRMC / .. )
qui permettent d'identifier la position actuelle, l'angle et la vitesse de déplacement, le nombre de satellites,.. Les
trames provenant d'un récepteur GPS commencent toujours par les deux lettres GP. ( GPS Receiver )
Un GPS ( bluetooth ou filaire ) dialogue via le protocole de transmission RS232 le standard étant 4800b/s, 8Bits, 1
bit de stop, pas de parité. Cette vitesse limite le nombre de phrases NMEA que le GPS peut transmettre à
530 caractères par seconde ( 4800 / ( 8 + 1 )) soit en moyene 5-6 trames.
Exemple de trame NMEA :
$GPGGA,130442.000,4344.6476,N,00123.5622,E,1,05,9.6,187.5,M,,,,0000*09
$GPGSA,A,3,30,05,07,24,06,,,,,,,,9.6,9.6,1.0*32
$GPRMC,130442.000,A,4344.6476,N,00123.5622,E,0.20,75.15,141107,,*32
$GPVTG,75.15,T,,M,0.20,N,0.4,K*50
Le protocole NMEA est donc constitué de phrases, celles-ci commencent par le caractère $ et se terminent par un retour
chariot ( code ASCII 13 ). Chaque éléments de cette phrase est délimité par une virgule. Le premier élément définit
le type de phrase :
- GPGGA : Position actuelle.
- GPGSA : Information sur la précision.
- GPGSV : Information sur les satellites.
- GPRMC : Trame minimum de positionnement.
- GPVTG : Vitesse / Direction.
- ...
Nous allons dans un premier temps nous intéresser à la trame GPGGA. La trame de l'exemple ci-dessus contient
les informations :
- Temps universel : 130442.000
- Latitude : 4344.6476 N
- Longitude : 00123.5622 E
- Satellites : 05
- Altitude : 187.5 M
L'exemple suivant en VisualBasic .NET permet de créer une application très simple pouvant s'exécuter sur un PDA
permettant de se connecter au port série et extraire quelques données ( Latitude, Longitude, Altitude, Satellites )
dans une structure. Cet exemple peut servir de base pour réaliser des applications plus complexes de positionnement
ou de tracking.
|
|
 |
|
L'ouverture du port série
COM7 ( à vous d'identifier le bon! ) en lecture donne :
..la lecture des données provennant du port série se fait au travers de cette fonction :
..nous allons ensuite stocker les données dans une nouvelle structure que nous allons créer :
..ne reste plus qu'à parser les phrases NMEA reçues et les stocker dans notre structure :
Liens Complémentaires