Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 40

Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

  1. #1
    lubigno

    Question Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Bonjour a tous,
    Je voudrais me fabriquer un petit montage qui me permettrait de récupérer quelques trames d’un GPS USB (les plus importantes) vers un microcontrôleur (un pic), pour ensuite afficher les coordonnées du GPS sur un écran LCD!

    Mais mon problème est le suivant :
    Je ne connais pas vraiment la procédure à respecter pour extraire ces trames du GPS.

    ps : je suis nul en informatique


    Voila, j’espère que vous pourrais me venir en aide .

    Merci a tous !

    -----


  2. Publicité
  3. #2
    Invité

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Hello,

    les interfaces USB sont destinées à être raccordées sur un ordinateur, pour interfacer avec un pic il faut vérifier la disponibilité d'une interface série, RS232, I²C, SPI... sur le module GPS

    A+,

    Bruno

  4. #3
    lou_ibmix_xi

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Salut.
    En USB, c'est bizarre car il me semble que normalement, NMEA definit a la fois le format des trames et l'interface RS232... Pour passer de l'usb en rs232 il existe des adaptateurs mais il faut un driver (donc du logiciel pas simple pour un pic a prioris). En ce qu'il concerne le format des trames echangees avec le GPS, donne moi ton @ email et je peux t'envoyer un doc avec les plus courantes (ou dans un clien P2P tu recherches NMEA). La norme officielle est payante (quelques milliers de $ si je me rappelle bien).
    A plus

  5. #4
    umfred

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    En ce qui concerne le protocole NMEA, tu peux regarder, par exemple, cette page ou celle-ci qui décrivent quelques unes des commandes possibles.

  6. #5
    lubigno

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Voici mon adresse lou_ibmix_xi : ############# pas d'adresse email svp (voir la charte)
    Merci pour tes sites umfred


    Donc d’après se que j’ai pu comprendre un GPS avec une liaison RS232 aller être plus simple pour mon application donc je me suis retranché vers se model de GPS : http://www.mobitoo.com/shopexd.asp?catalogid=681
    au lieu d’un comme celui là : http://www.pearl.fr/article-PE5011.html

    Donc si quelqu’un peut brièvement m’expliquer comment extraire les trames du GPS par une liaison RS232, cela pourrait m’aider

    Merci d’avoir répondu rapidement !
    Dernière modification par Jack ; 15/09/2006 à 14h45.

  7. #6
    lou_ibmix_xi

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Il y a deux aspect, l'aspect RS232 ou je ne pourrais pas te dire grand car je ne connais pas les PIC, mais si il a une UART, c'est bon, il suffira certainement de le brancher au travers d'un MAX233 pour convertir les niveaux electriques.
    Apres tu configure ton GPS dans le mode que tu veux en lui envoyant une trame de commande, il te reponds (ou pas cela peut dependre de la trame de commande et/ou du GPS), puis il crache une trame par seconde contenant les infos pour lequel tu l'a configure (latitude/longitude, heure, niveau de signal...)

  8. #7
    lubigno

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Merci pour ces précisions lou_ibmix_xi.

    Mais j’ai encore une petite question : Si au début on ne lui en voie pas la trame de commande, le GPS va-t-il émette des trames ?
    (Cela est peut être aléatoire )

  9. #8
    lubigno

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Slut
    Si quelqu'un a autre proposition à me faire qui me fasse signe

    Merci

  10. #9
    nanard

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    bonjour tout le monde

    J'ai réalisé un projet similaire il y a 3 ou 4 ans mais je possèdais un recepteur gps RS232 (se qui est logique car cela fait partie de la norme NMEA comme dit plus haut). Pour ton récepteur USB tu dois avoir un soft que tu instales sur ton PC, je sais qu'il existe des µcontroleur PIC qui possède le protocole USB, il suffit donc de brancher ton recepteur au PIC puis je suppose qu'il va falloir créer un programme pour remplacer le soft et le mettre dans le PIC.

    Pour récupérer les trames GPS qui t'intéresse c'est simple toutes les trames commence par:
    #GP...
    A la place des ... il y a 3 lettres qui corresponde à un type de donnée les plus utilisée les trames GGA, RMC, et 2 ou 3d'autres que je me rappelle pas.
    voilà @+

  11. #10
    lubigno

    Question Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Salut, merci Nanard pour tes renseignements.

    Est-ce que le port PS2 est bien le port RS232, mais sous une autre forme?

  12. #11
    manouchka

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    lubigno, je suis dans le même cas que toi, alors si t'en trouves une solution merci de le partager

    Et si jamais t'arives à le faire fais moi signe, STP

  13. #12
    nordin59

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Salut a tous, j'ai une micro puce de gps et je souhaiterais récuperer les données gga en créant un petit programme!!! donc si quelqu'un pourrait me guider ce serait cool!!!

    a+
    Ps: je sais qu'il y des logiciels mais moi je veux un petit programmen en basic!!!

  14. #13
    julienopen60

    Cool Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    bonjours,
    je souhet moi aussi recuperé des trame nmea via le port RS232 d'un micro controleur.
    je sait commant les decodé les trame.
    mais je ne sait pas commant on fais l'accisition de ces trames.
    si quelqu'un peu m'aidée?
    merci d'avance

  15. #14
    marmotte

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Pour recuperer les trames NMEA d un recepteur GPS avec un microcontroleur, rien de plus simple, suffit qu'il soit equipé d'un USART, ou EUSART ou AUSART, ensuite il s'agit que d'une simple connexion serie asynchrone (Start bit + data 8bits + 1 stop bit).

    Le recepteur GPS transmet une fois par seconde (dans 99% des cas) plusieurs trames (en general GGA, GSA, GSV (x fois selon le nombre de sats en vue), GLL, RMC, VTG, ZDA). Le debit est en general 4800 ou 9600 bauds.


    Une fois le GPS branché sur le microcontroleur (voir si je recepteur est équipé d'un driver rs232, type max232, dans ce cas, en ajouter un entre le µC et le GPS, si le GPS fournit direct des signaux TTL, pas besoin de driver de ligne), il suffit d'activer la reception des octets (sous IT ou non), puis de conserver les trames/champs de données qui vous interresse, mais en general la trame GGA seule suffit puisqu'elle donne:
    - heure/minute/seconde (UTC)
    - Latitude
    - Longitude
    - Nombre de satellite utilisés
    - precision HDOP
    - Altitude

  16. #15
    nanard

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    bonjour

    Une personne m'a déjà demandé de l'aide pour réalisé un projet récupérent les trames gps je ne sais pas s'il souhaite continuer il ne me répond pas mais bon passont.

    Je vais corriger une chose, les tensions ("données") sortant d'un recepteur gps ne sont pas en 0 5V comme le TTL mais en 0 3V pour la convertion il faut utiliser un max3232 (qui transforme le 5V en 3V et vis versa).

    Une personne vient de me contacter en MP pour me demander de l'aide, je veux bien donner un coup de main mais seulement si c'est sur le forum (sauf si c'est un travail qu'il souhaite comercialiser ou une chose de se type) car c'est un gros travail pour une seule personne.

    julienopen60 tu dis que tu sais comment décoder les trames mais tu ne sais pas comment on fais l'acquisition de ces trames. Par là tu veux dire que tu sais ce qu'il y a à l'intérieur mais tu n'arrive pas à les lire sur ton µC? quelle trames veux tu utiliser?
    @+

  17. #16
    julienopen60

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Je souhette récupérer des trame NMEA qui provient de capteur anémo-girouette et de gite d'un bateau pour en suite fair un petit pilote automatique.ces trame sont: $IIMWV (trame de vent apparent), $IIXDR (gite du bateau)

  18. #17
    marmotte

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Citation Envoyé par nanard Voir le message
    Je vais corriger une chose, les tensions ("données") sortant d'un recepteur gps ne sont pas en 0 5V comme le TTL mais en 0 3V pour la convertion il faut utiliser un max3232 (qui transforme le 5V en 3V et vis versa).
    Je vais corriger 2 choses:

    Quand je dis TTL c'est pas forcement 0-5V, ca peut etre 0-3V 0-3.3V 0-3.6V etc... c'est "type" TTL Et quelle est la regle qui dit qu'un recepteur GPS fournit de 0 - 3V? Tout depend de sa tension d'alim, il peut tres bien fournir egalement du 0-3.3, 0-3.6, 0-5v, etc...

    L'ajout d'un max3232 n'est egalement pas obligatoire, puisque il se peut que les pins des microcontroleurs puissent interpreter un signal comme un niveau haut si celui ci est superieur a 2V, 2.5V, etc... Tout depend de la tolerance des entrées du circuit en question. De plus si ton µC est alimenté en 0-3.3 ou 0-3.6V, quel est l'interet de mettre un max si le recepteur GPS fournit egalement du 0-3.3 ou 0-3.6V ?

  19. #18
    nanard

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    julienopen60 avec quel language programmes tu ton µC? Je programme en C, pour récupérer les trames j'utilise l'instruction "switch case" qui me permet de récupérer se que je veux dans la trame et de la transformer comme je veux pour son utilisation.
    Je pense que tu peux aussi utiliser un tableau et tu va chercher l'info que tu souhaites dans le tableau.
    Ces deux méthode suppose que tu connais la composition exacte de la trame.
    @+

  20. #19
    julienopen60

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Explication des trames :
    => $IIXDR,A,-1.3,D,Heel Angle*0F
    $ : Début de trame
    IIXDR : identifiant de la trame
    -1.3 : correspond à l’angle de gite
    *0F : détection d’erreur (cette valeur est égale à un XOR de la valeur de chaque caractères en ASCII avant l’étoile)

    =>$IIMWV,055.0,R,020.0,N,A*3F
    $ : Début de trame
    IIMWV : identifiant de la trame
    055.0 : correspond à l’angle du vent apparent
    020.0 : correspond à la vitesse du vent apparent
    *0F : détection d’erreur (cette valeur est égale à un XOR de la valeur de chaque caractères en ASCII avant l’étoile)

    J’utilise une carte de développement « KitCON-161 » avec un µC « C1610 ». Je programme en C sur le logiciel « Kiel µVision3 ».


    Cordialement,
    Julien

  21. #20
    julienopen60

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    J'ai repris un programme sur le net que j'ai adapté. mais il utilise un fichier (MAXSIZE 256) qui provien d'un GPS que je ne peu utiliser dans mon cas. mais je ne sui pas tres bon en prog.

    voici mon sous programme de lecture de trame:

    /****************************** ***
    * lecture_gite *
    * (C) Guédet Julien *
    * Version 2.2 Date 23/05/07 *
    ****************************** ***/
    #include <stdio.h> // pour le FILE
    #include <string.h> // strstr
    #include <memory.h> // Pour les memcpy entre autres
    #include <stdlib.h> // Pour les conversions

    #define MAXSIZE 256
    /****************************** ****************************** *******************
    * On determine quel est la gite du bateau
    ****************************** ****************************** ******************/

    #include <reg167.h> // pour P2, DP2, ODP2
    void decode_IIXDR(char *stringRead);//on signale le sous programme decoce_IIXDR
    /* void main (void) ------------- FONCTION PRINCIPALE ------------------------
    |
    | On initialise les différentes variables
    |
    -----------------------------------------------------------------------------*/

    int lecture_gite(void)
    {
    int gite; //déclaration de la variable gite
    gite = 0; //on intialise la gite à zéro
    {
    char stringRead[MAXSIZE]; // buffer pour recevoir les trames

    FILE *gpsFile; // Handle de fichier

    gpsFile = fopen("Log.TXT","r"); // Ouverture du ficher
    if(gpsFile == NULL)
    {
    return -1;
    }
    while(fgets(stringRead,MAXSIZE ,gpsFile) !=NULL) // Lecture d'une trame ccomplète
    {

    if(memcmp(stringRead,"$IIXDR", 6)==0) // Est-ce une XDR ?
    {
    gite=decode_IIXDR(stringRead);
    }

    }
    fclose(gpsFile); // Fermeture du fichier
    }
    return (gite); //on retourne la valeur de gite (argument) au programme principal

    }


    /* ****************************** *****************
    * Decodage de la trame IIXDR (angle de gite) *
    ****************************** *****************/
    void decode_IIXDR (char *stringRead)
    {
    char *debut, *med, *fin, tmpbuff[32];
    int l;
    double A_gite;
    memset(tmpbuff,0x00,32); // Initialisation de tmpbuff à 0x00h
    debut = strstr(stringRead,",")+1; // On cherche la première occurence de ","
    for (l=0;l=1;l++)
    debut = strstr(debut,",")+1; // On cherche le champ gite
    fin = strstr(debut,","); // On cherche de derrnier ","
    l = fin-debut; // On calcule le nombre octets
    memcpy(tmpbuff,debut,l); // On les récupère
    A_gite = atof(tmpbuff);
    return (A_gite);
    }

  22. #21
    julienopen60

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    j'ai besoin d'aide!!! y a t'il quelqu'un pour m'en donnée?

  23. #22
    nanard

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    bonjour julienopen60

    En regardant ton post je vois que tu veux utiliser le language C pour programmer ton µC (quel µC vas tu utiliser?). Quel est ton niveau en programmation? que connais tu?

    Pour le prog que tu as poster je peux pas tros d'aider car je ne programme pas comme çà mais si j'ai compris ton prog il récupère les données venant de ton appareil puis il les enregistre dans un fichier log.txt, est ce sa?
    @+

  24. #23
    julienopen60

    Wink Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    J’utilise une carte de développement « KitCON-161 » avec un µC « C1610 ». Je programme en C sur le logiciel « Kiel µVision3 ».
    je n'est pas un très bon niveau mais j'ai quand meme deja réalisé quelque prog.
    Pour se qui concerne le prog que j'ai posté. c'est bien ça il récupère les données venant de ton appareil puis il les enregistre dans un fichier log.txt. mais c'est un prog que j'ai adapter et justement je veut suprimer ca. mon but est de récuperé les trames diréctement sur le µc.
    merci de ton aide
    julien

  25. #24
    nanard

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    pour la récupération de tes trames je pense que que le plus simple est d'utiliser l'instruction switch case:

    trame = 0;
    switch (trame)
    {
    case 0: if (buffer = x) {trame++;}
    case 1: if (buffer = d) {trame++;}
    case 2: if (buffer = r) {trame++;}
    case 3: if (buffer = ,) {trame++;}
    case 4: lettre = buffer; trame++;
    .
    .
    .
    .
    }

    ensuite tu traite tes données comme tu veux.
    @+

  26. #25
    julienopen60

    Question Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Je te remercie nanard de ton aide.
    mais je ne comprent pas bien la fonction switch (case);
    peu tu m'expliquée sont fonctionnemant?

    voila se que je comprend.

    trame = 0;//on met trame à 0
    switch (trame)//on srute trame
    {
    case 0: if (buffer = x) {trame++;} // on est dans le cas 0 si le caracter est x on regarde la trame suivente
    case 1: if (buffer = d) {trame++;}// on est dans le cas 1 si le caracter est d on regarde la trame suivente

    case 2: if (buffer = r) {trame++;}// on est dans le cas 2 si e caracter est r on regarde la trame suivente

    case 3: if (buffer = ,) {trame++;}// on est dans le cas 3 le caracter est , on regarde la trame suivente

    case 4: lettre = buffer; trame++;

    }

  27. #26
    mastronic

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Bonsoir,

    Vous parlez d'un sujet tres interressant .. mais avec quelle modul GPS abordable peut obtenir ces signaux ?

    D'avance MErci

  28. #27
    nanard

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    bonsoir

    mastronic on ne veux pas récupérer les données d'un gps mais d'un appareil qui permet de mesurer la gite d'un bateau et la vitesse/direction du vent.
    Le principe pour récupérer les trames d'un gps est le même.

    trame = 0;//on met trame à 0
    switch (trame)//trame est une variable de l'instruction switch
    {
    case 0: if (buffer = x) {trame++;} // si trame est à 0, on est dans le cas 0 si le caracter est x on incrémente trame
    case 1: if (buffer = d) {trame++;}// si trame est à 1, on est dans le cas 1 si le caracter est d on incrémente trame
    case 2: if (buffer = r) {trame++;}// si trame est à 2, on est dans le cas 2 si le caracter est r on incrémente trame
    case 3: if (buffer = ,) {trame++;}// si trame est à 3, on est dans le cas 3 si le caracter est x on incrémente trame
    case 4: lettre = buffer; trame++;
    .
    .
    .
    }

    Si tu veux apprendre le language C il y a un livre très pratique:
    Le livre du C premier langage de claude delannoy des éditions eyrolles

    J'espère t'avoir aidé @+

  29. #28
    julienopen60

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    ok c'est exelent.
    si je comprend bien il faut un case pour toutes les lettres de l'afabé et touts les chiffres. mais je me demande comment le micro comprent les caractéres? faut il que je dise au micro scruté l'etas d'une entrée que j'appel trame?

  30. #29
    nanard

    Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    oui il faut un case pour chaque caractère. Le micro comprend très bien les caratères sauf que se n'est pas une lettre ou un chiffre qui est envoyé mais une suite de bites. Je suppose que tes trames sont envoyés de ton appareil par un protocole (je suppose en rs232) le micro les stocks dans sa mémoire et toi tu viens les chercher.
    @+

  31. #30
    julienopen60

    Thumbs up Re : Comment récupérer des trames (nmea) d’un GPS avec un pic? help !

    Ok, c'est se que j'ai fais mais il faut que j'arrive socker les infon du bus rs232 dans la memoire pour aller les recherchés.
    mercie bien du coups de main.

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Pic et GPS TF30 (ou UV40)
    Par LouR56 dans le forum Électronique
    Réponses: 2
    Dernier message: 26/03/2008, 20h16
  2. Réponses: 66
    Dernier message: 27/06/2007, 14h20
  3. Comment fait on pour récupérer des dossiers effacés ?
    Par Garcimore dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 25/04/2007, 13h03
  4. Comment récupérer le fuseau horraire avec CVI
    Par loicmarsault dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 10/11/2006, 00h44
  5. Protocol nmea 0183 v2.2 (GPS)
    Par hardtrax dans le forum Électronique
    Réponses: 2
    Dernier message: 31/10/2004, 16h08