Interfacer Arduino et P3D

Programmation LUA, Macros FSUIPC, logiciel LINDA
et codage en LUA des gauges Air Manager

Re: Interfacer Arduino et P3D

Messagede JacquesZ » Mer 3 Juil 2019 19:08

Ah ok c’est un indicateur double aiguilles, aile gauche/aile droite. Si écart les deux aiguilles se décalent, mais en fonctionnement normal elles devraient se déplacer simultanément.

Code: Tout sélectionner
PMDG 737NGX:MAIN_TEFlapsNeedle:index

Avec index 1:L et index 2:R

Si les valeurs de duty cycle que tu as mis dans ton code fonctionnent comme ça c’est parfait. Mais quand tu parles de « saut de puce », je ne comprends pas trop. Tu pourrais nous faire une vidéo de ton indicateur en fonctionnement s’il te plaît?

Si tu souhaites un déplacement progressif des aiguilles, tout dépend des valeurs transmises par ta variable PMDG.
- Si elles varient en continu avec le déplacement des aiguilles (par exemple entre 15.0 et 25.0, en passant par toutes les valeurs intermédiaires 15.1,15.3, etc...) , il y a moyen de faire quelquechose en reliant ces valeurs à un duty cycle.
- Sinon c’est plus compliqué il va falloir faire intervenir un timer pour générer progressivement les valeurs de duty cycle intermédiaires.

Je ne suis pas un spécialiste des servos, mais j’imagine qu’il doit y avoir une résolution , c’est à dire un nombre de pas minimums pour obtenir un déplacement, en clair la valeur minimale de pas du Duty cycle pour faire bouger le servo.
Fab tu as une idée une connaissance sur la question?

Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Interfacer Arduino et P3D

Messagede fab » Mer 3 Juil 2019 19:35

Comme c'est un moteur DC et non un pas à pas, (dans le servo, il y a un potar relié à un monostable qui produit une impulsion qui est comparée à l'impulsion de consigne) cela peut être très fin entre des pulses de 1ms et 2ms.

C'est la mécanique et la qualité de boucle asservissement qui fera sa précision.

un exemple de servo avec une précision de 0.35° soit 1024 pas:

https://www.pobot.org/Servomoteurs-numeriques.html

Dans notre cas, 255 valeurs devraient suffire gratgrat
Avatar de l’utilisateur
fab
 
Messages: 4417
Inscription: 26/12/12
Localisation: Roubaix

Re: Interfacer Arduino et P3D

Messagede hadrien » Mer 3 Juil 2019 20:11

Bonsoir,

Pour répondre à Jacques, par saut de puce j'entends que mes aiguilles se déplacent de "flaps en flaps". Concrètement, au départ, mes aiguilles sont sur "up". Puis quand j'enclenche le premier cran de volets, P3d renvoie une série de valeurs croissantes entre 0.0 et 1.0. Là, mon aiguille ne bouge pas. Puis dès que le jeu renvoie la valeur 1.0, mon aiguille "saute" jusqu'au niveau du 1 sur la jauge. Et ainsi de suite. En gros, mes aiguilles évoluent par à coups et non de manière continue. Car je ne vois pas trop comment faire pour avoir du continu. Or ce serait mieux je vous l'accorde.

Pour répondre à ton interrogation Jacques, le code que j'ai donné est celui de l'aiguille Right. J'ai un second code pour la Left mais je l'ai pas posté car c'est le même...

Hadrien
hadrien
 
Messages: 95
Inscription: 30/10/18
Localisation: Seilles, Belgique

Re: Interfacer Arduino et P3D

Messagede JacquesZ » Jeu 4 Juil 2019 02:46

Merci Fab. Donc résolution 256 pas.
Pour Hadrien, il faudra faire évoluer ton duty cycle probablement avec un timer pour pouvoir déplacer l’aiguille progressivement je pense. Sinon une simple règle de 3 peut être.
Je regarderai ce qu’il est possible de faire quand j’aurai un peu de temps, mais là avec mon nouveau job je chôme pas, déjà 23heures de vol en 3 jours!

Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Interfacer Arduino et P3D

Messagede hadrien » Jeu 4 Juil 2019 09:00

23h en 3 jours ? En effet, c'est plutôt intense là. J'espère au moins que ça te passionne car sinon, ça doit être vraiment long ;-)

Avec un timer ? Là j'avoue ne plus suivre. Comment ça ? Comment ajouter un délais dans cette fonction ? Quelle utilité ? Désolé si mes questions paraissent stupides mais je suis pas informaticien ni programmeur. Même pas matheux. Ma compréhension atteint ses limites là :-(.

Hadrien
hadrien
 
Messages: 95
Inscription: 30/10/18
Localisation: Seilles, Belgique

Re: Interfacer Arduino et P3D

Messagede JacquesZ » Jeu 4 Juil 2019 16:39

Le timer peut servir à progressivement incrémenter /decrémenter le duty cycle pour déplacer l'aiguille d'une valeur de départ vers une valeur cible, par exemple de flaps 15 à 25. C'est pour éviter les sauts de puce comme tu dis sourirebis

Le timer va appeler une fonction toutes les x millisecondes, fonction dans laquelle on ajoutera/retranchera à la valeur courante de duty cycle un petit delta.
On envoie cette valeur de duty cycle au servo, l'aiguille va bouger légèrement.
On compare cette valeur incrémentée/décrémentée à la valeur d'arrivée.
Au bout d'un moment on aura atteint la valeur finale et on arrête le timer, sinon on recommence.
La durée du timer et l'intervalle entre les appels permettent de gérer la vitesse de déplacement de l'aiguille.

Ceci dit, si les valeurs transmises par PMDG varient comme tu semble l'indiquer, une simple règle de trois peut faire le boulot sans utiliser un timer, l'avantage étant que ce coup-ci le déplacement de l'aiguille sera parfaitement synchronisé avec la jauge virtuelle.

Le seul truc, c'est que n'ayant ni arduino, ni servo sous la main, pour tester c'est pas évident.

Pour moi Pilote de Ligne c'est encore un nouveau métier que je découvre, et ceux qui me connaissent depuis un moment sur ce forum savent mon parcours. Plein de choses à apprendre, à découvrir, donc je ne m'ennuie pas, même si les levers à 4:00 du mat' sont pas ce qu'il y a de plus glamour! lolaffiche

Jacques (de retour à l'instant de Belfast, 8heures de vol aller/retour)
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Interfacer Arduino et P3D

Messagede hadrien » Lun 15 Juil 2019 19:54

Bonsoir,

Jacques, même avec le principe de la règle de 3, je ne vois pas comment le faire sur des intervalles irréguliers. Pour une jauge régulière oui, mais je ne comprends pas comment pour une irrégulière.

Bonne soirée,

Hadrien
hadrien
 
Messages: 95
Inscription: 30/10/18
Localisation: Seilles, Belgique

Re: Interfacer Arduino et P3D

Messagede JacquesZ » Mar 16 Juil 2019 07:55

hadrien a écrit:Bonsoir,

Jacques, même avec le principe de la règle de 3, je ne vois pas comment le faire sur des intervalles irréguliers. Pour une jauge régulière oui, mais je ne comprends pas comment pour une irrégulière.

Bonne soirée,

Hadrien


Pour une jauge irrégulière, cela veut dire que le rapport de multiplication utilisé dans la règle de 3 va varier en fonction du secteur où se trouve ton aiguille, dont la valeur de Duty cycle aussi.

Donc comme dit Fab, le code va se complexifier un peu mais le principe reste simple.
1-il faut noter les angles de départ/arrivée de chaque secteur angulaire de ta jauge physique.
Pour chacun de ces angles correspond une valeur retournée par le simulateur.
2- on détermine la valeur correspondante de duty cycle à appliquer pour chacune de ces valeurs angulaires.
On a donc pour chacun des secteurs un coefficient à appliquer à l’angle de l’aiguille (règle de 3) pour obtenir le duty cycle dans le secteur concerné.
3- On ajoute des tests if valeur<Max then...else if... successifs qui permettent de déterminer dans quel secteur angulaire on se trouve et on applique le facteur correspondant pour obtenir la valeur de duty cycle désirée.

Jacques
Ma chaîne YouTube Tutos sur l’A320 par un Pilote de Ligne: https://youtube.com/channel/UCljftuoKBcgeR-WBgYJpuoA
Avatar de l’utilisateur
JacquesZ
 
Messages: 2848
Inscription: 24/11/10

Re: Interfacer Arduino et P3D

Messagede hadrien » Mar 30 Juil 2019 18:56

Bonsoir à tous,

Je souhaite me lancer dans une autre grosse étape du simu, le throttle system. Pour l'instant, j'ai les manettes saitek. Outre le côté plus réaliste d'un throttle qui ressemblerait visuellement davantage à celui d'un 737, j'aimerais surtout le motoriser. Le tout en utilisant Air manager et arduino évidemment. Je voulais donc savoir quels moteurs vous me conseillez, en sachant que je compte suivre le modèle de Juan Gordon (un autre belge comme moi) sur son site. Il faut donc qqch de suffisamment puissant. Mais également un modèle qui aurait une sorte de "point mort". C'est à dire un moteur dont l'axe de rotation serait "libéré", à savoir qu'il pourrait pivoter librement lorsque l'autothrottle est coupé (leviers en mode manuel). Est-ce qu'un tel moteur existe ? Avez-vous déjà utilisé ce genre de matériel ?

Bien à vous et merci d'avance,

Hadrien
hadrien
 
Messages: 95
Inscription: 30/10/18
Localisation: Seilles, Belgique

Re: Interfacer Arduino et P3D

Messagede fab » Mar 30 Juil 2019 20:04

Pour mette un moteur au point mort, il suffit de couper son alimentation ...

- Soit tu prends un moteur DC puissant ( avec un forte réduction) et il faudra mettre un embrayage entre les manettes et le moteur
- Soit tu prends un moteur pas à pas.

Le moteur pas à pas est une solution plus bruyante que le moteur DC.

Une vidéo d'un montage prototype avec moteur DC :


Et sa mise en application dans mon cockpit :


Je te recherche une vidéo avec un moteur pas à pas ...

La voilà :
Avatar de l’utilisateur
fab
 
Messages: 4417
Inscription: 26/12/12
Localisation: Roubaix

PrécédenteSuivante

Retourner vers LUA, Linda, Macros & gauges Air Manager





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 15 invités