Page 3 sur 22

Re: Interfacer switch Arduino et P3D

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

Re: Interfacer switch Arduino et P3D

MessagePosté: Lun 24 Déc 2018 11:28
de hadrien
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

Re: Interfacer switch Arduino et P3D

MessagePosté: Lun 24 Déc 2018 16:26
de JacquesZ
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

Re: Interfacer switch Arduino et P3D

MessagePosté: Mar 25 Déc 2018 06:29
de JacquesZ
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

Re: Interfacer switch Arduino et P3D

MessagePosté: Mar 25 Déc 2018 11:17
de tabar57
Bonjour,

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

Cordialement

Bernard

Re: Interfacer switch Arduino et P3D

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

Re: Interfacer switch Arduino et P3D

MessagePosté: Jeu 27 Déc 2018 16:08
de hadrien
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

Re: Interfacer switch Arduino et P3D

MessagePosté: Jeu 27 Déc 2018 18:56
de JacquesZ
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

Re: Interfacer switch Arduino et P3D

MessagePosté: Jeu 27 Déc 2018 22:08
de JacquesZ
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

Re: Interfacer switch Arduino et P3D

MessagePosté: Ven 28 Déc 2018 08:04
de hadrien
Merci Jacques, je vais donc chercher cela.

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

Hadrien