Interfacer switch Arduino et P3D

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

Interfacer switch Arduino et P3D

Messagede hadrien » Sam 3 Nov 2018 12:18

Bonjour à tous,

Je ne sais pas si ce sujet a déjà été abordé, mais si oui, pourriez-vous me dire où et je supprime ma question.

J'ai pour projet de réaliser une partie d'une overhead panel pour mon PMDG 737. Je compte le matérialiser avec des cartes arduino et l'interfacer via Air Manager. J'ai tenté un test pour le switch des taxi lights mais je n'arrive pas à le faire fonctionner. Après plusieurs questions à Ralph de Sim Innovations (qui m'a orienté vers des tuto), je suis parvenu à un code lua sans bug mais qui ne fonctionne pas dans le jeu. Je vous poste ici trois images : la première comprend le texte de mon code, les autres sont deux photos de ma carte et du raccordement au switch. Quelqu'un voit-il où se trouve l'erreur ?

Je précise d'avance que je ne suis pas informaticien et un vrai débutant en électronique, donc pas très sûr de mes branchements. J'ai eu quelques cours de programmation pendant mes études, mais c'était sur le langage Perl.

Image 1 : script
[img][img]https://zupimages.net/up/18/44/wwt1.jpg[/img][/img]

Image 2 : montage (1)
[img][img]https://zupimages.net/up/18/44/67o8.jpg[/img][/img]

Image 2 : montage (2)
[img][img]https://zupimages.net/up/18/44/4snj.jpg[/img][/img]

Merci d'avance pour vos conseils,

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

Re: Interfacer switch Arduino et P3D

Messagede JacquesZ » Sam 3 Nov 2018 21:36

Bonjour et bienvenue Hadrien

Première question bête: as tu activé l’option Enable broadcast dans PMDG?

Il faut rajouter la ligne suivante dans le fichier 737NGX_Options.ini
Sous la section SDK, à créer si elle n’existe pas.
Code: Tout sélectionner
[SDK]
EnableDataBroadcast=1


Jacques
i7 4770K, CM Asus Hero, 16Go, DD1To & SSD 500Go, GTX780Ti et GTX970,win 7 64b FSX
3 x 22" sur Matrox Th2Go + 2 x TV 32"
Tdb: 1 x 17" + 1 x 19"
Saitek Multi & radio panel, GNS430 Emuteq, FFB Yoke Brunner
Arduino MEGA+LeoBodnar
Avatar de l’utilisateur
JacquesZ
 
Messages: 1872
Inscription: 24/11/10

Re: Interfacer switch Arduino et P3D

Messagede JacquesZ » Sam 3 Nov 2018 22:34

Quelques remarques vite fait en regardant ton code:
Tu ne PEUX PAS configurer la position d’un switch hardware a partir d’une variable quelle qu’elle soit, comme tu essaies de le faire dans ta fonction dataref_callback(). Ça ne marche que dans dans un seul sens, tu lis la position du switch via l’Arduino et tu envoies une commande à FSX/PMDG.

Donc dans ton code la fonction callback() est fonctionnelle, l’autre datatef_callback() et le fsx_subscribe() sont inutiles.
En revanche dans la fonction fsx_event(), il faut envoyer une valeur 0 ou 1 en plus de l’événement.
Et l’appel à la la fonction callback par l’Arduino ne renvoie qu’un seul argument, pas deux... lunettesnoires

Au niveau hardware, la deuxième broche de ton inter doit être connectée a la pin D3 de l’arduino, celle du milieu est bien à la masse. Il manque donc un fil!
A noter également que tu utilises une Arduino Mega 2560, donc le hardwareId est différent.

Donc tu devrais avoir plutôt quelquechose comme ça :
Code: Tout sélectionner
function callback_taxi_lights(position)
If position==1 then
    fsx_event(“PMDG 737NGX:EVT_OH_LIGHTS_TAXI”,1)
else
    fsx_event(“PMDG 737NGX:EVT_OH_LIGHTS_TAXI”,0)
end
end

hw_switch_add("ARDUINO_MEGA2560_A_D2”,”ARDUINO_MEGA2560_A_D3”,callback_taxi_lights)


Jacques
i7 4770K, CM Asus Hero, 16Go, DD1To & SSD 500Go, GTX780Ti et GTX970,win 7 64b FSX
3 x 22" sur Matrox Th2Go + 2 x TV 32"
Tdb: 1 x 17" + 1 x 19"
Saitek Multi & radio panel, GNS430 Emuteq, FFB Yoke Brunner
Arduino MEGA+LeoBodnar
Avatar de l’utilisateur
JacquesZ
 
Messages: 1872
Inscription: 24/11/10

Re: Interfacer switch Arduino et P3D

Messagede lolosimule » Sam 3 Nov 2018 23:35

hadrien a écrit:raccordement au switch. Quelqu'un voit-il où se trouve l'erreur ?

bonsoir, Hadrien

pour moi . . . le branchement et correct
il y a deux solutions
1- il faut juste activer par "soft" la resistance (pull/up) interne de l'Arduino.
de l'entrée que tu veux lire . . . ici D3 !
2- si non, il te manque une résistance de charge entre le +5v et l'entrée D3
pour que ton niveau passe de +5v à 0v
lolosimule
 
Messages: 499
Inscription: 1/05/16

Re: Interfacer switch Arduino et P3D

Messagede hadrien » Dim 4 Nov 2018 10:44

Bonjour,

Je viens de tester la solution proposée par JacquesZ. Tout fonctionne à merveille, merci JacquesZ ! Je vais pouvoir bricoler mes switchs.

J'ai encore une question. Si je veux construire mon overhead. Dans AirManager, il vaut mieux faire 1 script par bouton ou je dois faire 1 script pour tout l'overhead, en mettant tous les boutons et toutes les Arduino dans le même script de code ? En gros, il vaut mieux un seul énorme script ou tout plein de petits, avec par exemple un pour les taxi lights, un autre pour les landing lights, un autre pour les logo lights, ...

Merci encore pour votre aide précieuse, j'y serais pas arrivé seul.

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

Re: Interfacer switch Arduino et P3D

Messagede JacquesZ » Lun 5 Nov 2018 00:29

Content que ca aie marche du premier coup, car j’avais pas teste, étant loin de mon PC.
Pour ta question, j’ai pas trop de recul car l’Arduono sous AM est une fonction récente, mais j’imagine qu’un gros script sera plus facile à maintenir qu’une multitude de petits.A toi d’utiliser les commentaires en Lua pour bien structurer tout ça.

De plus il te faudra intégrer le fait que certains switches sont dépendants de la position d’autres (a commencer par la batterie et/ou la gêne électrique), donc ce sera plus facile d’avoir des variables d’etat Communes dans un script unique, plutôt que des scripts séparés qui devraient communiquer entre eux(ce qui est possible via les variables d’intercommunicatiob)

Jacques
i7 4770K, CM Asus Hero, 16Go, DD1To & SSD 500Go, GTX780Ti et GTX970,win 7 64b FSX
3 x 22" sur Matrox Th2Go + 2 x TV 32"
Tdb: 1 x 17" + 1 x 19"
Saitek Multi & radio panel, GNS430 Emuteq, FFB Yoke Brunner
Arduino MEGA+LeoBodnar
Avatar de l’utilisateur
JacquesZ
 
Messages: 1872
Inscription: 24/11/10

Re: Interfacer switch Arduino et P3D

Messagede hadrien » Lun 5 Nov 2018 22:07

Merci JacquesZ pour tous tes conseils. J'essaierai ça la prochaine fois que je serai en congé.
hadrien
 
Messages: 7
Inscription: 30/10/18
Localisation: Seilles, Belgique


Retourner vers LUA, Linda, Macros & gauges Air Manager





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité