Annonce

Réduire
Aucune annonce.

x-plane arduino communication programme

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

  • x-plane arduino communication programme

    Bonsoir,

    Pour ceux qui veulent faire un cockpit personalisé avec une arduino.

    Tout d'abord ajoutez dans les "data-output / gestion Dataref" les informations que vous souhaitez envoyer.
    J'utilise deux valeurs pour cette exemple . Libre a vous d'en ajouter.

    sim/flightmodel/position/magpsi
    sim/cockpit2/gauges/indicators/altitude_ft_pilot

    valeur en write

    Ensuite le prgrame arduino est :
    Je vous laisse voir sur le site d;arduino le fonctionnement des lcd.


    #include <LiquidCrystal.h>
    LiquidCrystal lcd20_4(33, 31, 29, 27, 25, 23);
    LiquidCrystal lcd20_2(43, 45, 47, 49, 51, 53);

    int count = 0,flag_digit=0;
    char indata[8];

    int sendbyxplane=2; //nombre de donnee provenant d Xplane
    char xplane[2][8]; //2 nombre de donnee provenant d Xplane

    int xplaneligne=0;

    void setup()
    {
    lcd20_4.begin(20,4);
    lcd20_2.begin(20,2);
    Serial.begin(38400); // make sure you select the same bauds on X-plane as well as the COM of your Arduino
    }

    void loop()
    {

    // Reading Datarefs from X-plane. Make sure you select the desired Dataref from the "Write" list
    if (Serial.available() > 0)
    {
    char incomingByte = Serial.read ();
    //lcd20_2.print(incomingByte); utilise pour debuging

    if ( incomingByte != '$')
    {
    if ( incomingByte != ',')
    {
    indata[count]=incomingByte;
    count++;
    // indata[count]='\0';
    }
    else
    {
    count=0;
    lcd20_4.print(indata);
    lcd20_4.print(" ");
    strcpy(xplane[xplaneligne], indata);

    lcd20_2.setCursor(0,0);
    lcd20_2.print(atoi(xplane[0]));
    lcd20_2.setCursor(0,1);
    lcd20_2.print(atoi(xplane[1]));

    xplaneligne++;


    if (xplaneligne == sendbyxplane)
    xplaneligne=0;
    }
    }
    }
    }

    Toute aide pour améliorer le programes et partager vos experience sur vos cockpit est la bienvenu.

    Ounet

  • #1
    Slt,

    Bon code mais ici tu traites les données OUTPUT mais pour les INPUT comment fait tu ?

    @+
    Windows 10 Pro ; i5-7500 4 x 3.4 GHz ; Carte mère: ASUS H110M-Plus ; 16Go DDR4 RAM 2133 MHz ; Nvidia GeForce GTX1060 6 Go DDR5 : X Plane 11.05

    Commentaire


    • #1
      Envoyé par soran Voir le message
      Slt,

      Bon code mais ici tu traites les données OUTPUT mais pour les INPUT comment fait tu ?

      @+
      Ces la phase deux du projet. Cela ne devrait pas être compliqué...

      Commentaire


      • #1
        Envoyé par ounet Voir le message
        Ces la phase deux du projet. Cela ne devrait pas être compliqué...
        Ben justement c'est là que c'est moins évident, mais bon on verra bien ce que tu proposes
        Windows 10 Pro ; i5-7500 4 x 3.4 GHz ; Carte mère: ASUS H110M-Plus ; 16Go DDR4 RAM 2133 MHz ; Nvidia GeForce GTX1060 6 Go DDR5 : X Plane 11.05

        Commentaire


        • #1
          Envoyé par soran Voir le message
          Ben justement c'est là que c'est moins évident, mais bon on verra bien ce que tu proposes
          si tu as des pistes je suis preneur

          Commentaire


          • #1
            On a bien fait un code avec mon fils, il fonctionne dans les deux sens mais par contre la gestion des données est trop lente, du coup ce n'est peut être pas la bonne solution.

            Pour autant , si tu veux , je peux t'envoyer ce que j'ai. Tu vois, et contact moi en MP pour que je puisse te transmettre le dossier.

            @+
            Windows 10 Pro ; i5-7500 4 x 3.4 GHz ; Carte mère: ASUS H110M-Plus ; 16Go DDR4 RAM 2133 MHz ; Nvidia GeForce GTX1060 6 Go DDR5 : X Plane 11.05

            Commentaire


            • #1
              Envoyé par soran Voir le message
              On a bien fait un code avec mon fils, il fonctionne dans les deux sens mais par contre la gestion des données est trop lente, du coup ce n'est peut être pas la bonne solution.

              Pour autant , si tu veux , je peux t'envoyer ce que j'ai. Tu vois, et contact moi en MP pour que je puisse te transmettre le dossier.

              @+
              c'est fait mp envoyé

              Commentaire


              • #1
                Bonjour ounet,

                A peu près toutes les solutions devraient être trouvées dans les solutions disponibles sur le site www.svglobe.com.

                Une nouvelle méthode pour lire des dataref dans X-plane est indiquée dans les Releases notes de la version 10.40 http://www.x-plane.com/?article=x-pl...-release-notes:

                • ANY App can now send in the string (by UDP, to port 49,000) “RREF” plus a dataref, and X-Plane will then send that dataref string, and its value, BACK TO THAT IP ADDRESS EVERY FRAME! So, we can get unlimited datarefs from X-Plane with no UI needed!So, just write your own map or external visual or other app and have it send the dataref requests to X-Plane, and X-Plane will send those datarefs right back to you with their values! Now, you can write an App to get any data you like from X-Plane, easily, with no configuration needed from the user!THIS lets you write any App you can imagine, that can EASILY interact with X-Plane by UDP!
                • And, send in the string “RPOS” (by UDP, to port 49,000) to get X-Plane to send you the data to run external visuals or moving map! So, anyone that wants to make a moving map or external visuals simply sends in the commands RPOS to get that data sent back to him, per-frame! Easiest way EVAR to get all the data from X-Plane to drive your own moving map or external visuals!
                • Full new “Sending Data to X-Plane” document found in your X-Plane directory/Instructions folder


                On envoie "RREF" à X-Plane au port 49000 par UDP, et il renvoie la valeur de la Dataref à chaque cycle d'affichage (frame).
                On envoie "RPOS" à X-Plane au port 49000 par UDP, et il renvoie les informations de position.


                Je testerai après le 26 juin.
                Dernière modification par FlyingBaldy, 14 juin 2015, 21h27. Motif: Remplace "envoyer des informations" par "lire des datarefs"
                XP11.41 - WIN 7 - i7 - GTX970

                Commentaire


                • #1
                  Envoyé par FlyingBaldy Voir le message
                  Bonjour ounet,

                  A peu près toutes les solutions devraient être trouvées dans les solutions disponibles sur le site www.svglobe.com.

                  Une nouvelle méthode pour lire des dataref dans X-plane est indiquée dans les Releases notes de la version 10.40 http://www.x-plane.com/?article=x-pl...-release-notes:

                  • ANY App can now send in the string (by UDP, to port 49,000) “RREF” plus a dataref, and X-Plane will then send that dataref string, and its value, BACK TO THAT IP ADDRESS EVERY FRAME! So, we can get unlimited datarefs from X-Plane with no UI needed!So, just write your own map or external visual or other app and have it send the dataref requests to X-Plane, and X-Plane will send those datarefs right back to you with their values! Now, you can write an App to get any data you like from X-Plane, easily, with no configuration needed from the user!THIS lets you write any App you can imagine, that can EASILY interact with X-Plane by UDP!
                  • And, send in the string “RPOS” (by UDP, to port 49,000) to get X-Plane to send you the data to run external visuals or moving map! So, anyone that wants to make a moving map or external visuals simply sends in the commands RPOS to get that data sent back to him, per-frame! Easiest way EVAR to get all the data from X-Plane to drive your own moving map or external visuals!
                  • Full new “Sending Data to X-Plane” document found in your X-Plane directory/Instructions folder


                  On envoie "RREF" à X-Plane au port 49000 par UDP, et il renvoie la valeur de la Dataref à chaque cycle d'affichage (frame).
                  On envoie "RPOS" à X-Plane au port 49000 par UDP, et il renvoie les informations de position.


                  Je testerai après le 26 juin.
                  Salut FlyingBaldy, oui en udp mais moi je souhaite utiliser une carte arduino sans ethershield. Seulement en Port Com. mais merci quand même.

                  Commentaire


                  • #1
                    Bon en voilà, pour moi cela fonctionne est c'est un debut. Donc je reçois bien les données sans plugin et j'arrive à envoyer vers x-plane (la version avec les data-output entre $et ,).
                    if (Serial.available() > 0)
                    {
                    char incomingByte = Serial.read ();
                    //lcd20_2.print(incomingByte);


                    if ( incomingByte != '$')
                    {
                    if ( incomingByte != ',')
                    {
                    indata[count]=incomingByte;
                    count++;
                    //indata[count]='\0';
                    }
                    else
                    {
                    count=0;
                    //lcd20_4.print(indata);
                    //lcd20_4.print(" ");
                    strcpy(data[dataligne], indata);

                    ...

                    dataligne++;


                    if (dataligne == sendbyxplane)
                    dataligne=0;
                    }
                    }
                    else
                    {
                    count=0;
                    dataligne=0;
                    //si == $ debut insertion tableau
                    }
                    }
                    else
                    {
                    Serial.write("$12220.0000,10810.0000,");
                    }
                    }

                    en sachant que dans x-plane j'ai les valeurs read dans l'ordre /sim/cockpit/radios/com1_stdby_freq_hz et /sim/cockpit/radios/nav1_stdby_freq_hz

                    maintenant il va falloir que je mette des encodeurs et que je trouve une façon d'utiliser cette fonction d'envoie pour modifier les valeur. Dans tous les cas cela peut donner des idée aux cockpiteux.

                    je ne sais pas si Madame Clochette pourrait mettre cela dans le wiki si cela vous semble pertinent.

                    Partageons nos expérience...

                    ounet
                    Dernière modification par ounet, 15 juin 2015, 04h09.

                    Commentaire


                    • #1
                      Slt Ounet,

                      Je t'ai envoyé quelques fichiers samedi, les as tu reçu ? j'ai quelques problèmes avec internet en ce moment.
                      Windows 10 Pro ; i5-7500 4 x 3.4 GHz ; Carte mère: ASUS H110M-Plus ; 16Go DDR4 RAM 2133 MHz ; Nvidia GeForce GTX1060 6 Go DDR5 : X Plane 11.05

                      Commentaire

                      Chargement...
                      X