RÉCEPTEUR GPS

 

 

 

     Loin de rivaliser les GPS commerciaux, ce petit récepteur a le mérite d'être original et de dévoiler le mystère des trames NMEA.

     La démodulation de la cacophonie générée par tous ces satellites émettant en même temps sur la même fréquence (1575 MHz) sera réservée à un module du commerce. Notre choix s'est porté vers un circuit trouvé sur eBay à un prix défiant toute concurrence de 11,00 euros port compris! Sa référence est RYG25DI option RS232 de chez REYAX. Il s'agit d'un petit circuit imprimé portant sur la partie supérieure l'antenne proprement dite et à l'envers le récepteur et conformateur de signal U-Blox. Le tout faisant 32x26x8 mm avec deux LEDs dont une rouge qui ne clignote à 1 Hz que lorsque les signaux reçus sont valides (2D puis 3Dfix).

         

     Une petite batterie de sauvegarde permet de garder pendant au moins 7 jours les données précédentes de positionnement des satellites et donc d'accélérer leur localisation à la mise en route.
     Sa consommation est d'une cinquantaine de mA ce qui convient très bien à une utilisation autonome sur batterie.
     Grâce à un logiciel disponible gratuitement sur le site du fabricant, il est possible de changer la vitesse de transmission des données sur le port série. Par défaut il est livré en 9600 bauds, vitesse que nous allons conserver.

     Il reste maintenant à décoder les trames NMEA et en extraire les informations essentielles grâce à un microcontrôleur pour les afficher sur un LCD de deux lignes de 16 caractères avec rétro éclairage.

     Pour faire bref, on trouve dans les trames NMEA le résultat du calcul des différents paramètres de triangulation effectué en fonction de la position et du temps de réception des différents satellites de la constellation.
     Ces trames sont transmises comme du texte via une liaison RS232 classique et commencent toutes par $G ($P sont des trames "propriétaires") et sont suivies par quatre lettres caractéristiques de la nature des données produites.
     Nous n'utiliserons que deux de ces trames (GGA & RMC) pour afficher heure, date, coordonnées géographiques, etc.

     SCHÉMA :

     Etude du schéma :

     Le PIC utilisé est le même que celui du PICLAB décrit par ailleurs sur ce site. Un connecteur pour la programmation ICSP est disponible sur la carte. Nous avons pris soin de ne pas utiliser les ports RB6 et RB7 à autre chose qu'à cette fonction. Le MCLR doit être équipé d'une diode pour éviter toute interférence.

     Alimentation : Désirant avoir un appareil autonome, l'alimentation par batterie rechargeable s'imposait.
     Pour alimenter ces circuits en 5 Volts, il aurait fallu utiliser un nombre conséquent d'éléments Ni-MH.
     La solution retenue est une source en 3 Volts (groupement de 4 éléments en série-parallèle) et un convertisseur transformant la tension en 5 Volts. Cette fonction est dévolue à un circuit spécialisé LT1300 dont le schéma est tiré directement de la fiche technique. Celui-ci fournit du 5 Volts même si la tension d'entrée descend à 1,8 Volts, ce qui permet de tirer le maximum des batteries.
     Le circuit imprimé a été prévu pour un LT1300 en boîtier DIP 8 broches mais le fournisseur habituel ne les avaient qu'en CMS. Un adaptateur "maison" se charge de la conversion.
     La charge de la batterie est confiée à un LM317 monté en limiteur de courant grâce à la résistance de 10 ohms. La tension de sortie à vide sera réglée un peu au-dessus de la tension de charge maximum des batteries (4 éléments en deux groupes en parallèle) de façon à garder un léger courant résiduel en fin de charge.
     La tension de la batterie est affichée dans une des pages pour avoir une idée de l'autonomie restante.

     L'afficheur est un classique 2x16 que l'on trouve sur eBay aux environs de 3 euros franco de port. A noter aussi que les PIC se trouvent par cette même source à près de 50% du prix pratiqué par les distributeurs habituels.
     La cathode du "Back Light" est mise à la masse par un transistor à effet de champ commandé par une sortie du PIC. Cela constitue un moyen original et peu coûteux de signaler l'obtention de données valides. La résistance R8 de 1500 ohms permet un léger éclairage du BL avant l'obtention du Fix.

     Le signal NMEA en RS232 est mis au niveau TTL par un simple FET.

     Le bouton poussoir sert à scruter les quatre pages par appuis successifs.     

     

     RÉALISATION :

     Désirant avoir un GPS autonome, nous avons inclus dans un boîtier aluminium "fait maison", le module GPS, la carte de décodage et d'affichage, les batteries Ni-MH et leur chargeur. Sur la face arrière, un connecteur DIN 4 broches est utilisé pour la recharge des batteries et la communication série RS232 vers un ordinateur.

     Quatre circuits imprimés composent ce montage (vue côté composants, cuivre par transparence) :

     - Le circuit de décodage soutenant le LCD. Pour des raisons d'encombrement, quelques CMS 1206 ont été utilisés mais restent faciles à souder.
       Le bouton poussoir est soudé côté cuivre et une rallonge faite sur mesure permet de l'actionner depuis la face avant.


(Photo de l'ancienne version sans circuit d'entrée à BS170)

     
     - Le support des batteries rechargeables et le circuit de recharge des batteries faisant office également de maintien de celles-ci avec une mousse prise en sandwich.

   


     - Le module GPS.
 

     PROGRAMMATION DU PIC:

        La première opération est d'attendre l'obtention de trames valides. Elles le seront lorsque dans la trame $GPRMC apparaît un A à la place du V.
      A ce moment-là le LCD va s'éclairer au maximum et les indications de position vont apparaître sur celui-ci. Il suffira ensuite de parcourir les différentes pages d'affichage par pression successives sur le bouton poussoir.

      Quand le "3Dfix" est confirmé, le programme lit la trame concernée, caractère par caractère en les plaçant dans une chaîne. Cette chaîne est ensuite analysée pour déterminer par leur position dans celle-ci, les données à afficher. Cette méthode n'est valable que pour un récepteur GPS donné. En effet, un décalage peut se produire si, par exemple, les coordonnées ont 4 ou 5 décimales ou bien les secondes sont avec ou sans les dixièmes ou les centièmes. Pour s'affranchir de cette contrainte, il faudrait compter le nombre de virgules pour déterminer l'emplacement des données.
     

     Voici les photos d'écran au démarrage du GPS :

       

     Note : Pendant l'affichage "Trames invalides", en appuyant sur le bouton poussoir on peut lire la tension de la batterie

     Et les pages qui défilent par appui sur le bouton poussoir :

        

     NOTE IMPORTANTE : Le programme est compatible avec les trames du module RYG25DI de chez REYAX décrit ci-dessus.
Une tentative de décodage avec un récepteur d'une autre marque pourrait donner des résultats imprévisibles.

     Le fichier HEX pour programmer le PIC (reyax_v3):

 

 

 

RETOUR ACCUEIL