Arduino et X-plane 10 => ARDSIM USB

Tout sur les cartes et la programmation des modules ARDUINO

Arduino et X-plane 10 => ARDSIM USB

Messagede LfQQ » Ven 25 Déc 2015 15:18

Salut à tous !
Je me lance donc dans la réalisation de petits tutoriels consacrés à la programmation de cartes Arduino dans le but d'interagir avec le simulateur de vol X-plane 10 cligneoeil
Dans un premier temps, je vous propose de visiter le site de Vlad Sychev, car c'est lui qui a développé plusieurs solutions pour pouvoir utiliser les Arduinos avec X-plane chouettedoights !
Dans cette série de tutoriels, je vais expliquer comment utiliser le plugin et la librairie " ArdSim USB " rigolus !

Dans cette série de tutoriels, je vais beaucoup m'appuyer sur le site de Vlad, cette série s'adresse surtout aux personnes qui ont du mal avec l'Anglais ;)


Qu'est-ce que Arduino ?

Les Arduinos sont des petites cartes électroniques programmables. Elles peuvent servir à plein de choses différentes comme la Domotique, faire des robots, etc... Dans ces tutoriels, on va apprendre à se servir de l'Arduino pour que cette dernière communique avec X-plane 10 et puisse lui envoyer des informations et vice-versa, recevoir des informations d'Xplane.
Arduino est un projet Open Source ( les plans sont disponibles en ligne gratuitement ), donc il y a plusieurs fabricants comme Arduino, Funduino, SainSmart et encore plein d'autres !
Ce qui fait la force d'Arduino est tous d'abord son prix ( on peut trouver une Mega 2560 R3 pour une dizaine de Dollar sur Ebay.com ), ainsi que sa polyvalence ( il y a une multitude d'application possible ), après vient sa "simplicité" d'utilisation
( le langage de programmation est un dérivé du C et du C++, et est assez intuitif ).
Ce que je n'ai pas encore dit, c'est le fait qu'il existe plusieurs cartes !
Les plus connues sont : l'Arduino Nano ( la plus petite ), l'Arduino Uno, ou encore l'Arduino Mega.

Je vous conseille de prendre une Mega, voire une Uno si vous envisager de construire un cockpit ( La Nano est trop petite ). Une valeur sûr est la Mega car c'est la carte qui possèdent le plus de pin !

Je commence donc maintenant avec la première partie :

I/. " Préparation "

Je ne vais pas m'attarder sur le fonctionnement de l'IDE d'Arduino, car il y a déjà une multitude de tuto là-dessus, je vous dirige vers les tutoriels d'Eskimon !
Je vous mets quand même le lien où on peut trouver l'IDE si vous ne l'avez pas encore téléchargé : https://www.arduino.cc/en/Main/Software


Je passe directement à l'installation du plugin et de la librairie ;) ->

Une fois sur la page d'accueil du site, vous devez cliquer sur " ArdSim Interface " ( entre " Tech Tips " et XPData Input " ).
Vous devriez avoir une page comme ça :
Image

Vous pouvez directement cliquer sur "ArdSim Plugin" ( même si vous utilisez la librairie " ArdSim USB " cligneoeil ), et là petit piège si vous voulez utiliser " ArdSim USB ", il ne faut pas cliquer sur "ArdSim Library" ( si vous utilisez un shield Ethernet, c'est cette librairie qu'il faut télécharger ) ! Mais descendre pour aller au chapitre consacré à " ArdSim USB " et vous pouvez cliquer sur " ArdSimUSB Library " pour télécharger cette dernière rigolus cligneoeil !

Une fois tout cela téléchargé, il vous faut les installer car sinon, ça marche pôoooo nondoightblanc nondoightblanc !

Pour le plugin, il faut tous simplement le dézipper dans le dossier " Plugin " de X-plane ( X-plane 10 > Resources > plugins ).

Ensuite pour installer la librairie, il vous faut tous simplement allez dans l'IDE, onglet " Croquis " puis " Inclure une bibliothèque " et enfin " Ajouter la bibliothèque .ZIP ".
Tous de suite une photo pour illustrer la chose :
Image
Ensuite vous allez devoir parcourir vos dossiers pour trouver la bibliothèque cligneoeil !

Et bien voilà ! Tout est bien installé !
Dans le prochain tutoriel, nous verrons les fichiers .cfg ( qui sont dans le dossier " ArdSim Plugin " ), à quoi ils servent et comment les créer !
LFQQ


EDIT : Rajout de la présentation de l'Arduino " Qu'est-ce que Arduino ? "
Dernière édition par LfQQ le Ven 6 Mai 2016 20:04, édité 3 fois.
I7 4790 3,6-4 GHz- MSI Z97 - GTX 960 EXOC 2go VRAM - 8go RAM DDR3 - DD 1To
ARDUINO MEGA 2560 R3 / UNO R3 & X-PLANE 10.41.
Only Chuck Norris can land on RNY 37
Brevet de Pilote Planeur en cours chouettedoights
LfQQ
 
Messages: 187
Inscription: 3/08/14

Re: Arduino et X-plane

Messagede FiX » Ven 25 Déc 2015 16:18

Excellente initiative!!
i7 2600k/P8P67pro/8Go PC3 17000/ATI 5850oc/velociraptor600Go/SSD 120Go/W7x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4374
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Arduino et X-plane [LES FICHIER .CFG ]

Messagede LfQQ » Sam 26 Déc 2015 18:35

II/.LES FICHERS .CFG

Salut à tous !
Dans cette seconde partie, je vais attaquer les fichiers .cfg cligneoeil rigolus

Tout d'abord, on va devoir parler de " DATAREF ", mais qu'est-ce donc les Datarefs gratgrat gratgrat ?
Eh bien, les Datarefs sont les références de données ( DATA = Donnée / REF = Référence ) dont le simulateur se sert pour définir des actions ou encore des états.
Par exemple : L'action fait bouger l'aileron tandis que l'état détermine si telle ou telle chose fonctionne ou pas.
On pourrait dire que l'action est analogique ( elle est évolutive en permanence ) tandis que l'état est " binaire " ( il n'y a que deux états = Actif ou Inactif ).

Les Datarefs se présentent sous cette forme :
Code: Tout sélectionner
   sim/flightmodel2/gear/deploy_ratio    3
   sim/cockpit2/annunciators/gear_warning
   sim/flightmodel2/controls/flap_handle_deploy_ratio
   sim/cockpit2/fuel/fuel_quantity    2


Mais bon, revenons au sujet principal de ce tutoriel : les fichiers .cfg
Ces fichiers sont dans le dossier du plugin ArdSim ( qui est normalement dans votre dossier Plugin de X-plane 10 si vous avez suivi le premier tutoriel ), ils se prénomment IN_1.cfg et OUT_1.cfg par défaut ( maintenant il y a les fichiers IN_N.cfg et OUT_N.cfg qui sont nécessaires et présent dans la dernière version du plugin ).

Pour ce qui va suivre, vous allez avoir besoin d'un éditeur de code tel que Bracket ou Notepad ++.

On va donc ouvrir le premier ( IN_1 ) !
Normalement, vous devriez avoir quelque chose dans ce style-là :
Image

Mais ! Ce sont des Datarefs allez-vous me dire rigolus !
Eh oui, effectivement ce sont des Datarefs applaublanc .


Ce sont plus exactement les Datarefs que le plugin ArdSim va surveiller pour voir s'il faut qu'il allume une Led physique ( Si c'est la dataref qui allume une Led d'un panneau d'Annonciateur par exemple ) ou alors qu'il faut qu'il allume les Taxi Light car vous avez appuyé sur un bouton ( faut connecter deux trois neurones pour comprendre cligneoeil ).

C'est super tous ça, mais comment ont les crée ? Faut que j'aille chercher chaque Dataref pour les mettres dedans ?
Heuresement non ! Pour créer ces fichiers, il faut d'abord se rendre sur cette page du site de Vlad pour pouvoir créer un fichier IN.cfg .
Normalement vous devriez avoir quelque chose comme ça :
Image
Il vous suffit tout simplement de chercher un peu la fonction que vous souhaiter commander ( Note : pour l'instant, on ne parle que des Inputs, n'essayer pas de configurer les Outputs sur cette page lolaffiche ) !

Ensuite, une fois que vous avez trouvé la fonction, vous cliquez dessus et vous devriez avoir cette fenêtre qui s'ouvre :
Image

Si vous êtes observateur, vous avez vu que j'ai choisi la fonction " Nav Light ON " Je veux donc que quand mon interrupteur soit sur ON, les Nav Lights s'allument, il faut donc cocher la case "Button push / Switch on" .
Pour l'instant, on va uniquement s'intéresser aux interrupteurs branchés directement sur l'Arduino ( et non via une Matrice ), donc on va laisser " Direct Input ".
Enfin, le chiffre après le dièse et le numéro du pin où serait branché le bouton qui commande l'allumage de Nav Light.
Dans notre cas, il serait branché sur le pin 1.
Puis on clique sur "Add this Line " et on peut voir qu'à droite, il y a une ligne qui s'est ajoutée :
Code: Tout sélectionner
D1+ sim/lights/nav_lights_on   


Ce qui répétitif, c'est le fait qu'il fasse faire cette manipulation pour la fonction " Nav Light OFF " murrouge
La seul chose qui change, c'est qu'au lieu de cocher la case "Button push / Switch on", il faut cocher l'autre
" Button Release / Switch off" !

Pour pouvoir télécharger ce fichier de configuration, vous devez cliquer sur Download Config et vous n'avez plus qu'à copier et coller le fichier ainsi téléchargé nommé IN_1.cfg dans le dossier du plugin ArdSim pour ainsi remplacer le fichier IN_1.cfg qui est de base dans le dossier.
Depuis que le fichier IN_N.cfg est nécessaire, vous devez créer un fichier IN_N.cfg contenant les mêmes datarefs que votre IN_1.cfg ;) !

La manip pour les Outputs et sensiblement la même avec une étape en moins ( il vous faut aller sur cette page pour accéder au fichier de configuration des OUTPUTS ).

Et bien c'est tout pour ce second tutoriel sur ArdSim ! Dans le prochain, je pense que l'on va commencer les choses sérieuses en s'attaquant à la programmation de l'Arduino grandsoleil !
LFQQ
Dernière édition par LfQQ le Ven 6 Mai 2016 20:07, édité 1 fois.
I7 4790 3,6-4 GHz- MSI Z97 - GTX 960 EXOC 2go VRAM - 8go RAM DDR3 - DD 1To
ARDUINO MEGA 2560 R3 / UNO R3 & X-PLANE 10.41.
Only Chuck Norris can land on RNY 37
Brevet de Pilote Planeur en cours chouettedoights
LfQQ
 
Messages: 187
Inscription: 3/08/14

Re: Arduino et X-plane

Messagede LfQQ » Mer 30 Déc 2015 13:33

Salut !
Aujourd'hui pas de tuto ( ni pour les jours à venir ), mais j'en profite pour faire une petite parenthèse :

Si vous ne possédez pas X-plane 10 mais que vous aimeriez le tester pour voir ce que ce simulateur a dans le ventre ( ou juste pour pouvoir tester ArdSim ), je vous invite a télécharger la démo GRATUITE qui est disponible sur le site officiel d'X-plane :
http://www.x-plane.com/fr/telechargements/demo/

Les seules limitations la démo sont :
- Il n'y qu'une seule scène d'installé ( celle de Seattle / KSEA ), au delà vous ne verrez que les aéroports et l'océan autour ;
- Vous ne pouvez piloter que 15 minutes, après, votre avion deviendra incontrôlable.

Mais sinon, vous avez droit de piloter les mêmes avions qu'avec la version complète, avec le même modèle de vol. Vous avez également les mêmes rendus graphiques et aucune autre limitation ou interdiction que celle préciser au dessus grandsoleil grandsoleil !
Voili Voilou !
LFQQ ( Je précise que je n'ai aucune action chez Laminar Research lolaffiche )
I7 4790 3,6-4 GHz- MSI Z97 - GTX 960 EXOC 2go VRAM - 8go RAM DDR3 - DD 1To
ARDUINO MEGA 2560 R3 / UNO R3 & X-PLANE 10.41.
Only Chuck Norris can land on RNY 37
Brevet de Pilote Planeur en cours chouettedoights
LfQQ
 
Messages: 187
Inscription: 3/08/14

Re: Arduino et X-plane [ALLUMER DES LEDS]

Messagede LfQQ » Dim 4 Déc 2016 19:24

III/. ALLUMER DES LEDS

Salut tout le monde !

Aujourd'hui on attaque les choses sérieuses, on va allumer des LEDs chouettedoights .
Allumer des LEDs, mais pour faire quoi ??
Ces LEDs vont nous servir de témoin pour le train d'atterrissage rigolus .

Le matériel nécessaire :
- 3 LEDs vertes ;
- 1 LED rouge ;
- Quelques fils pour breadboard ;
- 4 résistances ( 200 ou 330 Ohms ) ;
- Une Breadboard ;
- Une Arduino ( évidemment vous allez me dire, mais on sait jamais yeuxhaut ... ) ;
- Un peu de bon sens cligneoeil .

On commence d'abord par la partie matérielle de la chose en prenant la LED,
Si vous êtes un tant soit peu observateur, vous verrez qu'une des pattes de la LED est "raccourcie" cette patte est nommée la " CATHODE ", c'est cette patte qu'il faut brancher au - ;)
Un moyen de la retenir, il y a un C dans Cathode, C pour Court cligneoeil
l'autre s'appelle "ANODE", c'est cette patte qu'il faut brancher au +.
Un petit ( grand ) schéma :
Image
On ne peut pas inverser les pattes car sinon le courant ne passerait pas. Comme une diode ( d'ailleurs le nom LED / DEL veut dire " Diode électro-luminescente " en gros une diode qui fait de la lumière ), la LED serait "blocante" !
On peut noter la ressemblance entre le symbole d'une diode et d'une LED.
DIODE :
Image
LED :
Image

On va éviter de s'éterniser sur ce sujet, une simple recherche sur internet et vous trouverez toutes les explications sur les LEDs que vous voudrez !

Voici le montage à réaliser ( attention à l'ordre des pins ! ) :
Image


Une fois que cela est fait, vous branchez l'Arduino à votre ordinateur, et vous ouvrez l'IDE d'Arduino !
Le Code que l'on va utiliser est dans les exemples de la library ArdSIM, mais pour comprendre comment il fonctionne, autant l'écrire nous même !

Une fois l'IDE lancé,
la première chose à faire est d'inclure les library propre à ArdSIM ( pour simplifier, les library sont en quelque sorte un catalogue où on va piocher différentes instructions propres à la library).
Pour cela on utilise l'instruction #include
Pour que ArdSIM marche, il faut inclure la library <ArdSimUSB.h> et également la library <Servo.h>.

Code: Tout sélectionner
#include <ArdSimUSB.h>
#include <Servo.h>


NOTE : L'instruction utilisé ( #include ) est à mettre avant le void setup !


L'étape suivante et de déclarer à ArdSIM quel est vôtre, ou vos Arduino(s).

#define BOARD_TYPE nomdevotrecarte, nombredecarte


Ce sont les noms suivants qu'il faut insérer : MEGA, UNO, MINI, NANO.
Dans mon cas, j'utilise pour l'exemple une Arduino UNO

Code: Tout sélectionner
#include <ArdSimUSB.h>
#include <Servo.h>

#define BOARD_TYPE      UNO, 1



Ensuite, il nous faut déclarer des variables pour les LED, où on indiquera son pin et le numéro de la dataref (voir les fichiers .cfg)
#define nomvariable pin, numdataref


Vu que l'on va s'occuper du train d'atterrissage aujourd'hui, voici ce qu'il faut mettre:
Code: Tout sélectionner
#include <ArdSimUSB.h>
#include <Servo.h>

#define BOARD_TYPE      UNO, 1

#define  Gear1      5, 1 
#define  Gear2      6, 2
#define  Gear3      7, 3
#define  GearTrans   3, 4 


Voilà on a fini pour le début du code, pour l'instant, tout ce qu'on a mis ne fait pas partie du void setup ni du void loop.
C'est au dessus.

Mais nous allons donc rentrer dans le void setup, avec ArdSIM USB, rien de plus simple, on ne met q'une seule ligne de code
ArdSimStart;

C'est ce qui permet de démarrer et d’initialiser le plugin ArdSIM USB.

Donc maintenant, votre code devrait ressembler à ça :
Code: Tout sélectionner
#include <ArdSimUSB.h>
#include <Servo.h>

#define BOARD_TYPE      UNO, 1

#define  Gear1      5, 1 
#define  Gear2      6, 2
#define  Gear3      7, 3
#define  GearTrans   3, 4 

void setup()
{
   ArdSimStart;
}



Passons au coeur du programme : le void loop.
Après avoir initialisé le plugin ArdSIM, il faut qu'il "Scan" les dataref d'Xplane et qu'il les envoie à l'Arduino.
on insère donc cette ligne :
ArdSimScan;


Ensuite, il faut donner l'indication à l'arduino d'allumer tel ou tel Led quand le plugin ARDSim a envoyé des informations à la carte (j'espère être clair, mais l’interaction entre la carte et le plugin est compliquée à expliquer murrouge ).
Cela ce fait à l'aide de l'instruction
LEDout(nomLED)

Le nom de la LED est en réalité le nom de la variable où on a déclaré le pin et le numéro de Dataref.

On a donc une LED sur le pin n°5 -> Gear1
Une LED sur le pin n°6 -> Gear2
Une LED sur le pin n°7 -> Gear3
Une LED sur le pin n°3 -> GearTrans

On va donc utiliser LEDout 3 fois, ce qui donne
LEDout(Gear1);
LEDout(Gear2);
LEDout(Gear3);
LEDout(GearTrans);


Voilà le code est terminé et devrait être comme ça :
Code: Tout sélectionner
#include <ArdSimUSB.h>         
#include <Servo.h>

#define BOARD_TYPE   UNO, 1     

 
#define  Gear1   5, 1   
#define  Gear2   6, 2              
#define  Gear3   7, 3 
#define  GearTrans   3, 4


void setup()  {
 
   ArdSimStart;   


}

void loop()  {

ArdSimScan;


   LEDout(Gear1); 
   LEDout(Gear2);   
   LEDout(Gear3);
   LEDout(GearTrans);   
   
   
}
 


La partie code une fois terminée, il faut téléverser (compiler) le code vers l'Arduino, il faut donc sélectionner le bon type de carte et le port dans l'onglet Outils de l'IDE.
Et cliquer sur la flèche avec l'option "Téléverser".
NB: Ne pas oublier de vérifier le code en cliquant sur l'autre bouton rigolus cligneoeil

Maintenant il faut voir du côté de Xplane et du plugin ArdSim, il faut mettre ça dans les fichiers .cfg "out_1" et "out_N".
1 1 sim/flightmodel2/gear/deploy_ratio 1
2 1 sim/flightmodel2/gear/deploy_ratio 2
3 1 sim/flightmodel2/gear/deploy_ratio 3
4 0 sim/cockpit2/annunciators/gear_unsafe


Une fois toutes ces étapes effectué, vous devriez avoir ça comme résultat
-> https://www.youtube.com/watch?v=iwcbyR9GnHI

Si vous rencontrez des problèmes, n'hésitez pas à la signaler !
F
I7 4790 3,6-4 GHz- MSI Z97 - GTX 960 EXOC 2go VRAM - 8go RAM DDR3 - DD 1To
ARDUINO MEGA 2560 R3 / UNO R3 & X-PLANE 10.41.
Only Chuck Norris can land on RNY 37
Brevet de Pilote Planeur en cours chouettedoights
LfQQ
 
Messages: 187
Inscription: 3/08/14

Re: Arduino et X-plane 10 => ARDSIM USB

Messagede JacquesZ » Dim 4 Déc 2016 21:25

Super tuto, bravo!
Ça me fait penser que j'ai un peu lâché celui pour Link2Fs, mais il est vrai qu'avec la sortie de Mobiflight, ça à perdu un peu de son intérêt...
i7 4770K, CM Asus Hero, 16Go, DD1To & SSD 500Go, GTX780Ti et GTX970,win 7 64b FSX
3 x 22" sur Matrox Th2Go + 2 x TV 32"
Tdb: 1 x 17" + 1 x 19"
Saitek Multi & radio panel, GNS430 Emuteq, FFB Yoke Brunner
Arduino MEGA+LeoBodnar
Avatar de l’utilisateur
JacquesZ
 
Messages: 1877
Inscription: 24/11/10

Re: Arduino et X-plane 10 => ARDSIM USB

Messagede LfQQ » Lun 5 Déc 2016 23:25

Merci Jacques ! grandsoleil
Concernant tes tutos, je les trouve très intéressant,
car ils apprennent des choses en plus de l'interface Link2FS !
F.
I7 4790 3,6-4 GHz- MSI Z97 - GTX 960 EXOC 2go VRAM - 8go RAM DDR3 - DD 1To
ARDUINO MEGA 2560 R3 / UNO R3 & X-PLANE 10.41.
Only Chuck Norris can land on RNY 37
Brevet de Pilote Planeur en cours chouettedoights
LfQQ
 
Messages: 187
Inscription: 3/08/14

Arduino et X-plane 10 => ARDSIM USB

Messagede JC67 » Mar 1 Mai 2018 09:32

Bonjour,
Les sites de Vlad Sychev sont maintenant les suivants:
Baron 58: http://www.simvim.com/b58/
ArdSimX: http://www.simvim.com/
SimVim Instrument Panels: http://www.simvim.com/svpanel.html
Bonne lecture.
Cordialement,
JC
Wins 10 (X64)
i7 3930K 3.20 GHz Noctua NH-D14
ASUSTeK P9X79 DELUXE
RAM 32 Go type G.Skill DDR3
NVIDIA GeForce GTX 1080 Ti
NVIDIA GeForce GTX 680
Samsung SSD 850 PRO 256 Go
OCZ-VERT EX4 SCSI 120 Go
1 HDD 2 To SATA III
Avatar de l’utilisateur
JC67
 
Messages: 122
Inscription: 16/03/14
Localisation: AY CHAMPAGNE


Retourner vers Interface & logiciel ARDUINO





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron