Port serie et trame NMEA

Bonjour,

Je vais essayer d'expliquer clairement mon problème (je ne suis ni marin ni informaticien...) :

Je désire cartographier un plan d'eau...

J'ai un GPS qui m'envoie une trame NMEA sur un port série (date, heure, position....). Ce n'est pas un GPS de navigation mais un GPS de topographe en mode RTK (précision de quelques centimètres en coordonnées planes Lambert 93)...J'ai environ une position toutes les 0.2s...

J'ai un sondeur qui envoie aussi une trame NMEA sur un autre port série. Le message est beaucoup plus simple : une information sur la profondeur (pas de date...)

Il faut donc que je puisse associer les trames arrivant sur deux ports séries différents...

Je cherche un logiciel qui me permettrait de :
-lire la trame GPS à intervalle régulier.
-lire immédiatement après la trame provenant du sondeur.
-associer les deux.
-recommmencer.
-ecrire tout ça dans un fichier ASCI.

Merci à tous ceux qui pourront me suggérer quelques pistes...

L'équipage
09 mars 2013
09 mars 2013

Bonjour,

Le problème est à la fois simple et compliqué selon tes compétences : un peu en électronique, un peu plus en programmation C.
- Partir sur une carte Arduino
- Utiliser la librairie TinyGPS qui décode parfaitement toutes les phrases NMEA de type $GP
- Adapter les niveaux NMEA (RS232) vers TTL sinon carte grillée. Un composant Max232 de Maxim et quelques condensateurs, c'est tout. Tu peux réaliser une carte fille (shield) de l'Arduino avec le logiciel Fritzing.
- Utiliser la librairie SoftwareSerial pour créer 2 ports série
- Lire les trames. Tu ne pourras pas les lire en même temps, il y aura obligatoirement un petit décalage mais si tu ne te déplace pas à la vitesse du son l'erreur sera inférieure à celle de l'instrument. Il n'y a pas de librairie mais je peux te passer un exemple que j'ai traité avec mes élèves.
- Valider les checksum. Là aussi je peux te passer un exemple.
- Écrire sur une carte SD intégrée à l'Arduino ou sur le port USB.

à vue de nez il y a 2 jours de boulot pour faire marcher le prototype. Si tu veux faire un truc propre avec boitier, prises DB9 ... compte 2 jours de plus.

Bon travail.

Bernard.

09 mars 2013

Peut on supposer que tes deux flux nmea sont raccordés à ton PC via port série ? Si c'est le cas un petit script en bash ou en perl (ou en ce que tu veux) peut te permettre de le faire. En gros , le plus simple c'est de dater le flux qui ne l'est pas donc lorsque une trame est reçue avant de l'enregistrer on ajoute la date et l'heure. Mais mieux on peut y associer la dernière position reçue du GPS.
Le soucis c'est la lecture bloquante sur un port série, c'est une situation classique dont on connait les solution.
Une alternative, serait viable si on connait la fréquence d'émission des données. Dans ce cas à partir du datage initial on peut calculer le delta .
À condition que la fréquence soit régulière...

09 mars 201309 mars 2013

Après réflexion il y'a chronolog qui fait ça très bien. www.cronolog.org[...]

10 mars 201310 mars 2013

Une solution simple est d'utiliser un multiplexeur en utilisant deux entrées NMEA et une sortie RS232. On récupère les informations sur le PC dans un fichier ASCII grâce à hyperterminal (PC) ou Coolterm (MAC). Les données dans le fichier seront hiérarchisées et identifiables. Le traitement d'un fichier ASCII est relativement simple.
Il y a aussi des multiplexeur spécialisés comme :

brookhouseonline.com[...]ger.htm

10 mars 2013

Bonsoir,
J'ai cru voir sur d'autre forum que tu cherchais aussi du coté VBA et Excel, c'est une bonne piste.
Je pense que le sondeur va envoyer la mesure toutes les secondes, voir 2 fois par seconde.
Ton GPS transmet 5 fois par seconde.
Je synchroniserais l'enregistrement sur la mesure du sondeur.
1) Lecture du sondeur
2) lecture du GPS (avec la date et l'heure à 0.2s près)
3) Enregistrement
4) retour à 1)

Tu peux voir du coté de www.teamsurv.eu[...]/
Qui est exactement sur cette problématique avec les traitements de données.
Y compris avec la marée si ton plan d'eau est maritime.

11 mars 2013

Merci Vents,
J'ai effectivement aussi prospecté vers des sites d'informatique pure...
J'ai trouvé des sous programmes qui sont capables de lire les ports serie et j' étais arrivé au même algorithme que toi...
Merci encore....

12 mars 2013

Bonjour,

Télécharger : BathyDataRecorder

ou le script en Perl bathy_nmea2xyzt.pl :
www.maperl.com[...]t.shtml

Merci du feedback.

--Peio

Green Point Lighthouse, Capetown SA

Phare du monde

  • 4.5 (113)

Green Point Lighthouse, Capetown SA

2022