Interfacer Arduino et P3D

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

Re: Interfacer switch Arduino et P3D

Messagede hadrien » Mer 2 Jan 2019 22:09

Bonsoir,
J'ai une nouvelle question concernant les arduino. Est-il possible de les utiliser pour faire fonctionner des jauges sur un overhead hardware? Je cherche en fait la jauge de pression des moteurs pour un 737-800. Savez-vous où je peux acheter cela et si c'est compatible avec arduino et air manager?
Merci d'avance,
Hadrien
hadrien
 
Messages: 95
Inscription: 30/10/18
Localisation: Seilles, Belgique

Re: Interfacer switch Arduino et P3D

Messagede hadrien » Ven 18 Jan 2019 12:56

hadrien a écrit:Bonsoir,
J'ai une nouvelle question concernant les arduino. Est-il possible de les utiliser pour faire fonctionner des jauges sur un overhead hardware? Je cherche en fait la jauge de pression des moteurs pour un 737-800. Savez-vous où je peux acheter cela et si c'est compatible avec arduino et air manager?
Merci d'avance,
Hadrien


J'ai un peu avancé dans me recherches et il est nécessaire, pour faire tourner les jauges, que la carte électronique puisse contrôler des servos. Le site sismo-soluciones me conseille ces trois éléments pour faire fonctionner ma jauge :
- https://sismo-soluciones.com/en/simcards-ethernet/64-simcard-14-servos-daughter.html
- https://sismo-soluciones.com/en/gauges/30-duct-press-dual-gauge-with-backlighting.html
- https://sismo-soluciones.com/en/simcards-ethernet/63-1066-simcard-mother-board-sc-mb-ethernet.html#/41-ethernet_cable-3m/132-power_supply-no_includedl

Toutefois, cela représente un budget fort élevé pour le fonctionnement d'une seule jauge. Je cherche donc un moyen de poursuivre avec les systèmes que j'ai déjà. Opencockpits vend également des jauges qui sont, selon eux, compatibles avec Arduino. Avez-vous déjà été confronté à ce que je cherche ? Quelles solutions avez-vous trouvé ?

Merci à tous,

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

Re: Interfacer switch Arduino et P3D

Messagede fab » Ven 18 Jan 2019 14:24

Si je peux me permettre, tu as une solution Française à disposition yeuxhaut
Elle n'utilise pas d'arduino, elle est autonome mais tu peux mixer les systèmes ... pas de programmation, fonctionne avec FSUIPC.

Une vidéo de présentation rapide du système :



http://fabien.deheegher.free.fr/FD/cat/FDbus/index.htm#X27


Une présentation lors d'un salon :


Tu réalises l'habillage de ta jauge ou tu me commande un kit sur mesure :



http://fabien.deheegher.free.fr/FD/cat/FDbus/index.htm#KIT

Fabien
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: Interfacer switch Arduino et P3D

Messagede hadrien » Jeu 7 Fév 2019 12:18

Bonjour à tous,

Je reviens vers vous pour solliciter votre aide car je sèche sur l'interfaçage d'un servo moteur avec ma carte Arduino mega.

Voici le code que j'ai entré en guise de test. Il a été intégralement repris du site siminnovation, histoire de simplement tester et comprendre. J'ai acheté la double jauge d'air duct pressure. Ici, je test l'un des servo moteur comme s'il indiquait les flaps (car ce sont les flaps dans l'exemple Siminnovation). Voici le code :

output_id = hw_output_pwm_add("ARDUINO_MEGA2560_P_D7", 50, 0.05)

function new_data_xpl(flaps)
-- We change the duty cycle runtime, between 5 and 15%
-- These values are about right for a TowerPro SG90 servo
print(flaps)
hw_output_pwm_duty_cycle(output_id, 0.05 + (0.1 * flaps) )
end

fsx_variable_subscribe("PMDG 737NGX:MAIN_TEFlapsNeedle:1", "NUMBER", new_data_xpl)


Le programme ne comporte pas de bug et il tourne. D'ailleurs, le print(flaps) me renvoie bien une valeur en fonction de l'état d'ouverture ; soit entre 0.00000 et 40.00000.

Là où je ne comprends plus et où je cale, c'est dans le hw_output_pwm_duty_cycle. Je ne sais pas trop ce que je dois obtenir, et surtout, mon servo moteur en hardware ne réagit absolument pas. Savez-vous quelles infos le servo moteur doit recevoir ? J'ai effectué le branchement comme indiqué ici (https://www.carnetdumaker.net/articles/controler-un-servomoteur-avec-une-carte-arduino-genuino/). J'ai aussi un moteur sg90, avec les mêmes couleurs que sur cet exemple. A savoir, mon fil marron sur le GND, le rouge central sur la pin pwm 7, et le orange sur le 5v. Il s'agit d'un servo acheté sur (https://www.cockpitsimparts.co.uk/). En ce qui concerne mon arduino, elle est reliée par usb mais aussi branchée à une alimentation de 9v.

Merci de votre aide,

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

Re: Interfacer switch Arduino et P3D

Messagede fab » Jeu 7 Fév 2019 13:26

Il semblerait que tu ne branches pas correctement tes servo comme je le montre sur mon site :

Image

mon fil marron sur le GND,
le rouge central sur la pin pwm 7,
et le orange sur le 5v.


Alors que pour le modèle Graupner :

Le rouge +
le marron -
L'orange signal (pwm)
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: Interfacer switch Arduino et P3D

Messagede hadrien » Sam 9 Fév 2019 11:19

Ok ça marche, merci ! Par contre, j'ai du me mettre sur la pwm 6 car la 7 restait inactive...
hadrien
 
Messages: 95
Inscription: 30/10/18
Localisation: Seilles, Belgique

Re: Interfacer switch Arduino et P3D

Messagede tabar57 » Sam 9 Fév 2019 11:35

Peut être que tes manips précédentes ont "cramé ta pwm 7 ? murrouge
Ou alors des restes dans ton programme ?

Bernard
Mon blog de construction : http://tabar57.blog4ever.com
Hémicockpit de Beechcraft B200 ( de FlightOne ) P3DV4.5 et 2 PC en réseau W7 64 bits et W10, cartes OC et FDbus, vibreur et yoke rdf de BFFsimulation, météo réelle asp4
Avatar de l’utilisateur
tabar57
 
Messages: 3651
Inscription: 29/12/10
Localisation: Dans ma cabine en Lorraine

Re: Interfacer switch Arduino et P3D

Messagede hadrien » Sam 9 Fév 2019 12:19

Je n'en sais rien, peut-être... ;-)

Par contre, j'ai du mal à calibrer ma jauge. J'ai lu que pour une arduino, avec le programme arduino, on peut maper une pwm afin d'indiquer les valeurs entre lesquelles on va opérer. Comment fait-on cela sur AirManager ? Je m'explique.

Voici mon code actuel :

airduct_R_engine = hw_output_pwm_add("ARDUINO_MEGA2560_P_D6", 50, 0.05)

function R_engine_air_callback (Val)
print (Val)
hw_output_pwm_duty_cycle(airduct_R_engine, (Val / 100))

end

fsx_variable_subscribe("PMDG 737NGX:AIR_DuctPressNeedle:2", "NUMBER", R_engine_air_callback)


La variable fsx (renvoyée par p3D ici) se situe en 0 et 80. Toutefois, une fois à une donnée fsx de 13 (soit duty cycle 13%) , mon moteur semble être arrivé au bout de sa rotation (il fait en gros 1 tour et 1/4 plus ou moins). Or, je voudrais qu'il ne dépasse pas au maximum 80% d'un tour. De plus, il semble qu'il réagisse par "paliers". En effet, lorsque j'entre une valeur fsx de 1, le duty cycle se met à 1% et le moteur bouge. Par contre, si j'entre ensuite une valeur fsx de 2, le duty cycle se met bien à 2% mais le moteur ne bouge pas. Comment rendre le moteur "plus sensible et plus précis" ?

Avez-vous déjà rencontré ce problème et connaissez-vous des solutions ?

Que signifie exactement la fréquence en hz qu'on entre dans "hw_output_pwm_add" car je ne trouve pas l'explication sur Siminnovation ou alors je ne la comprends pas. De la même manière, qu'est-ce exactement que le duty cycle ? Parce que j'ai un peu l'impression de tester différents types de nombre mais je ne vois pas trop à quoi cela correspond. Et j'avoue que les explications des codes sur Siminnovation sont un peu light à ce sujet.

Merci d'avance,

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

Re: Interfacer switch Arduino et P3D

Messagede JacquesZ » Sam 9 Fév 2019 14:06

L'implantation des PWM est assez récente sur AM.

Le duty cycle est le temps où le signal est à l'état "haut" (+5V), sur la durée d'un cycle (fréquence de répétition du signal).
Avec un Duty Cycle de 0% la led ou le moteur est éteint 100% du temps de cycle, de 25% la led ou le le moteur est alimenté 25% du temps, etc... selon la fréquence prévue dans l'Arduino (pour ça il y a des histoires de multiplicateurs basés sur les 16Mhz de l'horloge de base de l'Arduino, mais je ne suis pas très calé là dessus).

On dirige le servo en lui envoyant une impulsion de largeur spécifique, variant habituellement entre 1 et 2 ms: Le duty cycle est parfait pour ça. En faisant varier le duty cycle entre 0.0 et 1.0, tu vas faire varier la largeur de l'impulsion envoyée au moteur

Il faut donc avoir les spécifications de ton servo pour connaître la fréquence de fonctionnement globale, plus la largeur de l'impulsion à envoyer pour le faire tourner dans un sens ou dans l'autre. Car le duty cycle sera peut être dans ton cas à adapter, il ser peut être seulement entre 0.2 et 0.5. Il faut tout d'abord trouver quel duty cycle centre le moteur, puis diminuer progressivement et augmenter ensuite jusqu'à trouver les duty cycle limite haute et basse.

Sinon nayant pas de micro moteur je n'ai jamais testé, mais pourquoi ne vas-tu pas poser la question directement sur le forum d'AM? Corjan et Ralph les développeurs, sont très réactifs et quelques membres du forum AM sont assez pointus pour tout ce qui est Arduino.

Jacques
Dernière édition par JacquesZ le Sam 9 Fév 2019 14:41, édité 2 fois.
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 switch Arduino et P3D

Messagede hadrien » Sam 9 Fév 2019 14:18

Je vais faire ça. Par contre, je suis relativement une quille en anglais. Je viendrais peut-être vous demander un coup de main pour comprendre la réponse ;-)
hadrien
 
Messages: 95
Inscription: 30/10/18
Localisation: Seilles, Belgique

PrécédenteSuivante

Retourner vers LUA, Linda, Macros & gauges Air Manager





Qui est en ligne

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

cron