Conception d’un observatoire
astronomique robotisé et contrôlable par Internet
Travail de Bachelor
Grivet Kévin 07/08/2014
Département : TIN Filière : Microtechnique – MI Professeur responsable : Dr Lorenzo Zago
I
Remerciements
Je remercie M. Lorenzo ZAGO pour son suivi, ses conseils et son aide pour le travail durant le semestre et la rédaction du rapport.
Merci à M. Claude D’ERAMO pour le temps offert à m’expliquer le fonctionnement de son observatoire automatisé et le partage de ses connaissances en astronomie.
Merci à M. Cyril OTTONIN et à toute l’équipe de l’atelier mécanique pour l’usinage rapide de mes pièces.
Merci à ma famille pour son soutien et la relecture de ce document.
Un grand merci à tous mes collègues pour les coups de main occasionnels, et en particulier, à M.
Linard BÜCHLER qui a toujours répondu présent quand j’avais besoin de mains supplémentaires.
Merci à M. Nicolas VAUTHEY pour m’avoir aidé à usiner des pièces dans son atelier.
II
Formulaire degré de confidentialité TB
III
Résumé
IV
Cahier des charges
1
Table des matières
Remerciements ... I Formulaire degré de confidentialité TB ... II Résumé ... III Cahier des charges ... IV
1. Introduction ... 3
2. État de l’observatoire au début de ce travail... 4
2.1. Partie mécanique ... 4
2.2. Partie électrique et programmation ... 4
2.3. Partie télescope ... 4
2.4. Observation de l’état de l’observatoire ... 4
3. Déménagement de la coupole ... 5
3.1. Procédure des opérations ... 5
3.2. Séquence du démontage ... 5
3.3. Outils utilisés pour le démontage ... 8
3.4. Séquence de démontage des moteurs ... 9
4. Rigidification du dôme ... 9
4.1. Mesure de la circularité de la coupole ... 10
4.2. Principe de rigidification ... 10
4.3. Modélisation des pièces ... 11
4.4. Fabrication de l’arceau ... 12
5. Rotation du dôme ... 12
5.1. Choix de la crémaillère ... 12
5.2. Choix de la roue dentée ... 12
5.3. Choix de l’arceau ... 13
5.4. Fabrication de l’arceau ... 16
5.5. Fixation de la crémaillère ... 16
6. Amélioration du Système d’ouverture du Cimier... 17
7. Programmation ... 18
7.1. Programme « Weather OS » ... 19
7.2. Programme « Escon studio » ... 20
7.3. Programme « Autostar Suite » ... 20
7.3.1. Partie principale ... 20
7.3.2. « Dome Control » ... 21
7.3.3. Connection aux périphériques ... 23
7.4. Programme « V.S.P.E. » ... 24
2
7.4.1. Mode « connector » ... 25
7.4.2. Mode « Splitter » ... 25
7.5. Programme « Labview » ... 26
7.5.1. L’interface utilisateur ... 26
7.5.2. Mode Manuel ... 29
7.5.3. Mode Automatique ... 29
7.5.4. Code labview ... 29
7.5.4.1. Initialisation ... 30
7.5.4.2. Corps du code ... 33
7.5.4.2.1. Partie Manuelle ... 35
7.5.4.2.2. Partie Automatique ... 36
7.5.4.3. Fermeture ... 43
8. Implémentation du capteur optoélectronique ... 43
9. Suite du travail ... 45
10. Conclusion ... 46
Liste de références ... 47
Journal de travail ... 48
Annexe ... 50
3
1. Introduction
Ce travail est la continuation d’un projet, commencé lors de plusieurs travaux de Bachelor précédents, visant à constituer un petit observatoire astronomique sur le toit de la HEIG-VD.
Le but général de ce travail de Bachelor était donc d’avancer et si possible compléter la conception et la réalisation mécanique, électronique et informatique de l’observatoire. L’objectif final sera un observatoire astronomique robotisé contrôlable par internet afin de permettre à un utilisateur de se connecter à distance au système du télescope.
La première tâche de ce projet était d’étudier le travail réalisé précédemment, de contrôler que le mécanisme et les programmes soient fonctionnels et de les modifier si nécessaire.
Concernant la partie mécanique, il a été constaté que le fonctionnement du cimier n’était pas optimal, le système de rotation n’était pas fonctionnel, mais l’ouverture de la trappe fonctionnait bien. La partie de commande et communication du télescope n’avait été qu’amorcée lors des travaux précédents. Toutefois l’ouverture et la fermeture du dôme avaient déjà été parfaitement réalisées de manière électronique et étaient accompagnées du programme qui les contrôle. Le programme qui traitait les données transmises par la station météo était lui aussi terminé.
En raison de la réorganisation des salles au sein de l’HEIG-VD, il a fallu démonter et transférer la coupole dans une autre salle. Une fois le dôme installé à sa nouvelle place, la priorité du travail fut de finir la partie mécanique pour avoir le temps de commander les pièces nécessaires ou de les faire fabriquer. Quand les pièces furent prêtes, elles ont été assemblées, modifiées, puis montées sur le dôme.
Le travail de programmation commença quand les pièces furent mises en production. Les programmes déjà codés furent testés et modifiés au besoin. Chaque fonction qui n’était pas écrite, a été codée et testée séparément. La tâche la plus compliquée a été de tout regrouper ces sous-programmes dans le programme principal.
La suite du rapport va se dérouler en suivant l’ordre chronologique du travail effectué. Bien que sur la fin du travail la partie mécanique et la programmation aient été effectuées en parallèle, tout en étant laissées dans leur section respective, dans le but de faciliter la lecture.
4
2. État de l’observatoire au début de ce travail
Dans cette section est expliqué l’avancement des travaux déjà effectués durant les trois travaux de Bachelor précédents.
2.1. Partie mécanique
La partie mécanique était déjà bien avancée. Après une première observation, il était possible de voir que le système d’ouverture de la trappe devait fonctionner et celui du cimier aussi, bien que la ficelle utilisée était déjà bien usée. Quant à la rotation du dôme, il ne fonctionnait pas bien et surtout, la crémaillère installée ne faisait que la moitié du tour du dôme. Il n’était pas possible de simplement remettre la même crémaillère sur l’autre moitié du dôme vu qu’il fallait réussir à passer par-dessus les jointures du dôme qui sont 10[mm] plus haut que la paroi de l’observatoire.
Les tests des fonctionnements des différents systèmes mécaniques ont été réalisés en branchant directement les moteurs sur 24[V] puis en inversant la polarité pour les faire tourner dans l’autre sens.
Après ces tests, il était possible de dire que le système du cimier ne fonctionnait pas convenablement : la ficelle glissait sur le tambour et était déjà usée. Il fallut trouver une autre ficelle plus solide et qui crochait mieux au tambour. Le système d’ouverture de la trappe était fonctionnel. Le système de rotation ne fonctionnait que sur la partie installée et non sur le tour entier. Malgré cela, il fonctionnait.
Pour la rotation, il était nécessaire de solidifier la crémaillère et de l’éloigner du bord pour passer les jointures.
2.2. Partie électrique et programmation
La partie électrique était déjà réalisée. La commande pour les systèmes d’ouverture de la trappe et du cimier a été réalisée au cours du travail de Bachelor de 2011 à l’aide d’un microcontrôleur. Les tests à l’aide du programme LabVIEW montraient que la commande était fonctionnelle. La commande actuelle pour la rotation du dôme a été réalisée à l’aide d’un driver spécialement pour ce type de moteur. Mais le programme de commande n’étant pas terminé, cette partie n’avait pas pu être testée.
Les programmes LabVIEW faits lors d’anciens travaux n’étaient pas utilisables sans modification : il fallait changer les blocs de DAQmx base vers DAQmx pour les utilisateurs travaillant avec Windows.
DAQmx base est une version pour les systèmes d’exploitation qui n’ont pas de driver et qui ne peuvent donc pas se connecter à l’interface LabVIEW par MAX.
2.3. Partie télescope
Le télescope était déjà automatisé. Il peut être commandé soit avec une télécommande appelée racket ou par ordinateur à l’aide du programme « Autostar suite », qui se trouve en libre-téléchargement sur le site de Meade. Durant le travail de Bachelor de 2011 un court programme a été écrit pour tester le fonctionnement du télescope, ce programme fonctionne bien. Mais il ne sera pas du tout utilisé pour diriger le télescope. Le télescope sera dirigé uniquement par le programme de Meade.
2.4. Observation de l’état de l’observatoire
Après ces quelques observations, il en ressortit que la partie d’ouverture de la trappe et du cimier fonctionnait correctement. Cependant une amélioration au niveau de la ficelle de la trappe était obligatoire pour une utilisation de l’observatoire à long terme. Le système de rotation fonctionnait
5
mais il y avait trop de risque que la crémaillère saute une dent. Il fallait résoudre le problème du passage des jointures avec la crémaillère. La première idée fut de mettre une crémaillère verticale pour ne plus avoir le problème de la non-circularité de la coupole. De ce fait les jointures ne poseraient plus de problème puisque la crémaillère serait avancée du bord de la coupole d’un minimum de 10 cm.
L’inconvénient de cette solution, serait que la crémaillère deviendrait très souple.
La partie électrique fonctionnait bien, pour ce qui a été testé, toutefois aucune information n’était indiquée sur le tableau. Ce problème fut provisoirement résolu en marquant les connecteurs avec du scotch.
Dans la partie du télescope, il restait tout à mettre en place et à tester, vu que dans les travaux précédents la partie du télescope n’avait que peu été étudiée.
3. Déménagement de la coupole
Le premier objectif après les observations du chapitre précédent, fut de changer la coupole de salle. Ce déménagement était nécessaire à cause des travaux du bâtiment de l’école.
3.1. Procédure des opérations
Prévoir une place de minimum 2.5m de diamètre et de 2.3m de haut
Faire des packages avec les moteurs et le petit matériel.
Laisser monter au maximum les composants sur la coupole
Séparer la coupole de la base
Démonter et remonter la base avant de déplacer la coupole pour un gain de temps, il sera possible de remonter la coupole directement sur la base.
Faire le remontage dans l’ordre inverse du démontage.
3.2. Séquence du démontage
Déconnecter les câbles
Figure 1 : Tableau électrique à laisser entier et capteur à décâbler
6
Enlever les trois moteurs de la coupole (les laisser entiers)
Figure 2 : Moteur Trappe : extérieur et intérieur
Figure 3 : Moteur Cimier décrocher la ficelle en Haut et en bas
Figure 4 : Moteur Cimier Roue et moteur
7
Figure 5 : Moteur rotation et Contre roue
Démonter la trappe : les charnières du côté de la coupole doivent être ouvertes pour être devisées.
Enlever le triangle de fin de course du cimier
Figure 6 : Triangle de fin de course du cimier
Enlever la vis de sécurité du cimier (sur l’arrière de la coupole)
Figure 7 : Vis de fin de course du Cimier Extérieur et intérieur
Retirer le cimier, faire sortir par l’arrière ses roues guides de derrière, puis faire sortir les roues restantes par l’avant.
A partir de ce point, il faut être au minimum trois personnes.
8
Pendant que deux personnes tiennent les moitiés de coupole, la troisième dévisse les boulons qui les lient (à l’intérieur sur la jointure)
Séparer la petite base en trois parties
Figure 8 : Séparation de la petite base en trois parties
Séparer la base octogonale ‘Item’ en plusieurs parties. Ces faces sont lourdes. Il est préférable de démonter entièrement la base pour pouvoir bien resserrer toutes les vis au remontage, vu qu’en la déplaçant les vis se desserrent.
Refaire la même démarche en sens inverse pour remonter la coupole.
Figure 9 : Assemblage de la base
3.3. Outils utilisés pour le démontage
Cette liste d’outils est la plus exhaustive possible. Une amélioration possible de la coupole serait de normaliser un maximum le type de boulon et d’écrou utilisé pour diminuer le nombre d’outils.
9
Clef imbus de 2
Clef imbus de 3
Clef imbus de 5
Clef à fourche de 8
Clef à fourche de 10
Un tournevis cruciforme
Une pince brucelles
Et deux autres personnes pour le démontage de la coupole
3.4. Séquence de démontage des moteurs
Cette séquence est dans l’ordre pour faciliter le démontage des moteurs. Elle sert aussi à savoir le nombre d’éléments qu’il faut enlever ce qui est utile pour ne pas oublier une vis au remontage.
- Moteur rotation :
o Pivot du bas (2x vis) o Vis du haut (4x) o Enlever circlips 1x o Manchon 1x
o Puis roue dentée (enlevée par soucis du transport) - Câblage décâblé : 6x
- Moteur trappe :
o Fixation trappe 2vis o Plaque sandwich 6 vis - Cimier :
o fixation ficelle 2 vis o nœud ficelle bas 1x
o démontage triangle de fin de course 1x 3 vis o vis fin de course au bas arrière du dôme 1x o enlèvement du cimier
- moteur cimier :
o démontage 2 roues guide-fil 1 vis o démontage du moteur 2vis - trappe :
o démontage bras articulé 2 vis o démontage trappe 6 vis - Roue de contre appuis :
o dévisser œillets filetés avec ressort 2x o vis de fixation en bas 2x
4. Rigidification du dôme
Ce problème a été abordé lors d’une visite chez Monsieur D’Eramo qui a illustré son observatoire privé. M. Deramo a fortement conseillé de rigidifier la base du dôme pour la rendre plus solide et par la même occasion plus circulaire. Donc une étude de rigidification du dôme a été faite. Le but étant de
10
faire tourner la coupole le plus circulairement possible. En effet, comme les dents de la crémaillère seront contre en bas, si la coupole ne tourne pas circulairement, le pignon perdra la crémaillère en cours de route et s’usera plus rapidement à force de l’entraîner en étant à moitié dessus.
4.1. Mesure de la circularité de la coupole
La première étape fut de s’assurer que la coupole avait réellement un problème de circularité. Pour ce faire, il est possible d’utiliser deux méthodes. La première méthode, c’est de prendre un télémètre laser, de le fixer à l’intérieur de la coupole de façon que son rayon laser arrive perpendiculairement sur la coupole. Puis il faut faire tourner la coupole, et faire des mesures régulières. La circularité de la coupole est trouvée en faisant l’écart entre la valeur la plus proche et la plus lointaine.
La deuxième méthode, demande de trouver le centre de la coupole et de le matérialiser. Puis à l’aide d’un mètre, mesurer le diamètre en passant chaque fois par le centre de la coupole. Et comme pour la méthode précédente, l’écart entre les points doit être calculé pour trouver la circularité.
Après les mesures de la circularité faites avec la première méthode, comme le montre la figure 10, il est apparu que la coupole avait un écart de 20mm. Pour que la coupole fonctionne bien, il faudrait ramener l’écart de circularité à 1mm.
Figure 10 : Mesure au télémètre laser
4.2. Principe de rigidification
Pour rigidifier le dôme le principe proposé est de créer un arceau métallique rigide avec un rayon de courbure le plus constant possible. Cet arceau viendra se fixer et se caler à l’intérieur de la coupole, comme sur la figure 11, afin d’être le mieux centré possible pour améliorer la rotation.
11
Figure 11 : Schéma de principe
Après avoir mesuré la circularité, il faut caler les endroits de l’arceau qui en ont besoin et fixer l’arceau provisoirement. À ce moment, un nouveau test de circularité doit être fait et les cales doivent être ajustées, ensuite mesurer et caler jusqu’à ce que la circularité soit satisfaisante.
4.3. Modélisation des pièces
Plusieurs idées ont été envisagées pour la création de l’arceau. En premier lieu un arceau de section rectangulaire a été modélisé. Le problème était que pour avoir une bonne rigidité une section rectangulaire n’était pas optimale. Une section en L fut elle aussi vite oubliée et une section en U fut choisie. L’arceau était censé être en aluminium ou en acier, composé de quatre parties identiques. Une crémaillère fine aurait été fixée sur le côté ouvert du U comme le montre la figure 12.
Figure 12 : En gris profile de l'arceau en U, en vert profile de la crémaillère
Les cales seraient de simples rondelles. Utiliser des rondelles pour caler l’arceau permettrait d’ajuster l’épaisseur des cales très facilement et par ce fait d’être le plus précis possible dans la circularisation de la coupole.
12
4.4. Fabrication de l’arceau
Pour fabriquer l’arceau, vu au sous-chapitre précédent, un bon savoir-faire est nécessaire, car c’est une grande pièce d’environ 1790 mm et qu’il faudrait la plier à un rayon de courbure de 1135[mm]. Suite à une demande faite à l’atelier mécanique de l’HEIG-VD, la réponse fut que ces pièces ne pouvaient pas être fabriquées par l’atelier de l’école.
Faire fabriquer ces pièces par une entreprise externe coûterait beaucoup plus cher. Une étude plus approfondie a été réalisée pour s’assurer de la fonctionnalité du système. Comme la fonctionnalité du système ne pouvait pas être entièrement assurée, et vu le coût élevé de fabrication, une autre solution a été envisagée.
Cette autre solution, consistait à reprendre l’idée du prédécesseur, qui était de mettre une crémaillère plastique mais en améliorent son système en cerclant la coupole avec un arceau plastique.
5. Rotation du dôme
Comme vu à la fin du chapitre précédent, le système de la crémaillère a été modifié. Donc la crémaillère a ses dents qui pointent à l’horizontale et par ce fait la motorisation est à la verticale.
5.1. Choix de la crémaillère
Au départ, ce système de crémaillère plastique n’avait pas été retenu à cause du manque de fiabilité dû au risque que des dents puisent être sautées. Pour pallier à ce problème le module de la crémaillère ne sera plus de 0.8 mais de 2. Ce changement permit d’avoir une crémaillère plus grosse donc plus robuste et de plus grandes dents donc moins de risque d’avoir des sauts.
Le problème du passage des jointures a été résolu grâce à l’arceau plastique qui fera la circularité de la coupole, vu que la crémaillère sera fixée dessus.
La nouvelle crémaillère vient du même fabriquant ‘HPC’. Comme le module de la roue dentée a été modifié, celui de la roue entraînante devait aussi être modifié.
5.2. Choix de la roue dentée
La recherche a été faite sur une roue qui avait le même diamètre que celle de module 0.8, montée précédemment. Si le diamètre était changé, toute la réduction du moteur devrait être changée. Une roue en acier avait été choisie pour éviter une usure trop rapide. Toutefois avec la crémaillère en plastique actuelle, l’usure de la roue n’est plus une préoccupation, elle s’usera à peu près à la même vitesse que la crémaillère.
Le fournisseur de la crémaillère ‘HPC’ vendait une roue dentée plastique qui avait un diamètre qui s’approchait le plus de celui recherché, la ZG2-96. Son principal inconvénient, était son prix de 275€
contre 41€ pour celle en acier de chez ‘Tri Distribution’. ‘Tri Distribution’ est globalement moins cher que ‘HPC’.
Sur la liste des roues dentées en plastique de chez ‘Tri Distribution’ se trouve la roue EMPL2-99 qui est à 33€. Elle a exactement le diamètre extérieur recherché de 202 [mm]. Comme le montre les caractéristiques sur la figure 13, les colonnes qui ont un intérêt sont encadrées en rouge. Pour la
13
résistance à la flexion, le dôme en condition de rotation normale a besoin au maximum d’une force de 90N, donc avec 175 N/mm2 de résistance la roue est assez résistante. La roue plastique de chez ‘Tri Distribution’ a été choisie. La commande faite, il s’avéra que cette roue n’était plus disponible. Le fournisseur proposa deux roues dentées : une avec 97 dents et une à 100 dents, cette dernière fût finalement commandée.
Figure 13 : Caractéristiques de la roue choisie
5.3. Choix de l’arceau
Le choix de la matière de l’arceau s’est porté sur du POM-C en fonction des différents matériaux trouvés à l’atelier mécanique et qui ont pu être testés.
Après avoir choisi la matière, l’arceau fut modélisé et intégré dans le plan d’ensemble avec la crémaillère. Il en est ressorti qu’il fallait une hauteur de 50mm pour pouvoir visser l’arceau à la coupole et fixer la crémaillère dessus.
14
L’arceau plastique sera, comme pour son prédécesseur en alu, fait en quatre parties d’une longueur L = 1783 [mm] chacune. Le rayon de courbure de l’arceau est r = 1135 [mm].
Figure 14 : Contrainte de flexion et section de l'arceau
La contrainte de flexion est calculée par la formule suivante : ⁄
Avec
La géométrie donne :
Ce qui donne :
⁄
Le module de Young pour le POM est donné dans la datasheet (figure 15) entre 2.8GPa et 9.7GPa.
Pour calculer le pire cas, le module de Young de 9.7GPa est utilisé, ce qui donne 9700 [N/mm2].
Figure 15 : Datasheet du POM
Ce qui nous donne :
15
[ ] Avec un facteur de sécurité de 3 :
[ ] [ ]
Pour une épaisseur de plaque de 4 [mm] :
[ ] [ ] [ ]
Et avec une épaisseur de 5[mm]
[ ] [ ] [ ]
Il est inutile de calculer pour une épaisseur plus grande, le coefficient de sécurité de trois ne serait plus respecté.
Il est aussi possible de calculer la force qui appuie sur le centre de l’arceau.
Figure 16 : force sur le centre de l'arceau
L’équation pour l’angle est :
Pour ce cas l’arceau est en quatre parties donc ϑ = π/4
h [mm] F [N]
3 4.31
4 10.22
5 19.97
16
Ce tableau montre la force qu’il faut mettre au centre de l’arceau pour le faire plier au rayon souhaité.
Avec les valeurs trouvées, il n’y a pas de doute que la coupole tiendra facilement cette charge. Pour ne pas trop mettre la coupole en tension, une épaisseur d’arceau de 4 mm est choisie.
5.4. Fabrication de l’arceau
La matière pour l’arceau en POM fabriqué en quatre parties, fut commandée chez ‘Maagtechnic’. Le fournisseur livre directement les pièces à la bonne dimension, ce qui veut dire quatre languettes de 1780x50x4 [mm]. Ces languettes furent usinées en plusieurs étapes. L’atelier mécanique usina les trois trous sur chaque pièce. Puis comme il n’a pas été possible de faire usiner la rainure qui sert à mettre la crémaillère en position par l’atelier, c’est un collègue qui m’a aidé à les usiner dans un atelier privé.
Le dôme fut percé de trous d’un diamètre M6 ce qui permit d’avoir du jeu dans l’arceau et de bien pouvoir l’ajuster pour le passage de la crémaillère. La quatrième pièce fut ajustée à la bonne longueur, repercée et finalement mise en place.
Figure 17 : Arceau monté
5.5. Fixation de la crémaillère
La première idée pour fixer la crémaillère fut de visser directement des petites vis dans la bordure de la crémaillère. La réalisation de cette idée ne donna pas une entière satisfaction. Les têtes de vis ressortant trop, la roue dentée n’aurait plus pu passer et la vis aurait beaucoup trop déformé la bordure de la crémaillère pour qu’elle puisse retenir une grande charge.
La deuxième idée fut de reprendre les clips de fixation utilisés pour fixer l’ancienne crémaillère. Ils furent placés tous les vingt centimètres en alternance, ce qui permit de bien tenir la crémaillère en position dans sa rainure et ainsi de l’empêcher de glisser.
Figure 18: Clip de fixation
17
Figure 19 : Crémaillère montée
6. Amélioration du Système d’ouverture du Cimier
Le système d’ouverture du cimier ne fonctionnait pas bien, son système étant basé sur le frottement de la ficelle sur le tambour. Pour que ce système fonctionne, il est indispensable que la ficelle soit très bien tendue et aussi qu’elle s’enroule plusieurs tours autour du tambour.
Figure 20 : Système base sur le frottement
La première modification fut de changer la longueur de la ficelle pour pouvoir faire plus de trois tours sur le tambour. Et par la même occasion choisir une ficelle ayant un plus grand coefficient de frottement sur le tambour.
Pour déterminer le coefficient de frottement des différentes ficelles, un test a été effectué. Le tambour a été fixé solidement sur un socle et chaque ficelle, l’une après l’autre a été enroulée autour en faisant attention de chaque fois les enrouler de la même manière. Puis à l’aide d’un dynamomètre croché à l’extrémité de la ficelle, la force de traction nécessaire pour dérouler la ficelle fut trouvée et la ficelle adéquate fut retenue.
Figure 21 Principe de test du coefficient de la ficelle
18
Après plusieurs essais d’enroulage et de serrage de ficelle, et de nombreux échecs, l’idée de faire ouvrir et fermer le cimier uniquement par la force de frottement fut abandonnée. Bien que très serrée à l’état fermé la ficelle se desserrait et le système ne fonctionnait plus lorsque le tambour changeait de sens.
Après réflexion, une solution facile à mettre en œuvre et qui ne faisait pas intervenir le frottement fut finalement trouvée. Pour mettre en place ce nouveau système, il a simplement fallu faire un trou au travers du tambour pour y faire passer la ficelle.
Figure 22 : Passage de la ficelle (en rouge) dans le tambour percé
Figure 23 : Tambour percé
7. Programmation
Ce chapitre passera en revue tous les programmes utilisés durant ce travail de Bachelor et la présentation complète du code LabVIEW pour la commande du dôme.
Le système de commande a été pensé pour que l’utilisateur de l’observatoire utilise uniquement le programme « Autostar suite » fourni avec le télescope par Meade. Ce choix a été fait pour les raisons suivantes : l’interface du programme de Meade est facilement compréhensible et utilisable ; il contient déjà toute la base de données des étoiles et affiche notre ciel en fonction de la date et l’heure actuelle.
19
7.1. Programme « Weather OS »
Le programme « Weather OS » gère la station météo, il a deux modes de fonctionnement. Le premier qui ne sera pas utilisé se compose d’une fenêtre où sont affichées toutes les informations envoyées par la station météo.
Figure 24 : Interface de "Weather OS"
Le deuxième mode fonctionne en tâche de fond, il est utilisé pour la gestion du dôme. Ce mode demande à l’utilisateur dans quel dossier il peut enregistrer les fichiers contenant les informations transmises par la station météo. Ce programme met ces fichiers d’informations à jour toutes les minutes environ. L’utilisateur doit se souvenir du chemin d’accès au dossier de sauvegarde car il devra donner ce même chemin au programme LabVIEW.
Figure 25 : Répertoire de données (en rouge)
20
7.2. Programme « Escon studio »
Ce programme n’est pas directement utile pour le fonctionnement de l’observatoire, il gère uniquement le driver du moteur Maxon. Le driver a été mis en place et programmé durant le travail de Bachelor précédent. Il n’est donc pas nécessaire de s’y attarder, toutefois s’il advient qu’il faille changer la régulation du moteur de rotation ou simplement pour comprendre comment utiliser le driver, ce programme est indispensable. En branchant le driver à l’ordinateur par USB et en lançant le programme, l’interface affiche les valeurs de toutes les entrées et sorties du driver. Ce qui peut être utile pour d’autres dépannages.
Figure 26 : Interface de "Escon studio"
7.3. Programme « Autostar Suite »
« Autostar Suite » est le programme fourni par Meade pour gérer ces télescopes et tous les modules complémentaires rattachés au télescope comme par exemple le dôme, la caméra de prise de vue ou encore l’autofocus. Il se compose de plusieurs parties, il y a la page principale puis chaque module a sa petite fenêtre qui peut être ouverte pour pouvoir gérer le périphérique.
Dans la présentation de ce programme ne seront passées en revue que les pages présentant un intérêt, soit la page principale et la page pour le contrôle du dôme.
7.3.1. Partie principale
La page principale ne contient qu’une vue du ciel avec toutes les étoiles, il est possible de déplacer l’angle de vue, de zoomer et si en cliquant sur un élément de voir ses caractéristiques.
Figure 27 : Caractéristiques
21
Mais l’intérêt de cette page est que, si le télescope est branché, en cliquant sur un astre, il est possible de faire pointer directement le télescope dans la direction de l’astre choisi en sélectionnant « Slew Telescope ».
Figure 28 : Menu contextuel de "Autostar Suite"
Pour synchroniser la position de la coupole avec celle du télescope, il est nécessaire de connaître la position du télescope. En contrôlant comment communique le programme avec le télescope, il en est ressorti que, en continu, le programme demande au télescope sa position. Le télescope répond en donnant son angle de rotation suivi de sa déclinaison.
7.3.2. « Dome Control »
La page du contrôle du dôme se trouve sous Telescope => Dome Control
Figure 29 : Ouverture "Dome Control"
22
Cette page contient toutes les options en rapport avec le dôme.
Figure 30 : Interface "Dome Control"
Le tableau suivant explique l’action effectuée par chaque bouton dans le code LabVIEW. Ce contrôle envoie en continu sur le port-série des points d’interrogation à intervalles réguliers. Quand un bouton est pressé, il envoie une ou deux lettres sur le port. Ces lettres sont aussi indiquées dans le tableau.
Boutons Descriptions Lettres retournées
Ouvre le dôme OH
Ferme le dôme CH
Aligne le dôme sur le télescope S
Pour enregistrer la position de
départ du télescope X
Positionne le dôme dans sa
position de départ P
Positionne le télescope dans sa
position de départ Z
Fait tourner le dôme de 1° dans
le sens horaire ou antihoraire LH ou RH Le dôme suit chaque
mouvement du télescope T
Sort du mode précédent M
Les autres boutons de cette interface ne renvoient rien sur le port RS232.
23
7.3.3. Connection aux périphériques
Ce sous-chapitre explique comment connecter le programme « Autostar Suite » aux ports-série. Le chapitre suivant explique comment créer ces ports-série qui sont pour des raisons de connexion des ports-série virtuels. Donc sans effectuer les étapes du chapitre suivant les connexions ne fonctionneront pas.
Le télescope est équipé d’un port RS232 donc si l’ordinateur à lui aussi un port RS232, il est facile de le connecter. Sinon, il faut un adaptateur RS232/USB.
Ce dispositif crée un port COM. Toutes les connexions peuvent être trouvées sous Démarrer =>
Panneau de configuration => Gestionnaire de périphériques => Ports (COM et LPT). Les connexions sont listées par nom et à la fin entre parenthèses le numéro du port. Par contre les ports virtuels ne sont pas listés.
Figure 31 Gestionnaire de périphériques
Pour connecter le télescope sous « Autostar Suite », il faut aller sous Telescope => Communications
=> Serial Port Setup… est la fenêtre ci-dessous s’ouvre. Dans l’encadré nommé « Serial Port » il faut cocher le port 4, ce port virtuel sera créé au chapitre suivant. Une fois les réglages effectués, connecter le télescope, en allant sous Telescope => Protocol => Autostar via Serial Port. La connexion prend un moment, le télescope doit être sous tension. Dès que la connexion est établie, un message d’avertissement s’affiche.
Figure 32 : Interface Serial Communications Setup
24
Pour connecter le dôme au port, il faut ouvrir la fenêtre « Dome Control » du sous-chapitre précédent, inscrire le numéro du port 2 et cocher la case adjacente comme dans l’image ci-dessous.
Figure 33 : Connexion du dôme
7.4. Programme « V.S.P.E. »
Virtual Serial Port Emulator (VSPE) est un programme de simulation de port-série qui est libre d’accès sous http://www.eterlogic.com/Products.VSPE.html. Le problème rencontré avec les ports- série est qu’il n’est pas possible de connecter plus d’un programme / utilisateur par port. Dans le cas de ce projet, il faudrait que sur le port du télescope et sur celui du dôme soient connectés « Autostar Suite » et « LabVIEW ». VSPE peut aussi servir de programme de contrôle, il peut afficher et enregistrer tout ce qui se transmet sur les ports qu’il gère.
Figure 34 : Interface "VSPE" en Mode Surveillance
25
7.4.1. Mode « connector »
Le mode « connector » est utilisé pour le contrôle du dôme vu qu’il n’y a aucun port réel dans ce cas.
Ce mode crée simplement un port virtuel où il est possible de connecter plusieurs programmes.
Pour le configurer, il faut cliquer sur Périphérique => Créer… et sélectionner « Connector » dans le menu déroulant et allez sur suivant. Dans la fenêtre qui apparaît il faut sélectionner le port COM 2 et cliquer sur terminer.
Figure 35 : Création d'un port en mode "Connector"
7.4.2. Mode « Splitter »
Le mode « splitter » est utilisé pour connecter le télescope au programme de Meade et à LabVIEW en même temps. Ce mode connecte à un port réel existant, un port virtuel qu’il crée et comme pour le mode précédent il est possible de connecter plusieurs programmes sur le port virtuel.
Le début de la configuration se déroule comme pour le mode « Connector » sauf que dans le menu déroulant il faut sélectionner le mode « Splitter ». L’image ci-dessous indique comment configurer les ports.
Figure 36 : Création d'un port en mode "Splitter"
26
Les configurations effectuées peuvent être enregistrées pour ne pas avoir à les reconfigurer à chaque démarrage. La sauvegarde faite durant cette cession se trouve dans le dossier du travail de Bachelor sous «...\LabVIEW\Test_COM_port\config_port_com_1_2.vspe »
7.5. Programme « LabVIEW »
La programmation a été effectuée en plusieurs étapes, chaque partie du programme a été réalisée comme programme indépendant pour être codé, compris et modifié sans avoir les effets des autres parties. Ce fut aussi utile pour tester toute les fonctionnalités de ces sous-programmes. Puis ils ont tous été mis ensemble. Le problème est que ces éléments de code n’ont pas pu être intégrés comme Vi, vu que les initialisations doivent être faites une fois au début et non à chaque boucle. Donc les sous-VI ont encore été divisés en sous-VI pour séparer les parties d’initialisation, du corps du code et de celles de fermeture.
Le programme principal s’appelle « Controle_total.vi » et se trouve dans le dossier du TB sous
«…\LabView\LabView\Ouverture_femeture_dome\Controle_total.vi ».
7.5.1. L’interface utilisateur
L’interface de ce programme, comme le montre l’image ci-dessous, a été conçue comme un écran de surveillance afin d’avoir toutes les informations de sécurité en un simple coup d’œil. La zone en haut à droite a été intentionnellement laissée vide pour pouvoir y mettre la surveillance vidéo. Cet espace peut être utilisé pour mettre le retour vidéo d’une ou deux webcam ou, si la webcam est contrôlable à distance, pour mettre le retour vidéo et les commandes pour cette dernière. Les deux indicateurs sous l’indicateur de commande montrent l’état de la coupole (ouvert/fermé) et la vitesse du moteur de rotation qui varie entre 0 et 5.
Figure 37 : Interface du code LabVIEW
27
La figure 38 montre les jauges qui affichent les informations de la station météo, avec en-dessous de chacune d’elle la valeur exacte. Les trois leds indiquent si le dôme peut être utilisé en fonction des conditions météo : si oui elles sont vertes, sinon elles sont éteintes. Il faut que les trois leds soient au vert pour pouvoir ouvrir la coupole.
Figure 38 : Jauge de contrôle
Les deux rectangles montrés sur la figure 39 affichent simplement le texte des deux fichiers créés par la station météo. L’utilité est que ces fichiers indiquent plus de détails. Il est aussi possible de voir le bouton d’arrêt du programme. Il serait utile de coder un système pour couper l’alimentation de la coupole lorsque le bouton stop est pressé. Ce serait un bouton d’arrêt d’urgence à distance.
Figure 39 : Affichage du texte des fichiers météo
La figure 40 montre les quatre formes que peut prendre la fenêtre commandable. La commande sur la gauche permet de choisir le mode de fonctionnement, soit le mode manuel soit le mode automatique ; ces différends modes sont détaillés dans les sous-chapitres suivants.
Les deux fenêtres en-dessous servent à des réglages. La fenêtre appelée « Configuration » permet de régler les valeurs critiques, d’indiquer le chemin des dossiers de la station météo et les ports utilisés sur la carte NI USB-6008.
28
Figure 40 : Les différents affichages de la fenêtre commandable
La dernière page n’est accessible que durant la phase de codage, le bouton de commande ne permet pas d’y accéder. Il faut suivre les instructions montrées par la figure 41. A gauche, cette fenêtre contient des valeurs constantes qui ne doivent pas être changées, ces valeurs sont un reste du code des travaux précédents. Sur la droite sont des indicateurs pour l’aide au débogage, qui durant ces phases doivent être sortis de cette fenêtre car elle ne s’affiche pas. Ces indicateurs ne doivent pas être supprimés.
Figure 41 : Sélection de la page "Paramètre par défaut"
29
7.5.2. Mode Manuel
Le mode manuel sert à contrôler le dôme sans passer par le programme « Autostar Suite ». Comme dans le sous-chapitre précédent, son interface comprend quatre boutons. Ils sont triés par ordre de fonctionnement de gauche à droite. Tant que le bouton dans la colonne de gauche n’est pas activé, les boutons à droite n’ont aucun effet. Le bouton « ouverture du dôme », comme son nom l’indique ouvre le dôme quand il est activé et le ferme quand il est désactivé. Le bouton à sa droite « Mise en marche de la rotation » met en service le moteur de rotation ; si la vitesse du moteur est à zéro, ce dernier ne bougera pas.
Puis dans la colonne tout à droite se trouve le bouton pour choisir le sens de rotation et celui pour faire varier la vitesse. La vitesse varie entre 0 et 5, cette mesure ne correspond pas à la vitesse du moteur mais à la tension qui est envoyée sur le driver. 5V est la tension maximum que peut délivrer le boitier NI. Le driver fait correspondre cette tension avec la vitesse maximum du moteur, donc ce dernier reçoit la tension nécessaire.
Figure 42 : Commande coupole
7.5.3. Mode Automatique
Le mode automatique est conçu pour fonctionner en arrière-plan du programme « Autostar Suite ».
C’est pour cette raison que son interface est très simple. Dans la partie gauche se trouve la position du dôme ainsi que celle du télescope. Dans la partie droite se trouvent les chemins d’accès pour les fichiers de sauvegarde. Le premier fichier enregistre les déplacements de la coupole et le deuxième les informations envoyées par le programme « Dome Control ». Ces fichiers ont surtout été utiles durant le développement du sous-programme de lecture des ports-série. Ils n’ont plus d’utilité concrète et pourraient être enlevés dans un souci d’optimisation du système. En-dessous se trouvent les cases prévues pour la saisie des numéros des ports configurés sous VSPE.
7.5.4. Code LabVIEW
Le code LabVIEW est volumineux, c’est pour cette raison qu’il est présenté en trois parties comme le montre la figure 43. La première traitera de l’initialisation, la deuxième de la boucle principale et la dernière de la clôture du programme. Pour voir les images en pleine page se référer aux annexes.
30
Figure 43 : Code LabVIEW
7.5.4.1. Initialisation
Dans cette première partie, les variables sont initialisées et les connections sont effectuées avec les différents ports.
Figure 44 : Initialisation des variables (mise sur trois colonnes)
31
Comme le montre la figure 44 les variables n’ont pas de nom très explicatif. Les dix premières variables servent à enregistrer si un bouton est activé. Leur nom correspond à la lettre envoyée par le
« Dome Control », la liste de correspondance est dans le sous-chapitre du programme. La variable suivante sert à enregistrer le sens de rotation du dôme. Les deux suivantes qui commencent par ‘Save’
et qui sont initialisées à l’état ‘vrai’ servent à enregistrer la position de départ du télescope. Cet enregistrement se fait au même moment que la lecture de position. Les trois dernières variables servent à enregistrer la position de rotation de départ. Elles sont mises à zéro pour être sûr que la position soit bien mise à jour.
Figure 45 : Création d'une tâche numérique
Les sous-VI « Creation_tache_numerique_port0.vi » et « Creation_tache_numerique.vi » sont identiques. Comme le montre la figure 45, ils servent à créer une ‘tâche’. Il suffit de leur donner le port sur lequel ils doivent travailler puis ils créeront la tâche et le canal, dans ce cas un numérique.
Ensuite les sous-VI démarreront la tâche.
Figure 46 : Création d'une tâche analogique
La création de tâche analogique se déroule comme pour celle numérique, à la différence que, pour la création du canal, il faut indiquer que c’est un ‘AO voltage’ (analogique output voltage). Le canal demande de lui donner sa plage de fonctionnement, ce que ne fait pas le numérique.
32
Figure 47 : Ouverture d'un port COM et création d'une queue
Comme le montre la figure 47, le sous-VI « Creation_queue_ouvertur_portcom.vi » est constitué de deux parties. Celle du haut connecte le programme à un port COM. Il faut lui donner le nom du port et ses caractéristiques. La case juste à droite sert à vider le ‘buffer’ du port. Ce n’est pas utile à ce moment-là, mais par précaution, au cas où des informations seraient restées dans les buffers des ports.
En-dessous se trouve le code pour la création d’une queue de chaînes de caractères. Une queue dans LabVIEW est similaire à un buffer, elle sert à empiler des éléments, puis à les récupérer par la suite.
Dans ce programme, les queues sont utiles au moment de la lecture des ports.
Figure 48 : Création d'un fichier texte
Dans cette partie de création de fichiers, à chaque fois que le programme s’initialise, un nouveau fichier est créé automatiquement et il est nécessaire d’indiquer au programme le chemin du dossier.
Les fichiers textes ont un chiffre comme nom. La première icône dresse une liste des fichiers du répertoire, et pour le bon fonctionnement du programme, il faut éviter qu’il y ait d’autres fichiers que ceux prévus pour la sauvegarde. Le programme inverse ensuite cette liste et sélectionne le premier élément, soit le fichier avec le numéro le plus élevé. Il passe ensuite ce chiffre au format numérique, lui additionne ‘1’ et le repasse au format chaîne de caractères. Ensuite il lui ajoute l’extension ‘.txt’ et le met à la suite du chemin d’accès donné par l’utilisateur. Le programme se termine par la création du nouveau fichier.
33
7.5.4.2. Corps du code
La boucle principale est constituée de trois parties distinctes : le traitement des informations météo, la gestion du dôme et la lecture des ports d’entrée.
Figure 49 : Corps du code
Les sous-programmes « Calcul_temp_Humi.vi » et « Calcul_Vent.vi » ont été faits durant les travaux de Bachelor précédents. Ces sous-programmes servent à traiter les informations transmises par la station météo et à les afficher sur l’interface principale. La seule modification effectuée est d’en avoir fait des sous-programmes. Il aurait été possible de créer un seul sous-programme mais il y aurait eu beaucoup trop d’entrées et de sorties pour qu’il reste compréhensible.
34
Le sous-programme « ouverture_fermetur_dome_avec_arret.vi » a lui aussi été créé à partir du code écrit dans les anciens travaux. Il sert à contrôler les conditions météorologiques et, si ces dernières sont bonnes, il permet à l’utilisateur d’ouvrir le dôme. Il ferme automatiquement le dôme si les conditions météorologiques se dégradent. Le ‘Case’ de la figure 50 sur la gauche du sous-VI d’ouverture contient, en mode manuel, le bouton d’ouverture et, en mode automatique, la variable ‘O’.
Pour de plus amples informations sur le fonctionnement de ces trois sous-programmes, se référer au travail de Bachelor de l’année 2012 par M. Petermann.
Figure 50 : Contrôle de la météo et gestion de l'ouverture/fermeture
Le ‘Case’ au centre du programme à comme choix l’état de la coupole ‘ouvert’ ou ‘fermé’. Le mode fermé, figure 51, contient deux sous-programmes « Variateur_de_tension_pour_rottation.vi » et
« rotation_coupole.vi », utilisés pour assurer l’immobilité de la coupole quand elle est fermée. Ces deux vi seront expliqués plus en détail par la suite.
Figure 51 : 'Case' à l'état fermé
Seule la partie de traitement de la météo et le ‘Case’ en position fermée s’effectuent dans tous les modes de fonctionnement. C’est pour cette raison que les deux autres parties doivent être traitées selon le mode utilisé.
35
7.5.4.2.1. Partie Manuelle
La partie manuelle correspond au mode ‘commande coupole’ qui est le mode par défaut. La partie de la lecture des ports n’est pas utilisée dans ce mode, le ‘Case’ est donc simplement laissé vide. Il y a que le ‘Case’ central, en position ouvert, qui est utilisé. Dans ce ‘Case’ se trouvent les mêmes sous-VI que dans la position fermée mais avec d’autres commandes. Le ‘Case’, qui est montré dans la figure 52, contient le bouton de commande à la position ‘vrai’ et simplement un zéro quand il est sur la position ‘faux’.
Figure 52 : 'Case' à l'état ouvert
Le sous-programme de rotation a été, en partie, reprit du travail précédent. Il avait été codé pour commander le port 1 en entier et non sortie par sortie. C’est pour cela que les valeurs envoyées sont des chiffres entiers qui, passés en binaire, activent les trois premières sorties du port 1. Le premier
‘Case’ envoie un ‘1’ si il est ‘faux’ et la figure 53 montre sa position ‘vrai’. Le deuxième ‘Case’
s’occupe du sens de rotation, il envoie un ‘2’ si il est ‘vrai’ et un ‘6’ si il est ‘faux’. L’icône en-dessous des ‘Case’ sert à écrire sur le canal d’une tâche créée précédemment.
Figure 53 : Sous-programme de rotation
La figure 54 montre le sous-programme qui s’occupe de la vitesse de rotation. Sa seule fonction est d’envoyer la valeur de la vitesse voulue sur le canal analogique créé précédemment. Le bloc, avec écrit ‘status’, sert à contrôler la ligne d’erreur et si il en trouve une, il stoppe le programme. Dans le code principal, ce dispositif est utilisé à chaque fois qu’il y a une écriture sur un canal.
36
Figure 54 : Sous-programme de gestion de la vitesse de rotation
7.5.4.2.2. Partie Automatique
La partie de lecture des ports sera exposée en premier, puis la partie de la gestion du dôme suivra. La partie de lecture des ports peut être comprise comme si elle était constituée de deux sous-programmes.
Comme le montre la figure 55 tant qu’aucune des cinq variables, ‘T’, ‘S’, ‘P’, ‘R’ ou ‘L’, n’est pas activée, le programme ne lit que sur le COM 2, soit les informations provenant du programme « Dome Control ».
Figure 55 : Lecture du port COM 2
Ce code doit être placé dans deux boucles séparées : dans la première boucle, la lecture du port et l’empilement dans la queue et, dans la deuxième, le dépilement et le traitement des données. Ces deux parties sont placées dans deux boucles ‘for’ qui sont initialisées à ‘1’. La partie lecture du port est sous
37
forme d’un vi nommé « lecture_port_COM.vi ». Ce sous-programme commence par faire un test pour savoir combien il y a de bytes dans le buffer du port. S’il n’en repère aucun, il ne fait rien.
La figure 56 montre le code pour lire les données sur le port. Les deux icônes en haut du ‘Case’ sont pour la lecture du port et pour le vider, au cas où il y aurait trop d’informations cumulées. En-dessus se trouve la partie traitement. Comme « Dome Control » envoie des points d’interrogation en continu, pour ne pas surcharger la queue, ils sont recherchés et remplacés par des ‘empty string’ puis les informations qui restent sont empilées dans la queue.
Figure 56 : Sous-programme de lecture d'un port
Dans la partie ‘traitement des données’, la première icône indique que le programme attend qu’il y ait une information donnée dans la queue pour dépiler. Les données reçues sont les lettres décrites dans le chapitre 7.3.2. Ces lettres sont passées en majuscule puis le programme ne garde que la première. Le
‘Case’ a comme possibilité toutes les variables. Chaque cas est montré dans la figure 57 et décrit dans le tableau ci-dessous.
Figure 57 : Différent état du 'Case' de détection de lettre
38
Variables Actions effectuées
Default Vide la queue pour être sûr que les prochaines informations qui arrivent soient les plus récentes
O Met la variable d’ouverture ‘O à l’état vrai
C Met la variable d’ouverture ‘O’ à l’état faux
S Met la variable de synchronisation du dôme sur
le télescope, ‘S’, à l’état vrai
X Met les deux variables de sauvegarde de position
à l’état vrai
P Met la variable pour le parcage, ‘P’, à l’état vrai
Z Ecrit sur le port COM du télescope sa position
initiale, pour qu’il y retourne
R Met la variable de rotation ‘R’ et celle pour le sens de rotation ‘SENS’ à l’état vrai L Met la variable de rotation ‘L’ à l’état vrai et
celle pour le sens de rotation ‘SENS’ à l’état faux T Met la variable pour le suivi du télescope, ‘T’, à
l’état vrai
M
Met la variable pour le suivi du télescope, ‘T’ à l’état faux ainsi que les variables ‘L’, ‘R’, ‘P’ et
‘S’. Ces dernières variables sont initialisées pour que le dôme n’effectue pas les actions, qu’elles
commandent, en quittant le mode du suivi.
Le vi placé sous le ‘Case’ sert à écrire à la fin du fichier ouvert comme le montre la figure 58.
Figure 58 : Ecriture dans un fichier
La deuxième partie de lecture des ports lit le port COM 4 uniquement si une des variables citées (‘T’,
‘S’, ‘P’, ‘R’ ou ‘L’) est activée. Pour la partie lecture, le même sous-VI que pour le port COM 2 est utilisé. Le programme n’envoie pas d’information avec des points d’interrogations sur le COM 4, donc tout ce qui arrive sur le port est empilé dans la queue. La différence vient au moment du traitement des informations. Tous les ‘Case’ montrés sur la figure 59 sont vides à l’état faux.
Le premier test contrôle le nombre d’éléments présents dans la queue. Si il y a un élément ou plus le
‘Case’ suivant est effectué. La queue sera vidée si il y a plusieurs éléments dedans. Comme pour le traitement des données du COM 2, le programme dépile un élément de la queue et le passe au traitement. Cette partie est spéciale parce qu’il y a les deux ‘Case’ contrôlés par les variables ‘Save’.
Ces ‘Case’ servent à enregistrer la position du télescope quand il est à la position de départ, donc ils sont effectués une fois au début, puis à chaque fois que l’utilisateur le demande au moyen du « Dome Control ». Le programme, dans son mode de fonctionnement normal, est montré par la figure 59.
39
Figure 59 : Traitement des données du télescope en mode de fonctionnement normal
La description de la sauvegarde des positions se fera par la suite. En mode normal, l’information dépilée de la queue est réduite à la dernière transmission de position. Cette dernière position gardée est transmise dans le format : « xx : xx : xx # ±xx ß xx : xx # ». L’offset pour la lecture de la chaîne est placé à la longueur de la chaîne moins dix-neuf, soit la longueur d’une position. L’information de la position est séparée en deux au niveau du premier ‘#’. La deuxième partie est envoyée au ‘Case’ pour la sauvegarde de la déclinaison. La première partie est mesurée : si elle a bien une taille de huit éléments, le ‘Case’ pour la position de rotation est effectué. Dans le ‘Case’ la première icône sert à trouver un format dans une chaîne de caractères. Donc il faut lui donner la chaîne puis le format qui est pour ce cas « %2d :%2d :%2d ». %2d signifie qu’il est sensé trouver un nombre entier constitué de deux chiffres. Puis il retourne les trois nombres attendus qui sont enregistrés en tant que « Degrés »,
« Minutes » et « Secondes ». Un ‘#’ est ajouté à la chaîne de départ, pour avoir directement le bon format, avant de l’enregistrer.
Figure 60 : Sauvegarde de la déclinaison
La figure 60 montre la sauvegarde de la déclinaison. Une chaîne de caractères au format « # ±xx ß xx : xx # » est transmise à ce ‘Case’. La chaîne est contrôlée pour être sûr qu’elle ait la bonne taille. Puis elle est lue avec un offset de ‘1’ pour ne pas tenir compte du premier ‘#’. Ensuite le caractère ‘ß’ est recherché et remplacé par un point. Ce caractère est une erreur qui survient au moment de la lecture.
La chaîne modifiée est ensuite enregistrée sous « Declinaison ini » et la variable « Save pos dec » est
40
mise à l’état ‘faux’. Lorsque la touche « Park dome » est pressée dans « Dome Control », les sauvegardes de la rotation et de la déclinaison au format chaîne de caractères servent à remettre le télescope dans sa position initiale.
Figure 61 : Sauvegarde de la rotation
La figure 61 montre le ‘Case’ qui contient la sauvegarde de la position de rotation. Cette sauvegarde est plus simple que la précédente puisque les informations sont déjà disponibles. Il suffit de les enregistrer dans d’autres variables qui sont « Degrés dep », « Minutes dep » et « Secondes dep ». Ces informations sont aussi enregistrées comme position d’initialisation de la coupole, c’est pour cette raison que le dôme et le télescope doivent être alignés avant le lancement du programme. Si ça n’a pas été fait il y a toujours la possibilité de les réaligner séparément et de cliquer sur « Sync home » dans le
« Dome Control ». La rotation au format chaîne de caractères est enregistrée sous « Rotation ini » et la variable « Save pos rota » est mise à l’état ‘faux’ si la position de rotation n’est plus à zéro. La position zéro n’est pas une position possible pour le télescope.
Figure 62 : Gestion du dôme (tous les 'Case' à l'état ‘faux’)
La troisième et dernière partie de ce corps du code est la gestion du dôme. Comme le montre la figure 62 toutes les variables sont testées hiérarchiquement. Ce qui veut dire que si le suivi ou la
41
synchronisation du dôme sur le télescope est activé, les autres variables ne sont même pas testées. En plus du test des variables, le premier ‘Case’ contrôle si les positions ont été enregistrées.
Figure 63 : 'Case' gérant le déplacement de 1°
La figure 63 montre le ‘Case’ pour la rotation de ‘R’ et ‘L’. Il a été décidé arbitrairement qu’à chaque pression sur une des flèches du « Dome Control » le dôme se déplace de ‘1°’. La variable ‘SENS’ sert à envoyer au sous-programme, « rottation_continnue.vi », la valeur de la rotation qui est soit moins un ou plus un. Dans le ‘Case’ commandé par le ‘SENS’, l’affichage de la position du dôme est aussi mis à jour. Puis les variables ‘R’ et ‘L’ sont remises à zéro.
Figure 64 : Sous-programme de la rotation en continu du dôme
Le sous-VI montré par la figure 64 sert à synchroniser la position du dôme sur celle de la coupole. Ces deux positions doivent lui être transmises en entrée. Il est constitué des deux mêmes sous-programmes que dans la commande manuelle soit « Variateur_de_tension_pour_rottation.vi » et
« rotation_coupole.vi » dont les entrées sont déterminées par la comparaison des deux positions. Une tâche est créée à chaque fois que ce programme est lancé. Ce compteur d’évènements est décrit dans le chapitre suivant. Il compte et à chaque pas sa sortie est incrémentée de ‘1’. Cette sortie est multipliée par 0.2989°, ce qui nous indique la rotation effectuée par la coupole. Ce nombre de degré est trouvé en faisant :
42
⁄
⁄
Le nombre de degrés que la coupole doit effectuer est calculé en prenant la valeur absolue de la position du dôme moins la position du télescope. Puis en effectuant le calcul suivant pour passer de
« degrés minutes secondes » en degrés :
[ ]
Le sens de rotation est déterminé par le signe de la différence des degrés. La mise en marche et la vitesse de rotation sont activées si la distance à parcourir est strictement plus grande que la distance parcourue. Cette boucle tourne tant que cette condition est vraie. La vitesse est soit ‘5’ s’il tourne, soit
‘0’ s’il ne bouge pas. Quand la coupole a fait le déplacement voulu le programme détruit la tâche et envoie en sortie la nouvelle position du dôme.
Figure 65 : 'Case' gérant le parcage du dôme
Ce ‘Case’ utilise le même sous-programme que le précédent, sauf qu’en entrée il est donné au sous- programme la position actuelle et la position initiale du dôme, enregistrées précédemment. Puis la nouvelle position de la coupole est enregistrée et les variables ‘R’, ‘L’ et ‘P’ sont mises à l’état ‘faux’.
Figure 66 : 'Case' gérant la sycronisation du dôme et le suivi du télescope
43
Ce ‘Case’ est similaire au précédent sauf qu’il lui est transmis la position actuel du télescope et non la position initiale du dôme. Seule la variable ‘S’ est mise à l’état ‘faux’ vu que la variable ‘T’ est mise à l’état ‘faux’ seulement quand la case est décochée dans le « Dome Control ».
7.5.4.3. Fermeture
Cette dernière partie du programme traite toutes les tâches qui doivent être arrêtées, fermées ou détruites avant de quitter.
Figure 67 : Sous-programme de fin de tâche
Le sous-programme « FIN_de_Tache.vi », montré par la figure 67, commence par stopper la tâche puis la détruit et affiche les erreurs. Ce vi est utilisé pour fermer les deux tâches numériques et la tâche analogique.
Figure 68 : Fermeture du port et destruction de la queue
L’image ci-dessus montre le vi « fermetureQueueETportCOM.vi ». Ce sous-programme vide les buffers du port COM puis libère la connexion et affiche les erreurs. La partie en-dessous vide la queue, la supprime et affiche les erreurs.
Figure 69 : Fermeture de fichier
Le sous-programme « fermeturefichier.vi » ferme simplement le fichier et affiche les erreurs trouvées.
8. Implémentation du capteur optoélectronique
Le capteur optoélectronique compte le nombre de dents de la roue de rotation pour connaître l’angle que fait la coupole à chaque mouvement. Ce capteur fonctionne en interrupteur ce qui veux dire que si il n’est pas obstrué, il sort un ‘1’ logique et si son rayon est coupé, il sort un ‘0’.
44
Figure 70 : Capteur optoélectronique
La première solution fut de brancher la sortie d’information directement sur l’entrée du compteur du boitier NI. Cette entrée, la PFIO compte le nombre de flancs descendants qui lui arrivent. Cette première solution ne fonctionne pas vu que la PFIO est connectée via une pull-up au 5V et que le capteur a son ‘0’ logique à 0.7V. Dans cette version la patte PFIO reçoit un signal qui varie entre 5V et 1.4V.La figure 71 ci-dessous montre que le boitier NI détecte un état bas à partir 0.8V et un état haut à 2V. Par ce faite l’état bas du branchement tombe en plein dans la zone interdite de fonctionnement du boitier NI. Dans la pratique le compteur ne détecte simplement pas de flanc.
Figure 71 : Caractéristique du capteur
Plusieurs autres essais ont été réalisés avec des systèmes d’ampli-op. Suite à ces différents essais, c’est un simple transistor NPN qui fait fonctionner le capteur sur le compteur PFIO. La sortie d’information du capteur est connectée sur la base du transistor par une résistance de 82[kΩ] et le compteur est connecté sur le collecteur du transistor. L’émetteur est quant à lui branché directement à la masse. Ce montage comme dessiné sur la figure 72 ci-dessous permet de compter le nombre de passages de dents. Le NI va compter les flans montants du capteur vu que l’entrée PFIO sera mise à la masse quand le capteur sera à 5V.
45
Figure 72 : Montage et schéma du capteur
Comme la fente du capteur est très fine 3[mm], il n’est pas possible de compter directement les dents de la roue dentée. Une plaque de 2[mm] d’épaisseur avec la même forme que la roue dentée devra être usinée et fixée en dessous de la roue dentée. Il faudra veiller que les deux roues soient parfaitement synchronisées.
Figure 73 : Roue dentée pour l'entrainement de la rotation
9. Suite du travail
Ce chapitre traite du travail qu’il reste à effectuer dans ce projet pour pouvoir utiliser cet observatoire.
Finir les derniers montages mécaniques et les tester.
Optimiser le programme LabVIEW de contrôle du dôme.
Intégrer au programme la webcam pour avoir un contrôle visuel du dôme.
Monter le système du capteur sur un veroboard
Créer le système pour pouvoir communiquer à distance avec la coupole.
Mettre en œuvre la solution proposée dans le TB précédent pour la fixation de la coupole au toit.
Et pour finir mettre en place cet observatoire sur le toit.