acquisition des données GPS via arduino

Salut,
Je travaille actuellement sur un petit projet dans lequel je dois recevoir les données du module GPS NEO- 6M avec arduino uno. J'ai suivi plusieurs exemples et j'ai réussi à faire marcher mon gps avec le logiciel u-center et il m'a donné des résultats presque exactes. Mais lorsque j'essaie de le monter avec arduino j'ai rien comme résultats . J'ai appris d'après les exemples qu'il faut convertir les messages envoyés par le GPS sous forme NMEA en mode dans un format lisible. Pour ce faire , il existe des librairies arduino "TinyGPS" et "TinyGPSPlus" , j'ai utilisé les deux exemples fournis avec chaque librairies et j'ai changé le baudrate à celui de mon gps (38400) mais il ne m'affiche que des " * " .
Si quelqu'un parmi vous peut m'aider à résoudre ce problème je serai reconnaissant à lui :slight_smile:

CIMG3066.JPG

Bonjour tapito,

  1. Je ne vois pas très bien comment as-tu testé avec succès ton GPS ?
    "j'ai réussi à faire marcher mon gps avec le logiciel u-center "
    Si c'est sur ta carte UNO, ce n'est donc pas un problème de raccordement !

  2. Sinon, avec Arduino : problème de raccordement ?
    Ce GPS fonctionne en 3,3 V. Comment est-il alimenté ? où est la massse ?
    Ce GPS fournit des données à 9600 b/sec semble-t'il. (en 38900 ?)
    Bien à toi.

tapito:
...
Si quelqu'un parmi vous peut m'aider à résoudre ce problème je serai reconnaissant à lui :slight_smile:

Bonsoir
comment a tu connecté ton receptuer avec le Ucenter, c'est cablé comment ?
le Ucenter est certainement en autobauding , il affiche exactement quoi dans la barre d'etat ?

Bonsoir,
J'ai réussi à tester mon gps en utilisant un Xbee explorer usb, j'ai monté les comme suit :
Vcc gps <-> Vcc usb
Gnd gps<-> Gng usb
RX gps <-> TX usb
TX gps <-> RX usb
et il m'affiche la longitude, la latitude et l'altitude et grâce à Google earth il me donne la position sur map avec ces coordonnées.
Avec u-center, j'ai réussi aussi à changer le baudrate de mon gps à 9600 b/sec car par défaut ces gps ont un baudrate de 38400 b/sec.Vous trouvez ci-joint une image de l'interface de u-center et comment j'ai monté mon gps à l'ordi.
Par contre , d'après les exemples faits avec arduino uno , on n'a pas besoin de ce usb explorer .
@Geryko j'ai vérifié que ce n'est pas un problème de raccordement: monté avec l'arduino le gps clignote ce qui veut dire mon gps marche normalement et reçoit les signaux des satellites . Et j'ai essayé d'inversé les fils RX et TX mais rien ne s'est passé. La masse c'est le fil noir , Vcc fil rouge , RX fil vert , Tx fil jaune.

CIMG3067.JPG

tapito:
Bonsoir,
J'ai réussi à tester mon gps en utilisant un Xbee explorer usb, j'ai monté les comme suit :
Vcc gps <-> Vcc usb
Gnd gps<-> Gng usb
RX gps <-> TX usb
TX gps <-> RX usb
et il m'affiche la longitude, la latitude et l'altitude et grâce à Google earth il me donne la position sur map avec ces coordonnées.
...

OK
charge l'exemple blink sur ton arduino (pour etre sur qu'un programme n'utilise pas le RX/TX)
connecte ton TX GPS (ce qui sort de ton GPS) sur ton TX serial arduino * et lance un moniteur serie (celui de l'IDE est suffisant)
tu devrais avec le bon taux de baud , voir passer des sentences NMEA (qui debutent par $G ) meme sans FIX satellites.

  • il faut raisonner entrée du 16U2

Bonsoir tapito,

Je ne peux pas t'en dire beaucoup plus mais ton projet m'intéresse au vu de l'écran Google Eart Map
Comment veux-tu afficher une telle image avec Arduino ?
Il faudrait un sacré logiciel pour interfacer l'Arduino avec Google.
Sais-tu qu'un GPS ne délivre que des chaines de caractères ?
Du texte tout simple. exemples :
$GPGGA,205024.16,4909.2039,N,00216.7468,E,2,06,2.0,00026,M,,,,20
$GPRMC,155143.14,A,4908.9731,N,00217.8898,E,16.9,286.1,200109,01,W
52
L'afficher, c'est déjà bien mais après ....?

Si la solution existe, j'aimerais bien la tester.

Nota :
Il doit être possible de différencier Em et Réc sur le GPS à l'aide d'une simple DEL (au plus 5/3.3V ou au moins Gnd ?)

Bonsoir Artouste ,
J'ai fait comme t'as dit mais malheureusement il ne m'affiche rien. Je suis sûr que le baudrate convenable est 9600 b/sec car c'est celui ci qui me donne des résultats avec u-center.
J'ai monté le TX du GPS avec le pin 0 de l'arduino uno (RX) mais rien comme résultat :frowning:

tapito:
Bonsoir Artouste ,
J'ai fait comme t'as dit mais malheureusement il ne m'affiche rien. Je suis sûr que le baudrate convenable est 9600 b/sec car c'est celui ci qui me donne des résultats avec u-center.
J'ai monté le TX du GPS avec le pin 0 de l'arduino uno (RX) mais rien comme résultat :frowning:

non avec cette methode c'est
TX sur TX 8)

j'avais fait un complement que tu n'a peut etre pas lu :grin:

Bonsoir Geryko,
C'est u-center qui m'as permis de vérifier ma position à l'aide de google earth . Moi j'ai besoin seulement de savoir : la latitude, longitude et altitude. Le gps n'envoie que des chaînes de caractères comme tu as mentionné et pour cela il y a une librairie TinyGPS qui permet de convertir les chaînes de caractères envoyées par le GPS en données lisibles (latitude , longitude, altitude , temps ) ( voici le lien où je l'ai trouvée TinyGPS | Arduiniana ) . Avec ces données après je peux savoir ma position exacte :slight_smile:

bonjour
Ne pas essayer de continuer un topic en MP , les reponses seront les memes

sur ce MP reçu

tapito:
Bonsoir Artouste,
Qu'est ce que tu veux dire avec " il faut raisonner entrée du 16U2" , j'ai utilisé le pin 1 de l'arduino uno pour lier le TX du gps mais il m'affiche des chaînes non lisible qui ne commencent pas par $G.
Merci beaucoup pour ton aide :slight_smile:

si tu reçois des chaines illisibles avec ton module ublox , possibilites :

  • ton taux de baud n'est pas bon ( tester d'autres taux de baud, attention le moniteur serie de l'IDE fait l'impasse sur le 38400, utiliser un autre moniteur genre terminalbpp )
  • ton module ne sort pas en NMEA mais en UBX

Bonjour tapito,

  • Tu n'as pas un oscilloscope ? Tu pourrais voir si tu as un signal en Rx du GPS. (sans connecter Arduino)
  • ne manquerait'il pas une résistance de pull-up sur le Rx du GPS ? (sortie en collecteur ouvert ?)

Pour Artouste : - ton module ne sort pas en NMEA mais en UBX.
C'est une affirmation ou une interrogation ? (UBX je ne connais pas, je vais me renseigner)

Tapito
Merci pour tes réponses à mes questions personnelles.
J'ai été surpris par la librairie indiquée. Une "usine à gaz" me semble t'il.
Certes, il a des conversions à faire mais les informations recherchées sont contenues dans les trames.
'
Ne suffit t-il pas de les sélectionner dans les trames ? 2 exemples ci-dessous ( sans vérification du checksum)
dans $GPGLL,4909.2039,N,00216.7468,E,205024.164,A32
j'y vois mes coordonnées GPS : 49°09',2039 Nord 2°16',7468 Est 20h50'24'',164 (heure UTC)
dans $GPRMC,205026.17,A,4909.2039,N,00216.7468,E,00.0,000.0,020109,01,W
5E
j'y vois 20h50'26'',17 (heure UTC) 49°09',2039 Nord 2°16',7468 Est Date : 02/01/09

Je ne suis pas contre l'utilisation de la librairie. C'est surement plus performant et plus propre.
cordialement.

geryko:
Pour Artouste : - ton module ne sort pas en NMEA mais en UBX.
C'est une affirmation ou une interrogation ? (UBX je ne connais pas, je vais me renseigner)

bonjour
Ni l'un , ni l'autre :grin:
comme evoqué dans ma reponse , c'est une possibilité =
si le format serial NMEA est le plus courant, ce n'est pas le seul
le format UBX est le format "proprietaire" UBLOX
(tu dispose de plus d'infos)

typiquement , lorsqu'en serial tu recois "de la bouillie" venant d'un "GPS"
c'est quasi toujours du à :

  • un mauvais taux de baud (c'est du NMEA mais pas à la bonne vitesse)
  • une incapacité à lire/comprendre les sentences qui ne sont pas en NMEA (vitesse et protocole)

Bonjour,

UBX : J’ai trouvé un site qui en parle mais il faudrait étudier... (MNEA ou LOCUS ??)

http://www.u-blox.com/en/download/resources-application-notes/gps-application-notes.html

Avec un oscillo. il est même possible d'évaluer la durée d'un bit et donc, de calculer le débit approximatif.

  • de voir la question de pull-up évoquée en avant.

Nota : pour moi il faut dire "débit binaire" en bits/sec en non en Bauds.
Bauds = rapidité de modulation. Ce n'est pas la même chose.
(Pour un débit binaire de 9600 bits/sec on peut avoir 2400 Bauds) L'inverse est plus rare mais ça existe.
(débit 140 Mbits/sec pour 160 MBauds, liaisons avec correction d'erreurs)
Beaucoup de gens et même d'écrits font (sèment) la confusion ?

Bien à vous.
Géryko
J'espère que je ne pollue pas trop le sujet.
Mon objectif est de donner des informations complémentaires pour d'autres lecteurs.

Bonjour,

D'autres pistes :

  1. Le module GPS fournit un signal de polarité inverée ? (l'inverser avec un transistor)
    Même si le protocole n'est pas MNEA, du "texte" devrait s'afficher.

  2. Les bornes 0 Rx et 1 Tx sont à éviter, équipées de résistances pour éviter les conflits, ce qui modifie
    leur sensibilité. (les laisser libres pour la programmation) => Utiliser les bornes 2 et 3 ?
    D'autant qu'à priori, UNO est en 5V et le module GPS en 3,3 V ?

tapito est parti à la pêche ? Non. Il travaille, lui !

Résolu ? comment ? Merci de bien vouloir nous tenir informés.
Géryko