Annonce

Réduire
Aucune annonce.

Construction cockpit cessna 172 (Work In Progress)

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

  • #16
    Bien, en attendant de réaliser mon Yoke, et comme j'en ai marre de piloter à la souris.
    LE YOKE DU PAUVRE !!!!
    Je m'suis dit, mais pourquoi ne pas essayer avec une radio-commande.
    J'ai ressortis une vieille télécommande (vintage maintenant), j'ai une carte Leo Bodnar, alors pourquoi ça marcherais pas ???
    Je branche le fer à souder, je sors les tournevis, je regarder l'intérieur de ma RC, et là ....
    Trop bien, je me dis, c'est faisable. et ça me permettra de tester la connexion de la Leo Bodnar et X-Plane
    Je soude, je place les fils sur la carte, branchement sur l'ordi, et démarrage de X-Plane.
    c'est reconnu tout de suite (j'ai mis sur "lacet" dans un premier temps). Je mets des gaz, j'enlève le frein, ça roule.

    J'active la manette de direction (lacet sur x-plane) et ça TOURNE !!!!!!
    Go !!! je retourne au fer à souder et je fini ça pour voler tranquille.

    Voilà les infos en images de très mauvaise qualité, mais ça donne une idée

    La radio-commande :


    le branchement :



    Une video explicative rapide :
    X-Plane 10
    En attente d'un ordinateur...

    Commentaire


    • #17
      Seul petit "hic !!!"
      Une fois la carte branchée et reconnu sous X-Place, impossible de naviger à la souris...
      Donc, je ne peux que piloter en lacet
      X-Plane 10
      En attente d'un ordinateur...

      Commentaire


      • #18
        Ben oui, le pilotage à la souris ne fonctionne que s'il n'y a pas de joystick de branché. X-Plane n'a pas prévu le cas d'un joystick partiel qui ne gère pas tous les axes. ;-)
        Il ne te reste plus qu'à brancher les autres potars...

        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


        • #19
          Envoyé par thierryhl Voir le message
          Seul petit "hic !!!"
          Une fois la carte branchée et reconnu sous X-Place, impossible de naviger à la souris...
          Donc, je ne peux que piloter en lacet
          Courage tu tiens le bon bout!
          Pour le yoke as-tu réfléchi à la partie mécanique?
          tes photos, ta vidéo, c'est un vrai WIKI!!

          Merci cela m'instruit pour mon projet.
          Je commencerai la réalisation de ma valise dans 1 à 2 mois!!
          Je suis maintenant convaincu du bien fondé de cette carte.
          A+
          JMarie
          IMAC I7 27" mem16Go Nvidia 4Go fusion3TO/asusG73s intel core i7 2Ghz mem 4Go Win7premiun, écran add 23" / saitek X52 , yoke, palonnier, Radio panel , Switch Panel , Multi Panel / Air Manager (création instruments)

          Commentaire


          • #20
            Envoyé par titounet66 Voir le message
            Courage tu tiens le bon bout!
            Pour le yoke as-tu réfléchi à la partie mécanique?
            JMarie
            Je suis dans les plans et la construction 3D pour simuler le projet et être sur qu'il ne manque rien.
            Mais ça avance bien...

            PS : je suis en train de regarder pour une CNC en plus (ça n'a pas l'air mal tout ça !)
            Mon budget est en train de fondre au soleil (il n'y a pas de soleil aujourd'hui)
            X-Plane 10
            En attente d'un ordinateur...

            Commentaire


            • #21
              Ah !! si, juste un petit truc qui manque je trouve dans les paramètres de calibrage du joystick dans X-Plane
              Une petite graduation sur les sliders.
              X-Plane 10
              En attente d'un ordinateur...

              Commentaire


              • #22
                Envoyé par thierryhl Voir le message
                Je suis dans les plans et la construction 3D pour simuler le projet et être sur qu'il ne manque rien.
                Mais ça avance bien...

                PS : je suis en train de regarder pour une CNC en plus (ça n'a pas l'air mal tout ça !)
                Mon budget est en train de fondre au soleil (il n'y a pas de soleil aujourd'hui)
                pour les Cessna et d'autres T. Bord le Yoke est milieu des cadrans!! Donc si tu as l'intention d'utiliser un écran comme je le projette dans ma "valise" pour afficher les instruments, il y a conflit: le tube traverse l'écran, ça fait tache!!
                Solutions:
                =>Ecran au dessus du Yoke: hauteur des yeux/clair de parebrise très haut/horizon
                => Yoke sur colonne ancrée au sol (ergonomie du siège distance palonnier /assise )
                =>joystick (manche type DR 400...), mais ce n'est plus un CESSNA
                Autre solution:fabriquer les instruments!! Dans ce cas il vaut mieux une imprimante 3D!!
                C'est cette solution que tu envisages?

                Dans mon cas je vais réétudier l'ergonomie complète de mon tableau générique par rapport à la réalité.
                Je n'avais jamais pensé que 6 ans après avoir quitter le bureau d'étude Technocentre, je me replonge dans l'architecture d'un poste de conduite.... heu!!je veux dire un COCKPIT!!

                A+

                JMarie
                IMAC I7 27" mem16Go Nvidia 4Go fusion3TO/asusG73s intel core i7 2Ghz mem 4Go Win7premiun, écran add 23" / saitek X52 , yoke, palonnier, Radio panel , Switch Panel , Multi Panel / Air Manager (création instruments)

                Commentaire


                • #23
                  Je pars de cette base de tableau.
                  Cliquez sur l'image pour la voir en taille réelle 

Nom : 		maxresdefault.jpg 
Affichages :	1 
Taille :		185,8 Ko 
ID : 			456755
                  Le yoke ne traverse pas d'écrans, enfin d'après mes mésures. Il faut plusieurs écrans à des résolutions égales mais pas de même dimension.
                  Je pense faire, j'ai bien dit : "je pense" faire quelques instruments, je verrais une fois mes plans et croquis finalisés si je peux le faire.
                  Bonne continuation à toi.
                  X-Plane 10
                  En attente d'un ordinateur...

                  Commentaire


                  • #24
                    Bon, j'avance doucement...
                    AU niveau des commandes de base, avec la carte LeoBodnar, pas de soucis de ce côté là pour le moment.
                    En parallèle je m'attaque aux instruments, j'ai décidé de commencer par le Airspeed.
                    J'arrive à récupérer les données d'XPlane et à faire tourner le moteur pas à pas.
                    Malheureusement, ce dernier n'est pas un foudre de guerre (Vitesse de rotation limitée)
                    Datasheet du moteur 28BYJ-48

                    Mon soucis pour le moment, c'est que les graduations ne sont pas régulière sur l'instrument.
                    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		angle_airspeed.jpg 
Affichages :	1 
Taille :		99,9 Ko 
ID : 			457846

                    Voici mon code en construction pour les intéressés. (Arduino, et plug-in "TeensyControls")
                    Code:
                    #include <AccelStepper.h>
                    
                    AccelStepper stepper(AccelStepper::FULL4WIRE,7,9,8,11);
                    
                    
                    FlightSimFloat AIRSPEED;
                     
                    void setup() {   
                      stepper.setMaxSpeed(1400);
                    
                      AIRSPEED = XPlaneRef("sim/cockpit2/gauges/indicators/airspeed_kts_pilot");
                      AIRSPEED.onChange(viewAIRSPEED);
                    
                    }
                     
                    void loop() {
                      FlightSim.update();
                    
                    }
                    
                    void viewAIRSPEED(float kval){
                      int angle = kval;
                      kval = map(angle, 0, 280, 0, 4075);
                      //Serial.println(kval);
                      stepper.moveTo(kval);
                      stepper.setSpeed(800);
                      stepper.runSpeedToPosition();
                    
                    }

                    J'essaye de trouver une solution à ce problème de graduation
                    j'ai commencé par ça...
                    Code:
                    float knotsAngles[10] = {//Angles réels de AIRSPEED
                      0, //A, 0
                      30, //B, 40
                      60, //C, 60
                      120, //D, 80
                      175, //E, 100
                      200, //F, 120
                      240, //G, 140
                      260, //H, 160
                      291, //I, 180
                      320, //J, 200
                    };
                    float knotsValues[10] = { //Valeurs réelles de AIRSPEED
                      0, //A
                      40, //B
                      60, //C
                      80, //D
                      100, //E
                      120, //F
                      140, //G
                      160, //H
                      180, //I
                      200, //J
                    };
                    int knotsIndices = 10;
                    S'il y a des codeux dans la salle, je suis preneur de toutes informations
                    Merci
                    X-Plane 10
                    En attente d'un ordinateur...

                    Commentaire


                    • #25
                      Envoyé par thierryhl Voir le message
                      ...S'il y a des codeux dans la salle, je suis preneur de toutes informations ..
                      Codeu, non, programmeur, oui, ça devrait faire l'affaire.

                      Avant d'écrire quoi que ce soit il faut définir ce que l'on souhaite faire, ensuite écrire le programme n'est pas un problème.

                      Ce que tu cherches à faire est de convertir une grandeur d'entrée dans une unité donné en une grandeur de sortie dans une autre unité. Dans ton cas l'unité d'éntrée est des noeuds et celle de sortie des degrés. Reste à déterminer la fonction de transfert correspondante. Les informations dont tu disposes sont :

                      • Le minimum et le maximum de ta grandeur d'entrée.
                      • Les angles correspondants à ces valeurs, donnés par le dessin du cadran.


                      Tu peux tracer un diagramme de cette fonction avec en abscisse les nœuds et en ordonnée les angles. La courbe va peut-être d'elle même te donner un indice sur l’écriture mathématique de la fonction. Si ce n'est pas le cas tu peux chercher un polynôme qui va approximer la courbe au mieux, ou bien la découper en segments sur lesquels tu vas considérer que la variation est linéaire. Dans ce dernier cas il suffit de calculer une fois pour toute une table de paires de a et b pour ensuite calculer y = a.x + b sur le segment correspondant à la vitesse en entrée.

                      PhM

                      Edit : Plus au boulot, j'ai trouvé ça qui date du temps où j'avais fait des instruments sur Android, je l'avais découpé en segments linéaires et calculé les coefficients dans excel :

                      Code:
                          public void SetPosition(float in_AirSpeedKnts)
                          {
                              if(in_AirSpeedKnts < 40.0f)          { m_Angle = 32.0f; }
                              else if(in_AirSpeedKnts <  70.0f)    { m_Angle = 2.0f * in_AirSpeedKnts - 48.0f; }
                              else if(in_AirSpeedKnts <  80.0f)    { m_Angle = 2.3f * in_AirSpeedKnts - 69.0f; }
                              else if(in_AirSpeedKnts < 100.0f)    { m_Angle = 2.4f * in_AirSpeedKnts - 77.0f; }
                              else if(in_AirSpeedKnts < 110.0f)    { m_Angle = 2.2f * in_AirSpeedKnts - 57.0f; }
                              else if(in_AirSpeedKnts < 120.0f)    { m_Angle = 2.0f * in_AirSpeedKnts - 35.0f; }
                              else if(in_AirSpeedKnts < 130.0f)    { m_Angle = 1.8f * in_AirSpeedKnts - 11.0f; }
                              else if(in_AirSpeedKnts < 140.0f)    { m_Angle = 1.4f * in_AirSpeedKnts + 41.0f; }
                              else if(in_AirSpeedKnts < 160.0f)    { m_Angle = 1.5f * in_AirSpeedKnts + 27.0f; }
                              else if(in_AirSpeedKnts < 190.0f)    { m_Angle = 1.3f * in_AirSpeedKnts + 59.0f; }
                              else if(in_AirSpeedKnts < 200.0f)    { m_Angle = 1.4f * in_AirSpeedKnts + 40.0f; }
                              else                                 { m_Angle = 320.0f; }
                          }
                      Dernière modification par PhM, 24 juin 2014, 00h10.
                      X-Plane 9.70 & 11.5r1 / W10 / AMD Ryzen 7 2700 / 8Go RAM / Sapphire R9 390 Nitro 8Go / Sapphire HD7870 GHz 2Go / Samsung LN40C530 / Oculus DK2 / LeapMotion / Saitek X56 / Thrustmaster Pendular Rudder

                      Commentaire


                      • #26
                        Merci PhM...
                        Donc, d'après tes dire, je suis sur la bonne voie !?
                        je verrais pour faire cette courbe demain.
                        Merci pour ton développement.

                        Edit : Au boulot, pas de X-Plane ici, peut pas faire plus pour l'instant.
                        Il y en a qui on X-Plane au boulot ?
                        X-Plane 10
                        En attente d'un ordinateur...

                        Commentaire


                        • #27
                          Envoyé par thierryhl Voir le message
                          ...Il y en a qui on X-Plane au boulot ?
                          Je l'avais pendant un temps, dans le monde des jeux on joue pendant la pause du midi.

                          PhM
                          X-Plane 9.70 & 11.5r1 / W10 / AMD Ryzen 7 2700 / 8Go RAM / Sapphire R9 390 Nitro 8Go / Sapphire HD7870 GHz 2Go / Samsung LN40C530 / Oculus DK2 / LeapMotion / Saitek X56 / Thrustmaster Pendular Rudder

                          Commentaire


                          • #28
                            Envoyé par thierryhl Voir le message
                            Bon, j'avance doucement...
                            AU niveau des commandes de base, avec la carte LeoBodnar, pas de soucis de ce côté là pour le moment.
                            En parallèle je m'attaque aux instruments, j'ai décidé de commencer par le Airspeed.
                            J'arrive à récupérer les données d'XPlane et à faire tourner le moteur pas à pas.
                            Malheureusement, ce dernier n'est pas un foudre de guerre (Vitesse de rotation limitée)
                            Datasheet du moteur 28BYJ-48
                            Bonjour thierryhl,

                            Le sujet m'intéresse grandement, j'ai une carte Uno, des Nano et des Mega.

                            Je travaille sur des robots mobiles autonomes (capteurs à ultrasons et à infrarouges), mais monter un cockpit maison avec comme base une ou des cartes Arduino, pour gérer des affichages cadrant, des boutons et des molettes, je suis preneur et je pourrais peut-être être utile côté programmation Arduino. Je suis sous Linux...

                            J'ai des problèmes avec ce modèle de moteur pas à pas, mais je ne connais pas la bibliothèque « AccelStepper.h ». Pourriez-vous me fournir un hyperlien, une référence ?

                            Envoyé par thierryhl Voir le message
                            Mon soucis pour le moment, c'est que les graduations ne sont pas régulière sur l'instrument.
                            [ATTACH=CONFIG]10036[/ATTACH]
                            Mais vous êtes sur la bonne voie, j'utilise un tableau de conversion pour des capteurs de distance à infrarouge pour mes robots et ces capteurs ne fournissent pas une valeur linéaire. Voici la fonction Arduino que j'ai pour lire et convertir les données de ces capteurs, si cela peut vous être utile et vous inspirez :

                            Code:
                            //*****************************************************************************
                            // FONCTION CapteurIR_Mesurer
                            //*****************************************************************************
                            void CapteurIR_Mesurer (byte NumeroDeBrocheDuCapteurIR, int NombreDeMesure, 
                                                    int *MesureDistanceEnCM)
                            {
                              // Variable pour acquisition résultat brut de 0 à 1023.
                              int MesureBrute  = 0;
                              // Variable pour MesureCumul des mesures.
                              long MesureCumul = 0;
                              int MesureMoyenne = 0;
                              // Tableau de valeurs en millivolts pour la distance de 5 en 5cm de 10 à 80 cm 
                              // pour le capteur de distance à l'infrarouge. 1ère valeur a l'index 0.
                              int TableauDeConvertion [] = 
                              {// Début du tableau
                                0,//  1 cm - index 0
                                2,//  2 cm - index 1
                                4,//  3 cm - index 2
                                6,//  4 cm - index 3
                                8,//  5 cm - index 4
                                10,//  6 cm - index 5
                                14,//  7 cm - index 6
                                20,//  8 cm - index 7
                                28,//  9 cm - index 8
                                56,// 10 cm - index 9 2370
                                81,// 11 cm - index 10
                                107,// 12 cm - index 11
                                130,// 13 cm - index 12
                                146,// 14 cm - index 13
                                159,// 15 cm - index 14 1700
                                176,// 16 cm - index 15
                                185,// 17 cm - index 16
                                195,// 18 cm - index 17
                                205,// 19 cm - index 18
                                212,// 20 cm - index 19 1300
                                216,// 21 cm - index 20
                                222,// 22 cm - index 21
                                226,// 23 cm - index 22
                                230,// 24 cm - index 23
                                232,// 25 cm - index 24 1100
                                227,// 26 cm - index 25
                                243,// 27 cm - index 26
                                248,// 28 cm - index 27
                                246,// 29 cm - index 28
                                238,// 30 cm - index 29 950
                                1023,// au delà 30cm - index 30
                              }; // Fin du tableau
                              byte TableauDeConvertionN****m = 30;
                            
                              
                              // Calcul d'une moyenne de plusieurs mesures.
                              for (int i = 0; i < NombreDeMesure; i = i + 1) // répète la mesure
                              {
                                MesureBrute = analogRead (NumeroDeBrocheDuCapteurIR);
                                MesureCumul = MesureCumul + MesureBrute;
                              }
                              
                              // Calcul MesureMoyenne
                              MesureMoyenne = int (MesureCumul / NombreDeMesure);
                              
                              // Détermination de la distance à partir du tableau de reference
                              // teste les valeurs de calibrage.
                              for (int j = 0; j <= TableauDeConvertionN****m; j = j + 1)
                              {
                                // Si la mesure est comprise entre 2 valeurs :
                                if ((MesureMoyenne >= TableauDeConvertion [j]) and 
                                    (MesureMoyenne < TableauDeConvertion [j + 1]))
                                {
                                  // La distance en cm à partir de l'index du tableau.
                                  *MesureDistanceEnCM = j;// Ici, « j » corresponds à la distance en centimètre.
                                }
                              }
                              Serial.print ("MesureMoyenne = ");
                              Serial.print (MesureMoyenne);
                              Serial.println (); 
                            }
                            //*****************************************************************************

                            Envoyé par thierryhl Voir le message


                            Voici mon code en construction pour les intéressés. (Arduino, et plug-in "TeensyControls")
                            Code:
                            #include <AccelStepper.h>
                            
                            AccelStepper stepper(AccelStepper::FULL4WIRE,7,9,8,11);
                            
                            
                            FlightSimFloat AIRSPEED;
                             
                            void setup() {   
                              stepper.setMaxSpeed(1400);
                            
                              AIRSPEED = XPlaneRef("sim/cockpit2/gauges/indicators/airspeed_kts_pilot");
                              AIRSPEED.onChange(viewAIRSPEED);
                            
                            }
                             
                            void loop() {
                              FlightSim.update();
                            
                            }
                            
                            void viewAIRSPEED(float kval){
                              int angle = kval;
                              kval = map(angle, 0, 280, 0, 4075);
                              //Serial.println(kval);
                              stepper.moveTo(kval);
                              stepper.setSpeed(800);
                              stepper.runSpeedToPosition();
                            
                            }
                            J'essaye de trouver une solution à ce problème de graduation
                            j'ai commencé par ça...
                            Code:
                            float knotsAngles[10] = {//Angles réels de AIRSPEED
                              0, //A, 0
                              30, //B, 40
                              60, //C, 60
                              120, //D, 80
                              175, //E, 100
                              200, //F, 120
                              240, //G, 140
                              260, //H, 160
                              291, //I, 180
                              320, //J, 200
                            };
                            float knotsValues[10] = { //Valeurs réelles de AIRSPEED
                              0, //A
                              40, //B
                              60, //C
                              80, //D
                              100, //E
                              120, //F
                              140, //G
                              160, //H
                              180, //I
                              200, //J
                            };
                            int knotsIndices = 10;
                            Attention aux formats de vos données, le compilateur de l'Arduino est très permissif, même trop permissif, ça passe à la compilation, mais ça bogue à l'exécution. Votre tableau « knotsAngles » et « knotsValues » ne contient que des entiers, vous devriez utiliser le type de données entier « int » en lieu et place de « float ». Le type « float » ralenti grandement la vitesse des calculs et prend le double de l'espace mémoire. Vous en êtes perdant sur à deux niveaux.

                            De plus, je vous recommande grandement de toujours bien suivre le format de vos données. Par exemple, diviser un nombre entier par un chiffre impair ou une fraction peut causer bien des problèmes de précision dans le fonctionnement des conditions et dans des boucles, du genre (1 + 0.999) = 1; pour un « int » ou un « word », mais = 1.999 pour un « froat », etc.

                            Envoyé par thierryhl Voir le message
                            S'il y a des codeux dans la salle, je suis preneur de toutes informations
                            Merci
                            Il faut bien commencer quelque part !

                            Pour ma part, comme je n'ai jamais fait interagir une carte Arduino avec X-Plane, je serais preneur de toutes informations en français à ce sujet.

                            Bonne programmation et bon vol.
                            L'ami René
                            Tous pour un et un pour tous !

                            Ordi-1 : Intel i5-2500K 3.3GHz, RAM 32 Go, Asus GeForce STRIX-GTX 1060 6G, Téléviseur 42" 1920x1080, Manettes Saitek X56.
                            Linux Kubuntu 22.04, 64 Bits, X-Plane 12.09 RC5, pilote nVidia 535.161.07.

                            Ordi-2 : Intel Core 2 Quad 2.4GHz, RAM 8 Go, 2 x Écran 1366x768.
                            Linux Kubuntu 22.04, 64 Bits, XHSI 2.0 Beta 12, pilote nVidia 340.

                            Ordi-3 : Intel Core 2 Duo E8400 3.0GHz, RAM 12 Go, Écran 1920x1080.
                            Linux Kubuntu 22.04, 64 Bits, LittleNavMap.

                            Commentaire


                            • #29
                              Envoyé par Lami Voir le message
                              ... le compilateur de l'Arduino est très permissif, même trop permissif, ça passe à la compilation, mais ça bogue à l'exécution. ...
                              Un compilateur ne fait que respecter la définition d'un language, il est "permissif" dans les limites du language. Savoir quoi utiliser ou ne pas utiliser pour une plateforme donnée relève de la compétence du programmeur.

                              La première chose à faire est de télécharger la documentation du processeur utilisé. Dans le cas d'un Uno, d'un Nano et d'un Mega le processeur est un 8 bits. Donc utiliser des types de variables plus grands que 8 bits implique obligatoirement une émulation logicielle des fonctions, et donc des temps de traitement plus longs.


                              PhM
                              X-Plane 9.70 & 11.5r1 / W10 / AMD Ryzen 7 2700 / 8Go RAM / Sapphire R9 390 Nitro 8Go / Sapphire HD7870 GHz 2Go / Samsung LN40C530 / Oculus DK2 / LeapMotion / Saitek X56 / Thrustmaster Pendular Rudder

                              Commentaire


                              • #30
                                Bonjour à toutes et tous
                                Pour la librairie AccelStepper c'est ici

                                Pour la communication avec X-Plane, pas de soucis particulier....
                                Mais j'ai une carte Teensy2 ++, qui communique avec le logiciel Arduino
                                J'ai chargé 2 plug-in
                                1 - DataRefEditor // Pour visualiser les datarefs utilisées dans X-Plane
                                2 - TeensyControls //Plug-in développé pour X-Plane et Teessy, la communication est top....

                                J'ai préféré la teensy à la UNO, pour son côté Plug and Play plus simple à mettre en place.
                                Pour la UNO on peux aussi faire la même chose, mais il faut soit la Hacker en mode DFU
                                Soit passer par Ethernet vie un shield

                                Sinon, merci pour vos infos... je vais essayer de réaliser quelques choses, mais j'aurais surement besoin de vous pour faire un code plus propre, car je ne suis pas du tout programmeur.

                                PS : vous pouvez vous inspirez de ce bout de code qui fonctionne très bien....
                                Code:
                                #include <AccelStepper.h>
                                
                                AccelStepper stepper(AccelStepper::FULL4WIRE,7,9,8,11);
                                
                                
                                FlightSimFloat AIRSPEED;
                                 
                                void setup() {   
                                  stepper.setMaxSpeed(1400);
                                
                                  AIRSPEED = XPlaneRef("sim/cockpit2/gauges/indicators/airspeed_kts_pilot");
                                  AIRSPEED.onChange(viewAIRSPEED);
                                
                                }
                                 
                                void loop() {
                                  FlightSim.update();
                                
                                }
                                
                                void viewAIRSPEED(float kval){
                                  int angle = kval;
                                  kval = map(angle, 0, 280, 0, 4075);
                                  //Serial.println(kval);
                                  stepper.moveTo(kval);
                                  stepper.setSpeed(800);
                                  stepper.runSpeedToPosition();
                                
                                }
                                X-Plane 10
                                En attente d'un ordinateur...

                                Commentaire

                                Chargement...
                                X