image
image
image

Votre IP : 18.219.189.247
Dernier ajout : 10 mai
Visiteurs connectés : 23

image Conception
Développé sous SPIP
Informations légales

image
image
Recherche image

Pratiques et Techniques de la Plaisance

image

Accueil du site > Forum technique > Electronique, instruments -forum- > Bus NMEA/Seatalk > Affichage vent réel et VMG, do it yourself

Rubrique : Bus NMEA/Seatalk

__________________________________________________________________________________________________________________

Affichage vent réel et VMG, do it yourselfVersion imprimable de cet article Version imprimable

Publié Octobre 2016, (màj Octobre 2016) par : Jean-Luc Grégoriadès  image   

Copyright : Les articles sont la propriété de leurs auteurs et ne peuvent pas être reproduits en partie ou totalité sans leur accord
S'identifier pour s'abonner par mail Inscrit aux forum vous pourriez transmettre cette page à un ami plaisancier

Mon bateau est équipé d’une Girouette anémomètre ST60 Raymarine. Je n’ai pas de loch/speedo car j’utilise mon GPS qui me donne la vitesse fond. Du coup, je ne pouvais pas afficher le vent réel ni le VMG sur mon afficheur GirAnémo ST60.

J’ai fait un montage électronique (avec microcontrôleur) qui me permet d’injecter la vitesse du bateau dans le bus SeaTalk Raymarine à partir de la trame NMEA 183 ($GPVTG...) fournie par mon GPS Furuno, trame contenant la vitesse du bateau. J’ai donc maintenant mon vent réel et mon VMG qui s’affichent.

Je ne sais pas si cette « bricole » intéresserait des navigateurs ni si cette étude est déjà dispo sur internet. Je propose de transmettre mon étude (évidemment gratuitement) aux gens intéressés et un poil compétents en électronique.

En 1 mot : Microcontrôleur ATmega164, programme source en C, circuit imprimé assez simple. En clair, c’est un convertisseur de bus NMEA 183 vers SeaTalk sélectionnant une trame à convertir et à transmettre.

Jean-Luc

UP


Répondre à cet article
(pour répondre à un message en particulier, voir plus bas dans le fil)

19 Messages de forum

__________________________________________________________________________________________________________________

__________________________________________________________________________________________________________________

  • Sur le conseil de Negofol, je me répond à moi-même afin d’inclure le fichier d’étude préalable que j’ai fait pour cette application.
    Je peux vous envoyer le source complet du programme, ainsi que le fichier .hex pour programmer le microcontrôleur. Par contre, si vous souhaitez avoir le circuit imprimé et le microcontrôleur programmé, contactez moi car je ne peux pas les donner gratuitement (je les achète...)
    Si vous avez des idées pour simplifier l’électronique aussi bien que la programmation, je suis preneur. Cette application qui fonctionne parfaitement, pourrait très certainement être optimisée.

    Répondre à ce message

    • moi m’sieu, moi.
      Très intéressé par tout ça et j’aimerai bien voir des trucs qui marchent, plus facile de casser un truc qui marche que de faire marcher un truc qui n’a jamais marché.
      donc, de mon coté, intérêt très certain.
      C’est cher ces microcontrôleurs là ?

      Répondre à ce message

    • J’ai bien lu le document joint.
      Il y a quelques trucs qui m’ont chiffonné.

      Sur le NMEA183 : en principe c’est 0 - 5 volt .
      Il n’y a pas de tension négative.

      Il est d’usage de citer ses sources.
      En la matière il n’y en a qu’une c’est Thomas Knauf.

      C’est notre père à tous. Il est le seul (à ma connaissance) à avoir décodé les trames seatalk et avoir mis en ligne le produit de ses fouilles .
      http://www.thomasknauf.de/seatalk.htm

      Un ATmega 168 et un programme en C.
      Je ne peut pas m’empêcher de penser à un arduino/genuino..

      Il serait intéressant d’en savoir plus.

      Répondre à ce message

      • Bonsoir Monsieur Alien,

        Vous me dites que le signal électrique NMEA 183 est du 0/5V. Pas vraiment, je vous prie de relire le passage de mon article :

        « Bien que je n’ai pas clairement vu cela dans la norme NMEA 183, j’ai constaté que les niveaux logiques produits par la sortie NMEA de mon émetteur (GPS Furuno) correspondent au chronogramme ci-dessus et doivent être inversés (convertis en logique positive) pour être acceptés par l’UART du microcontrôleur : (bit de start au niveau bas, datas en logique positive et bit de stop au niveau haut). Les tensions sont soit différentielles (tensions de sorties entre NMEA+ et NMEA-) soit de mode commun en reliant NMEA- à la masse (GND). Les tensions sont alors 0/5V sur NMEA+.

        Relier NMEA- à la masse fait gagner 1 fil mais fait perdre l’immunité au bruit d’une paire différentielle. Comme il n’y a pas trop de parasites sur un voilier et que les connexions sont courtes on peut câbler en mode commun mais rien n’empêche de rester en différentiel (la référence de potentiel n’est alors pas définie... 0/5V ou -2.5/+2.5V, c’est pareil).
        Vous me dites de citer mes sources ! Or dans mon article, j’écris :

        « L’émetteur attend que le bus reste libre pendant un temps minimum de 10/4800 secondes avant d’émettre.
        Voir l’excellent site http://www.thomas-knauf.de/seatalk.htm sur lequel j’ai tout appris sur le bus SeaTalk" »

        Qu’aurais-je du écrire ?
        Je vous précise enfin que je n’ai pas travaillé sur une carte Arduino et que le micrcontrôleur que j’utilise pour cette appli est un ATmega 164 qui a l’avantage de posseder 2 UARTs ce qui simplifie le programme.
        Ma pièce jointe contient le schéma de principe de cette appli et je propose de transmettre le typon ainsi que le source du programme etc...
        Qu’entendez vous par « il serait intéressant d’en savoir plus » ?

        Bien à vous Monsieur Alien

        Répondre à ce message

        • Monsieur Jean Luc,

          Loi de moi l’idée de polémiquer !
          Je suis plutôt curieux et bidouilleur.

          Mea culpa ! Je me suis planté en ce qui concerne les tensions négatives.
          Les spécifications NMEA v.1 les prévoient.
          En pratique, la plupart des « talkers » émettent en niveaux TTL soit 0-5v .

          En v.2 et suivants on est effectivement en différentiel (rs422).

          Je me suis longtemps intéressé à la question car j’avais un bateau équipé d’instruments qui parlaient seatalk et d’autres nmea 183..

          Ce n’est plus le cas. J’ai un bateau qui parle B&G net dont les spécifications ne sont pas documentées. En revanche ; il affiche le vent vrai mais pas la VMG.

          Ce qui motive mon intérêt.
          Intérêt pour lire le code essentiellement.

          J’ai parlé d’Arduino car j’ai du mal à imaginer un plaisance-pratiquier moyen en train d’imprimer un typon, de le graver, de le percer et détourer, de souder des composants possiblement en CMS.

          Une carte arduino équipée d’un ATmega 2560 coûte 35 euros.
          Elle dispose de 4 UART et d’une pléthore de ports digitaux et analogiques.

          Ne serait-ce pas une bonne solution pour faire partager le plus grand nombre..

          i

          Répondre à ce message

          • Salut Alien,

            Je te remercie pour ta réponse.
            En fait, cela fait longtemps que j’utilise les ATmega, je pense que c’était avant que les Arduino ne voie le jour.
            Du coup, je me suis construit mes propres maquettes d’évaluation.
            C’est un peu par paresse que je ne suis pas rentré dans l’univers Arduino, mes maquettes fonctionnent bien et sont faciles à réparer...
            Mais ce n’est pas seulement une étude de principe que je voulais faire. Il fallait qu’elle fonctionne en environnement marin, sur mon bateau (connectique soignée, vernis de protection etc…) et pour longtemps.
            Comment dire… si je prends ton exemple de calcul de VMG : OK, un petit calcul vectoriel à partir de la vitesse du bateau, de la direction et de la force du vent réel, un afficheur à 3 digits et tu as la satisfaction intellectuelle de voir que ton programme fonctionne… merci Arduino. Mais tu n’as pas fait la moitié du travail par rapport à une appli vraiment opérationnelle.
            Comment faire alors sans s’équiper un minimum pour réaliser des petits circuits imprimés. La plaque à trous a ses limites (et j’aime bien souder).
            Je ne savais pas comment serait reçu mon article à Plaisance Pratique.
            - Soit un intérêt sur le principe (forces et faiblesses du langage C dans ce type d’application… ton schéma électronique aurait pu être plus simple voici comment… modèle OSI du NMEA, etc…)
            - Soit « je ne suis ni électronicien, ni programmeur, mais je navigue. Ce que je veux, c’est afficher mon VMG, quitte à câbler une boite noire ».

            Bon, sur ces pauvres considérations, je te souhaite un bon week end.
            Jean-Luc

            Répondre à ce message

            • Je ne savais pas comment serait reçu mon article à Plaisance Pratique.

              Perso, je navigue. Ce qui ne m’interdit pas du tout d’apprécier considérablement ce genre d’article et de débat. Bien au contraire, continuez, on vous lit et apprécie.

              Et s’il fallait argumenter dans un débat, j’aurai peut-être deux trois bricoles à dire, et pas uniquement autour de l’électronique bien finie (vernis et tout et tout, dont je raffole, ma vieille ayant déjà 39 ans et encore en très bel état, ceci expliquant cela .
              Lorsque j’ai cessé d’en faire (de l’électronique, du temps du 8008 et 8051, bon j’exagère y avait aussi le 68000) on passait aux systèmes de développement. Fini les oscillo à mémoire et 16 à 30 clips de sonde, on faisait ça par soft, et ça améliorait infiniment la productivité

              Avec Arduino ou autres microcontrôleurs, ça existe les systèmes de développement qui permettent de quasiment tout mettre au point par soft (stepper, debuger, point d’arrêt, ... et plein de trucs plus modernes) ?

              Répondre à ce message

              • Oui, ça existe. Atmel Studio par exemple.

                Répondre à ce message

                • Tu as utilisé ? ça vaut le coup (j’ose pas écrire « son prix » n’ayant aucune idée de son aspect freeware ou pas), gros investissement intellectuel avant d’en tirer profit ?

                  Répondre à ce message

                  • Mais ne pouvant vous répondre individuellement, j’écris ce post qui s’adresse à vous tous.
                    Le premier point auquel je réponds est le prix. L’appli vaut moins de 25€ à condition de faire tout soi-même.
                    Le microcontrôleur ATmega164P est disponible sur ebay :
                    « http://www.ebay.fr/itm/Atmel-Atmega...
                    au prix de 5.73€
                    Je mets les fichiers sources en C en pièce jointe. Ils sont écrits pour la cible ATmega164 et malgré la portabilité du langage, il sera probablement fastidieux de changer de cible. Mais si vous le souhaitez, cela reste possible.
                    Le programme est, évidemment, totalement lié au schéma électronique correspondant.
                    La programmation en C n’est pas complexe car il ne s’agit principalement que de gérer des périphériques de communication série asynchrones en respectant un timing donné.
                    J’imagine déjà les puristes se gausser d’une programmation trop facilement écrite, et ils auront raison ! Pratiquement pas de pointeurs ni de structures, rien d’original ni d’élégant dans cette programmation, je n’étais pas limité par l’espace mémoire du composant et j’en ai abusé.
                    Concernant la chaîne de développement logicielle et matérielle que j’utilise, elle se compose de :
                    Un compilateur C « JumpStart C for AVR » (anciennement Icc AVR de la firme californienne ImageCraft). C’est un IDE (integrated development editor). Un paramétrage du compilateur et de l’éditeur de liens est proposé par défaut et je n’ai jamais eu besoin de le modifier.
                    Ce compilateur coûte plusieurs centaines de $ pour un industriel mais ImageCraft a eu la bonne idée d’en fournir une version « hobby » à 50$ (limitée à 64Ko). La condition est que je n’ai pas (selon la loi américaine…) le droit de gagner de l’argent en l’utilisant.
                    La suite de la chaîne est le logiciel de deboguage AVRstudio 4 ou plus récent et beaucoup plus lourd, Atmel studio, gratuits. Ces logiciels sont associés à une interface USB reliant le PC à l’appli par l’intermédiaire d’un boîtier d’émulation : JTAG ICE mk2 connecté à l’appli par le périphérique JTAG du microcontrôleur. Ce boîtier est proposé à moins de 150€.
                    « http://www.ebay.com/itm/Atmel-JTAGI...
                    Cette chaîne de développement permet de tester et le programme et l’électronique de l’appli.
                    Elle est carrément puissante pour son prix.
                    Quand on se rappelle du coût des émulateurs il y a quelques années pour nos chers 8051 ou 6809 !!!
                    Oui, il faut aussi un peu de matos pour faire un circuit… une centaine d’€, je ne détaille pas. Juste : remplacer pour la gravure, l’affreux perchlorure de fer par un mélange d’eau, d’acide chlorhydrique et d’eau oxygénée (voir sur internet).

                    Mon post est un peu long, je le voulais plus court. Vous donnera-t-il envie de faire cette appli ou de créer les vôtres ?
                    La voile sans électronique (des penons sur les haubans, un bon sextant et des éphémérides) c’est très chouette aussi…

                    Répondre à ce message

                    • Quelques précisions complémentaires :
                      * Atmel Studio est bien gratuit
                      * Il existe une toolchain libre et gratuite (AVR GCC, libC…)
                      * il existe également une solution libre et gratuite pour le debugage (avarice+GDB), moins facile d’accès qu’Atmel Studio
                      * il existe des cartes de développement complètes pour environ 1€ (Pro Mini/ATmega168) à 3€ (Pro Micro/ATmega32u4), livraison comprise
                      * Les fabricants comme PCBway vous fourniront 10 PCB de qualité professionnelle pour $10, livraison non-comprise

                      Répondre à ce message

  • Bonjour à tous
    Ce fil est passionnant, mais très spécialisé et comme tous les fils, un peu éparpillé.
    On pourrait peut être en faire une synthèse, et un article, ce qui recentrerait les débats. Largement largué techniquement, par contre je peux donner un sérieux coup de main à la mise en page...
    Cà, yes I can ;-)

    Michel

    Répondre à ce message

    • Non, mon post ne prétendait pas faire seulement une étude comparative des différentes chaînes de développement ni des différents microcontrôleurs qui pourraient réaliser cette appli.
      Je rappelle que celle-ci permet d’afficher sur un cadran girouette / anémomètre Raymarine, le vent réel et le VMG à partir d’infos GPS.
      Au fil des messages, on semble avoir oublier ce détail… ça me fait sourire !
      La chaîne de développement que j’ai utilisée pour cette appli provient d’un historique, c’est l’aboutissement d’une bonne vingtaine d’années de développement en info industrielle, mais je l’ai décrite seulement à titre indicatif. Ce n’est évidemment pas la meilleure qui soit. D’ailleurs existe-t-elle ? Il y a tellement de possibilités…
      Si le sujet initialement proposé se transforme en divers échanges d’opinions sur les produits (matériels et logiciels) disponibles sur le marché des électroniciens et des programmeurs c’est que cela correspond à un réel besoin que je comprends tout à fait. J’aurais plutôt imaginé ces échanges sur un site dédié à l’électronique et non pas à la navigation…
      Mais ça ne m’attriste pas, c’est plutôt amusant bien que j’aie l’impression de m’être un peu trompé sur l’objectif de mon post initial !... comme le dit Michel, c’est un fil un peu éparpillé.
      Ce pauvre VMG, il en est tout dépité !

      Répondre à ce message

      • Faut pas se décourager !
        Il y a plusieurs choses à prendre en considération :
        - réaliser une interface seatalk/nmea
        c’est déjà un objectif intéressant
        - calculer le vmg
        c’est encore plus intéressant
        Mais il se trouve que par les hasards de la nature et des achats compulsifs, chaque bateau se trouve dans une configuration atypique..
        Tout le monde est demandeur mais très peu se trouvent dans ta configuration pour le moins particulière.
        Chez moi on navigue sur de courants variant de 0 à 8 knts .
        Donc la vitesse fond n’a guère d’importance.
        En contrepartie, choisir entre la vitesse GPS et la vitesse speedo serait un +.
        Donc il serait intéressant de faire évoluer le projet.

        Répondre à ce message

      • Il ne s’agit pas de faire une étude comparative des solutions logicielles/matérielles disponibles, mais de répondre à la question de Modérateur. Libre à vous d’utiliser les outils qui vous siéent ou dont vous disposez déjà. Quant à moi, je tiens à m’assurer que personne n’abandonnera son envie de creuser ce projet pour des raisons financières ou par crainte de réaliser soi-même ses PCB à la main.
        Les alternatives que j’ai proposé plus haut permettent de diminuer le coût de plus de 200€ à moins de 5€. Autrement dit, le projet peut être réalisé en entier pour moins cher qu’un seul ATmega164. Cela méritait d’être signalé. Je compte continuer à proposer ce type d’informations, mais il ne s’agit en aucun cas d’une critique de vos choix techniques. :-)

        La partie NMEA du schéma électronique peut être remplacée par un module RS232/TTL tel que celui-ci (0,27€)
        La partie logique peut être confiée à une Pro Mini/Atmega168p (1,15€). Auquel cas il faudra également ajouter un module USB/TTL pour sa programmation, tel que celui-ci (1,08€).
        Reste à trouver un module pour l’interface avec le bus SeaTalk ou, à défaut, un circuit suffisamment simple (tel celui que vous proposez), si possible reproductible avec des composants récupérables sur des appareils électroniques hors-service.
        Cette solution nous amène donc à 2,50€ (livraison comprise) pour le logiciel (compilateur GCC, toolchain…) et le matériel, interface SeaTalk exceptée. Encourageant ! Voilà un projet à la portée de toutes les bourses et de tous les niveaux d’expertise : au pire, vous aurez perdu quelques euros…

        Pour ce qui est de l’utilité publique d’un tel projet, j’imagine qu’elle se trouve essentiellement dans un convertisseur NMEA013<->SeaTalk généraliste.

        Répondre à ce message

      • Au fil des messages, on semble avoir oublier ce détail… ça me fait sourire !

        Allez, je me dévoile, la VMG j’ai déjà : j’ai déjà un bus seatalk (pour ces capteurs ST40 de raymarine), des causeurs NMEA183, un mux NMEA (shipmodul) et un convertiseur NMEA-ST (le ST80000 de raymarine).
        L’ensemble marche sans problème, sans rien faire autre que faire chauffer la CB.

        Mais, j’ai un vieux projet de mesurer le débit de gazole effectivement consommé de mon moteur (ma vieille est une fifty).
        Pourquoi, boff, excellente question et très nombreuses réponses existent (pour m’amuser, c’est acceptable ?), je survis très bien sans mais si je pouvais avoir la conso instantanée (galon to the mile disent-ils de l’autre coté) je sens que ça me plairais.

        Donc en plein dans le pas rationnel.

        Ceci dit, il faut relever les impulsions (environ 4000 par litre) du capteur de débit et afficher ça, ce qui est assez trivial. Il faut ensuite gérer ça moins grossièrement pour avoir des litres par heure et (soyons fou) corréler ça avec le NMEA du GPS histoire d’afficher des litres par miles (bon, au port, au préchaufage c’est pas vraiment utile, j’admets, donc j’affirme que c’est 1l / heure, embrayé à 1000 tpm).

        Tout ça fait un joli projet, très chouette sur le papier. Mais j’ai des souvenirs très très moches de debug d’électronique des années 80 (et pas que les doigts tachés au perchlo) qui m’ont passablement marqués, d’où la question sur les systèmes de développement pour microcontroleurs

        Et là, j’admets que j’ai remonté du très gros sur ce forum. Merci à tous. Continuez, on vous lit !

        Répondre à ce message

        • Et là, j’admets que j’ai remonté du très gros sur ce forum. Merci à tous. Continuez, on vous lit !

          Merci Yves...
          On lit.. mais on ne comprend pas pas tout nécessairement, d’où mon honnête proposition de monter un dossier, qui lui aura la nécessaire cohérence, permettant une meilleure compréhension...
          Enfin peut être, est ce mon obsessionnelle passion tutorielle ;-)
          Michel

          Répondre à ce message

          • À ce niveau, il me semble que les choses sont claires :
            * l’OP a posté un fichier plutôt complet, avec schéma et explications, de son projet d’interface SeaTalk/NMEA0183. À part le reste du code source, et peut-être quelques quelques précisions pour les novices, l’essentiel est là ― merci à lui !
            * Pour ce qui est d’un projet plus généraliste, dans l’optique d’être plus utile à la communauté eu égard aux différentes configurations de la vie réelle, autrement dit dans l’optique d’un « convertisseur SeaTalk/NMEA0183 », une partie (logicielle) non négligeable reste à faire, et il est trop tôt pour envisager une synthèse.

            Répondre à ce message

          • Pour faire avancer le schlimblik :
            * Pour ce qui est de la partie matérielle, je pense qu’il faudrait composer un circuit électronique équivalent à partir de modules bon marchés et facilement accessibles (livrés gratuitement à domicile) tels que ceux vers lesquels j’ai pointé plus haut. L’idée étant de rendre le projet le plus accessible possible. Peut-être n’êtes-vous pas sûr de vous-même, s’il ne s’agit que de risquer quelques euros vous tenterez plus facilement votre chance. :-)
            * Une fois que l’interface matérielle fonctionne, il est toujours temps d’implémenter plus de fonctions (ie de trames SeaTalk/NMEA0183) dans le logiciel.

            Répondre à ce message

Répondre à cet article

UP

Copyright et informations légales