Silicium 628 - dernière mise à jour de cette page: 5 octobre 2009


APE2009
GOTO pour monture équatoriale 
pour télescope 114x900 ou lunette astronomique
ATmega32 + LINUX

Nécessite une monture équatoriale ayant les deux  mouvements RA et DEC  équipés de vis sans fin sur roue dentée. ( et non pas une vis +  butée sur la déclinaison comme en en trouve sur certaines montures bon marché).
  • Montage unique pilotant le moteur d'ascension droite ET celui de déclinaison (moteurs pas-à-pas).
  • Avec affichage des 2 infos sur le même afficheur, LCD 4 lignes de 20 caractères, rétro-éclairé (bleu).
  • Compensation de la rotation terrestre (suivi en ascension droite).
  • Vitesses lentes et rapides.
  • Montage basé sur un microcontrôleur AVR ATmega32 programmé directement en C (avec KontrollerLab sous LINUX), tournant à 16MHz.
  • Pilotage à distance avec une simple télécommande TV universelle.
  • Fonction GOTO.
  • Positions de 50 étoiles de référence mémorisées dans l'EEPROM de l'ATmega32.
  • Le montage peut également être relié au PC par une liaison USB avant l'utilisation sur le terrain, afin de programmer les données internes.
  • Le montage (carte ATmega de commande des moteurs et affichages + télécommande IR) peut fonctionner SANS l'ordi, d'une manière autonome.
  • Le montage peut également être relié au PC par une liaison USB pendant l'utilisation, ce qui permet de pointer des millions d'étoiles .
  • Montage évolutif puisque les ATmega sont des uContrôleurs flash reprogrammables.
Cette réalisation est la suite logique de l'APE2002 ... APE2007
L'utilisation d'un ATmega32 permet de tout faire avec un seul microcontrôleur, ce qui simplifie grandement la réalisation, la mise au point, la complexité de l'électronique et l'évolution de l'ensemble.
La programmation en langage C, par rapport à l'assembleur, devient un réel plaisir. Le temps d'étude et réalisation et divisé par dix!
Les précédentes versions étaient programmées respectivement en assembleur AVR puis en Pascal sous Window$

Cette version est basée sur des logiciels LIBRES, sous LINUX.


Septembre 2009:
L'APE2009  remplace l'APE2008
La principale différence est que l'APE2009 est entièrement basé sur l'OS libre LINUX
Les softs seront programmés sous Linux, pour Linux.
L'interface logicielle entre le logiciel Cartes du Ciel (Skychart) (version Linux) et l'APE a été réécrite avec Lazarus sous Linux Ubuntu.
Le firmware  est écrit en langage C sous KontrolleurLab, sous Linux (Ubuntu 9.04)

LA MISE AU POINT

On aperçoit en haut au centre le programmateur USB.


En haut à droite, c'est le récepteur IR à ATmega8 qui ne servira plus.


En bas à droite, l'alimentation 5V à découpage. (Voir sa description sur ma page de l'APE2007).
LA REALISATION



  • Le petit rectangle noir sur la photo, juste à gauche de l'ATmega32, c'est le récepteur Infra-rouge.


PRINCIPE


Tout d'abord vous invite à consulter les articles suivants sur Wikipédia si vous n'êtes pas familiarisés avec toutes ces notions utilisées par l'APE2009:
Ensuite vous trouverez des explications dans les commentaires du code source en pascal pour l'ATmega32
(le fichier .pas est un fichier au format texte qui s'ouvre avec n'importe quel éditeur de texte, comme gedit, edit etc...)



Le soft version LINUX d'importation d'objets (programmé avec Freepascal Lazarus)


<- cliquez sur l'image pour  agrandir

Ce soft permet en quelques clics d'importer des objets depuis le superbe logiciel libre (en licence GNU/GPL.) "Cartes du Ciel", de les gérer (tri multi-critères) et de les transférer dans l'EEPROM de l'ATmega32 un par un ou en bloc.

La liaison entre l'APE2009 et l'ordinateur (qui peut être un portable) se fait, je le rappelle, par un port USB.

On a ainsi accès à des catalogues de plusieurs millions d'étoiles et d'objets.

L'EEPROM de l'ATmega32 (=1Ko) peut quant à  elle, mémoriser 50 objets simultanément, ce qui est confortable pour une séance d'observation en utilisation autonome. (Tout le monde n'a pas de portable ou ne désire pas forcément le promener la nuit dans la nature).







Les objets peuvent être triés par:
  • Nom
  • Ascension droite
  • Déclinaison
  • Magnitude visuelle
  • Nom des constellations dont ils font partie
  • Numéro perso
  • Distance angulaire par rapport à n'importe lequel d'entre eux (ds2=dx2+dy2)
Cette dernière sorte de tri permet de repérer les étoiles lumineuses proches (angulairement) de la galaxie convoitée...

La liste obtenue peut être:
  • transférée dans l'EEPROM de l'ATmega32. 
  • imprimée.
  • enregistrée sur le disque dur. 
  • rechargée à partir du disque dur.

 

Le schéma


Attention
: le schéma à jour est toujours celui sous format eagle disponible plus bas sur cette page.
Ce schéma a été tracé (puis routé) sous Linux Ubuntu 9.04 avec le logiciel EAGLE.

L'alimentation à découpage 5V (à partir du 12V) pour alimenter les moteurs permet d'économiser la batterie.




DOCUMENTS TECHNIQUES (auteur Silicium 628)



L'APE 2009 utilise un convertisseur USB-RS232 du commerce basé sur une puce Prolific Technology PL2303, compatible Linux (sans drivers supplémentaires) fournissant un port série RS232 virtuel sous la forme /dev/ttyUSB0
Mon logiciel APE2009 le détecte automatiquement.

Je l'utilise actuellement avec satisfaction. J'ai acheté ce convertisseur dans une "boutique" sur Ebay...

Les ports com RX et TX de l'ATmega fonctionnant avec des niveaux logiques TTL (plus exactement  CMOS) 0V / +5V et le convertisseur  USB-RS232 fournissant un port com à la norme RS232 (niveaux -12V / + 12V environ), il faut ajouter un petit convertisseur de niveaux à transistors décrit ci-dessous.




Adaptateur de niveaux RS232 - TTL




A propos du soft
Pour ceux qui sont intéressés par la programmation des ATmega en langage C, vous trouverez dans les codes sources que je publie librement ici:

LCD La gestion d'un afficheur LCD en langage C
RC5 Une fonction de décodage des signaux RC5 de télécommandes IR universelles
USART Des fonctions USART de dialogue entre le PC et l'ATmega en mode série RS232
EEPROM Des fonctions permettant au programme embarqué d'enregistrer et de lire des données en EEPROM de l'ATmega
Interruptions Comment utiliser les Timers et gérer les interruptions de l'ATmega en langage C
avr-libc Comment utiliser des fonctions prédéfinies de avr-libc
Bibliothèques Comment inclure et utiliser des fonctions de bibliothèques externes
Chaines de caractères L'utilisation de fonctions de traitement de chaines de caractères (comme sprintf)
Affichage Comment afficher des textes sur le LCD, mais aussi des caractères et des nombres entiers ou décimaux
Pointeurs L'utilisation des pointeurs en C

    Voici le fichier principal en C : ape2009_v3.1.c (pour la version la plus récente, voir dans le fichier.tar.gz dispo ci-dessus)

    J'ai passé un grand nombre d'heures pour faire la synthèse de nombreuses informations éparpillées sur le WEB, le plus souvent en anglais.





    Divers:

     

    BAC A SABLE:

    Je relate ici des expérimentations dont certaines seront retenues, d'autres pas.
     
    14 mai 2008:

    J'ai fabriqué un codeur rotatif incrémental à partir du mécanisme d'une souris optique à boule, que j'ai placé sur l'axe de la vis sans fin de l'ascension droite.
    Cela permet de continuer à gérer la position RA même en débrayant le moteur pas à pas et en tournant la vis manuellement. C'est aussi la possibilité d'obtenir des vitesses de déplacement RA bien plus grandes que par le moteur pas à pas (manuellement ou avec un moteur électrique DC classique). Je conserverai quand même le moteur pas à pas qui est parfait pour le suivi.

    encodeur incremental avec une souris de PC J'utilise un modèle de souris avec deux leds IR et deux capteurs IR sur chaque axe (roues codeuses) et pas un seul capteur dont les signaux sont plus difficiles à interpréter (impulsions même en l'absence de rotation.

    Avec un double capteur on obtient deux signaux en quadrature de phase, qu'il suffit de mettre en forme avec un trigger de Smith (CD40106) avant de les faire ingurgiter par l'ATmega32.

    Et justement les pins d'entrées INT (INT0 et INT1) sont libres dans l'APE2008. Donc du côté logiciel la mise en oeuvre est un jeu d'enfant.
    En fait une seule INT suffit: lors du front descendant d'une phase, on teste le niveau (haut ou bas) de l'autre phase pour déterminer le sens de rotation. Voir le code source en pascal.

    Sur la photo on voit une roue dentée en nylon que je vais sertir sur l'axe métallique (un petit bout de tube d'antenne télescopique enfilé en force pour ajuster le diamètre et le tour est joué).


    21 mai 2008:

    La vitesse la plus rapide de déplacement en ascension droite, qui est de 32 fois la vitesse sidérale, et qui est obtenue directement avec le moteur pas à pas RA se révèle très insuffisante pour une utilisation confortable. Le problème est que  moteur pas à pas en question décroche pour des vitesses plus importantes. J'ai pensé le remplacer par un moteur à courant continu asservi en vitesse, mais la vitesse de rotation requise pour le suivi est vraiment très basse pour un tel moteur compte tenu de la démultiplication utilisée. En conclusion le moteur pas à pas est parfait (aux vibrations près) pour le suivi qui demande une vitesse très faible et une précision très grande, alors qu'un moteur DC est parfait pour un déplacement rapide.

    Que faire?
    -un embrayage mécanique de l'un ou l'autre type de moteur suivant les circonstances? c'est compliqué.
    -monter les deux types de moteurs sur le même arbre? Le moteur DC non utilisé ne gêne en rien le PaP (à condition toutefois de ne pas le court-circuiter électriquement). Mais... le PaP non utilisé oppose un couple important, de plus de par la conception de l'APE2008, il se trouve court-circuité par les L272M au repos, avec le risque de consommer (coté moteur CD) et de griller les L272 par effet dynamo (coté moteur PaP).

     Je pensais  avoir trouvé la solution (non retenue, voir plus bas): pendant la rotation rapide, le moteur DC fait presque tout le boulot mais on alimente le moteur PaP avec une fréquence compatible avec ladite rotation (mais pour laquelle le moteur PaP seul aurait décroché depuis longtemps). Et ça tourne (très vite). On cumule ainsi la précision du PaP pour le suivi avec une vitesse maximale de plusieurs centaines de fois la vitesse sidérale.



    Sur la table de travail ça fonctionne déjà.

    Pour le mode suivi je rajouterai un petit relais de roue libre sur le moteur DC.
    Les moteurs en place sur la monture.
    Au premier plan, la boite à engrenages pour démultiplier le mouvement.

    La petite roue dentée blanche à droite est fixée en bout d'axe de la roue codeuse incrémentale de souris, vue plus haut.
    La boite à engrenages sans son capot de protection.

    Pour éviter la propagation des vibrations du moteur pas à pas à toute la monture et à l'instrument, les moteurs sont suspendus à l'aide de deux petits silent-blocks en plastique (en rose) récupérés sur un bloc optique de lecteur DVD. De même pour accoupler les axes, des petites longueurs de durite (type aéromodelisme) font tout à fait l'affaire.
    Le chercheur "pas terrible" livré avec le telescope est devenu un viseur polaire pour la mise en station.

    On voit également ici le départ du câble de la roue codeuse.

    26 mai 2008:
    Le principe des deux moteurs montés sur le même arbre s'avère décevant! en fait le moteur PaP forcé à tourner trop vite (la  tension contre-électromotrice [back EMF en anglais ou BEMF] devenant supérieure à la tension d'alimentation)  se laisse certes entraîner, mais à une vitesse glissante par rapport aux signaux appliqués. Sur le plan électronique, ce n'est vraiment pas satisfaisant. J'abandonne donc cette idée pour la remplacer par celle de l'embrayage. C'est compliqué ai-je dit plus haut? Pas tant que ça, la preuve, je l'ai fait.

    Les deux moteurs sont dorénavant fixés côte à côte sur une platine en alu.
    1. axe du moteur pas à pas de suivi.
    2. axe du moteur DC de déplacement rapide. La boite de démultiplication qui suit est accouplée à cet axe par le morceau de durite qui dépasse.
    3. axe d'une roue dentée volante (sur roulement à billes) assurant la liaison des deux moteurs en mode suivi.
    4. axe de rotation du bras supportant (3)
    5. électro-aimant à noyau plongeur qui pousse le bras coudé pour débrayer le moteur pas à pas pendant les déplacements rapides
    6. Silent block anti-vibrations de suspension de l'ensemble sur la monture du télescope.
    7. ressort de rappel assurant l'embrayage au repos.

    (5) doit obligatoirement débrayer AVANT la mise en rotation du moteur DC.
    L'axe (4) est constitué par une entretoise filetée vissée non serrée sur une longue vis fixée sur la platine.
    C'est un truc qui marche bien pour des angles de rotations faibles. (Plusieurs tours le dévisserraient !)

    Gros plan sur l'électro-aimant pousseur. La course est faible mais suffisante. L'électro-aimant colle à partir de 9 V environ (je l'alimenterai en 12V) et relache vers 3V. D'où des économies d'energie en vue. (tension de maintient de 5V au lieu de 12V par exemple)

    La résistance de la bobine est de 65 ohm.
    Le "haut" est à gauche sur cette photo. (voir la vis de suspension).

    Où ai-je trouvé tous ces petits bidules? heu... dans mon tiroir!
    Détail important: j'ai rajouté un contacteur de fin de course (micro-switch) qui, câblé en série avec le moteur DC, ne permettra l'alimentation de ce dernier que lorsque la roue intermédiaire sera en position complètement débrayée.

    En effet, un démarrage intempestif du moteur DC en mode embrayé n'entraîne pas le moteur PaP mais pourrait endommager les roues dentées en nylon.

    Dès lors, le moteur DC ainsi protégé et l'électro-aimant peuvent être commandés par le même signal. Le soft n'a plus qu'un organe à gérer au lieu de deux, il y a moins de fils à relier, on économise un transistor de commande, et surtout la sécurité est excellente et totalement à l'abri d'un plantage logiciel éventuel.


    29 mai 2008:
    Le soft est modifié (depuis la version 4.0) pour gérer le moteur DC et les déplacements rapides. Cela permet de balayer 1h sidérale (soit 15 degrés d'arc) en 10 secondes de temps. Le déplacement rapide est également utilisé pendant le GO-TO. Le moteur DC est commandé par deux petits relais: un pour le sens de rotation, le second pour la mise en marche et l'arrêt.
    Pour le test sur les étoiles, faudra attendre une météo plus clémente. Dans le sud de la France, le mois de Mai est particulièrement pluvieux cette année.



    L'APE2008 ne permet pas encore: (c'est prévu...)


    UTILISATION

    1- Une fois le télescope mis en station, choisir ( zapette TV) une étoile bien lumineuse, actuellement visible, de référence parmi celles disponibles.

    2-Pointer le télescope manuellement sur l'étoile choisie, et recopier la position de cette étoile (mémorisée en EEPROM) comme objet en cours de pointage, avec la zapette TV.

    3-C'est tout ! L'affichage est dès lors étalonné, et vous pouvez dès lors utiliser les vitesses de déplacement rapide de la monture, l'affichage indiquera toujours la position réelle de celle-ci. La fonction GO-TO fera pivoter la monture vers un autre objet choisi  parmi les 50 objets de la liste.



    ALIMENTATION 5V à DECOUPAGE

    Cette alim. à découpage est basée directement sur une note d'application (*) sur le data-sheet du MC34063.  Son rendement annoncé par MOTOROLA est de 82%.Aucun radiateur n'est nécessaire. Elle peut délivrer un courant max. de 500mA sous 5V.

    (*)comme par exemple celle-ci

    Les moteurs pas à pas de l'APE2007 s'alimentent en 5V. Il peut arriver que vous n'ayez  pas le secteur à votre disposition, mais seulement une batterie 12V de voiture. Dans ce cas cette alim très simple à réaliser vous permettra d'obtenir jusqu'à 500mA en 5V pour une consommation de seulement 200mA en 12V. D'où un gain d'autonomie par rapport à l'utilisation d'un simple régulateur 5V ( comme par exemple un 7805 ) qui consommerait la même intensité en 12V qu'en 5V, soit 500mA, en transformant la différence de puissance en chaleur.

    Je conseille de l'utiliser dans un boîtier métallique relié à la masse de façon à diminuer les rayonnements électromagnétiques émis générés par les dv/dt importants sur le courant primaire.

    NOTE: si elle est protégée contre les courts-circuits en sortie, aucun court-circuit n'est tolérable sur le 12V en entrée, SURTOUT si celui-ci provient d'une batterie de voiture. Évitez de mettre le feu à votre voiture ! Donc attention à l'isolation interne si vous utilisez un boîtier métallique. Il ne faut absolument pas que le circuit imprimé puisse toucher les parois du boîtier. En particulier la connexion située AVANT le fusible. En particulier, prendre garde, de ne pas ouvrir le boîtier lorsque le montage est sous tension. C'est souvent lors des essais, des mises au point ou des dépannages que les choses tournent mal.

    DOCUMENTS TECHNIQUES


    Vive le logiciel Libre!


    Silicium628