Cockpit pour Orbiter

  Cockpit pour le simulateur spatial ORBITER




                       







par Antoine et Maxime BEZANILLA



  Le projet qui est ici présenté, est un travail réalisé par mon frère et moi. Nous proposons de vous le présenter, et de vous guider dans la réalisation d'un projet similaire à celui ci. Nous le présentons au concours Sciences et vie Junior, "Innovez".

ÉDIT DU 27/02: Nous avons gagné au concours SVJ grâce à ce projet. Il paraîtra dans le numéro d'avril 2013(en abonnement)  ou mai 2013 (en kiosque)

Qu'es ce que c'est?

       Ce cockpit est un moyen de s'amuser, de s'immerger, en utilisant le logiciel de simulation spatiale gratuit Orbiter. Il est en bois contreplaqué, peint, et agrémenté d'une trentaine de boutons et switches qui ont une réelle fonction dans le simulateur informatique Orbiter.

Pourquoi?

       Pour s'amuser! C'est plus immersif! (ouais mais bon on l'aura compris, hein ;)  )

Mais ORBITER, c'est quoi?

     Orbiter est un EXCELLENT simulateur de vol spatial! Il est le plus réaliste, tant au niveau de son excellent moteur physique et mathématique qu'au niveau de la simulation pure (de vols historiques, ou pas!)
Il est incontestablement le Meilleur.
 "Orbiter est le meilleur Simulateur spatial 3D gratuit existant. Ecrit par le Dr. Martin Schweiger, Ph.D. il est doté de graphismes exceptionnels mais ne faite pas l'erreur de le prendre pour un simple jeux, doté en interne d'un moteur physique et mathématique complexe, il rend les voyages spatiaux dans le système
solaire très réalistes. Envie de vous poser sur Phobos, Mars ? Venus ? envie de refaire les voyages d'Apollo de Mer/spirit de vous docker à la station spatiale internationale ?" Paroles rapportées du Fabuleux site du forum de la communauté francophone d’orbiter. UN LIEN ICI

http://orbiter.dansteph.com/screenshot/images/Orbiter_07.jpg
 Ci Dessus: La fusée Saturne V au décollage
 http://orbiter.dansteph.com/screenshot/images/Orbiter_17.jpg

Ci Dessus: le Delta Glider IV, très bon vaisseau, certes futuriste mais qui n'en subit pas moins les lois de la Physique Képlérienne!

Orbiter, c'est l'aventure spatiale à la maison! C'est pour tout cela que nous avons réalisé ce Cockpit!

Bon, et ce cockpit alors?

On y vient, on y vient. Il sera présenté de la façon suivante:
   -Par étapes de fabrication
   -Avec schémas et annotations
   -Avec les "ingrédients"
   -...et la recette!
   -Avec le programme de la carte programmable déjà tout fait, il n'y aura qu'à demander!

Avant toute chose:  Ce cockpit (vous vous en serez douté) est destiné à Orbiter, mais il est possible de l'utiliser avec flight simulator, ou tout autre simulateur possédant des raccourcis claviers. Aussi, vous l'aurez surement compris, Orbiter est vraiment compliqué à prendre en main si on ne s'y investit pas un minimum ;) , et enfin, ce cockpit est en "Open source" :)  donc reprenez le, triturez le et ne laissez aucune limite à votre imagination!!

1ère étape :


  




On a commencé par relever tous les raccourcis claviers que nous voulions utiliser pour les boutons. 










    




 Puis on a défini leurs emplacements sur le plafond en assignant le raccourci clavier














 Et on a reporté le tout sur feuille A3 pour y voir plus clair. (on voit en noir le dia mètres des boutons, en vue du perçage du plafond...)



Puis nous avons imaginé le cockpit en lui même. Le schéma qui suit est un bon aperçu du sujet:









  
Le violet correspond à un vieux siège de voiture. L’écran est un petit écran plat, encastré dans la paroi de face, l'éclairage est une simple LED sous un plastic diffusant, et sert de rétroéclairage pour le clavier. Nous ne pensions pas à ce stade que l'aération et le son changeraient, mais nous l'avons finalement modifié d'emplacement, on verra cela plus tard. La planche arrière (derrière le siège ;)  ) est amovible.

Tout ça, c'était la théorie...

2ème étape:

Et à présent, un peu de pratique...

 



 Fixation du siège à un grand châssis, et pose tes premiers tasseaux de la structure.



















 Je vous passe toute la fabrication, découpe et pose de pas mal de tasseaux et planches, car cela dépendra de VOUS, et de VOTRE cockpit, de la forme que vous lui aurez donné ;). Ici, on a donc mis quelques planches et on a fini la structure.

 On peut voir l'écran encastré dans un carré découpé. Le système de blocage est simple:







Une fois fini (pour le moment, on est d'accord qu'il n'y a eu que du bricolage bois et vis, élémentaire), il a fallu le peindre. Le blanc m'a paru sympathique, et j'y ai ajouté après séchage des bordereaux gris.
La poignée est vue en détail sur les photos suivantes...

















Maintenant vient l'étape du perçage de tous les trous des boutons...





Les 7 premiers...











Et les 30 boutons placés...







Ensuite, nous avons câblé tout ça, et ça nous a donné un joli bazar:

Et là...

3ème étape:

Il faut à présent réaliser le Code Arduino du simulateur, et là ça se complique. Maxime s'en est chargé (moi je suis une bille à ce niveau là). Il a eu beaucoup de problèmes, car à la base nous ne devions utiliser que la carte Arduino Méga... mais cela n'a pas fonctionné, quelque chose, (un bug dans son programme peut être?) n'allait pas.

Maxime: en fait, c'est la liaison PS/2 keyboard qui buggait: on ne pouvait pas utiliser deux fois de suite le meme bouton (pas très pratique). Après des heures de recherches, on a finalement opté pour une leonardo en interface USB...

Enfin, toujours est il que nous avons finalement opté pour un couplage Arduino Méga avec Arduino Léonardo, une deuxième carte programmable qui nous a permis de faire interface entre le PC et la Méga.
Elle est entre autres raisons, utile en ce sens qu'elle permet d'émuler (de faire croire au PC ) la présence d'un clavier. Et c'est "plug-and-play"!

Afin de vous faciliter la tâche dans fabrication de votre cockpit, si vous ne souhaitez pas vous taper la conception du code ni des schémas électroniques, vous pouvez nous contacter par mail et nous vous enverrons le programme "tout chaud tout fait" et les schémas électriques. De toute manière, ils seront dispos en pdf en bas de page très bientôt:!

spartacusmegatronic@gmail.com 

4ème étape:

Et il ne reste plus que les finitions...

 J'ai étiqueté les boutons par fonction. Il y a toutes les commandes de base d'orbiter et quelques commandes relatives au Delta Glider IV.

Il y a des boutons de type swich, boutons poussoirs, swich rotatif, ou encore une clé pour se désamarrer d'un port d'attache (j'ai craqué :) je trouvais ça plus classe).

J'ai aussi mis le système de ventilation:


 Derrière la tête :). Il y a un bouton pour allumer et éteindre.

Bonus: Les Boutons UN  PAR  UN: 






































Et la partie électronique?

 Eh ben en fait c'est très simple. Comme dit plus haut, il y a deux cartes arduino: une MEGA avec 52 entrées/sorties pour gérer tous les BP en même temps qui transmet par I2c la liste des BP enclenchés à la leonardo. En fait, elle fait un peu plus: elle permet de ne faire un instruction qu'une seule fois (un seul appui sur une touche), donc il est difficile de la remplacer par un registre à décalage sans surcharger la leonardo. C'est donc un investissement obligatoire si on  veut que le cockpit aie un temps de réponse acceptable!

Du coté de la leonardo, elle reçoit par i2c le liste des BP et envoie au PC un code clavier grâce à la librairie Keyboard intégrée à l'IDE arduino 1.0.1. Voyez les programmes (version pour orbiter).

Il est en langage arduino... logique...

Le programme de la leonardo :
pour l'IDE arduino (.ino): leonardo.ino
en simple fichier texte (.txt): leonardo.txt


Celui pour la mega:
pour l'IDE arduino (.ino): mega.ino
en simple fichier texte (.txt): mega.txt


Le schéma de principe: schéma de principe.pdf

attention il faut modifier les raccourcis claviers dans le dossier orbiter. Il faut remplacer le fichier keymap.cfg par celui-ci: keymap.cfg









                                            La  VIDEO :





           Surtout, si vous voulez en fabriquer un TENEZ  NOUS  AU  COURANT  RÉGULIÈREMENT, NOUS  VOUS  AIDERONS  AVEC  JOIE ;) !!

























21 commentaires:

  1. Réponses
    1. bonjour je viens uste de découvrir ce site et je voudrai en savoir plus !
      eyraud claude
      drome provence simulation implanté à montélimar.
      assos dédiée aux simulateurs de vol.
      mo mail f1tud@orange.fr
      je débute sur arduino!!!
      salutations
      claude

      Supprimer
  2. Salut !
    Je trouve votre projet super intéressant ! Dommage que l'on ne puisse pas voir la vidéo, mais sa à l'ai vraiment génial !! GG à vous !

    RépondreSupprimer
  3. Merci Human.
    La vidéo sera dispo d'ici quelques semaines, après les résultats du concours SVJ.

    RépondreSupprimer
  4. Salut,

    Il y a quelques années, j'ai soudé une capsule Apollo pour mon fils passionné de l'histoire de la conquête lunaire. Il s'agit d'un module de commande rappelant l'original, mais quelque peu réduit pour contenir deux astronautes (au lieu de trois dans l'original). Elle est composée d'une armature en tube d'acier solide, pouvant être treuillé pour simuler des effets d'accélération et de "pseudo-apesanteur" à ses occupants. Comme l'original, il possède hublots et deux écoutilles, une pour entrer et sortir, l'autre pour passer dans le module lunaire... module qui devait aussi être construit !
    Au départ, il n'était pas prévu de l'interfacer avec Orbiter dont je ne connaissais pas l'existence à l'époque. Il était néanmoins prévu de le bourrer de boutons, tel que sur le panneau de commande original, mon fils tenant à ce que ce soit "exactement comme de vrai".
    Le projet s'est par la suite embourbé dans diverses difficultés et la capsule se trouve actuellement dans un entrepôt.
    Il m'a par exemple été impossible de trouver des images à haute résolution du panneau de commande. Je voulais imprimer ces images sur un autocollant collé sur le tableau de bord, puis y percer les trous destinés à recevoir les boutons...
    J'ai contacté divers auteurs d'images, sans recevoir de réponse. EX: http://www.geocities.jp/rabiddogs_p64/csm.html, monsieur Schwaiger etc...


    J'ai découvert ce Blog aujourd'hui, après avoir fouillé sur le forum d'orbiter, à la recherche d'une solution technique d'interfacage des boutons de notre simulateur avec Orbiter.
    Il se pourrait que je ressorte ce projet de son hibernation si je pouvais trouver le support pouvant m'aider à résoudre les quelques problèmes qui ont mené ce projet à son enlisement.

    Salutations

    Nico

    RépondreSupprimer
    Réponses
    1. Bonjour nico,

      C'est une super idée! Mon frère et moi-même avons aussi pensé à faire un cockpit pour le NASSP.
      Antoine a d'ailleurs imprimé et reconstitué tout le panel de commande pour s'entrainer à le manœuvrer, et je crois qu'il a tout simplement utilisé des impressions d'écran de Orbiter, qu'il a assemblé sur des feuilles A4... Ce n'est pas du HD, mais c'est très correct. Avec les images de http://www.geocities.jp/rabiddogs_p64/csm.html, tu devrais pouvoir faire quelque chose de super.

      Je tiens cependant à t'avertir que le système employé ne permet QUE d'utiliser des commandes de base dont la liste est dans le document keymap.cfg plus haut. Mais si tu sais programmer, tu ne devrais pas avoir de soucis pour contourner le problème.

      Quoi qu'il en soit, tiens-nous au courant de l'avancement de ton projet et bonne chance!

      max.

      Supprimer
  5. salut Nico, c´est Antoine, le frere de Max. Tu as un super projet! Ce que je te conseille, c´est de télécharger "faststone capture" et de faire des prises d´ecran du cockpit et des panels dans l´addon "NASSP". Si tu ne connais pas, c´est un addon titanesque et en développement pour ce qui est du module lunaire, dans lequel tout est comme dans la vraie capsule (tous les boutons fonctionnent et tous les systèmes internes sont simulés comme en vrai). Les pannels sont vraiment bien faits. En faisant les fameuses prises d´ecran, j´ai fait un poster de 3m sur 3m :). Pour ce qui est de la programmation, notre technique ne marcherait pas. Si vraiment tu t´y remets, dis le nous. On se fera un plaisir de t´aider (et puis peut être qu´on en fera un nous aussi ;) ). Salut salut!

    RépondreSupprimer
  6. Salut Max et Antoine,

    Merci de votre acceuil sympathique.

    Ok pour les captures d'écran, bonne idée. Mais ce n'est pas le souci principal...

    Notre module de commande n'était à la base pas prévu pour être interfacé avec Orbiter. La "simulation" devait être mise en scène par un opérateur extérieur qui devait pouvoir influencer les instruments de navigation depuis l'extérieur... comme les anciens simulateurs. Difficile à mettre en oeuvre me direz vous, mais il faut remettre la chose dans le contexte de l'époque: Des enfants qui voulaient un jouet avec "plein de boutons" afin de pouvoir rejouer le scénario du film Apollo 13.

    Depuis, l'eau a coulé sous les ponts, mon fils a grandi et a appris l'existence de Orbiter. Il a pas tardé à remettre sur le tapis le projet en proposant de l'interfacer avec Orbiter.
    Naivement, il m'a proposé de désosser un clavier de PC et de le relier au moyen des contacts de touche aux interrupteurs du cockpit. Ca ne peut évidemment pas marcher comme cela, un clavier étant une matrice ne pouvant pas interroger plusieurs touches pressées simultanément. Il y a aussi d'autres problèmes que j'exposerai plus bas...

    Je fais un peu d'électronique et je programme des microcontrolleurs (pas Arduino mais je veux bien essayer), je connais le protocole I2C, mais je ne sais rien de ce qui se passe dans le PC, dans le logiciel Orbiter.


    Si j'ai bien compris votre projet, La Mega se charge de collecter les états des différents interrupteurs, grâce à ses nombreuses entrées-sorties. Elle les transmet ensuite par I2C à la carte Leonardo, qui elle même met en forme les données et les transmet par USB au PC.

    Oui, mais...

    Ce que je n'ai pas compris:
    1. Comment diable l'information des interrupteurs pressés finit là où il le faut dans Orbiter ?!? Comment se fait donc la liaison USB-Orbiter ?
    2. Comment avez vous fait comprendre à Orbiter qu'une impulsion de touche de clavier serait désormais remplacée par un sélecteur pouvant prendre un état de 0 ou 1 permanent.
    Exemple: Le train d'aterrissage peut être rentré ou sorti. Si on presse la touche correspondante du clavier, orbiter inverse l'état du train à chaque impulsion reçue de la touche. Dans le cas de mon simulateur, J'ai un switch "train d'aterrissage" qui a deux positions: rentré=1, sorti=0.
    Alors, comment interfacer ?

    Antoine: je ne comprends pas ce que tu veux dire par:
    "Pour ce qui est de la programmation, notre technique ne marcherait pas."
    Pourrais-tu SVP préciser ?

    Merci et Salutations


    Nico


    RépondreSupprimer
  7. Bonjour Nico,

    pour l'explication:
    Tout ce que fait le cockpit, c'est émuler un clavier usb (faire croire au pc q'un clavier usb y est branché). La liaison cockpit-orbiter se fait donc de la même manière qu'avec un clavier classique qu'on utiliserait pour faire des raccourcis clavier. Elle finit donc forcément là où il faut (mais je sais pas où par contre...). Le soucis est que cela "limite" aux fonctions de base dont la liste est dans le fichier keymp.cfg, comme par exemple "ouvrir le port d'attache" qui correspond par défaut à la touche "k". Cela implique que des fonctions particulières à certaines navettes, comme "ouvrir les vannes des RCS" pour le DGIV NE PEUVENT PAS être contrôlées de cette façon. C'est pour celà que notre solution serait restreignante pour ton projet. (cf bas de commentaire).
    En ce qui concerne ta deuxième question: une variable contient la valeur du switch à l'itération précédente de la boucle loop, ce qui fait que grâce à une condition dans le test d'état du switch, on évite de répéter l'action aussi longtemps que le switch est appuyé. Si tu lis le programme de la MEGA, ce sont des variables finissant par un "p" (comme "noseconep").

    Pour ton projet: tu devrais pouvoir créer une interface logicielle permettant de faire le lien entre les touche appuyées (envoyées par la leonardo, que tu peux récupérer dans le tampon du pc) et les variables correspondants aux switchs d'orbiter. Ce qui imposerait de connaitre les adresses de ces variables, ce qui n'est pas gagné du tout.
    Au fait, pour les instruments de bord, j'y connais pas grand chose mais regarde chez saitek si c'est pas déjà fait.

    Max

    RépondreSupprimer
  8. Bonsoir Max

    Merci à toi et à ton frère d'avoir pris le temps de répondre à mes questions.
    Je pense avoir compris les grandes lignes de votre interface. Je vous félicite pour le travail accompli.
    Je suis persuadé que d'autres utilisateurs d'Orbiter pourraient être tentés de construire des cockpits réels si un tel interfacage pouvait être réalisée simplement avec une carte proche du "Plug and play" qui ne demanderait plus qu'un cablage des interrupteurs... sans devoir être électronicien.
    Il serait intéressant de proposer aux développeurs gravitant autour de Orbiter, de penser à implémenter un moyen de communication simple de leur simulateur avec un interface standardisé pouvant être connecté aux cockpits des utilisateurs.
    Imaginez qu'il naisse parmi les utilisateurs d'Orbiter, une communauté de constructeurs de cockpits !
    Je vais encore me prendre le temps de réfléchir sur ce projet...

    Je ne peux actuellement pas accéder au module de commande Apollo que j'ai construit car il se trouve depuis des années dans un dépôt industriel.
    Une montagne de fourbi a entretemps été placé devant et dessus et je ne sais même pas exactement où elle se trouve sous le tas. Il faut que je trouve d'abord un moyen de la localiser dans tout ce volume, puis je tâcherai de voir quand et comment il serait possible de déblayer un chenal d'accès afin de d'extraire la capsule spaciale...
    Je vous ferai signe si je parviens à retrouver mon bien...

    Salutations

    Nico

    RépondreSupprimer
  9. j'essaye de construire un simulateur aéroflight SOS

    RépondreSupprimer
  10. combien cela vous à coûté?
    combien de temps avez vous mis?
    avez vous une adresse e-mail

    RépondreSupprimer
    Réponses
    1. e projet n'a pas coûté énormément, une centaine d'euros pour l'électronique, plus le bois.
      On a mit six mois à le faire presque chaque week-end, sachant qu'on a rencontré des difficultés de tous ordres, donc si tu veux t'en faire un en t'en inspirant tu rencontreras (a priori) moins de difficultés. Enfin je suppose. J'espère...
      tu peux nous joindre à l'adresse spartacusmegatronic@gmail.com
      D'ailleurs on est en train de développer un plus gros cockpit, qui utilisera toues les fonctions du projet NASSP (projet Apollo), mais ça... ça va prendre un certain temps.

      Supprimer
  11. Belle invention, mais est-ce utile pour tous


    duf

    RépondreSupprimer
    Réponses
    1. C'est utile à ceux que ça intéresse, mais si ta question est: peut-on l'utiliser dans un autre simulateur de vol, la réponse est oui (Flight simulator, X-plane,...)

      Supprimer
  12. Ce commentaire a été supprimé par l'auteur.

    RépondreSupprimer
  13. pouvons nous utiliser un autre jeu dessus?

    duf

    RépondreSupprimer
  14. bonjour mesieurs les rois de l'informatique
    j'aimerais savoir quelle est la phrase magique et informatique pour programmer les carte arduino
    cordialement
    l'inconnu

    RépondreSupprimer
    Réponses
    1. Bonjour,
      les codes sont donnés plus haut, en format .txt et en format .ino (pour l'IDE Arduino)

      Supprimer
  15. bonjour, est-ce que orbiter peu fonctionner avec plusieurs écrans et avec des lunettes à cristaux liquides branché sur le pc pour avoir orbiter en relief pour mettre dans un cockpit, du genre un écran devant, et 1 de chaque coté ?

    RépondreSupprimer