Interfacer Arduino et P3D

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

Re: Interfacer Arduino et P3D

Messagede fab » Jeu 13 Juin 2019 17:26

hadrien a écrit: ... Sans doute les cracs en informatique que vous êtes pourrez m'expliquer.


C'est plus électronique qu'informatique cligneoeil

Tu as découvert la tension de seuil des LED.
Une rouge a une tension d'environ 1.2v
Une verte a une tension d'environ 1.8v / 2V
Une blanche ou une bleue, une tension de 3V

Dans ton cas, une LED "bouffe" tout le courant de l'autre, je dirai celle qui à la tension de seuil la plus faible

J'ai fait la démo ici :



Comment régler la chose ?

En mettant une résistance différente par LED selon la tension de seuil.

Pour faire le calcul, il te faudra la tension d'alimentation, la tension de seuil de chaque LED et l'intensité souhaitée.

Pour l'exemple je vais choisir 12v en alimentation et 0.010 A pour l'intensité

Je prends comme tension de seuil 1,8v pour la LED verte et 3v pour la LED blanche ce qui donne :
- pour la LED verte (12v-1.8v)/0.010 = 1k
- Pour la LED blanche (12v-3v)/0.010 = 890

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

Re: Interfacer Arduino et P3D

Messagede hadrien » Jeu 13 Juin 2019 19:05

Merci Fab pour ta réponse rapide. Je vais faire ça.

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

Re: Interfacer Arduino et P3D

Messagede hadrien » Jeu 27 Juin 2019 15:44

Bonjour à tous,

J'avance sur mon MCP. J'en arrive à la partie programmation. Et je dois avouer que je coince sur les rotary encoders pour le MCP. Après m'être rendu compte grâce à Jacques que les variables PMDG n'étaient pas disponibles en écriture, j'ai du trouver une autre solution. Comme j'utilisais avant la suite Saitek grâce à Spadnext, je suis allé voir comment ce dernier réglait le problème. En fait, il existe des events PMDG qui correspondent à ces variables (PMDG 737NGX:EVT_MCP_COURSE_SELECTOR_L dans mon exemple). Voici mon exemple de code pour l'encodeur "course left" du MCP :

function course_dialchange_callback(direction)

if direction == 1 then
fsx_event("PMDG 737NGX:EVT_MCP_COURSE_SELECTOR_L", 8192)
end

if direction == -1 then -- sens horloger
fsx_event("PMDG 737NGX:EVT_MCP_COURSE_SELECTOR_L", 16384)
end

end

course_dialchange = hw_dial_add("ARDUINO_MEGA2560_G_D38", "ARDUINO_MEGA2560_G_D39", course_dialchange_callback)


A noter que la solution fournie par Spadnext est que la valeur 8192 correspond à diminuer le degré de course et 16384 l'augmenter. Mon soucis est qu'à chaque "cran" de mon rotary, la valeur de "course" dans P3D diminue/augmente de 2 ou 3 au lieu de diminuer/augmenter d'unité par unité. Avez-vous une idée de solution pour résoudre ce problème ? Ce qui est étrange, c'est que le rotary de Saitek, avec les mêmes valeurs, diminue bien de 1 à la fois. Et le mien non. Comment puis-je solutionner ce problème ? Car je cale là.

Je reviendrai aussi sans doute vers vous pour un soucis d'affichage digital. Car Jacques m'avait proposé une solution qui avait fonctionné en test, mais maintenant que tout est monté, les afficheurs n'indiquent plus rien alors que les bonnes valeurs sont pourtant reçues dans les variables. Je vais refaire mes connections hardware puis je verrai le résultat.

Bonne fin d'après-midi à tous,

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

Re: Interfacer Arduino et P3D

Messagede fab » Jeu 27 Juin 2019 18:28

1ère question : Tu utilises quel modèle d'encodeur ?
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: Interfacer Arduino et P3D

Messagede JacquesZ » Jeu 27 Juin 2019 19:21

Salut Hadrien

Fab a probablement mis le doigt sur le problème, le type d’encodeur déclaré dans ton code n’est pas le bon.
Il y a deux/trois paramètres optionnels à régler, le type et la valeur d’accélération, ainsi que probablement l’anti rebond.
https://siminnovations.com/wiki/index.php?title=Hw_dial_add

Code: Tout sélectionner
hw_dial_id = hw_dial_add(hw_id_a, hw_id_b, type, acceleration, debounce, callback) —(from AM/AP 3.5)
(Optional) Type of rotary encoder. Can be "TYPE_1_DETENT_PER_PULSE", "TYPE_2_DETENT_PER_PULSE" or "TYPE_4_DETENT_PER_PULSE".

Faut tester les valeurs possibles, il y a 3 types d’encodeur, à toi d’essayer!

Il faut aussi t’assurer que tu as installé la dernière version d’AM mais aussi du plugin, qui est mis à jour indépendamment.
https://siminnovations.com/wiki/index.php?title=Flight_Simulator_Plugins_Installation

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 JacquesZ » Jeu 27 Juin 2019 19:35

Pour ta deuxième question, il te faut publier ton code.
Et vu les modifs que tu as faites sur tes circuits, quelques photos du montage ne seront pas de trop pour que les électroniciens du forum puissent t’aider.

Puis-je te suggérer de publier ta question directement (en anglais) sur le forum de Sim Innovations?
Avantages:
1-tu vas pratiquer ton anglais lunettesnoires
2- je ne serai plus seul à t’aider car je suis un poil occupé la en ce moment, je viens juste de trouver un nouveau poste et je suis pas mal prus avec les cours au sol, le simu et l’OPC (Operator Conversion Course), line check et autres...
3- les développeurs pourront debugger en direct si nécessaire (session TeamViewer)

Jacques
(Qui passe de 18 à 20 sourirebis )
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 A320 hérétique » Jeu 27 Juin 2019 20:50

Hello Jacques, (pardon Hadrien, une incidente au ton post).

Un nouveau job, super nouvelle grandsoleil , de mémoire ton job actuel s'achevait cette année ...
En plus, ton employabilité augmente avec les heures, tout bon ; c est quoi, si pas trop indiscret ?

Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 3080 Ti sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3355
Inscription: 2/09/12
Localisation: Pornic

Re: Interfacer Arduino et P3D

Messagede JacquesZ » Jeu 27 Juin 2019 21:29

Bravo Michel, tu as bonne memoire lunettesnoires
Toujours copi,mais sur A320 ce coup-ci, pour une compagnie bulgare qui opère en Arabie Saoudite pour Saudi Gulf.
La température va augmenter, mais le salaire aussi, et ça c’est une bonne nouvelle grandsoleil

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 27 Juin 2019 22:22

Tout d'abord, félicitations Jacques !!!

Concernant mes afficheurs digitaux, problème réglé. J'avais simplement câblé sur la mauvaise série de broches du max7219. Il y a en effet 5 petits "trous" sur les côtés pour faire les connexions. Je pensais que c'était les mêmes. J'avais testé sur celui de gauche et branché au final sur celui de droite. Mon erreur était là. J'ai inversé, et tout fonctionne nickel.

Concernant mes encodeurs rotatifs, il s'agit de ceux-ci : https://fr.aliexpress.com/item/32864246557.html?spm=a2g0o.detail.1000016.1.2afd61a6IxPRRY&isOrigTitle=true. Je vais essayer ce que vous m'avez indiqué. Mais je vais devoir fonctionner à l'aveugle car je ne comprends pas trop les spécificités techniques ni à quoi correspondent les précisions à faire sur AM. Une idée ?

Bonne soirée,

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

Re: Interfacer Arduino et P3D

Messagede hadrien » Jeu 27 Juin 2019 22:34

Re-bonjour à tous,

Concernant mes encodeurs rotatifs, il s'agit de ceux-ci : https://fr.aliexpress.com/item/32864246 ... Title=true. Je vais essayer ce que vous m'avez indiqué. Mais je vais devoir fonctionner à l'aveugle car je ne comprends pas trop les spécificités techniques ni à quoi correspondent les précisions à faire sur AM. Une idée ?


Problème réglé ! Si jamais, pour ceux que ça intéresse, voici un bout de code fonctionnel pour ceux qui utiliseraient le même genre d'encodeur rotatif. Il s'agit du code pour l'encodeur rotatif du "course left" du MCP.

Code: Tout sélectionner
function course_dialchange_callback(direction)
   
   if direction == 1 then
    fsx_event("PMDG 737NGX:EVT_MCP_COURSE_SELECTOR_L", 8192)
    end

    if direction == -1 then -- sens horloger
    fsx_event("PMDG 737NGX:EVT_MCP_COURSE_SELECTOR_L", 16384)
    end
end

course_dialchange = hw_dial_add("ARDUINO_MEGA2560_G_D38", "ARDUINO_MEGA2560_G_D39", "TYPE_1_DETENT_PER_PULSE", 1, 10,course_dialchange_callback)


Merci à Fab et Jacques pour votre aide toujours si précieuse ! Et Jacques, encore félicitations et bonne chance pour cette nouvelle aventure !

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 3 invités