Bonjour amis marins et programmeurs,
Je suis passionné de mer et d'informatique, et vu les coûts exorbitants du matériel électronique chez les shipchandler, J'ai choisi de tenter de faire un maximum de choses avec arduino et/ou Raspberry Pi.
Jusqu'à présent, le Raspberry me sert de lecteur de carte avec enregistrement du journal de bord automatique et dispositif de sécurité en cas d'homme à la mer (Grand merci aux développeurs de OpenPlotter!!)
L'arduino devrait me permettre de commander des petits écrans oled pour me servir de répétiteurs. J'ai déjà réalisé un speedomètre avec un petit module GPS Ublox qui fonctionne parfaitement, et je suis en train de faire un répétiteur qui me donnera la force et la direction du vent couplé à une girouette anémomètre Advansea.
Mon problème est le suivant:
Je capte par le port serie de mon arduino nano, une trame nmea VWR provenant de ma gireouette anémomètre, qui comporte la direction du vent de 0 à 180° (position 1), son orientation (Tribord ou Babord représentés par R(pour Right) et L (pour Left) en position 2, et sa force en noeuds en position 3. La biblothèque TinyGPS++ me permet d'isoler ces 3 éléments de la façon suivante:
Je peux afficher ces 3 nouvelles valeurs par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 TinyGPSCustom ang(gps, "IIVWR", 1); // $IIVWR sentence, 1th element TinyGPSCustom dir(gps, "IIVWR", 2); // $IIVWR sentence, 2th element TinyGPSCustom vit(gps, "IIVWR", 3); // $IIVWR sentence, 3th element
Mais pour que l'affichage change d'aspect selon que le vent vienne de Babord ou de Tribord, il me faudrait placer la valeur de dir.value() dans une variable qui me servirait à la comparer dans un test (par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 println (ang.value()); println (dir.value()); println(ang.value());
if dir.value()=='L' alors...
if dir.value()=='R' alors....
Mais ce test ne marche pas, car dir.value() n'est pas un 'char'. J'ai essayé avec d'autres variables, mais aucune n'arrive à capturer cette valeur.
Je m'interroge donc sur la façon de pouvoir comparer cette valeur pour influencer le comportement de l'affichage!!
Je peux parfaitement imprimer ces sorties ang.value(), dir.value() et vit.value(), mais je n'arrive pas à les placer dans une variable!!
Je suis preneur de toute piste qui me permettrait de finaliser ce projet.
Merci d'avance pour toute suggestion.
Partager