Suite aux premiers test effectués ce soir avec une version spécifique de l'encodeur extra plat proposée par notre excellent ami Fab (Fabien Dehegeer) ici: http://fabien.deheegher.free.fr/FD/cat/encodeur/index.htm, avec une Arduino MEGA et Link2FS et sa routine qui gère l'accélération des encodeurs, j'ai le plaisir de vous annoncer que ça fonctionne!
L'objet du test était de vérifier si le circuit PIC spécialement développé par Fab pour convertir ses encodeurs au format CTS288 seul accepté par les cartes OpenCockpit/FDBus était nécessaire pour l'interfaçage avec une Arduino.
Fab m'a donc envoyé deux encodeurs pour test, un avec le PIC soudé sur la platine, l'autre avec la platine seule sans PIC et des straps pour connecter directement aux pins de la carte. Le tout accompagné d'un schéma de câblage montrant les deux configurations (on va dire une config "spéciale carte OpenCockpit/FDBus", avec le PIC intégré, l'autre standard sans PIC). Et l'ensemble parfaitement emballé bravo!
Un mot tout d'abord:
La solution de l'encodeur extra plat soudé sur sa platine d'accueil et le Bezel imprimé en 3D associé est vraiment pratique pour intégrer facilement des encodeurs ultraplats devant des écrans pour les instruments, surtout comparé à l'encombrement d'un encodeur CTS288 standard, sans compter le gain en épaisseur plus que conséquent. Il n'y a qu'à souder le cable en nappe et à raccorder, dans mon cas à une Arduino MEGA. Et si on ajoute à cela les boutons imprimés en 3D et leur légende en couleur, c'est top.
Connection:
Les broches A et B de l'encodeur doivent être branchées sur deux broches Digitales distinctes de l'Arduino, et la broche Commun de l'encodeur est raccordée à l'une des broches GND de la MEGA.
Software:
Le programme utilisé pour les tests est Link2FS http://www.jimspage.co.nz/link2fs_experts.htm, qui bien qu'ancien (2014) et plus développé hélas, permet de raccorder pas mal d'éléments hardware via des Arduinos (MEGA/UNO) à FSX/P3D, gère les Variables et Events Simconnect et dans le mode "expert", les variables et offsets FSUIPC.
A l'exception notable qu'il ne fonctionne pas avec P3Dv4.
Link2FS propose une librairie spécifique pour gérer les encodeurs avec accélération, que j'utilisais déjà pour raccorder des encodeurs CTS288 standard.
Un poil de plongée dans le code Lua de l'Arduino pour vérifier que les broches sont correctement déclarées, un téléversement dans la carte, et j'ai lancé le programme Link2FS pour vérfier ce qu'il recevait.
Par défaut mon code Lua sur l'Arduino envoie des ordres HDG BUG DEC/INC à FSX via Link2FS, avec gestion de l'accélération si on tourne rapidement le bouton, le délai de transition lent/rapide étant géré par une variable en début de code.
Eh bien cela fonctionne parfaitement, chaque sens est parfaitement décodé par la librairie encodeur Arduino et les codes incrément/décrément sont correctement envoyés et sans "faux rebonds". La seule différence avec mon code original a été de réduire fortement le seuil du délai de transition lent/rapide par rapport au code d'origine prévu pour un CTS288, délai passé de 50ms à 10ms seulement, sinon tout mouvement était détecté comme rapide et envoyait de ce fait une rafale d'ordres HDG bug INC/DEC à chaque mouvement de l'encodeur même d'un cran seulement.
Le test final avec FSX s'est révélé concluant, l'encodeur fait bien tourner le Heading bug plus ou moins vite selon la vitesse de rotation de l'encodeur, et on fait faire au bug un tour complet du cadran en à peine 6 mouvements de rotation "rapides" de l'encodeur, alors qu' en vitesse "lente", le cap peut être affiché au degré près.
Parmi mes critères personnels la gestion de l'accélération était mon critère principal qui m'avait fait retenir la solution Arduino et Link2fs pour avoir un fonctionnement réaliste du Heading bug et du Course Bug en priorité, c.a.d.pour pouvoir afficher des caps sans passer deux heures à tourner l'encodeur

En résumé, pour fonctionner avec une Arduino et link2FS, pas besoin de PIC d'adaptation pour l'encodeur, le proto est donc validé, Fab, je vais pouvoir te commander les autres encodeurs!
Et accessoirement poursuivre la réalisation de mon panel, ce qui compte tenu de mes deux mains gauches est une autre paire de manche...

Pour ceux intéressés, je peux transmettre le code Arduino à téléverser pour utiliser les encodeurs avec Link2FS.
Jacques