UN SIMULATEUR DE BEECHCRAFT B200

UN SIMULATEUR DE BEECHCRAFT B200

Comment reproduire le sélecteur d'altitude Collins pre-80e

Cet article remplace un article un peu vieillissant sur le sélecteur d'altitude.

 

En préambule voici la photo du vrai sélecteur d'altitude Collins qui équipe beaucoup de Beechcraft.

J'ai réussi à trouver celui ci sur Ebay en bon état et pour pas trop cher.

 

 

 P1040341.JPG

 

 

 

En le manipulant et en le démontant, je vous fait part de quelques précisions difficiles à trouver sur le net.

 

1- l'ensemble de roues codeuses permet de monter à un maximum de 49900 pieds

2- les dimensions de la face avant sont identiques au Dme Collins ind 42C à savoir 86 X 42 mm épaisseur de 5 mm avec un cadre qui déborde de 3 mm

3 - le bouton rotatif marqué Push 100 quand il est poussé permet de changer le chiffre des centaines donc le premier chiffre après la virgule et quand il est tiré il permet de changer les milliers donc les 2 chiffres à gauche de la virgule de 0 à 49.

 

Pour plusieurs raisons dont la principale est que je viens juste de le dénicher, je n'ai pas encore interfacé ce vrai instrument avec le simulateur. C'est tout à fait faisable car l'intérieur montre 3 roues codeuse qui sont vraissemblablement en binaire d'après les connecteurs que j'ai vu.

La deuxième raison pour laquelle je n'ai pas encore interfacé cet instrument c'est qu'il prend fatalement de la place en profondeur et pour l'instant j'ai encore un écran de tableau de bord qui m'affiche le Gps et les jauges moteurs.

 

Par contre, ces derniers temps j'ai travaillé à reproduire ce sélecteur d'altitude sur la base d'une Arduino Nano et d'un écran Oled de 128 X 32 pixels et c'est ce dont je vais vous faire profiter.

 

Première étape   

Le plan de câblage

 

Le petit écran Oled comporte 4 broches pour sa connexion en I2c, GND, VCC, SCL et SDA, il fonctionne en 3,3 volts.

 

Voici le plan de câblage

 

 

 

 

 

 

 

 

 

Seconde étape

Ecriture d'un sketch Arduino

 

Ce programme (.ino) chargé dans l'Arduino comporte 3 parties : la déclaration et l'initialisation de l'écran oled en I2c, la mise en forme de l'affichage de l'altitude sélectionnée  et la récupération puis le traitement de cette valeur depuis le port com en écoutant ce port par un SerialAvailable()

 

 

Troisième étape

Ecriture d'un script Lua

 

Ce script (.lua) sera lancé automatiquement par Fsuipc et comporte 3 parties : l'ouverture d'un port com dédié à cette Arduino, un event.Offset qui va guetter le changement de la variable $07D4 et lancer une fonction qui va mettre en forme le numéro et la valeur de cette variable pour la transmettre à l'Arduino.

 

 

Quatrième étape

La construction de l'instrument

 

Rien de particulier, que de la minutie.

Découpe d'une plaque de plexi de 5 mm, collage de baguettes en bois pour imiter la cadre et collage d'une face avant imprimée par le logiciel Shaeffer que j'utilise depuis des années.

Ensuite peinture et vernis de la face avant avec le petit bouton poussoir orange factice pour l'instant, il est juste équipé de la led orange qui va bien pour l'alarme

L'écran Oled est simplement collé derrière la découpe de la face avant et forcément j'ai du décaler l'encodeur qui ne passait pas dans la position originale du vrai instrument.

 

Voilà le résultat

 

 P1040345.JPG

 

Au niveau de l'encodeur, je n'ai pas pu trouver un encodeur qui se pousse ou se tire, je crois d'ailleurs que çà n'existe pas donc je suis resté avec le classique CTS288 qui pilote le changement d'offset depuis mon programme SIOC principal.

 

Voilà une photo de l'envers du décor.

P1040350.JPG

 

Les difficultés que j'ai rencontré

 

1-  Je démarre toujours mon simulateur sur un vol sauvegardé et donc le fichier .fxml contient la dernière valeur du sélecteur d'altitude, ce qui est normal puisqu'il est mécanique et il reste donc positionné sur la dernière valeur.

Mais le problème c'est que cette valeur qui est bien transmise à Sioc au démarrage, ne change plus et donc n'est pas transmise à l'Arduino au démarrage et on se retrouve donc avec une valeur affichée qui est la valeur d'initialisation du programme de l'Arduino.

Si vous me suivez à ce stade et continuez à me lire vous êtes forts  .....

Donc, il faut qu'après le lancement de toute la chaine cette valeur change pour que l'event.offset du script Lua réagisse  et transmette cette valeur à l' Arduino et pour l'instant je n'ai trouvé qu'une solution, inclure une incrémentation, suivie d'une décrémentation de l'offset $07D4 dans la routine Cold and Dark de mon programme Sioc. Cette routine sur mon simu est déclenchée par un appui sur le poussoir rouge Fast Erect de mon tableau de bord.

 

2- Vous avez sans doute observé que le chiffre de gauche sur l'instrument ne passe pas à zéro, ce serait trop simple. A la place du zéro apparait une marque blanche striée de noir en diagonale.

P1040343.JPG

 

J'aurai donc appris comment créer une image bitmap pour l'inclure dans le programme Arduino car il faut pouvoir l'afficher elle aussi à la place du zéro et çà été un peu sportif mais très didactique

 

3- il me reste à peaufiner la routine d'alarme sonore et visuelle selon que l'on arrive à 1000 pieds ou à 300 pieds de l'altitude sélectionnée, mais c'est bien avancé et c'est dans le programme Sioc que çà se passe.

 

 

L'article se termine et je mettrai les programmes à disposition dans la rubrique téléchargement dans les prochains jours

 

 

 

 

 



13/12/2019
2 Poster un commentaire

A découvrir aussi


Ces blogs de Loisirs créatifs pourraient vous intéresser

Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 121 autres membres