UN SIMULATEUR DE BEECHCRAFT B200

UN SIMULATEUR DE BEECHCRAFT B200

Comment créer de A à Z une Jauge moteur avec moteur X27 et Arduino

 *  Octobre 2021 -  Mise à jour de l'article

 

En fin d'article vous trouverez le complément qui vous explique comment rajouter l'indication digitale du torque sur les jauges avec un petit écran Oled 128X32.

 

 

 

P1040627.JPG

 

 

 

 

Dans ce tuto, je vais essayer de rassembler les connaissances nécessaires pour réaliser les jauges moteurs du B200 sans trop de frais et permettre ainsi de s'affranchir de l'affichage de ces jauges sur écran.

Ce tuto explique comment faire le bloc des 4 premières jauges du B200 à savoir les jauges Itt et Torque

 

En effet si vous regardez mon simu, vous remarquerez qu'il reste sur la partie tableau de bord central toutes les jauges moteurs affichées sur un écran de Pc par des références à des .Dll ou des .Gau dans le panel.cfg

Pour évoluer dans mon cockpit je veux m'affranchir de cet écran pour placer la sortie de la carte graphique qui lui est consacrée sur une vue latérale droite du cokpit.

Voilà pour planter le décor de l'évolution du simulateur.

 

J'avais dans mes tiroirs un certain nombre de jauges réelles du King Air ou B200 et d'autres jauges de même diamètre et j'attendais d'avoir les connaissances pour les interfacer.

Ces dernier mois, je me suis beaucoup documenté et j'ai expérimenté pour essayer de trouver une solution pour créer ces jauges sans gros moyens et en m'affranchissant de programmes tiers pour les piloter.

Ma solution est basée sur Arduino Nano, moteurs pap X27.168 et driver Ax1201728sg, l'interface est faite du programme .ino chargé dans l'Arduino et un script Lua

 

Voilà une photo de ce qu'il vous faut comme composants pour mener à bien ce projet pour 4 jauges.

Le circuit driver Ax1201728sg permet en effet de piloter 4 moteurs sur une Arduino

 P1040619.JPG

 

 

Dans l'ordre   :   4 moteurs X27.168

                           Un driver Ax1201728sg ou Vid 6606 et son support dip28

                           Une Arduino Nano

                           1 condensateur électrochimique de 22 uF 10/16 volts

                           1 condensateurs céramique de 100 nf

                           Des connecteurs à vis et une plaque ( dans mon cas c'est un shield d'Arduino Méga )

                       

                          

Pour la phase de mise au point, une Breadboard est recommandée

Voici une vidéo prise pendant le développement de la solution sur Arduino Uno

 

Pour ce qui est des connecteurs, de la plaque support et du boitier plastique etc , je vous ai photographié mes composants mais chacun fera avec ce qu'il a.

 

Voici une photo de la plaque d'interface terminée et câblée pour les 4 moteurs, je vous précise que certains câbles sont sur la face opposée

 

 P1040623.JPG

 

 

Le détail des opérations

 

Dans un premier temps nous allons nous occuper de la partie hard en construisant la partie électronique de notre interface avec le simulateur.

 

 

L'opération la plus délicate est de souder de driver Ax1201728sg sur un support de conversion 28 pattes. Avec du soin et un fer pointu  on y arrive, je recommande fortement d'acheter du flux de soudure pour faciliter l'opération .

J'utilise ce flux de chez Weller acheté chez RS componants référence T005138199

Je précise que je ne touche rien pour la pub et ne suis pas associé à cette entreprise mais je commande régulièrement chez eux et c'est très sérieux

 

P1040621.JPG

 

J'ai la seringue qui va bien pour l'étaler mais un simple coton tige suffit largement.

Dans l'ordre vous mettez le flux sur le circuit en ayant pas peur de déborder, puis vous faites fondre de la soudure fine de bonne qualité sur toutes les empreintes du pcb, vous appliquez du flux sur les pattes de l'Ax1201728sg, vous soudez 2 pattes en diagonales pour bloquer le CI et ensuite vous soudez le reste.

Terminez par un nettoyage à l'alcool pour enlever le flux résiduel.

L'utilisation de flux est à mon sens primordiale pour la réussite.

On termine ce circuit par la soudure de broches de connecteurs de chaque côtés de la plaque pour pouvoir l'insérer sur la plaque à pastilles.

 

 

Vient ensuite l'heure de câbler ce circuit à l'Arduino et aux moteurs, vous avez l'implantation que j'ai choisi sur la photo au dessus.

 

Voici le plan de câblage

 

 

 plan-cablage-ax1201728sg-arduino-x27.png

 Précision :   sur le schéma, les moteurs sont vus de l'arrière

 

 Une fois cette partie terminée, on passe à la confection des jauges.

 

La fabrication des jauges

 

Je suis parti de jauges réelles mais vous pourrez adapter en faisant imprimer la structure à partir des dimensions fournies.

Première étape , le démontage.

Il n'y a pas de règle, parfois c'est facile car l'arrière n'est pas scellé et il suffit d'enlever quelques vis, d'autres jauges sont soudées et doivent être coupées à la Dremmel pour être démontées.

La plupart de ces vraies jauges contiennent un servo receiver, je mets tout çà de côté car c'est trop compliqué pour moi et trop couteux d'interfacer sur ce principe.

Il faut savoir que ces servos fonctionnent pour la plupart en 26/28 volts et en 400 hertz et sont chargés avec 3 signaux sinus déphasés, de retranscrire la position d'un servo transmitter placé à l'endroit de la mesure.

Voici une photo de ces pièces avec notamment le servo que je stocke et le cadran que je garde

 

 

 

Je scanne ensuite le cadran original afin de l'imprimer sur un bon papier épais, après vernissage mat c'est ce cadran que j'utilise dans la nouvelle jauge notamment parce que je n'ai pas forcément toutes les jauges réelles en double.

 

Le moteur X27 est positionné sur un disque de plaque à bandes de diamètre 47 mm (intérieur de la jauge) et soudé sur ce disque.

Le cadran est collé sur le moteur après avoir été percé en son centre avec un emporte pièce de 2 mm

L'aiguille est fabriquée en quelques coups de cutter dans une feuille de plastique blanc et percée à 0.9 mm puis collée sur l'axe ( Attention : pas de Superglue qui pourrait couler et coller l'axe )

Au moment du collage, on s'arrange pour positionner l'aiguille sur le minimum du cadran concerné, cela évite bien des réglages par la suite.

Puis on soude les 4 fils des bobines des moteurs, en respectant un code couleur, sinon galère ... vécu

 

Une photo de l'arrière des jauges avec les plaques à bandes et le câblage des moteurs X27

P1040625.JPG

 

Après positionnement dans la jauge, je mets 2 points de colle autour de la plaque à bandes ( non cyano pour pouvoir démonter ) afin de solidariser le tout.

 

Les jauges font 49 mm de diamètre au niveau de leur tube et 50.5 mm de diamètre extérieur sur leur face avant et un débord de 6 mm. La vitre est en retrait de 0.6 mm par rapport au bord avant de la jauge.

Pour les personnes équipées d'imprimante 3D, il n'y a pas de difficulté particulière à imprimer ces jauges en noir, si ce n'est à forcer un peu l'épaisseur du tube car sur les vraies cette épaisseur est en moyenne de 0.5 mm.

 

Passons à la programmation ...

 

Synoptique du fonctionnement pour la jauge ITT 

 

Dans le code Sioc, l'offset de l'itt met à jour une variable libre qui va être recalculée pour avoir une valeur propre de température en C° X 100.

Un script Lua, lancé automatiquement par Fsuipc guette par un Event.Offset le changement de cette variable libre et lance une fonction qui va envoyer au port com de l'arduino une phrase de type numéro de la variable = valeur

 

 Le programme .ino injecté dans l'Arduino quant à lui scrute son port com et dès que des données sont disponibles, il décode le numéro de variable et la valeur pour les affecter au bon moteur.

Entre temps, ce programme aura aussi adapté la valeur à l'échelle de la jauge car bien évidemment que c'est pas la même chose pour l'Itt que pour le torque.

Cette adaptation de l'échelle a celle de la jauge se fait par une fonction map( )

 

Voilà pour ce qui est du synoptique de fonctionnement de la chaine de programmation.

Je n'ai utilisé que des programmes écrits par mes soins, à part la bibliothèque SwitecX12.h en tête du programme .ino que vous pouvez récupérer ici :  https://github.com/clearwater/SwitecX25

 

 Mon étude de cette solution est inspirée du site de Guy Carpenter : https://guy.carpenter.id.au/gaugette/

 

Merci à lui 

 

Les programmes ino et lua pour ces 4 jauges sont disponibles dans la rubrique Téléchargements, j'y laisserai les commentaires pour une meilleure lisibilité du code.

Ce code fonctionne parfaitement, même si j'ai conscience qu'il peut être encore optimisé et perfectionné, n'hésitez pas à me faire part de vos remarques et de vos critiques (bonnes ou mauvaises ), c'est comme çà qu'on avance.

 

 

 Il me reste maintenant à poursuivre la construction des 2 autres blocs de 4 jauges puisqu'il y  a 12 jauges en tout.

Avec une particularité pour les 2 jauges d'huile puisqu'elles sont doubles ( 2 aiguilles ), je vous parlerai de ma solution en temps utile.

 

 

Rajout de l'indication digitale du torque

 

Mes jauges de torque fonctionnant bien, afin de progresser j'ai décidé de me lancer dans la reproduction des jauges de Torque du B200 Aéroworx qui étaient dotées à l'époque d'un petit indicateur digital orange

qui facilitait la lecture directe du torque, cela donnait çà

 

 king-air-350.jpg

 

La partie électronique

 

Pour ce faire j'utilise 2 petits écrans Oled blancs ssd1306 en 128X32.

Mais, il y a un premier problème car ces écrans interfacés en I2c n'ont qu'une adresse ( 0x3c ) et donc ne peuvent être connectés en direct sur l'Arduino Nano qui pilote ces 2 jauqes de torque.

Il faut donc multiplexer ces écrans et cela se fait avec un circuit Tca9548a.

Voici le plan de câblage de l'ensemble :

 

 schema tca9548_arduino.jpg

 A propos des résistances de tirage sur SDA et SCL

 

La littérature est abondante sur le sujet mais pas toujours très bien argumentée alors je ne vais vous livrer ici que ce que j'ai expérimenté avec mon oscilloscope numérique SDS1202XE sur la pin SCL de l'Oled SSD1306.

J'ai constaté qu'à 100 khz de fréquence d'horloge du bus I2C ( fréquence de base du bus i2c), le front montant sur Scl est moins arrondi quand on met une résistance de 4.7k ohms entre cette broche et le + 3.3 v de l'alimentation, bien qu'il y en ait déjà une de cette valeur sur la platine de l'écran.

Le passage à 400 khz n'amène pas de changement notoire sur la qualité du front montant.

Une résistance de 10 k entre la broche A5 et le + 3.3 volts de l'Arduino améliore encore ce front.

 

Pour rappel, ces fronts montants dépendent des constantes de temps des réseaux RC présents sur ces entrées et les capacités parasites jouent un rôle important donc au chapitre des précautions à prendre il n'est pas inutile de câbler l'écran en dissociant les fils SDA et SCL et en les torsadant chacun avec un des fils d'alimentation et en se rappelant que c'est surtout le SCL qu'il faut soigner.

 J'ai rajouté aussi un petit condensateur de 100 nf entre les broches d'alimentation du Tca954a au plus proche de la carte, soudé au verso sur les broches en fait.

 

Voilà les seules modifications ou rajouts que j'ai opérés par rapport au schéma présenté plus haut.

 

 Ci dessous les écrans oscillo sur la sortie SCL :

SDS471.jpg

 

 Pour les bibliothèques dans le croquis Arduino   j'utilise   SparkFun_I2C_Mux_Arduino_Library.h pour le multiplexeur
et SSD1306Ascii.h et SSD1306AsciiAvrI2c.h pour les écrans car elles sont moins gourmandes en mémoire que les bibliothèques Adafruit .

 

 

Passons à la partie pratique

 

D'abord il m'a fallut revoir mes fonds de jauges, modifiés pour inclure l'écran Oled .

Voici l'image du fichier à imprimer sur papier photo :

fond de jauge de torque avec fenetre display.jpg

 

 

 

Ensuite je découpe la fenêtre pour chaque écran et comme les écrans dans la vraie vie sont orange, je passe une couche de vernis orange Tamiya pour maquette.

L'étape suivante consiste à séparer le petit écran Oled de son Pcb car l'ensemble ne rentre pas dans la jauge.

Cela se fait avec précaution avec un Cutter.

 

 



22/04/2020
24 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