OpenCPN pour PC,  selon Shoreline
Plan du site   --->  Les compléments  --->  Convertisseur NMEA
P_94 Convertisseur NMEA 
Validité :  5.0
  • Voici un complément au fonctionnement un peu particulier, puisqu'il faut aller dans les préférences pour le faire fonctionner.
  • Et si en apparence, son fonctionnement est simple, sa mise en oeuvre est loin de l'être.
  • Des connaissances sérieuses sont nécessaires :
    • relativement à la notion de phrases NMEA,
    • concernant les différents capteurs qui équipent ou peuvent équiper votre bateau.
  • Et il faut même parfois, de bonnes bases en mathématiques.
  • Au 26/05/2019, voici une seconde version de ce tutoriel.
    • Elle a été rédigée à partir de la page du site web opencpn.org relative à ce complément.
    • Elle reste encore à approfondir et à compléter.
      • Des suppléments devraient arriver rapidement.
Convertisseur NMEA : A quoi ça peut servir ?
Principe général :
  • Ce complément, n'a pas de raison d'être utilisé lors d'une navigation.
  • Par contre, il peut servir, à terre, lors de mise en place de matériel qui utilise ou fournit des phrases NMEA.
  • Il sert à fabriquer, une ou des phrases NMEA nécessaire à un matériel à besoin et qui ne sont pas présentes dans le flux NMEA disponible.
Up
Que devez vous connaître au préalable :
  • Vous devez connaitre les phrases NMEA présentes dans le flux NMEA disponible sur votre bateau.
  • Pour cela, utilisez la fenêtre d'affichage du flux NMEA, en allant dans les "Options/Connexion".
  • Vous devez connaître la liste des phrases NMEA dont votre matériel à besoin.
Up
VDR : Un outil dont vous aurez besoin pour vous familiariser avec le convertisseur NMEA :
  • Par ailleurs, voici des fichiers, lisibles avec avec le complément VDR, qui pourront vous servir durant votre apprentissage du complément Convertisseur :
    • WIMDA+OCMDA.txt
    • VDR2_.xls
    • Télécharger ces fichiers et gardez les à porter de clic de souris dans un dossier sur votre PC
Up
Téléchargement, installation, activation :
Documentation :
Up
Installation, activation :
  • Cliquez ou double-cliquez sur l'installateur téléchargé pour l'installer.
  • Laissez le faire.
Up
  • Allez dans les "Options/Compléments"
  • Sélectionnez la ligne "NMEA Converter"
  • Cliquez sur le bouton "Activer"
Up
Up
Up
  • Ouvrez les préférences de "MEA converter",
  • Choisissez,
  • Validez autant de fois qu'il le faut par "Ok".
Up
  • A ce stade, le complément est utilisable.

Up
  • Notez que aucune icône du complément n'apparait dans la barre d'icônes principale d'OpenCPN.
  • En l'absence d'icône, pour faire fonctionner ce complément, il faut toujours ouvrir le préférences dans la page "Options/Compléments"


Fonctionnement :
Test naïf 1 :
  • Ouvrez les "Options/Connexion"
  • Cocher la case associée à la fenêtre d'affichage des phrases NMEA
  • Validez
  • Réduisez la largeur de la fenêtre d'affichage des phrases NMEA
  • Placer cette fenêtre à droite de l'écran.
  • Ouvrez les préférences de NMEA-convertor dans "Options/Compléments"
  • Cliquez sur le bouton "Nouveau"
Up

Up
  • Une autre fenêtre s'ouvre


Up
  • Effacez le texte "$DummyFormat" ("DummyFormat" signifie "Format factice")
  • Remplacez par "$test"
  • Cochez la case "Send every" (qui signifie "Envoyer chaque")


Up
  • Validez par "Ok"


Up
  • Une phrases NMEA apparait dans la fenêtre d'affichage du flux NMEA.
  • Cette phrases se renouvelle automatiquement chaque seconde, si vous avez choisi de mettre "1" dans la zone "seconds"
  • C'est une phrase complètement inutile qui est envoyée régulièrement à OpenCPN. 
  • On constate aussi qu'une somme de contrôle est ajoutée à la phrase initiale.

Test naïf 2 :
  • Il est facile de changer celui-ci en quelque chose comme:  
    • $ GPRMC, 085437, A, 5324.3052, N, 00611.5704, E, 3.3,68.9,070614,0.3, E, A
  • Entrez simplement cette ligne à la place de "$test".
  • Pour cela, ouvrez les préférences de NMEA convertor
  • Sélectionnez la ligne "$test"
  • Cliquer sur le bouton "edit"
  • Remplacer le text précédent par le nouveau.
  • validez par "Ok"
  • Aucun fichier VDR n'est nécessaire. Cela simule une position GPS dans OpenCPN, mais ce n'est pas encore très utile.
Up
  • Question : Combien de temps une phrases NMEA ,créée par le convertisseur, sera disponible dans le flux NMEA ?
  • Réponse : tant que la phrase n'aura pas été supprimée du convertisseur.
  • Question : Comment supprimer une prase du convertisseur ?
  • Réponse :
    • Ouvez les préférences du convertisseur,
    • Sélectionnez la phrase à faire disparaitre,
    • Cliquer sur le bouton "Delete".


Utiliser une phrase du flux NMEA circulant dans le PC et créer une nouvelle phrase dans le flux :
  • Supposons que vous disposiez d'un instrument capable de mesurer la température de l'air et d'envoyer une phrase NMEA contenant la température dans le flux NMEA.
  • Supposons aussi que la phrase provenant de l'instrument dans le flux NMEA soit :
    • "$ WIMDA, 30,1, I, 1,0, B, 11,3, C ,,,,,,,, 18,6, T, 18,5, M, 5,8, N, 3,0, M * 27
      • Notez que cette phrase est obsolète mais, par exemple, elle est fourni par une sonde AIRMAR PB200 avec le format :
        • "xxMDA $......"
  • Il se trouve que le complément "Dasboard", c'est à dire "Tableau de bord" :
    • n'est pas capable de traiter et d'utiliser le type de phrase NMEA "MDA".
    • est capable de traiter et d'utiliser un autre type de phrases NMEA qui est "MTA"
  • Pour obtenir l'affichage de la température de l'ai par le "tableau de bord", il vous faut une phrase de type "MTA" dans le flux NMEA.
  • Notez que la phrase MDA a pour format :
    • MDA - Meteorological Composite, Données météorologiques
      Température de l'air et de l'eau, humidité, point de rosée, vitesse du vent, direction relative par rapport à la surface de la terre.
    • $--MDA,x.x,I,x.x,B,x.x,C,x.x,C,x.x,x.x,x.x,C,x.x,T,x.x,M,x.x,N,x.x,M*hh
    • 11 informations séparées par des virgules :
    • Pression atmosphérique, pouces de mercure,
    • Pression atmosphérique, bars,
    • Température de l'air, degrés C,
    • Température de l'eau, degrés C,
    • Humidité relative, en %,
    • Humidité absolue, en %,
    • Point de rosée, en degrés C,
    • Direction vraie du vent, degrés,
    • Direction du vent, degrés magnétique,
    • Vitesse du vent, en nœuds,
    • Vitesse du vent, mètres/seconde.
  • Notez que la phrase MTA a pour format :

    • $--MTA,x.x,C*hh
    • 2 informations séparées par des virgules, donnent :
      • la température,
      • l'unité (C ou F)
  • Voici la démarche à suivre pour faire apparaitre une phrase de type MTA.
Up
  • Pour simuler la présence de phrases de type "MDA," dans le flux NMEA, ouvrez le complément VDR.
  • Faites lui lire le fichier WIMDA+OCMDA.txt que vous avez téléchargé précédemment.
  • Le flux comporte alors des phrases dont voici un exemple :
    • $WIMDA,30.1,I,1.0,B,11.3,C,,,,,,,18.6,T,18.5,M,5.8,N,3.0,M*27
    • où la température de l'air est placée en position 5 et 6, ici 11.3 et C , c'est à dire 11,3° celsius.
  • A ce stade, on a le flux NMEA de la copie d'écran ci dessous.


Up
  • On veut construire une phrase de type MTA contenant la donnée 11,3°C.
    • de type MTA
    • où la données situées en position 5 de la phrase MDA est introduite dans la phrase MTA en position 1
    • où la données situées en position 6 de la phrase MDA est introduite dans la phrase MTA en position 2
    • Par exemple, la phrase MDA ci dessus donnera naissance à la phrase MTA suivante :
      • $XXMTA,11.3,C*26
      • où la température est en position 1 et l'unité en position 2.
  • Ouvrez le convertisseur
  • Créez l'entrée suivante : "$XXMTA, $WIMDA5, $WIMDA6"
  • Validez par Ok autant de fois qu'il le faut.


Up
  • A ce stade, le flux NMEA a changé.
  • De nouvelles phrases y apparaissent.
  • A chaque ancienne phrases est ajoutée une nouvelle.
  • Et le tableau de bord affiche la température.

Up
Utilisation des mathématiques :
  • La formule qui convertit les degré celsius en degré fahrenheit est : 9/5 X T + 32 où T est la température en degré celsius.
  • Si vous souhaitez afficher la température en degré fahrenheit, remplacez la formule précédente, qui était :"$XXMTA, $WIMDA5, $WIMDA6 par :
    • "$XXMTA, 9/5*$WIMDA5, F"


Up
Up
Outils mathématiques disponibles :
  • Voici une liste de fonctions :
    • abs : Valeur absolue, enlève le signe.
    • ceil : Le plus petit entier supérieur ou égal à x
    • cub : x^3, moyen sûr de calculer un tel exposant
    • deg : Pour convertir les radians en dégré
    • exp : La fonction exponentielle
    • hvi : Permet de connaître le signe :  =0 if x<0, =1 if x>=0
    • int : Le plus grand entier inférieur ou égal à x
    • inv : inverse, 1/x
    • floor : Non supportée. Voir int
    • ln : Le logarithme népérien
    • leep : voir ln
    • log : Le logarithme de base 10
    • rad : Pour convertir des degree en radian
    • sgn : Le signe, -1 or +1. Zero renvoie +1.
    • sqr : x^2, fonction carrée.
    • sqrt : Racine carréee.
  • Et des fonctions dites trigonométriques ou hyperboliques
    • acos : Arc cosinus
    • acsh : Arc cosinus hyperbolique
    • asin :  Arc sinus
    • asnh : Arc sinus hyperbolique
    • atan : Cotangente
    • atnh : Arc tangente hyperbolique
    • cos : Cosinus
    • cosh : Cosinus hyperbolique
    • sin : Sinus
    • sinc : Sinus cardinal (Sinus x)/x (radian)
    • sinh : Sinus hyperbolique
    • tan : Tangente
    • tanh : Tangente hyperbolique
  • Des variables prédéfinies :
    • pi remplace 3.14159265
    • e = 2.7182818
    • deg = 3.14159265/180
Up
Encore des exemples de création de phrases NMEA :
Encore un autre exemple de création d'une phrase :
  • Créez une phrase HDG (boussole) à partir du COG. 
    • Utilisation possible lorsque le pilote automatique est ancien et ne reçoit pas de cap (vrai ou magnétique).
Up
  • La phrase HDT sera créée à partir des données contenues dans la phrase VTG (ou xxVTG)
  • VTG - Qualité de la trace et vitesse fond
  • 8 informations séparées par des virgules :
    • Cap en degrés
    • T = Vrai
    • Cap en degré
    • M = Cap magnétique
    • Vitesse en nœuds (fond)
    • N = Nœuds
    • K= Vitesse en kilomètres par heure.
  • HDT   Une information, le cap vrai.
    • Cap en degré
    • T = Vrai
  • HDT s'obtient à partir d'une phrase VTG, en extrayant les données 1 et 2 de VTG et en les insérant dans HDT en position 1 et 2.
  • Dans le convertisseur, il suffit de créer la nouvelle phrase par la formule : "$XXHDT,$IIVTG1,$IIVTG2"
  • Attention : 
    • N'oubliez pas que régler HDT sur COG ne vous donnera aucun angle de dérive.
    • Donc, ceci ne peut servir que si aucun courant n'existe dans la zone de navigation.


Up
Connaître le vent réel à partir du vent apparent :
  • On suppose que sur le bateau on connait :
    • La vitesse fond (noeuds) : SOG
    • La vitesse du vent apparent : AWS
    • La direction du vent apparent (degrés) : AWA
Up
  • TWS = True Wind Speed (Vitesse du vent vrai)
  • TWD = True Wind Direction (Direction du vent vrai)
  • TWA = True Wind Angle (Angle du vent vrai – angle du bateau par rapport au vent)
  • SOG = Speed over Ground - (Vitesse sur le fond)
  • COG = Course over Ground to the next waypoint (Cap sur le fond jusqu'au prochain waypoint)

  • MWV - Vitesse et angle du vent.
    • $--MWV,x.x,a,x.x,a*hh
    • 5 informations séparées par des virgules :
      • Angle du vent, de 0 à 360 degrés
      • Référence, R = Relative, T = Vraie,
      • Vitesse du vent,
      • Unité de vitesse du vent, K/M/N,
      • Etat, A = Données valide,
Up
  • Utilisation de RMA :
  • $–RMA,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,x.x,x.x,x.x,a*hh<CR><LF>
  • Field Number:
    1. Blink Warning
    2. Latitude
    3. N or S
    4. Longitude
    5. E or W
    6. Time Difference A, uS
    7. Time Difference B, uS
    8. Speed Over Ground, Knots  (SOG)
    9. Track Made Good, degrees true
    10. Magnetic Variation, degrees
    11. E or W
    12. Checksum

  • Les calculs nécessaires :
    • x =AWS*sin(AWA*pi/180)
    • y =(x/tan(AWA*pi/180)) - SOG
    • TWS (True Wind Speed) =x/sin(TWA*pi/180)
    • TWA (True Wind Angle) =atan(x/y)*180/pi
  • On pourra utiliser les variables "pi" et "deg" disponibles dans NMEA converter :
    • pi = 3.14159265
    • deg = 3.14159265/180

  • Il faut maintenant compléter la formule :  "$XXMWV,??????"
  • Plusieurs solutions sont possibles :
    • Solution 1
      • $XXMWV,$WIMWV1+acos((sqr($WIMWV3)+sqr($GPRMC7)+s
      • qr($WIMWV3)-2*$GPRMC7*$WIMWV3*cos($WIMWV1*3.14159265/180)
      • -sqr($GPRMC7))/(2*sqrt(sqr($GPRMC7)+sqr($WIMWV3)
      • -2*$GPRMC7*cos($WIMWV1*3.14159265/180))*$WIMWV3)),T,sqrt(sqr($GPRMC7)
      • +SQR($WIMWV3)-2*$GPRMC7*$WIMWV3*cos($WIMWV1*3.14159265/180)),N,A
    • Solution 2 :
      • $XXVWT,90-deg(atan(($??VWR3*cos(rad($??VWR1))-$??RMC7)/$??VWR3*sin(rad($??VWR1)))),
      • $??VWR2,sqrt(sqr($??VWR3*sin(rad($??VWR1)))
      • +sqr($??VWR3*cos(rad($??VWR1))-$??RMC7)),$??VWR4,,,,
    • Solution 3 :
      •  $XXMWV,90-deg(atan(($??MWV3*cos(rad($??MWV1))-$GPRMC7)
      • /$??MWV3*sin(rad($??MWV1)))),T,sqrt(sqr($??MWV3*sin(rad($??MWV1)))
      • +sqr($??MWV3*cos(rad($??MWV1))-$GPRMC7)),N,A
    • Dans chaque solution, la formule doit être écrite sur une seule ligne dans la fenêtre de "NMEA convertor".
    • Dans les solutions 2 et 3, les "??" sont à remplacer par les deux caractères des talker des capteurs du bateau.
Up
Afficher les degrés entre -179° et +180°, sachant qu'ils sont connus entre 0° et 359° :
  • Et en prime, obtenons la direction du vent vraie en faisant la somme du vent réel (MWV) et du cap vrai (HDT)
Up
  • Il faut normaliser l'orientation :
    • La formule pour réorienter les valeurs circulaires, c'est-à-dire pour conserver un angle compris entre 0 et 359, est la suivante :
      • angle + Math.ceil (-angle / 360) * 360

  • La formule généralisée pour changer d'angle d'orientation est :
    • angle + Math.ceil ((-angle + décalage) / 360) * 360
    • ou décalage est un angle.
  • Pour des valeurs comprises entre -179 et +180, le décalage est -179°. Ce qui donne :
    • angle + Math.ceil ((-angle-179) / 360) * 360
Up
  • La fonction "math.ceil" est une fonction java qui renvoie le plus petit entier supérieur ou égal à un nombre donné.
    • Remarque: Math.ceil (null) renvoie le nombre entier 0 et ne génère pas d'erreur NaN.

  • Avec des données provenant d'un instrument en NMEA 0183, à savoir :
    • Cap vrai (True Heading)
    • Direction du vent vrai entre 0° et 379°  (True Wind Direction 0-359)

  • Voici la formule à utiliser :
    • $ XXHDT, $ ?? HDG1, T
    • $ WIMWD, ($ ?? MWV1 + $ ?? HDT1) + ceil ((- (($ ?? MWV1 + $ HDT1)) / 360) * 360, T ,, M, $ ?? MWV3, N ,, M
Up
Avec un capteur BMP180 pour raspberry pi, faire accepter ses données par le "tableau de bord" :
  • La sortie du capteur de pression BMP180 de Raspberry Pi / OpenPlotter utilise la phrase $ OSXDR.
  • Cela ne peut pas être lu par Dashboard. 
  • Les unités de sortie BMP180 sont exprimées en bars, c’est-à-dire 1 000 fois le relevé nécessaire pour l’affichage - mBar / hectoPascal. Toute erreur dans la sortie ne peut pas être corrigée.
Up
  • Conversion :
    • $MYXDR,P, 0.018 + 1/1000 * $OSXDR2,B,Barometer
    • 0.018 est une correction qui ajuste la pression du  baromètre à la pression au niveau de la mer
  • Cette formule crée une phrase $xxMDA (démodée) ou $xxXDR utilisabmle par le complément Tableau de bord.
Up
  • Vous avez jugé nécessaire de cocher la case "Bloquer les messages entrants avec une mauvaise somme de contrôle" lors de l'édition de la phrase.


Up
  • Lors de l'édition de la phrase: Démarrer une variable avec '.' ou '$' provoque le blocage de OpenCPN.
  • Les variables sont lues tout le temps par le complément et ces caractères ne sont pas reconnus. 
  • La solution consiste à taper "0". Puis le nombre. Aussi 'OSXDR2' et ensuite ajouter le '$' devant, '$ OSXDR2'


Up
  • Finalement, voici le flux NMEA :

Up

Aller au Tutoriel_5_PC.htm
  Haut de page
Moteur de recherche.
    
Recherche sur le web          Recherche sur opencpn.shoreline.fr
 
Copyright : Ce site web est protégé contre toute utilisation commerciale.
Dernière modification de cette page :