Sciences pour tous vous propose des réalisations en électronique, optique, astronomie...

Gestion de moteur pas à pas à micropas pour suivi équatorial avec une EPROM


English version

(difficulté : *** moyen)

 

Pour le suivi équatorial d'un télescope, on utilise généralement un moteur pas à pas qui permet une grande précision de vitesse. Les systèmes à moteurs continu + génératrice tachymétrique sont compliqués et coûteux.

Malheureusement, avec un moteur pas à pas, pour passer d'un pas à l'autre, si on envoie des impulsions, le moteur à tendance à vibrer. Ces vibrations peuvent être amplifiées par les résonances mécaniques de la monture et gêner l'observation en CCD et même en visuel.

Un moteur pas à pas :

On peut, bien sûr, monter le moteur avec des silent-blocs sur l'axe ou sur sa fixation.

Mais il est recommandé de s'attaquer à la source du problème : les impulsions.

Au lieu d'envoyer des impulsions dans le moteur, il faudrait injecter des courants sinus/cosinus. Dans ces conditions, plus de vibrations. En fait, la construction du moteur limite la précision de positionnement entre deux pas et les vibrations subsistent, surtout lorsque le moteur est chargé mais elles sont fortement atténuées.

Comment envoyer des courants sinus/cosinus ?

La stabilité des oscillateurs classiques n'est pas suffisante pour un suivi correct.

La solution souvent employée est l'emploi d'un microcontrôleur (PIC ou autre...) qui attaque 2 convertisseurs D/A (Digital/Analogique 6 ou 8 bits) et de 2 amplis linéaires mais c'est un peu compliqué et la programmation du PIC n'est pas si évidente...

Ici, nous utilisons le PWM : Pulse Width Modulation : modulation de largeur d'impulsion. Les microcontrôleurs ou les circuits logiques ne savent fournir que des niveaux 0 ou 1. Pour fabriquer des niveaux analogiques continus comme le sinus/cosinus, on envoie donc un signal rectangulaire à fréquence élevée dont on fait varier lentement la largeur de modulation et on filtre avec un simple réseau RC. Si on envoie par exemple 001100110011 : en 5 V, après filtrage on obtient 2.5V. 00000000 donne 0V, 11111111 donne 5 V, 00010001 donne 1.25 V et ainsi de suite. Si on envoie 0000 0000 0001 0001 0011 0111 0111 11111 11111 01111 0111 0011 0001 0001 0000 0000, après filtrage, on obtient une vague sinusoïde. Pour améliorer encore la sinusoïde, il faut envoyer des paquets avec plus de bits et les faire varier doucement. En pratique, il faut prévoir une fréquence au moins 10 000 fois supérieure à la fréquence à générer. Ici le code PWM est généré par une EPROM (munie du code adéquat) qui fournit donc un signal 0V +5V que l'on peut atténuer et filtrer avec 2 résistances et un condensateurs relié ensuite à un petit circuit intégré ampli audio. 

Une autre manière d'expliquer le PWM : si on dispose d'une horloge à par exemple 16384Hz, si on veut une sortie sinus  à par exemple 2 Hz. 16384/2=8192. On divise ces 8192 bits en 128 paquets de 64 bits. Dans chaque paquet, on envoie n 0 suivis de 64-n 1. le rapport n/64 correspond au sinus du n° de paquet : le 1er paquet est le numéro 0 : on envoie 64 0 (sinus(0)=0). Le 12e paquet (par exemple) correspond à un angle de 12/128x360=33.75°. sin(33.75°)=0.5555. 0.555x64=35.55 arrondi à 36 : dans le 12e paquet, on envoie 36 0 suivis de 64-36=28 1et ainsi de suite. Nous avons développé un programme qui, en fonction des fréquences, calcule le PWM.

Au passage notons que, en gros, il y a 2 modèles de moteur pas à pas : les 4 bobines // (5 fils), et les 2 bobines série (4 fils). Beaucoup de moteur ont 6 fils et permettent les 2 configurations. Notons que si on veut diminuer le niveau de vibration, le mode 2 bobines série est quasi obligatoire (ce mode est plus performant mais plus compliqué à mettre en œuvre)

Plus de détail sur le fonctionnement des moteurs pas à pas


Réalisation :

Nous proposons ici une solution différente du microcontrôleur et sans doute plus facile à mettre en œuvre pour un astronome amateur : l'emploi d'une EPROM qui contient la tables de impulsions à envoyer aux moteurs. (Le fichier Eprom est généré par un petit programme PC que nous avons mis au point).

Un oscillateur à quartz de 1 à 40 MHz de valeur quelconque (mais stable) est relié à l'entrée Clock d'un premier compteur 12 étages 4040, sa dernière sortie est reliée à l'entrée Clock d'un 2e compteur identique.

On dispose ainsi de toute une gamme de fréquences dans un rapport 2 : par exemple: 1 MHz, 500 kHz, 250 kHz,....

On choisit une fréquence de quelques kHz (plus de 10 kHz et moins de 100 kHz) ex : 15625 Hz comme fréquence de base que l'on relie à l'entrée A0 de l'EPROM puis en suivant : 7812 Hz à l'entrée A1, 3906 Hz à l'entrée A2.... et ainsi de suite jusqu'à atteindre une fréquence inférieure à la fréquence moteur en suivi.

Par exemple, si la fréquence moteur en suivi doit être de 6.5989 Hz, on connecte 3.81 Hz sur A12.

On peut donc utiliser presque n'importe quelle EPROM : 4 M, 1 M, 512 k, 256 k...

On utilise seulement 3 sorties de l'EPROM : (pour commander 1 moteur)

Q0 fournit les PWM sinus : 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1...

Q1 fournit les PWM cosinus

Q4 fournit le signal de reset qui remet les compteurs à zéro. Cette astuce permet de régler finement la vitesse de suivi avec une grande précision:

Explication : si par exemple, on a besoin d'une fréquence précise de 6.5989 Hz, aucune sortie de l'EPROM ne fournit exactement cette fréquence qui correspond à une période de 151.54 ms. En reliant les sorties compteur jusqu'à 3.81 Hz < 6.5989 Hz et en reliant la sortie Q4 aux reset des compteurs, on laisse les compteurs tourner naturellement mais au lieu d'attendre le cycle complet, on programme l'EPROM pour qu'au bout de exactement 151.54 ms, la sortie Q4 passe à 1. Ce qui fait immédiatement revenir les compteurs à 0 (et retomber la sortie Q4 à 0) : le cycle recommence. En déplaçant, dans l'EPROM, l'octet F0 qui met la sortie Q4 à 1, on peut régler la vitesse avec une grande précision : 6.59/15625=0.04 % dans cet exemple.

NOTA : pour des raisons plus subtiles, le système "d'auto reset" permet aussi un réglage plus fin des vitesses rapides.

On voit, en bas à droite de la recopie d'écran du listing du code, l'octet F0, le seul, qui assure la remise à zéro.

Les 2 sorties sinus et cosinus PWM :

Il faut ensuite filtrer les sorties Q0 et Q1 avec un réseau RC, les faire suivre avec un petit ampli suiveur : nous utilisons 4 amplis audio LM386-N4 montés en pont et qui sont directement reliés aux bobines des moteurs. (filtrer la sortie avant les amplis limitent les parasites et facilite la mise au point : on peut facilement visualiser sur un oscilloscope le signal analogique avant amplification). Sur l'oscilloscope sur la photo de la carte ci-dessus, on voit les sorties sinus cosinus filtrées en sortie des amplis.

Il ne reste plus qu'à construire les motifs de l'EPROM. Nous pensons que c'est beaucoup plus facile que d'écrire le code du microcontrôleur correspondant.

Nous avons écrit un code en C pour générer le code de l'EPROM.

Exemple de calcul :

Fréquence haute : 15625 Hz, fréquence du moteur : 6.5989 Hz.

15625/6.5989=2368 cycles x 2 soit 4736 cycles: l'EPROM doit fournir des motifs PWM de 64 bits dont le total doit faire 4736. On termine le dernier mot : 4736 par F0 pour le reset.

La fin du listing du code : le dernier octet est F0 pour le reset :

Le système fonctionne correctement depuis des mois, le niveau de vibration est très bas.


Astuces :

Vu la taille des EPROM disponibles actuellement (au moins 1 M) on peut ajouter beaucoup d'astuces :

Astuce 1 : sur les 3 adresses hautes immédiatement suivantes, on ajoute 3 miniswitches soit 8 combinaisons. On enregistre 4734 cycles suivis de 4735...4741. En réglant les switches, on peut ajuster très finement la vitesse de poursuite du télescope sans reprogrammer l'EPROM.

Astuce 2 : de la même façon, on peut remplacer les switches par les boutons de la raquette : en appuyant sur un bouton, on passe en marche rapide (on n'a plus besoin de limiter les vibrations) rapide avant, rapide arrière : gestion 2 axes dont 1 à micropas

Astuce 3 : en reliant une ou deux sorties non utilisées de l'EPROM à des adresses hautes libres, on peut rajouter une accélération pour aller plus vite avec la moteur en vitesse rapide.

Contrairement au microcontrôleur ou au PC, on peut commencer par le suivi et rajouter les fonctions suivantes tranquillement sans risquer des bugs ou des limitations de vitesse machine...


Réalisation d'une raquette de commande complète :

Ainsi, en récupérant les 4 adresses les plus hautes de l'EPROM :

A15, A16, A17, A18 et en les reliant aux commutateurs de la raquette (le commun des commutateurs est relié au +5 V et les 5 contacts à la masse via 5 résistances de 10 kohm.jpg), on peut réaliser une gestion 2 axes dont 1 à micropas complète pour moteur pas à pas pour monture équatoriale avec suivi en micropas, avant et arrière rapide sur les 2 axes.

That's All, folks !

Des commentaire ? Écrivez-nous : 

email.gif


http://spt06.perso.libertysurf.fr



29/04/2019