1.Video du projet terminé et fonctionnel
2.Présentation de l'équipement : l'altimètre
3.L'objectif du projet
4.Le schéma fonctionnel
5.Expression du besoin
6.Tâches à réaliser
7.Détails et explication
8.Matériels choisis
9.L’électroaimant
10.Conception d'une carte électronique (A1)
11.Présentation des documents de fabrication
12.Commande des composants et coûts
13.La programmation en C++ du microcontrôleur
14.La programmation Ni Vision builder
15.La programmation LabView
16.Conclusion
Les tests sur ce type d’équipement sont souvent longs et fastidieux.
Le but de ce projet sera donc d'améliorer de manière conséquente
le test de cet équipement et d'en automatiser une partie afin de simplifier le
travail du technicien en charge de l'éventuelle réparation et de la maintenance
de cet équipement. Un certain moment du test nous impose de faire défiler le compteur
tambour jusqu'à une altitude de 55 000 feets. Il faut environ 45 min pour faire cette
courbe avec la configuration actuelle, car la tension envoyée sur le moteur du tambour
est relativement faible et le temps de montée est très long. Lors de la réception de l'
équipement, on commence par le brancher pour constater la panne et voir si la calibration
de l'appareil est correcte. Il pourra en un clic faire monter le tambour de l'équipement à 55 000
feets sans avoir à câbler le banc de test. J'ajoute au passage que le banc servant à l'altimètre
sert aussi aux tests des anémomètres. Il pourra alors libérer cette place jusqu'au test final.
Il faut distinguer la partie électronique et mécanique dans l’altimètre. Dans ce projet je vais
tester la partie mécanique. On se rend très vite compte en test réel si la carte électronique fonctionne ou pas.
Le passage au banc se fait à l'aide des outils présents sur la photo ci-dessous
où l'on peut apercevoir deux "decaviders" l'un sur l'autre entourés d'un cercle
rouge avec posé sur la gauche, un altimètre et sur la droite, différentes valises
aéronautiques qui me permettent de simuler les diverses réactions d'un avion, en l'occurrence un
ATR 42 ou encore un ATR 72 puisque c'est sur ces avions que sont montés les altimètres sur lesquels je travaille.
Pour faciliter le travail de maintenance, il est demandé d’étudier la faisabilité de créer un banc de tests spécifique aux altimètres
électromécaniques. Ce banc va permettre :
• D’alimenter le moteur d’entraînement de l’altimètre dans les deux sens à une vitesse variable et pendant un temps précis.
• De réaliser des cycles de commande de ce moteur, simulant des conditions de montée et de descente de l’avion.
• De faire l’acquisition d’images de la position de l’aiguille et du tambour d’altitude de l’altimètre.
• De traiter ces images afin d’évaluer d’éventuelles dérives (stockage des images dans un fichier et/ou
analyse de la position de l’aiguille et/ou reconnaissance de la valeur numérique du tambour).
Les tests ont lieu à l'intérieur d'une valise afin de contrôler parfaitement l'éclairage.
Il est important d'avoir un contrôle total de l'éclairage car la moindre réflexion de lumière
ambiante sur la façade de l'altimètre peut nuire au test. De plus, les façades sont équipées de
verres spéciaux afin que la diffusion de lumière dans le cadran de l'équipement se fasse correctement
pour les pilotes lors des vols de nuit pour une lecture parfaite.
L'éclairage à l'intérieur de cette valise se fera à l'aide de diodes électroluminescentes de puissance,
comme celles présentes sur les Smartphones au niveau des appareils photos, servant de flash ou de lampe de poche.
Elles seront disposées stratégiquement au nombre de deux afin que l'éclairage ambiant à l'intérieur de la valise,
soit toujours le même pour tous les tests et ainsi garantir la fiabilité des lectures de la webcam et l'interprétation
des résultats par le logiciel NI vision. L'éclairage pourra éventuellement être contrôlé par PWM si je constate qu'il est trop important.
Il faudra encore une fois faire attention aux placements de ces leds afin qu'aucun reflet dans le cadran n'affecte le test.
Une caméra USB sera positionnée devant la façade de l'altimètre. Elle sera bien évidement reliée à un pc sur lequel sera installé le
logiciel Vision Builder développé par la compagnie National Instruments et appartenant à l'ensemble de logiciels LabView.
Il donne la possibilité de configurer, définir des valeurs de référence et déployer un système qui répond aux attentes des
applications de vision industrielle, depuis le filtrage par motif et la détection de présence jusqu'à l'alignement de précision et la classification.
Il est alors possible de configurer environ 100 outils puissants pour un traitement d'images simplifié.
Il est utilisé pour des applications de vision industrielle, notamment la correspondance géométrique, la reconnaissance optique de caractères
(OCR) et l'analyse de particules pour trouver, compter, mesurer, identifier et classer des objets sans aucune programmation.
Une chose très pratique : on utilise un seul ensemble logiciel pour tous les matériels de vision. Il aurait été possible,
si je l'avais décidé, d'utiliser des cartes NI d'acquisition d'images, NI Compact Vision System, NI Embedded Vision System,
des caméras NI intelligentes, ou des caméras USB3 Vision, GigE Vision, IEEE 1394 et USB DirectShow pour l'acquisition et le
traitement d'images. Pour ma part, et vu l'utilisation que j'en aurai, j'ai choisi une caméra USB à bas coût.
Il est possible aussi de configurer des prises de décisions complexes (de type "accepté/refusé") ce qui en fait un avantage crucial.
Il permet aussi de communiquer les résultats d'inspection par E/S numériques, série ou par protocoles Ethernet, d'afficher des images,
des mesures et des résultats à l'aide de l'interface de déploiement intégrée, ou de personnaliser la vôtre. En somme une panoplie d'outils
très intéressants qui répond parfaitement à mes attentes.
Le logiciel utilisé sera donc Vision Builder, le logiciel analysera l'image obtenue à l'aide de la webcam placée directement devant l'écran.
La position de la caméra sera toujours la même. Il est important que celle-ci ne bouge pas car des réglages liés à la position de certaines
parties de l'équipement seront analysés.
Par exemple, l'altimètre possède un "Flag OFF" qui indique si l'équipement est sous tension dans le cockpit de l'avion.
Une zone dédiée sur l'écran correspondra à l'emplacement du "Flag OFF" sur l'altimètre. Il faudra s'assurer que la webcam
soit bien positionnée. Je ne sais pas encore si j'aurai besoin de fixer cette webcam.
Une des premières fonctions à l'aide de Vision Builder sera de détecter si le "Flag OFF"
est présent ou non avant de lancer les tests de calibration. Je vais très certainement utiliser la
détection de couleurs. Comme ce fameux drapeau est de couleur rouge, je pense faire une détection de
la couleur dominante sur une partie de l'écran, si la couleur dominante est le rouge cela voudra dire que le "Flag OFF" est présent,
le logiciel se chargera d'envoyer une commande pour le "déflager".
C'est d'ailleurs une panne récurrente. Beaucoup d'altimètres arrivent au laboratoire
avionics avec une panne liée au "Flag". Le technicien pourra très rapidement savoir s'il fonctionne correctement ou pas.
Si le Flag reste en bas il pourra d'emblée faire la commande d'un nouveau électroaimant ou bien
l'inscrire sur le devis avant de continuer son "testing".
Les commandes entre le pc et l'altimètre se feront via une liaison RS232
et un microcontrôleur présent sur une carte externe qui lui même enverra une tension à
l'endroit prévu afin de venir activer ou non le flag. Le principe sera le même pour les tests
d'étalonnage et calibration de l'aiguille et du tambour.
L’électroaimant placé dans l’altimètre (voir photo en vue de profil page 6 ) est le composant majeur qui permet de faire
apparaître ou non le Flag off. Une armature métallique est collé sur l’axe de l’électroaimant sur lequel est vissé le Flag off.
Un petit ressort lui permet de revenir dans sa position de repos c'est-à-dire lorsque le « Flag OFF » est visible lorsque que l’électroaimant
n’est plus alimenté.
On voit très bien sur le schéma que c’est le transistor Q9 qui vient faire la commande de l’électroaimant.
Si le transistor est bloqué alors le flag off est position repos. Si le transistor est au contraire saturé,
l’électroaimant est alors activé et le Flag off sort du cadrant.
On peut aussi remarquer que le +6v est relié à la broche négative de l’électroaimant, ce n’est pas une erreur de
la part du constructeur Honeywell, c’est le composant en lui-même qui à été fabriquer comme cela. Il faut juste y
faire attention lors du remontage lorsqu’on effectue la maintenance de cette partie au travail.
J’ai de la chance car le 5v fournit par le régulateur de ma carte A1 suffit à activer l’électroaimant, je n’ai pas besoin
d’amplifier cette tension afin d’atteindre les 6v comme inscrit sur la doc technique du constructeur. J’aurais à relier
deux fils entre le bornier de l’electroaimant de la carte A1 et les broches 6 et 8 du connecteur de la carte électronique
à l’intérieur de le l’altimètre afin de pouvoir piloter via le programme de la carte MBED l’appariation ou non du Flag OFF
en passant par un étage de puissance fait à l’aide de l’ULN2003A.
A la base, je pensais faire la conception d'une carte électronique supplémentaire avec un ensemble de borniers
afin de pouvoir connecter toutes les parties électroniques entre elles sans avoir une grande quantité de fils dans tous les sens.
J'ai très vite remarqué lors de mes premiers tests que la tension fournie en sortie de la carte MBED
n'était pas suffisante pour alimenter ma carte pont en H qui attend une tension de 5v en entrée.
J'ai alors fait des relevés de mesures et j'ai trouvé que la tension de sortie de la carte MBED était d'environ 3.3V,
se qui correspond effectivement au régulateur interne de la carte MBED.
La solution à ce problème après quelques recherches a été de rajouter à la conception de la carte A1 un buffer ULN2003A.
J’aurais pu faire un montage avec divers transistors mais ce buffer regroupe sur un même circuit intégré 7
transistors darlington cela permet d'alimenter un moteur avec un courant beaucoup plus intense que ce que peut fournir un microcontrôleur.
Le microcontrôleur de la carte MBED peut délivrer un courant avoisinant les 10mA. L’appel de courant au démarrage du moteur est de
l’ordre de 20mA et ça consommation est légèrement inférieur en fonctionnement. J’ai eu de la chance de ne pas griller la broche voir
le microcontrôleur tout entier en faisant mes premiers tests. Dans mon cas, l’ULN2003A aura aussi l'intérêt de faire passer tous mes
signaux à 5V au lieu de 3.3V délivré par la MBED initialement. Lorsque les transistors seront bloqués à l’intérieur de l’ULN2003A
je vais obtenir 0v sur le bornier et lorsqu’ils seront saturés je vais obtenir une différence de potentiel de 5V.
Pour la carte A1, le but était donc de laisser un endroit pour venir placer la carte MBED et d'implanter
les différents borniers autour. Sauf qu’entre temps tous les signaux de commande émis du KL46Z vont passer
dans le Buffer ULN2003A. On peut voir sur l'image suivante que l'alimentation même en 5-9v de la carte MBED
est transformée via un régulateur intégré. Il est donc impossible pour moi de faire sortir directement du 5v
continu en sortie de la carte MBED.
Sur cette carte électronique A1, il me fallait donc un régulateur 5v. J'ai choisi un LM7805.
C'est aussi cette carte A1 qui fournira l'alimentation de la carte MBED, et comme je l'ai dit précédemment,
l'alimentation de la carte pont en H ainsi que celle des leds de puissance et de l'électroaimant.
Il est important d'observer la tension de « Dropout Voltage » de ce régulateur, c'est-à-dire la tension qui sera perdue entre
l'entrée et la sortie du régulateur. Ici on est à 2v en typique. Je dois donc faire l'addition de 5v+2v = 7v minimum en entrée
du régulateur que je vais mettre en place à l'aide d'une alimentation continue externe.
1 : Comme précédemment, c'est l'acquisition d'image de la webcam.
2 : "Vision assistant" permet de passer l'image acquise provenant de la webcam en une image noir et blanc
afin de pouvoir utiliser le "Read/Verify text" qui est le Node suivant. Sans cette opération il est impossible d'utiliser le "Read/Verify text"
3 : "Read/Verify text" ce sont les zones où le logicielle va détecter les chiffres ou les lettres s'y trouvant.
On peut les voir sur la capture d'image ci-dessus, ce sont les deux cadres vert qui entour les numéros du compteur.
Au début avec le "Read/Verify text", la détection des nombres s’est mal passée, il ne détectait aucuns nombres
et la sensibilité du réglage était tel que la moindre petite réflexion de lumière sur la peinture du compteur ou de la vitre,
me donnait des résultats totalement improbables. J’ai donc réglé le seuil de détection et fais une petite bibliothèque de
caractères afin qu’il puisse effectuer une comparaison entre ce que j’ai mis dans sa base de donné et l’image en cour d’acquisition.
Voici sur l’image ci-dessous un extrait des caractères que je lui est renseigné:
J’ai fais défiler le compteur afin d’avoir tous les chiffres en façade puis j’ai effectué l’acquisition,
j’ai aussi fait des suppléments comme l’aiguille qui passe devant le chiffre par exemple.
4 : "Read/Verify text" même chose que au dessus.
5 : "Calculator" est présent sous cette forme :
Voici un zoom sur les Nodes du Calculator:
Et voici l’ensemble :
Dans mon cas j’ai besoin afin de répondre au CMM, que j'ai présenté au début de ce dossier de valeurs précises.
Je dois par exemple faire le test à 1000, 10000, 50000 feets etc. Je dois donc obtenir une précision sur les centaines.
Comme j’ai décidé de faire varier l’altimètre tous les 100, 200 et 1000 feets j’ai du dissocier les chiffres des millièmes
et ceux des centaines de façon à obtenir par exemple pour 10 000 feets, 10 sur un "Read/Verify text" puis 000 .
Si le "Read/Verify text" retourne un résultat de 010 par exemple alors l'équipement est hors tolérence.
Je peux ainsi rester conforme aux attentes de la gamme d’essai et aux tolérances prescrites. Je demande donc au "Calculator1"
de vérifier si le nombre détecté est bien 000 ou 100 ou 200 etc mais pas d’autres valeurs. Il enverra alors soit "true" soit " false "
si les chiffres du compteur ne sont pas égaux aux valeurs attendues.
6 : "Custom Overlay" récupère les valeurs trouvé ci-dessus soit " true" soit " false "
et m’indique dans une case visible à l’écran si le compteur est bien calibré.
7: "Caliper" me sert quant à lui de détecteur de position d’aiguille, j’avais commencé avec le même outil à relever
l’angle entre la position de l’aiguille lorsqu’elle est pile en face du zéro et la position sur laquelle elle est supposée
arriver après une rotation. Mais le problème c’est que l’aiguille est en partie de couleur noir et la détection ne se faisait pas du tout.
J’ai ensuite utilisé le caliper autrement, cette technique est visible sur l’image de droite.
Un petit cadre me permet de faire la détection de la partie basse et blanche de l’aiguille.
Si l’aiguille est dans la zone du "Caliper" alors l’aiguille est bien étalonnée et envoie la valeur "true".
8 : "Custom Overlay" récupère la valeur du "Caliper" et l’affiche à l’écran.
9 : "Calculator" permet de faire la liaison entre tous les résultats obtenu puisque l’important est de d’apprécier si l’aiguille +
le compteur sont tout les deux bien calibré. J’ai donc fait les choses comme ceci :
J’ai uniquement pris les résultats du "Read/Verify text" et du "Caliper" et si
ses deux nodes renvoient "true" en même temps, le résultat final sera "true".
10 : "Custom Overlay" récupère la valeur du second "Calculator" et l’affiche à l’écran.
On peut ainsi savoir directement en regardant l’indicateur "Custom Overlay" si le compteur + l’aiguille sont bien étalonnées.
1 : Permet de faire la sélection du port COM pour la communication sérial.
2 : Configure le port série, comme par exemple la vitesse de transfert en bits par seconde appelé bauds.
3 : Création d’une boucle "While", tout ce qui sera présent à l’intérieur de cette boucle tournera en permanence.
4 : C’est le node bouton poussoir que j’ai crée dans la partie interface, que je récupère dans la partie diagramme.
5 : C’est une condition, c’est à dire que si il y a un appui sur le bouton, la condition est vrai.
Il envoi alors la lettre présent dans la constante présente à l’intérieur de la condition.
6 : C’est la constante dans laquelle ce trouve la lettre lorsque la condition est
vrai et rien quand la condition est fausse car j’ai intégré une constante vide dans le cas ou la condition est fausse.
7 : C’est une concaténation, c’est à dire qu’il va faire l’addition des termes de toutes les conditions.
8 : Ici on retrouve un timer réglé sur 100. C'est-à-dire qu’il y aura une exécution de toute la boucle while toutes les 100ms.
9 : On écrit dans ce node le résultat de la concaténation pour que la lettre correspondante au bouton qui
a été appuyé éventuellement se retrouve envoyer sur la liaison RS232 vers la carte MBED.
10 : Coupe la liaison RS232 lorsqu’il n’y a rien à envoyer de façon à libérer la liaison série.
Et pour finir voici l’interface homme machine créer à l’aide de LABVIEW :
Ce projet m'a permis de comprendre en profondeur et d'apprendre de nombreuses choses dans les différents
domaines que mon projet traverse, de l'aéronautique au traitement industriel par acquisition d'image en
passant par la création de carte électronique. Il aura été complet et très à mon gout,
j'ai beaucoup apprécier pouvoir travailler sur cet ensemble.