Analyse des données (trames NMEA 0183)

Bonjour,

J'ai un capteur DST800 de chez airmar documentation technique :
http://www.airmartechnology.com/uploads/brochures/dst800.pdf

Je voudrais avoir la vitesse du courant d'une rivière.

Sauf que je sais pas comment brancher le DST800 sur la carte arduino UNO.
Et je ne sais pas non plus comment faire interpréter les trames NMEA 0183 par la carte arduino.

Par contre je sais cela, les trames pour la vitesse d'eau comment comme ça :
$GPVHW

et il parle aussi de Recommended minimum specific GPS/TRANSIT data :
$GPRMC

Le NMEA à 3 fils :

  • Emission => une emission de données toutes les 0.5 secondes.
  • Reception
  • Masse

Il y a une tension entre -15V et -3V sur le bit0.
Il y a une tension entre +3V et +15V sur le bit1.

Le probleme c'est que tous les exemples sur internet utilise les trames NMEA 0183 avec le shield GPS, et non des capteurs comme le DST800.

Mes questions sont :
Comment brancher le capteur sur la carte arduino ?
Comment faire interpréter par l'arduino les trames NMEA 0183 ?

Merci d'avance.
Si jamais je ne suis pas assez clair, posez des questions et j'essayerais de développer plus en détail ce que je sais (même si je ne sais pas grand chose ...).

Cordialement.

EDIT:
je viens de trouver ça qui est plutôt bien mais encore une fois avec un shield GPS
http://gilbert.dhuime.pagesperso-orange.fr/arduino.gps/html/gps3.html

bonjour
ton capteur sort de la sentence nmea en RS232
pour te connecter sur un arduino , il te faut un adaptateur RS232<--->TTL
typiquement un module à base de max232 un exemple

ok, mais comment je fais pour relier les fils de sortie de capteur sur la prise RS232.

Et ou se branche le port TTL sur l'arduino UNO stp ?

elhemia:
ok, mais comment je fais pour relier les fils de sortie de capteur sur la prise RS232.

Et ou se branche le port TTL sur l'arduino UNO stp ?

si tu a juste une sortie sur cable, tu soude une DB9 male
en hardware sur un uno le serial TTL est sur les pins 0 et 1 (regarde c'est ecrit RX/TX sur le uno)

Ok très bien, mais comment savoir quel fil du capteur va à quel pin du DB9 male. (Sachant qu'avec mon capteur je veux seulement la vitesse du courant (le capteur fait aussi température et profondeur).

Sinon c'est super je commence à voir comment câbler l'ensemble.
Manque plus que le code. j'ai commencé à faire une ébauche du code avec ce que j'ai trouvé mais vu que j'y comprend rien, c'est chaud.

elhemia:
Ok très bien, mais comment savoir quel fil du capteur va à quel pin du DB9 male. (Sachant qu'avec mon capteur je veux seulement la vitesse du courant (le capteur fait aussi température et profondeur).

Sinon c'est super je commence à voir comment câbler l'ensemble.
Manque plus que le code. j'ai commencé à faire une ébauche du code avec ce que j'ai trouvé mais vu que j'y comprend rien, c'est chaud.

DB9 serial

Je viens de trouver ça :
http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=17661
et

qui m'indique que je dois utiliser les trames : VTG

Cap (direction) et vitesse sol GPS

$GPVTG,054.7,T,034.4,M,005.5,N,010.2,K

054.7,T = cap réel en Degrés , T (True track made good)
034.4,M = cap vrai magnétique en Degrés (Magnetic track made good)
005.5,N = Vitesse du déplacement par rapport au sol en Noeuds (N)
010.2,K = Vitesse du déplacement par rapport au sol en Kilomètres heure. (K)
non représentés CR et LF

Le probleme c'est que tout es pour GPS encore une fois.

Regarde http://www.nmea.org/Assets/airmar.pdf je me suis trompé dans le lien en haut ceci est la doc technique

page 66 il y a le cablage.

déja on peut voir que le capteur n'a que 7 fils en tout, et moi je veux seulement l'information de vitesse de courant donc le fil rouge, vers et marron (il me semble).

elhemia:
Regarde http://www.nmea.org/Assets/airmar.pdf je me suis trompé dans le lien en haut ceci est la doc technique

page 66 il y a le cablage.

déja on peut voir que le capteur n'a que 7 fils en tout, et moi je veux seulement l'information de vitesse de courant donc le fil rouge, vers et marron (il me semble).

Attention , je crois que l'on fait fausse route depuis le debut
ton capteur ne sort pas directement de l'info en sentences NMEA , il est connecté sur "quelque chose" qui lui transforme les impulsions en sentences NMEA.
Lire page 103/104 comment tester le capteur

Oui mais ce qui est bizarre c'est quand j'effectue les deux essais il se passe rien.

elhemia:
Oui mais ce qui est bizarre c'est quand j'effectue les deux essais il se passe rien.

quels 2 essais ?
juste l'essai concernant la vitesse , utilise une batterie 9 ou 12 V comme indiqué sur la photo et attention à bien positionner le multimetre en voltmetre et ne pas le laisser en ohmetre comme sur la photo :smiley:

Oui, je connais tout ça :D.

essai 1 => ohmmetre sans alim
essai 2 => voltmetre avec batterie 12V

Le problème c'est qu'avec mon multimètre j'ai => 2.01 k ohm (je suis pas à 77°F il doit faire 64°F)
Et j'ai 12V avec le volmetre mais pas comme il dise (pas d'alternance 0V 12V 0V 12V) juste 12V mais je me dis ça doit etre trop rapide pour le voltmetre et j'ai pas d'oscilloscope.

elhemia:
Oui, je connais tout ça :D.

qu'est ce que tu veux que je fasse/dise de plus , si déjà le test capteur ne donne rien ? 8)

Si les essais donnent quelque chose :

essai 1 => ohmmetre sans alim
essai 2 => voltmetre avec batterie 12V

Le problème c'est qu'avec mon multimètre j'ai => 2.01 k ohm (je suis pas à 77°F il doit faire 64°F)
Et j'ai 12V avec le volmetre mais pas comme il dise (pas d'alternance 0V 12V 0V 12V) juste 12V mais je me dis ça doit etre trop rapide pour le voltmetre et j'ai pas d'oscilloscope.
qu'est ce que tu veux que je fasse/dise de plus , si déjà le test capteur ne donne rien ? 8)

Déja tu m'as bien aidé pour la transformation NMEA/TTL.

Maintenant je dois essayé de comprendre comme programmer ça ^^

Merci pour ton aide

Mais avec la conversion NMEA/TTL je suis branché sur TX et RX faut "juste" que je fasse une acquisition de données sur TX et RX mais je sais pas sous quel format les données arrivent.

Car en NMEA c'est très trucs chelou comme ça $GPVTG,054.7,T,034.4,M,005.5,N,010.2,K

mais du coup en sortie c'est du NMEA ou pas ?

Artouste:
Attention , je crois que l'on fait fausse route depuis le debut
ton capteur ne sort pas directement de l'info en sentences NMEA , il est connecté sur "quelque chose" qui lui transforme les impulsions en sentences NMEA.
Lire page 103/104 comment tester le capteur

elhemia:
mais du coup en sortie c'est du NMEA ou pas ?

bonjour
non pas de NMEA du tout en sortie
d'apres les docs ta sonde est siplement composée :

  • pour la temperarture , d'une CTN 10K
  • pour la vitesse, d'une roue entrainée par le courant et renvoyant 4 creneaux par tour à V alim

j'ai resumé avec l'image

Ok donc en gros, j'ai """"juste"""" besoin de brancher le rouge sur une batterie 12V, la tresse GND sur une l'autre borne GND 12V, le vert sur une pin analog et le reste j'y touche pas.

Je fais faire une mesure toutes les 15 minutes, si pendant les 15 minutes je compte le nombre d’impulsion je peux connaitre le nombre de tr/min, mais il me faut un truc du genre :

100 tr/min => 1 m/s // valeur que je connais avec la doc technique (ceci est un exemple et en aucun cas c'est cette valeur !!!!)
247 tr/min => (247*1)/100 = 2.47 m/s

Pour les 4 impulsion c'est page 104 360°/90° = 4
Et du coup je sais pas trop si on a (si j'utilise une batterie 12V) 12V tout le temps et tous les 90° on a 0V et là on compte 1, 90° plus tard 0V => on compte 2 etc

Si jamais tu as vu un truc comme ça quelque par ce serait super, ou sinon tu as peut etre une autre technique ?

Merci pour l'aide

elhemia:
Ok donc en gros, j'ai """"juste"""" besoin de brancher le rouge sur une batterie 12V, la tresse GND sur une l'autre borne GND 12V, le vert sur une pin analog et le reste j'y touche pas.

et en faisant comme ça , tu cuit ton arduino :grin:
1- les entrées de l'arduino sont limitées à 5V
2- c'est du regime impulsionnel , le connecter sur une entrée analogique n'a pas de sens, ce que tu dois relever avec l'arduino c'est le nombre de creneaux/laps de temps.

donc en resumé
déjà pour voir , tu alimente ta sonde avec du 5V et tu regarde avec un petit programme de comptage si tu recupere les creneaux en faisant bouger la roulette.

Ca commence à etre la galere car j'ai un capteur sur analog0, un capteur sur analog1, un écran LCD sur la broche 2,3,4,5,6,7, un shield ethernet pour sauvegarder les données sur carte SD.

Je dois pouvoir brancher le capteur armar sur la broche 8.
J'ai pas de batterie 5V, j'ai que des 12V en début de semaine j'ai acheté sur internet un adaptateur 12V/5V mais il est pas arrivé donc ça va etre chaud de faire les essais, j'aurais peu faire un pont diviseur de tension car j'ai pleins de résistances sauf que la breadboard que j'ai commandé n'est toujours pas arrivé. C'est la galere, mais on va y arrive !!!!