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 JacquesZ » Lun 24 Déc 2018 10:48

Pour l’eclairage De l’OVH, il faut regarder la liste des variables que je t’ai indiquée.
On trouve ça:
PMDG 737NGX:LTS_OvereadPanelKnob NUMBER Position 0...150

Ce qui veut dire qu’à mon avis si tu envoies une valeur comprise entre 0 et 150 dans cette variable, plutôt qu’un Évent qui est du genre « tout ou rien », tu feras varier la luminosité de l’OVH.
Utilises pour ce faire fsx_variable_write() dont la syntaxe est indiquée également dans le lien précédent.

Fais des essais avec différentes valeurs fixes pour vérifier que ça fonctionne bien, ensuite tu peux passer à l’interfaçage hardware.
Il faut juste associer ce que te retourne le potentiomètre (il faut connaître la gamme des valeurs retournées via des print() qui ne serviront qu’au debuggage) à une gamme de valeurs comprise entre 0 et 150, et le tour est joué.

Bonne fêtes.

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 switch Arduino et P3D

Messagede hadrien » Lun 24 Déc 2018 11:28

Mon potentiomètre retourne des valeurs entre 0.0 et 1.0, ou 0.0 est le minimum, et 1.0 le maximum.

Bonnes fêtes également,

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

Re: Interfacer switch Arduino et P3D

Messagede JacquesZ » Lun 24 Déc 2018 16:26

Bon ben on y voit plus clair!
Il faut transmettre une valeur entre 0 et 150 à la variable indiquée plus haut via
fsx_variable_write("PMDG 737NGX:LTS_OvereadPanelKnob", "NUMBER",Val)

Avec Val qu’on obtient via une règle de 3 à partir de pot_value:
Val=150*pot_value

Je pense que ça devrait fonctionner, pour autant que la LVar soit autorisée en écriture, mais y’a pas de raisons que ce ne soit pas le cas.

Bon courage

Jacques
Dernière édition par JacquesZ le Mar 25 Déc 2018 06:38, édité 1 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 JacquesZ » Mar 25 Déc 2018 06:29

Val=var_round(pot_value*150,0)

Ou bien:

Val,frac=math.modf(pot_value*150)

sera plus approprié que simplement Val=pot_value*150, car il transmet un nombre entier à la LVar.
NB: Dans le deuxième exemple,la variable frac contient la partie fractionnaire du nombre, qu’on utilise pas.

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 switch Arduino et P3D

Messagede tabar57 » Mar 25 Déc 2018 11:17

Bonjour,

Déjà levé grandsoleil et au boulot un jour de Noel lolaffiche

Cordialement

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 » Mar 25 Déc 2018 23:16

Un tout grand merci Jacques pour toutes ces infos. Je teste ça dès que j'ai un peu le temps. Pour le moment, c'est soudure à gogo pour mes leds..

Encore de joyeuses fêtes à tous,

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

Re: Interfacer switch Arduino et P3D

Messagede hadrien » Jeu 27 Déc 2018 16:08

Bonjour,

Jacques, j'ai testé tes propositions pour mes potentiomètres, cela ne fonctionne pas. J'ai testé les deux versions de ce que tu m'as donné, et aucune réaction de P3D :
function circuit_breaker(pot_value)
Val=150*pot_value
fsx_variable_write("PMDG 737NGX:LTS_CircuitBreakerKnob","NUMBER",Val)
end

function light_panel(value)
Val,frac=math.modf(value*150)
fsx_variable_write("PMDG 737NGX:LTS_OvereadPanelKnob","NUMBER",Val)
end

hw_adc_input_add("ARDUINO_MEGA2560_B_A2", circuit_breaker)
hw_adc_input_add("ARDUINO_MEGA2560_B_A1", light_panel)


De même, si je force la valeur dans la console Air Manager (en faisant bouger le curseur sur la jauge du potentiomètre), la nouvelle valeur créée n'est pas écrite et transmise. J'ai essayé de débugger en ajoutant des print à chaque étape. Dans l'exemple ci-dessous, le programme me renvoie bien en print un nombre en 0 et 150, mais le bouton du panel lights ne bouge pas pour autant...

function light_panel(value)
print(value)
Val,frac=math.modf(value*150)
print(Val)
fsx_variable_write("PMDG 737NGX:LTS_OvereadPanelKnob", "NUMBER", Val)
end

hw_adc_input_add("ARDUINO_MEGA2560_P_A1", light_panel)


De plus, j'ai un autre soucis, quand je mets le code des potentiomètres et que j'ajoute le hardware, ma carte Arduino semble mettre une plombe à réagir dans le jeu. Par exemple, quand j'active un switch, il faut au moins 10 secondes pour que cela bouge dans le jeu. Et je suis quasi sûr que le problème est lié aux potentiomètres car quand je passe les lignes de code y correspondant en commentaire (en gros je les désactive en ajoutant des -- devant toutes les lignes), le jeu réagit de nouveau normalement à mes actions sur le hardware.

Merci pour vos éclaircissements,

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

Re: Interfacer switch Arduino et P3D

Messagede JacquesZ » Jeu 27 Déc 2018 18:56

Ben là, à part un problème avec les LVars de PMDG en lui même qui ne sont dispos qu’en lecture je vois pas.

Si tu crées un instrument de test avec juste une variable_write midifiée manuellement à 0 puis à 150 pour voir ça ne fonctionne pas?

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 switch Arduino et P3D

Messagede JacquesZ » Jeu 27 Déc 2018 22:08

Bon. Il semblerait d’apres la doc fsuipc que les les variables PMDG soient en lecture seule, donc le seul moyen d’interragir serait de trouver un évent correspondant.
https://fsuipc.simflight.com/beta/Offset_Mapping_PMDG737NGX.pdf

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 switch Arduino et P3D

Messagede hadrien » Ven 28 Déc 2018 08:04

Merci Jacques, je vais donc chercher cela.

Pour les leds, merci ça marche super! À moi les centaines de lignes de code!

Hadrien
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 2 invités