Annonce

Réduire
Aucune annonce.

Construction cockpit cessna 172 (Work In Progress)

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • #1
    Bonjour PhM et thierryhl,

    Voilà une formidable mine d'information a creuser ! Un très grand merci ! Je vais regarder tout cela de près dès demain, car pour l'heure, je suis en plaine construction d'un nouveau mini châssis pour un robot à base de Mega...

    La carte « Teensy2 ++ » ressemble beaucoup aux cartes Arduino Nano 3.0 que j'utilise déjà. Mais comme je ne suis pas anglophone, cela n'est peut-être qu'une illusion d'optique. Je regarde tout cela avec un traducteur "Google" et je vous en donnerai des nouvelles.

    J'apprécie grandement que vous ailliez pris le temps de m'indiquer les hyperliens, ça va servir.

    Merci encore !
    L'ami René
    Tous pour un et un pour tous !

    Ordi-1 : Intel i7-12700K 5GHz, RAM 128 Go, nVidia RTX 3080 10G, Téléviseur 55" 3840x2160, 3 écrans 1920x1080, Manettes Saitek X56.
    Linux Debian 13, X11, X-Plane 12.4.4-b2, Little NavMap v3.0.18, pilote nVidia 550.163.1.

    Ordi-2 : Intel i7-12700KF 5GHz, RAM 48 Go, Asus GeForce STRIX-GTX 1060 6G, 2 x Écran 1920x1080.
    Linux Kubuntu 26.04, XHSI 2.0 Beta 12 Alfa 5, pilote nVidia 535.309.

    Commentaire


    • #1
      Bonjour
      En fait, je ne vais pas passer par les degrés, mais plutôt par le nombre de pas que doit faire le moteur pour arriver à me fins.
      J'ai testé manuellement en me basant sur mon schéma.
      Cliquez sur l'image pour la voir en taille réelle 

Nom : 		angle_airspeed2.jpg 
Affichages :	1 
Taille :		50,2 Ko 
ID : 			457853
      Et avec ce code simple pour voir si tout correspondait convenablement - Check.
      Essaye avec une variable et retour au 0 à la fin de la boucle. Check
      (Je n'ai pas de camescope)
      Code:
      #include <AccelStepper.h>
      #define HALFSTEP 8
      
      // Branchement du moteur
      #define motorPin1  7     // IN1 on the ULN2003 driver 1
      #define motorPin2  8     // IN2 on the ULN2003 driver 1
      #define motorPin3  9     // IN3 on the ULN2003 driver 1
      #define motorPin4  11     // IN4 on the ULN2003 driver 1
      
      // 4076 = 360° soit 4076/360 = 11,322 pour 1°
      
      int stepsknots = 795; //60 noeuds - variable de test
      
      // Initialisation
      AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
      
      void setup() {
        stepper1.setMaxSpeed(1000.0);
        stepper1.setAcceleration(1000.0);
        stepper1.setSpeed(800);
        stepper1.moveTo(stepsknots);
      
      }
      
      void loop() {
      
        //retour au Zéro après le test
        if (stepper1.distanceToGo() == 0) {
          stepper1.moveTo(0);
        }
        stepper1.run();
      }
      Me reste plus qu'à faire les conditions
      et retest avec X-Plane

      a+
      X-Plane 10
      En attente d'un ordinateur...

      Commentaire


      • #1
        Bonjour thierryhl,

        Comme les données de base et le cadran non pas de correspondance linéaire, j'utiliserai une suite de « else if » avec un mappage pour chaque région du cadran du genre :

        Code:
          if ((AIRSPEED >= 0) and (AIRSPEED < 30))
          {
            kval = map (AIRSPEED, 0, 30, 0, 40);
          }
        
          else if ((AIRSPEED >= 30) and (AIRSPEED < 60))
          {
            kval = map (AIRSPEED, 30, 60, 40, 60);
          }
        
          else if ((AIRSPEED >= 60) and (AIRSPEED < 120))
          {
            kval = map (AIRSPEED, 60, 120, 60, 80);
          }
        .
        .
        .
          stepper.moveTo(kval);
          stepper.setSpeed(800);
          stepper.runSpeedToPosition();
        Je ne suis pas certain que mes valeurs soient les bonnes, mais vous comprenez le principe ?

        Et si vous avez besoin de travailler avec des valeurs décimales, voici la fonction « mapFloat » :

        Code:
        //*****************************************************************************
        // FONCTION mapFloat
        //*****************************************************************************
        float mapFloat (float x, float in_min, float in_max, float out_min, float out_max)
        {
          return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
        }
        //*****************************************************************************
        Bonne programmation...
        L'ami René
        Tous pour un et un pour tous !

        Ordi-1 : Intel i7-12700K 5GHz, RAM 128 Go, nVidia RTX 3080 10G, Téléviseur 55" 3840x2160, 3 écrans 1920x1080, Manettes Saitek X56.
        Linux Debian 13, X11, X-Plane 12.4.4-b2, Little NavMap v3.0.18, pilote nVidia 550.163.1.

        Ordi-2 : Intel i7-12700KF 5GHz, RAM 48 Go, Asus GeForce STRIX-GTX 1060 6G, 2 x Écran 1920x1080.
        Linux Kubuntu 26.04, XHSI 2.0 Beta 12 Alfa 5, pilote nVidia 535.309.

        Commentaire


        • #1
          Merci Lami....
          J'ai réussi à emprunter le portable à ma fille.
          Voici les deux tests réalisé d'après mon code précedent....




          je m'empresse de tester le code de Lami.


          a+
          X-Plane 10
          En attente d'un ordinateur...

          Commentaire


          • #1
            Pour ceux qui veulent vraiment utiliser Arduino UNO ou MEGA, etc....
            J'ai retrouvé ce site dans mes favories

            X-Plane 10
            En attente d'un ordinateur...

            Commentaire


            • #1
              Bonjour thierryhl,

              Merci pour l'hyperlien, ça semble très complet comme solution Arduino + une carte Ethernet. Je viens de commander 2 cartes Ethernet pour 20 $ CAD pour tester cette voie.

              C'est moins dispendieux qu'une carte LeoBodnar et ça reste un produit générique qui n'est pas spécialisé pour les simulateurs de vol, donc recyclable pour bien d'autres applications. Alors pourquoi préférez-vous utiliser une ou des cartes LeoBodnar ?

              Merci encore !
              L'ami René
              Tous pour un et un pour tous !

              Ordi-1 : Intel i7-12700K 5GHz, RAM 128 Go, nVidia RTX 3080 10G, Téléviseur 55" 3840x2160, 3 écrans 1920x1080, Manettes Saitek X56.
              Linux Debian 13, X11, X-Plane 12.4.4-b2, Little NavMap v3.0.18, pilote nVidia 550.163.1.

              Ordi-2 : Intel i7-12700KF 5GHz, RAM 48 Go, Asus GeForce STRIX-GTX 1060 6G, 2 x Écran 1920x1080.
              Linux Kubuntu 26.04, XHSI 2.0 Beta 12 Alfa 5, pilote nVidia 535.309.

              Commentaire


              • #1
                Envoyé par thierryhl Voir le message
                Pour ceux qui veulent vraiment utiliser Arduino UNO ou MEGA, etc....
                J'ai retrouvé ce site dans mes favories

                http://b58.svglobe.com/
                Rebonjour thierryhl,

                Je viens de terminer mon tour du site et j'en suis époustouflé ! Il mérite plusieurs premiers prix tant pour la forme que pour le contenu !!!

                Pour ce qui est de la forme, un graphiste est sûrement passé par là.

                Pour ce qui est du contenu, il provient assurément d'un connaisseur, voire d'un professionnel de l'électronique et probablement d'un professeur, car le tout est très pédagogique et complet. Il est aussi clair qu'il est un fin connaisseur de X-Plane. Et comme programmeur, il semble très bien structuré avec une bonne vue globale des systèmes à mètre en oeuvres. En comme je suis passé par la traduction automatique de l'anglais au français et que cela de manière générale sortait bien, j'en conclus que l'anglais écrit des rédacteurs en bien structurés.

                Il y a tellement de compétences diverses dans ce site que je présume qu'une équipe de 5 ou 6 personnes au dû y travailler. C'est l'impression que j'en ai !

                Il ne manque qu'un analyste pour bien restructurer, resynthétiser et systématiser la structure des menus de l'ensemble des pages. Mais ce dernier commentaire n'est qu'un minuscule point en comparaison de l'ensemble et le volume de travail qu'il a fallu pour réaliser ce site Web.

                Un immanence BRAVO aux gens qui on fait ce site !

                Ce le site du genre « Tout ce que vous avez toujours rêvé de savoir sur l'interaction entre Arduino et X-Plane sans jamais oser le demander ».

                Voilà pour ce qui est de l’épanchement de mon enthousiasme au regard de ce site.

                La cerise sur le gâteau, c'est que le site fournit tous les codes sources Arduino pour mettre en oeuvre les solutions qu'il propose. Le tout est d'une grande générosité !!!

                J'ai hâte d'avoir mes cartes d’extensions Ethernet pour m'y plonger.
                L'ami René
                Tous pour un et un pour tous !

                Ordi-1 : Intel i7-12700K 5GHz, RAM 128 Go, nVidia RTX 3080 10G, Téléviseur 55" 3840x2160, 3 écrans 1920x1080, Manettes Saitek X56.
                Linux Debian 13, X11, X-Plane 12.4.4-b2, Little NavMap v3.0.18, pilote nVidia 550.163.1.

                Ordi-2 : Intel i7-12700KF 5GHz, RAM 48 Go, Asus GeForce STRIX-GTX 1060 6G, 2 x Écran 1920x1080.
                Linux Kubuntu 26.04, XHSI 2.0 Beta 12 Alfa 5, pilote nVidia 535.309.

                Commentaire


                • #1
                  Rebonjour thierryhl,

                  J'éprouve des problèmes avec les moteurs pas-à-pas*« 28BYJ-48 » :
                  1 - Ils surchauffent après 60 secondes d'utilisation continue. Après 2 minutes ils sont brûlants.
                  2 - Les limites de vitesse de saturation (hystérisation) varient après une minute d'utilisation continue.
                  3 - La force des moteurs varie après une minute d'utilisation continue.
                  4 - De base, que cela soit avec la bibliothèque Stepper ou AccelStepper ils n'ont que peu de force.

                  Tous ces points se vérifient en roue libre.

                  Pour vérifier la force, j'ai fixé des roues de 2" (5*cm) et ils ont peine à tourner après 60 secondes et avant, déjà la puissance est faible. Ils ne me permettent pas de faire rouler un petit robot de 300 grammes.

                  J'ai quatre de ces moteurs et ils ont tous les mêmes problèmes.

                  Pourriez-vous faire un test équivalant de deux minutes pour vérifier si vous avez les mêmes constats ?
                  L'ami René
                  Tous pour un et un pour tous !

                  Ordi-1 : Intel i7-12700K 5GHz, RAM 128 Go, nVidia RTX 3080 10G, Téléviseur 55" 3840x2160, 3 écrans 1920x1080, Manettes Saitek X56.
                  Linux Debian 13, X11, X-Plane 12.4.4-b2, Little NavMap v3.0.18, pilote nVidia 550.163.1.

                  Ordi-2 : Intel i7-12700KF 5GHz, RAM 48 Go, Asus GeForce STRIX-GTX 1060 6G, 2 x Écran 1920x1080.
                  Linux Kubuntu 26.04, XHSI 2.0 Beta 12 Alfa 5, pilote nVidia 535.309.

                  Commentaire


                  • #1
                    Bonjour, je répondrais à toutes vos question dans la soirée, là, je pars au travail...

                    Pour ce qui est du 28BYJ-48 avez-vous un ULN2003 avec comme sur la photo jointe
                    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		28BYJ-48-Stepper-Motor.jpg 
Affichages :	1 
Taille :		30,9 Ko 
ID : 			457855
                    X-Plane 10
                    En attente d'un ordinateur...

                    Commentaire


                    • #1
                      Envoyé par Lami Voir le message
                      ...
                      Alors pourquoi préférez-vous utiliser une ou des cartes LeoBodnar ?
                      ...
                      Les cartes de Leo Bodnar, c'est pour un usage précis et limité, mais qui a l'avantage d'être plus simple.
                      - Avantages :
                      Pas de programmation ni de plugin, la carte est considérée comme un joystick générique et on configure les axes et boutons de la même façon. Donc solution très simple pour entrer les données (boutons ou potentiomètres).
                      - Inconvénients :
                      Ne gère que les entrées, pas de sorties possibles pour gérer un moteur ou un afficheur. C'est là que Arduino et autres reprennent l'avantage.

                      C'est plus clair ?

                      Daniel
                      Intel I5 6500 3,2 Ghz, RAM 16 Go, GeForce GTX 960 2 Go, Linux Ubuntu 18.04
                      Portable Asus Intel i5 2,8 Ghz, RAM 8 Go, GeForce 840M, Windows 8.1 64bits
                      #AMD II X2 245 2,9 Ghz, RAM 8 Go, GeForce GTX 650 1 Go, Linux Ubuntu 14.04
                      #AMD 64x2 5200 2,6 Ghz, RAM 4 Go, GeForce 9600 GT 512 Mo, Linux Ubuntu 10.04
                      #MacBook Pro 15" 2,4 Ghz, RAM 4 Go, GeForce GT 330 M 256 Mo, Mac OS 10.6

                      Commentaire


                      • #1
                        Merci Daniel, je n'aurais pas dit mieux
                        X-Plane 10
                        En attente d'un ordinateur...

                        Commentaire


                        • #1
                          Envoyé par thierryhl Voir le message
                          ...
                          Pour ce qui est du 28BYJ-48 avez-vous un ULN2003 avec comme sur la photo jointe
                          [ATTACH=CONFIG]10061[/ATTACH]
                          Bonjour thierryhl,

                          Oui, comme sur la photo, et cette photo m’a fourni la solution ! L'ordre de branchement des fils du moteur au contrôleur ne correspond pas à l'ordre de branchement à la carte Arduino :

                          Contrôleur : 1-2-3-4
                          Moteur : 1-3-2-4
                          Arduino : 1-3-2-4

                          Évidemment, mon erreur fut de penser que l'ordre des connexions moteur et contrôleur était le même, mais il y a permutation de la connexion des fils 2 et 3, donc par exemple ma connexion pour le moteur 1 qui était 4-5-6-7 devient 4-6-5-7 ! Et là tout rentre en ordre :

                          1 - La force motrice des vitesses de 1 à 600 est là, c'est toute une différence.
                          2 - La surchauffe a disparu, j'alimente en 7 volts les 2 contrôleurs.

                          Pour que les moteurs gauche et droit tournent dans le même sens j'utilise la configuration avec la fonction .setPinsInverted :

                          Moteur_1.setPinsInverted (0,0,0);
                          Moteur_2.setPinsInverted (1,1,0);

                          Ça pourrait être utile à d'autres.

                          Merci pour la photo !
                          L'ami René
                          Tous pour un et un pour tous !

                          Ordi-1 : Intel i7-12700K 5GHz, RAM 128 Go, nVidia RTX 3080 10G, Téléviseur 55" 3840x2160, 3 écrans 1920x1080, Manettes Saitek X56.
                          Linux Debian 13, X11, X-Plane 12.4.4-b2, Little NavMap v3.0.18, pilote nVidia 550.163.1.

                          Ordi-2 : Intel i7-12700KF 5GHz, RAM 48 Go, Asus GeForce STRIX-GTX 1060 6G, 2 x Écran 1920x1080.
                          Linux Kubuntu 26.04, XHSI 2.0 Beta 12 Alfa 5, pilote nVidia 535.309.

                          Commentaire


                          • #1
                            Bonsoir, oui, tout à fait, l'ordre change, d'ailleur on peut le voir dans les codes que j'ai posté
                            1-3-2-4

                            Demain, c'est Week-enk, j'aurais du temps à y consacrer.
                            Mais je me pose une question, c'est le retour à zéro de l'aiguille en cas de crash. (Bon, je n'ai pas à me crasher vous allez me répondre)
                            Mais sait-on jamais :-)

                            Effet hall - capteur ?
                            si vous avez des idées.
                            X-Plane 10
                            En attente d'un ordinateur...

                            Commentaire


                            • #1
                              Envoyé par Daniel_L Voir le message
                              Les cartes de Leo Bodnar, c'est pour un usage précis et limité, mais qui a l'avantage d'être plus simple.
                              - Avantages :
                              Pas de programmation ni de plugin, la carte est considérée comme un joystick générique et on configure les axes et boutons de la même façon. Donc solution très simple pour entrer les données (boutons ou potentiomètres).
                              - Inconvénients :
                              Ne gère que les entrées, pas de sorties possibles pour gérer un moteur ou un afficheur. C'est là que Arduino et autres reprennent l'avantage.

                              C'est plus clair ?

                              Daniel
                              Bonjour Daniel,

                              Oui, c'est plus clair, les cartes ont encore moins d'avantages que je ne le pensais.

                              Mais cela augmente mon incompréhension pour une personne qui se construit un cockpit, il devra de toute manière passer par une autre solution et donc il double les produits à mettre en interrelation ou la solution dispendieuse avec Seitek et compagnie

                              Il y a un sous-point qui me reste nébuleux, c'est les changements d'Austin Meyer sur les DataRef UDP. Historiquement, qu'elle en est la fréquence et le nombre, 2 ou 3 à toutes les semaines, 150 changements 1 ou 2 fois par année. 20 par mois ?

                              Et pourquoi trouvez-vous la solution Arduino Ethernet X-Plane aussi rébarbative, le site « http://b58.svglobe.com/ » démontre le très grand potentiel de cette solution et une très grande flexibilité ?

                              Pour ma part, j’hésite entre cette solution Arduino Ethernet X-Plane et celle d’Arduino « Hacker en mode DFU » X-Plane qui rendrait les cartes Arduino visibles et attribuables directement dans les préférences de X-Plane.

                              Donc, petit sondage interne, qui a fait un cockpit maison, avec quoi et pourquoi ou si cela était à faire ou a refaire, avec quoi et pourquoi ?
                              L'ami René
                              Tous pour un et un pour tous !

                              Ordi-1 : Intel i7-12700K 5GHz, RAM 128 Go, nVidia RTX 3080 10G, Téléviseur 55" 3840x2160, 3 écrans 1920x1080, Manettes Saitek X56.
                              Linux Debian 13, X11, X-Plane 12.4.4-b2, Little NavMap v3.0.18, pilote nVidia 550.163.1.

                              Ordi-2 : Intel i7-12700KF 5GHz, RAM 48 Go, Asus GeForce STRIX-GTX 1060 6G, 2 x Écran 1920x1080.
                              Linux Kubuntu 26.04, XHSI 2.0 Beta 12 Alfa 5, pilote nVidia 535.309.

                              Commentaire


                              • #1
                                Envoyé par thierryhl Voir le message
                                Bonsoir, oui, tout à fait, l'ordre change, d'ailleur on peut le voir dans les codes que j'ai posté
                                1-3-2-4
                                Encore merci !

                                Envoyé par thierryhl Voir le message
                                Demain, c'est Week-enk, j'aurais du temps à y consacrer.
                                Mais je me pose une question, c'est le retour à zéro de l'aiguille en cas de crash. (Bon, je n'ai pas à me crasher vous allez me répondre)
                                Mais sait-on jamais :-)

                                Effet hall - capteur ?
                                si vous avez des idées.
                                Je présume qu'au démarrage et aussi au redémarrage, il y a une phase "Reset" et "Setup". Pour l'Arduino il y a du genre avec un fils de la broche ARDUINO_RESET à ARDUINO_A0:

                                Code:
                                //*****************************************************************************
                                // FONCTION SortieTrouve
                                //*****************************************************************************
                                void SortieTrouve ()
                                {
                                  Servomoteur_1.write (Servomoteur_1_AngleCentre);
                                  Servomoteur_2.write (Servomoteur_2_AngleCentre);
                                  delay (UneSeconde);
                                  Boucler = NON;
                                  // Configurer le port Arduino pour un RESET Kamikaze.
                                  pinMode (ARDUINO_RESET, SORTIE);
                                  // Activer la broche ARDUINO_RESET.
                                  digitalWrite (ARDUINO_RESET, BAS);
                                  delay (UneSeconde);
                                }
                                //*****************************************************************************
                                Cela repositionne deux servomoteurs à leur centre avant que la carte Arduino se "Reset".

                                Et pour un moteur pas à pas, j'ai vu qu'il y avait dans le bibliothèque AccelStepper les fonctions :

                                Code:
                                void 	moveTo (long absolute)
                                Régler la position de la cible. Le run () la fonction va essayer de déplacer le moteur (au plus une étape par appel) de la position actuelle à la position de la cible fixée par l'appel le plus récent à cette fonction. Attention: moveTo () recalcule également la vitesse pour l'étape suivante. Si vous essayez d'utiliser les mouvements à vitesse constante, vous devriez appeler SetSpeed ​​() après avoir appelé moveTo () .
                                
                                void 	move (long relative)
                                Régler la position de la cible par rapport à la position courante
                                
                                long 	distanceToGo ()
                                La distance de la position actuelle à la position cible.
                                
                                long 	currentPosition ()
                                Définit une nouvelle position de la cible qui provoque le stepper pour arrêter le plus rapidement possible, en utilisant les paramètres de vitesse et d'accélération actuelles.
                                
                                void 	setCurrentPosition (long position)
                                Réinitialise la position actuelle du moteur, de sorte que chaque fois que le moteur se trouve être en ce moment est considéré comme la nouvelle position 0. Utile pour établir une position zéro sur un moteur pas à pas après un mouvement initial de positionnement du matériel. A l'effet secondaire de réglage de la vitesse actuelle du moteur à 0.
                                
                                void 	runToPosition ()
                                Déplace le moteur à la vitesse constante sélectionnée (avant ou arrière) à la position et blocs cible jusqu'à ce qu'il soit en position. Ne pas utiliser dans des boucles d'événements, car il bloque.
                                
                                void 	runToNewPosition (long position)
                                Déplace le moteur de la nouvelle position et blocs cible jusqu'à ce qu'il soit en position. Ne pas utiliser dans des boucles d'événements, car il bloque.
                                Ils devraient te permettre de solutionner ce problème et d'autres.
                                L'ami René
                                Tous pour un et un pour tous !

                                Ordi-1 : Intel i7-12700K 5GHz, RAM 128 Go, nVidia RTX 3080 10G, Téléviseur 55" 3840x2160, 3 écrans 1920x1080, Manettes Saitek X56.
                                Linux Debian 13, X11, X-Plane 12.4.4-b2, Little NavMap v3.0.18, pilote nVidia 550.163.1.

                                Ordi-2 : Intel i7-12700KF 5GHz, RAM 48 Go, Asus GeForce STRIX-GTX 1060 6G, 2 x Écran 1920x1080.
                                Linux Kubuntu 26.04, XHSI 2.0 Beta 12 Alfa 5, pilote nVidia 535.309.

                                Commentaire

                                Chargement...
                                X