[Arduino] 1 Préambule

Fabrication de cockpit et divers ( palonnier , panels ..) c est ICI
Avatar de l’utilisateur

Topic author
Topper Harley.
Nouvelle Recrue
Nouvelle Recrue
Messages : 28
Inscription : 13 avril 2012

[Arduino] 1 Préambule

#1

Message par Topper Harley. »

Bonjour

Je vais poster une série d'articles concernant l'utilisation de la carte Arduino, principalement pour l'utiliser avec falcon BMS.
Avec le recul, je vous dit très honnêtement que je ne suis pas certain que ce soit la carte la plus adaptée pour construire un pit car il est assez ardu de l'employer. D'un autre côté, elle est très peu chère et si vous voulez vous initier à la programmation et l'électronique, ou simplement représenter quelques instruments, vous pouvez vous laisser tenter.

1. Sortir les données de BMS.

Cela est manifestement possible car il existe plusieurs programmes, comme par exemple MFD extractor. Mais comment ça fonctionne ?
Voilà : notre simulateur de vol préféré, a intégré (depuis la version SP3, à ce que j'ai compris) la diffusion de plusieurs de ses paramètres dans la mémoire partagée.
La mémoire partagée (http://fr.wikipedia.org/wiki/M%C3%A9moi ... ocessus%29) est un espace où les programmes peuvent écrire des données, et ces données peuvent être accessibles à d'autres programmes. Cela veut dire qu'en temps réel, pendant le vol, Falcon BMS écrit plusieurs paramètres de vol dans cette mémoire partagée, et que si nous savons accéder à cette mémoire partagée, nous pouvons récupérer ces paramètres et les afficher. Les afficher soit dans un autre programme, soit (et ce sera le but de ces articles) sur des supports externes.
La première difficulté est d'accéder à la mémoire partagée. Pour cela, Windows dispose de plusieurs API qui permettent d'y accéder :

OpenFileMapping qui permet d'ouvrir une ressource de type "file mapping".
MapViewOfFile pour lire le contenu du fichier.
UnmapViewOfFile pour clôturer la ressource ouverte précédemment.
Le détail de ces API est donné sur le MSDN (http://msdn.microsoft.com)


Les utilisation d'API peuvent s'effectuer avec plusieurs langages : visual basic, delphi pour les langages les plus accessibles, ou visual basic .net, par exemple. Perso, je travaillerai (à priori) en C++. Pour cela, j'ai téléchargé et installé la version "Microsoft Visual C++ Studio 2010 Express" (http://www.visualstudio.com/en-us/downl ... 10-express) qui est gratuite et qui comprend l'IDE (l'environnement de travail) ainsi que le compilateur.

En plus de savoir comment accéder à la mémoire partagée, il faut savoir ce que l'on y cherche. Cela est donnée par le ficher "Flight Data.h" que vous trouverez dans le répertoire C:\Falcon BMS 4.32\Docs\BMS Manuals\Other Documentation. Ce ficher donne le type de données et l'endroit dans la mémoire où il va écrire ses données.
Il s'agit d'un fichier de type .h, qui est un fichier d’entête de C++ et qui va déclarer la classe "FlightData". Certaines données de cette classe seront accessibles directement comme par exemple fuelFlow qui donne le Fuel Flow en direct, ou nozzlePos qui va donner l'ouverture du nozzle. D'autres données sont de type enum, elle désignent un bit qui à lui seul signifiera éteint ou allumé. Comme par exemple CONFIG dans LightBits qui représente l'état du voyant Config Store sur le panneau d'alertes.

Enfin, une dernière chose à connaitre : le nom donnée par falcon BMS pour sa mémoire partagée est "FalconSharedMemoryArea". Il semble y avoir également FalconSharedOsbMemoryArea et FalconSharedMemoryArea2, je n'ai pas encore utilisé.

Voilà, vous savez à présent comment certains programmes récupèrent des données de Falcon BMS, et où trouver les ressources pour extraire les données que vous désirez.

Dans mon prochain post, je vais vous donner le code source en C++ pour récupérer et afficher une donnée de vol en temps réel.

Image
Avatar de l’utilisateur

Ikky
Nouvelle Recrue
Nouvelle Recrue
Messages : 18
Inscription : 14 octobre 2012

Re: [Arduino] 1 Préambule

#2

Message par Ikky »

Merci pour ces explications
Avatar de l’utilisateur

usul
Pilote Philanthrope
Pilote Philanthrope
Messages : 1473
Inscription : 06 décembre 2003

Re: [Arduino] 1 Préambule

#3

Message par usul »

Très intéressant ça. Je suis sur que nous pourrons l'exploiter pour d'autres simus.
Merci!!
i7 12700F - Gigabyte Z690 UD - RTX 4070 - 32Go RAM DDR4 - W11 64bits - WINWING F16EX - VPC MongoosT-50CM3 - Pro Flight Switch Panel - Pro Flight Radio Panel - Pro Flight Multi Panel - TQ6+ - 4 x FIP - Thrustmaster TPR - TrackIR 5 - 3x MFD avec 3 écrans HDMI 8" - VPC Controle Panel - VPC Rotor TCS Plus Base -VPC Hawk 60 Collective Grip - StreamDeck - Ecran 34" curved"
Avatar de l’utilisateur

hussard26
Nouvelle Recrue
Nouvelle Recrue
Messages : 151
Inscription : 11 février 2012

Re: [Arduino] 1 Préambule

#4

Message par hussard26 »

Salut Topper,

Bon j'vais essayer de m'y mettre sans tomber dans les vap' :emlaugh:
j'ai un peu de temp devant moi là....
je vais acheter les machins et les bidules :emlaugh:

mais attends toi à des questions à la con! :yes:

@+

edit: t'as essayé avec DCS?
Avatar de l’utilisateur

Lightning101
WSO Co-pilote
WSO Co-pilote
Messages : 968
Inscription : 03 août 2014

Re: [Arduino] 1 Préambule

#5

Message par Lightning101 »

Felicitation Topper pour tout ces tutos.

Je ne compte pas utiliser les carte arduino car je suis trop nul en électro alors je compte utiliser quelque chose de plus "friendly user" mais je suis convaincu que tout ce que tu as écrit servira a toute la communauté qqui utilise de plus en plus ces cartes.

Chapeau de maitriser tout ça!
Avatar de l’utilisateur

Topic author
Topper Harley.
Nouvelle Recrue
Nouvelle Recrue
Messages : 28
Inscription : 13 avril 2012

Re: [Arduino] 1 Préambule

#6

Message par Topper Harley. »

hussard26 a écrit :Salut Topper,

Bon j'vais essayer de m'y mettre sans tomber dans les vap' :emlaugh:
j'ai un peu de temp devant moi là....
je vais acheter les machins et les bidules :emlaugh:

mais attends toi à des questions à la con! :yes:

@+

edit: t'as essayé avec DCS?
salut Hussard.

Non, ne t'inquiètes pas : Il n'y pas de questions à la con ! pas de souci.
Si tu veux commander une carte, je te recommande vivement de prendre la carte Leonardo. La arduino uno sera beaucoup plus galère pour ce qu'on veut faire (déjà que c'est pas évident...) ;-)


Concernant DCS, je n'en ai aucune idée car je n'ai pas DCS. Mais je peux te donner une réponse générique :

-Quel que soit le programme, le jeu, le simulateur que tu utilises, l'arduino va te donner la possibilité de gérer des boutons, des potentiomètres, des encodeurs numériques , afin qu'ils simulent une action sur ton clavier , ou une action sur ton joystick. Ca veut dire que tu peux câbler et programmer un interrupteur qui va faire le raccourci Ctrl+V, et tu vas pouvoir utiliser cette fonction dans Word, par exemple. Donc, pour des entrées, tu pourras utiliser l'arduino dans n'importe quel programme, jeu ou simulateur.

-Ensuite, si le programme, le jeu, le simulateur que tu utilises permet de pouvoir lire certain de ses paramètres en temps réel, tu pourras (en plus) utiliser l'arduino pour afficher ces valeurs sur un écran, un cadran, en allumant une led, etc... et je ne sais pas si DCS permet d'exporter ces données comme le fait BMS.


@+
topper
Avatar de l’utilisateur

Topic author
Topper Harley.
Nouvelle Recrue
Nouvelle Recrue
Messages : 28
Inscription : 13 avril 2012

Re: [Arduino] 1 Préambule

#7

Message par Topper Harley. »

wralex a écrit :Felicitation Topper pour tout ces tutos.

Je ne compte pas utiliser les carte arduino car je suis trop nul en électro alors je compte utiliser quelque chose de plus "friendly user" mais je suis convaincu que tout ce que tu as écrit servira a toute la communauté qqui utilise de plus en plus ces cartes.

Chapeau de maitriser tout ça!
Bravo à toi pour ton pit !
Avatar de l’utilisateur

Goupil
Pilote Confirmé
Pilote Confirmé
Messages : 2966
Inscription : 23 décembre 2004

Re: [Arduino] 1 Préambule

#8

Message par Goupil »

Merci pour ce partage de connaissances et cette pédagogie (même si j'ai vraiment pas tout compris :crying: et en plus, c'est particulièrement très copieux !!!)
J'espère qu'un modo scotchera tous tes posts dans une rubrique spéciale afin qu'il ne disparaissent pas dans les bas fonds du forum et ainsi les questions/réponses pourront rester à proximité

Vraiment gros et très beau boulot !!! :notworthy :notworthy :notworthy

:fox:
Image

Mon cockpit à moi................................................................. l'Histoire en vraie
Avatar de l’utilisateur

Vico
Pilote Philanthrope
Pilote Philanthrope
Messages : 4040
Inscription : 16 avril 2009

Re: [Arduino] 1 Préambule

#9

Message par Vico »

Merci Topper
Superbe série de tutos qui méritent effectivement un post ou un sous forum dédié. Ou alors les rassembler tous dans un seul post scotché.
:notworthy
Image
Pilote indépendant de F16 block 50/52 sur Falcon BMS - HOTAS Cougar modé FCC1 - Saitek Pro Rudder Pedals - ED TRacker - 2x MFD Cougar - ICP "CatPlombe" - 1x Carte Pokeys - un cockpit F16 en chantier - CM MSI B650 Gaming ; AMD Ryzen 7800X3D 4,20GHz ; 32 Go DDR5 Corsair ; AMD Radeon RX7900XTX 24Go DDR6 ; Ecran Hisense 55" 4K
Avatar de l’utilisateur

Cat
Pilote Philanthrope
Pilote Philanthrope
Messages : 10609
Inscription : 30 juin 2008

Re: [Arduino] 1 Préambule

#10

Message par Cat »

LE sujet tant attendu..... Merci Topper
Image

Core i5-4690K @ 3.5 GHz - 8Go RAM - Carte graphique GTX 970 - (Cougar + FSSB) - TPR - W10 64bits sur SSD - EdTracker - Un pit
Avatar de l’utilisateur

matbog
Pilote Philanthrope
Pilote Philanthrope
Messages : 2335
Inscription : 13 octobre 2009

Re: [Arduino] 1 Préambule

#11

Message par matbog »

Je viens juste de tomber sur ta série d'articles. C'est vraiment top.
Un grand merci a toi Topper!!!
Répondre

Revenir à « Cockpit & mod perso »