Bonjour,
quelques nouvelles du front !
D'abord, une fois n'est pas coutume, un coup de gueule : 4 membres du forum, je tairai les noms, m'ont demandé les plans du throttle : pas de problème avec le premier d'entre eux, honorable membre bien connu ici ; en revanche, les 3 autres, des membres peu à pas actifs sur le forum, pour lesquels j'ai du faire quelques manip supplémentaires pour les satisfaire, ont fini par obtenir leur plan, mais après, plus rien, pas l'ombre d'un merçi

... je ne m'étends pas, ça m'est déjà arrivé sur un autre forum avec les plans de ma cnc et de mon tour, à l'avenir je ne partagerai qu'avec les ceuces que je connais, na !
Sinon, en plein dans le programmation de la motorisation du trim, je me suis fixé un cahier des charges un peu sévère, mais j'ai du mal :
- d'abord, au plan de la pure programmation, je voulais réaliser la chose à base de LUA coté FSUIPC/FMGS, et C++ et Arduino pour le pilotage du moteur - et en particulier, je voulais une bonne programmation objet sur l'Arduino, de façon à pouvoir facilement partager et ré-utiliser : il s'avère qu'intégrer proprement les timers en prog objet sur l'Arduino est particulièrement ardu, donc au final, j'ai un bout du truc en objet, mais qui n'intègre pas l'horloge, qu'il faut piloter en prog traditionnelle ; je n'abandonne pas pour autant, mais il faudra que je me perfectionne coté C++.
- et puis, au plan des principes, voilà ce sur quoi je suis parti : le trim est actionné par un moteur pas-à-pas ; la position physique du trim est capté par un potentiomètre (le classique 10K piste cermet qu'on doit tous utiliser à profusion) ;
cette formule permet une intégration mécanique simple et très compacte.
l'algo est le suivant :
au démarrage, lecture de la position physique, traduction en nombre de pas nécessaires pour rejoindre la position 0, et envoi au moteur du nombre de pulses correspondant.
en l'air, à chaque changement de la valeur FMGS du trim, lecture de la position physique, traduction en nombre de pas nécessaire pour rejoindre la bonne position à partir de la position courante, et envoi au moteur du nombre de pulses correspondant.
si un nouveau changement intervient alors que le trim est en mouvement, pas de pb, il suffit de rectifier à la volée le nombre de pulses et la direction.
Donc en fait fonctionnement en boucle ouverte, un moteur pas à pas ne perd pas de pas s'il est correctement mis en œuvre ; je n'ai pas voulu faire d'asservissement pour éviter les phénomènes de pompage ...
Mais il y a un hic ! le potentiomètre de 10K n'est pas très précis, mais il est surtout horriblement pas linéaire, je ne l'avais jamais vraiment mis en évidence ; du coup, le nombre de pas calculé est vraiment mauvais, avec une erreur dans un sens ou dans l'autre selon la position du potentiomètre, ce qui fait que le pompage dont je ne voulais pas est bien là à chaque changement de valeur FMGS ...
Donc 2 solutions :
soit je conserve le potentiomètre, j'accepte le pompage (le phénomène est heureusement bien convergeant) lors du positionnement du trim à 0 au démarrage, et ensuite, je ne consulte plus la position physique du trim à chaque changement de valeur FMGS, et ne travaille qu'en nb de pulses relatifs (ce qui est parfaitement correct, toutes les cnc amateur fonctionnent comme ça).
soit je change mon fusil d'épaule, je vire le potentiomètre et mets 2 fins de course sur les 2 positions extrêmes du trim, afin de pouvoir retrouver le 0 physique du trim à chaque démarrage, et je pilote le moteur en relatif
Je pense que je vais opter pour la première solution, ce qui m'imposera de rajouter un dispositif d'étalonnage de la position 0, mais ça, avec l'arduino, il suffira de rajouter un petit potentiomètre.
Cela étant, les principes généraux sont quand même validés
Voilà, tout ça n'est pas très visuel, mais après la mécanique, il faut quand même s'occuper un peu du cerveau de la chose !
A+, Michel
nb : et au fait, en passant, développer en LUA sous FSUIPC, c'est vraiment extrêmement inconfortable, vraiment l'âge de pierre !