Interfacer Arduino et P3D

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

Re: Interfacer Arduino et P3D

Messagede hadrien » Ven 6 Sep 2019 12:29

Je ne suis pas sûr que ce soit lié à la carte de mauvaise qualité car l'une des cartes sur lesquelles sont branchées mes jauges est une vraie arduino (sur laquelle il n'y a d'ailleurs que deux jauges, le reste est vide). De plus, c'est bizarre d'avoir un soucis qui perdure avec un test sur plusieurs cartes.

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

Re: Interfacer Arduino et P3D

Messagede JacquesZ » Ven 6 Sep 2019 13:14

Je vois que tu utilises encore la "vieille" méthode d'attribution des pins en hardware pour le PWM.
Sim Innovations déconseille maintenant cette méthode, il vaut mieux utiliser la nouvelle syntaxe des broches nommées, AM te présentera au lancement une liste des broches à affecter.
Code: Tout sélectionner
airduct_R_engine =  = hw_output_pwm_add("Airduct_R", 50, 0.075)

au lieu de
Code: Tout sélectionner
airduct_R_engine = hw_output_pwm_add("ARDUINO_MEGA2560_E_D5", 50, 0.075)

http://siminnovations.com/wiki/index.php?title=Hw_output_pwm_duty_cycle
A essayer.

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 » Ven 6 Sep 2019 13:25

Tu es sûr de tes valeurs de duty cycle, parce que des valeurs de ce genre, ça va au delà des specs du SG90.
Max:2ms==> Duty cycle 0.1
Min:1ms==> Duty cycle 0.05
Milieu: 1.5ms==> Duty cycle de 0.075

donc à priori cette partie de code ne peut pas fonctionner (valeurs>0.1)
Code: Tout sélectionner
   if Val == 15.0   then
   hw_output_pwm_duty_cycle(L_flaps_gauge, 0.1055)
   end
   
   if Val == 25.0   then
   hw_output_pwm_duty_cycle(L_flaps_gauge, 0.112)
   end
   
   if Val == 30.0   then
   hw_output_pwm_duty_cycle(L_flaps_gauge, 0.118)
   end
   
   if Val == 40.0   then
   hw_output_pwm_duty_cycle(L_flaps_gauge, 0.125)


pour expérimenter, tu peux créer une valeur "duty_cycle" et la changer directement dans la console pour voir si les aiguilles bougent correctement.
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 » Ven 6 Sep 2019 16:03

Je vais essayer la nouvelle implémentation. Juste une question : le hardware nommé, c'est juste pour le PWM ou c'est valable pour tout ? Histoire de savoir si je dois changer toutes mes attributions dans tous mes interrupteurs, leds, etc... Pcq j'ai 3000 lignes de code, il y a un sacré boulot !!! =====> Bon, ben j'ai vérifié, cette méthode semble être à appliquer partout. Youpiiiiie, suis bon pour prendre note de toutes mes implémentations hardware, trouver des noms sympas, et tout réattribuer après. J'ai hâte.... murrouge murrouge murrouge murrouge

Pour les valeurs des dutycycle dans les flaps, elles fonctionnaient parfaitement il y a 1 mois. Je n'ai absolument rien changé. Tu peux même le voir précédemment dans les posts de ce forum où j'avais déjà posté ce code, elles sont les mêmes. Je n'ai absolument rien changé au code. C'est en bas de la page 13. Bon ok, c'était le code pour l'autre jauge de flaps mais les valeurs finales sont similaires... C'est justement ça que je ne comprends pas : si les valeurs de dutycycle étaient mauvaises dans ce code, pourquoi a-t-il fonctionné correctement puis maintenant plus du tout ?

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

Re: Interfacer Arduino et P3D

Messagede hadrien » Sam 7 Sep 2019 09:22

Je viens de faire des tests sur mes SG90. A priori ils fgonctionnent, mais la fourchette de dutycylcle semble avoir changée. Elle ne situe plus entre 0,05 et 0,1, mais entre 0,01 et 0,062. J'ai essayé en entrant les dutycyle manuellement. En-dessous de 0,01, le moteur ne réagit plus, pareil au-dessus de 0,062. C'est quand même étrange que ces valeurs se soient modifiées comme ça... non ?

Sinon voilà, problème réglé pour les flaps. J'ai du réécrire toutes les valeurs de dutycycle en le recherchant à nouveau manuellement, dans la fourchette 0,01 et 0,06. Pour le soucis des jauge du press duct, je suppose qu'un simple changement du dutycycle initial de 0,05 à 0,01 dans le pwm_add règlera le soucis, non ?

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

Re: Interfacer Arduino et P3D

Messagede JacquesZ » Sam 7 Sep 2019 14:15

Très bizarre parceque les specs des SG90 sont claires au niveau des Duty cycle.
Peut-être que le fait de les avoirs fait fonctionner hors limite précédemment (voir post précédent) les a déréglés?
Je n’y connais rien en Servomoteur peut être que Fab pourra nous éclairer la dessus.
Content que tu aies trouvé la solution, même si un peu tirée par les cheveux.

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 » Sam 7 Sep 2019 14:46

Ce qui est étrange, c'est que les servo moteurs des flaps que je viens de régler sont des moteurs neufs, qui n'ont donc pas été soumis à cet ancien code. Je trouve aussi que c'est très étrange. Mais bon, tant que ça marche.... mais c'est vrai que j'aurais aimé comprendre le pq du comment. Si il y a un spécialiste des moteurs par ici qui semble avoir une excplication, je suis preneur.
hadrien
 
Messages: 95
Inscription: 30/10/18
Localisation: Seilles, Belgique

Re: Interfacer Arduino et P3D

Messagede fab » Sam 7 Sep 2019 14:48

Tout ce que je sais, c'est que si on dépasser les limites, les servo partent en butée et ils crament furieuxfumée
C'est un des problème des cartes OC, qui pour des raisons d'exploitation d'une amplitude max des servo, dépassent les valeurs limites, et si l'utilisateur ne bride pas manuellement la course .... pfff en fumé le servo yeuxhaut

J'ai suivi le sujet, et je ne comprends pas trop ce qui ce (c'est) passé ?
Avatar de l’utilisateur
fab
 
Messages: 4414
Inscription: 26/12/12
Localisation: Roubaix

Re: Interfacer Arduino et P3D

Messagede JacquesZ » Sam 7 Sep 2019 17:24

Alors j’ai trouvé ça:
Your servo may behave erratically, and you may find that this only happens when the Arduino is plugged into certain USB ports. This is because the servo draws quite a lot of power, especially as the motor is starting up, and this sudden high demand can be enough to drop the voltage on the Arduino board, so that it resets itself.
If this happens, then you can usually cure it by adding a high value capacitor (470uF or greater) between GND and 5V on the breadboard.

«  Votre servo peut parfois se comporter de manière étrange, et avec l’Arduino branchée sur certains ports USB seulement.
Le servo demande beaucoup de courant, spécialement au démarrage. et ce pic de tension peut faire baisser le voltage suffisamment sur le régulateur de la carte pour faire que l’Arduino redémarre intempestivement(reset itself).
Il est possible de régler le problème en intercalant un condensateur de 470uF ou plus entre le GND et le 5V sur la connection.
La broche la plus longue du condensateur est le + et doit être connectée au +5V »

Voir schéma dans le lien.
https://learn.adafruit.com/adafruit-arduino-lesson-14-servo-motors/if-the-servo-misbehaves

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 tabar57 » Sam 7 Sep 2019 19:28

Bonjour,

JacquesZ a écrit:Alors j’ai trouvé ça:
[

Il est possible de régler le problème en intercalant un condensateur de 470uF ou plus entre le GND et le 5V sur la connection.
La broche la plus longue du condensateur est le + et doit être connectée au +5V »
Jacques


Tu as tout à fait raison Jacques et si çà ne suffit pas on peut utiliser une alimentation 5 volts externe pour le ou les servos
afin de ne pas cramer le régulateur de la carte Arduino

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

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