Site hosted by Angelfire.com: Build your free website today!

Utilisation des moteurs pas à pas en Astronomie

 

Cette page contient quelques informations pour motoriser un télescope avec des moteurs pas à pas. Loin d'être exhaustive, elle présente uniquement quelques notions de base.

Pour des informations plus détaillées et tout savoir sur les moteurs pas à pas, je conseille l'excellent site de Douglas W. Jones http://www.cs.uiowa.edu/~jones/step/index.html (en anglais). On y trouve des explications, des schémas, des circuits.

 

 La réalisation des circuits décrits ici ne peut en aucun cas engager la responsabilité de l'auteur. Le lecteur le fait à ses risques et périls, etc, etc, etc.

 

 

La motorisation d'un télescope correspond à deux besoins distincts:

 

Pour le suivi, deux cas se présentent, qui dépendent de la configuration mécanique du télescope.

Dans le cas d'une monture équatoriale, un des axes (Ascension Droite, AD) est aligné avec l'axe des pôles terrestres. Pour compenser le mouvement de la Terre, il suffit de faire tourner cet axe à raison de 1 tour par 24 heures. Le deuxième mouvement, sur un axe perpendiculaire au premier (Déclinaison, D), est utilisé pour de petites corrections.

Nous avons alors besoin de : 1 vitesse régulière sur l'axe AD, correspondant à 1tour/24heures, à la démultiplication près de la monture. Une vitesse 0AD, 0,5AD, 2AD et 4AD seront pratiques pour corriger les erreurs de suivi et pour affiner le centrage des objets dans le telescope. Sur l'autre axe, on pourra prendre les mêmes vitesses. Le mouvement sur cet axe sera toujours temporaire. La vitesse AD de base doit être finement réglable et stable. On pourra assez facilement générer ces signaux sans avoir recours à un calculateur.

Dans le cas d'une monture altazimutale, les choses se compliquent fortement, puisque les mouvements à appliquer ne sont absolument pas fixés. Ils dépendent de la position de l'objet à suivre dans le ciel, et de nombreux autres facteurs. Ces mouvements devront être calculés en temps réel par un ordinateur ou un micro contrôleur. Nos besoins se limitent donc ici à fournir une interface de commande entre les moteurs et le calculateur.

En ce qui concerne les possibilités de pointage automatique, la présence d'un calculateur s'avère aussi indispensable, et nous nous ramenons donc au cas précédent.

 

De plus, dans toutes les configurations, le déplacement atomique (minimal) sur un axe ne doit être de l'ordre de la seconde d'arc pour garantir un bon suivi photographique à focale importante.

 

 

 

 

Un moteur pas-à-pas est un moteur à courant continu qui avance d’un seul pas lorsque le sens du courant dans une des bobines change de sens. Un "pas" est une unité de décalage angulaire, en général 1.8 degrés (le moteur aura alors 200 pas.)

Il fonctionne grâce à l'attraction d'une masse polaire (le rotor) par un champ magnétique. Le rotor tourne en sens inverse de la rotation du champ, et moins vite que le champ (selon le nombre de ses pôles).

Il remplace avantageusement un moteur synchrone classique. En effet la vitesse ne pourrait pas varier dans de grandes proportions, et l'électronique de commande est plus complexe et plus difficile à utiliser. Un moteur synchrone peut être alimenté au secteur (220 V - 50 Hz) par l'intermédiaire d'un variateur.

Au contraire un moteur pas à pas permet de faire varier la vitesse dans de grandes proportions, est plus stable et précis, et certains peuvent se contenter d'une tension continue faible, bien plus facile à trouver (batterie) sur le terrain.

 

Types de moteurs pas à pas

Il existe plusieurs types de moteurs pas à pas:

è Moteurs à réluctance variable : le rotor comporte des encoches et se positionne dans la direction de la plus faible réluctance.

è Moteur à aimant permanent : le rotor se positionne dans la direction de plus grand flux; il reste en une position fixe en l'absence d'excitation, se bloque dès qu'une phase reste excitée.

 

D'autre part les moteurs pas à pas se distinguent par la façon de créer une inversion de flux dans les bobines :

 

L’inversion du flux est créée par une inversion du courant dans toute la bobine. Un avantage des moteurs bipolaires est qu’ils n’ont qu’un seul enroulement par phase, de faible résistance, ce qui maximise le couple pour un même courant.

 

 

L’inversion de la direction du flux est créée par l’entremise d’un point milieu situé sur la bobine de l’enroulement. Cela permet de simplifier l’électronique de pilotage, en particulier si on travaille dans un environnement numérique (+5 / +12 Volts). Cet avantage doit être mis en balance par un léger surcoût du moteur et par un couple moins important pour un même courant (la résistance d’enroulement est supérieure ) Cependant sa basse consommation et donc sa faible élévation de température autorise une légère surtension d'alimentation permettant un couple plus élevé que celui spécifié.

 

 

Un moteur hybride est un moteur bipolaire sur lequel on a créé un point milieu. Il peut donc être utilisé en unipolaire ou en bipolaire. Ce sont des moteurs assez rares en électrotechnique car leur couple est faible. Ils sont utilisés pour les lecteurs de disquettes . Ce sont de tels moteurs que nous utilisons pour le prototype car on se les procure facilement (lecteurs 5’’1/4) et qu’ils suffisent à nos besoins (pas de couple trop important, etc).

 

Les moteurs multiphase ont quasiment disparu. (Ici, un multiphase avec 5 phases bipolaires). Ce sont des moteurs qui multiplient le nombre d'enroulements pour augmenter le nombre de pas et leur précision. Les signaux de contrôle sont très compliqués, et ces moteurs n'ont plus d'intérêt depuis le mode de contrôle "micropas" .

 

 

 

Modes de contrôle

Un moteur pas à pas peut être piloté de plusieurs façons, car il a plusieurs enroulements indépendants à alimenter en courant.

 

 è Excitation "Single-Coil" : Chaque bobine successive est alimentée à la suite de l'autre.

Pas

Phase 4

Phase 3

Phase 2

Phase 1

 

 

 

a1

 

 

1

 

 

0

 

 

0

 

 

0

 

 

a2

 

 

0

 

 

1

 

 

0

 

 

0

 

 

a3

 

 

0

 

 

0

 

 

1

 

 

0

 

 

a4

 

 

0

 

 

0

 

 

0

 

 

1

 

è Excitation "Two-Coils" : Chaque paire de bobines adjacentes est alimentée.

Pas

Phase 4

Phase 3

Phase 2

Phase 1

 

 

 

b1

 

 

1

 

 

1

 

 

0

 

 

0

 

 

b2

 

 

0

 

 

1

 

 

1

 

 

0

 

 

b3

 

 

0

 

 

0

 

 

1

 

 

1

 

 

B4

 

 

1

 

 

0

 

 

0

 

 

1

 

En mode "full step - single coil", il n'y a qu'un seul enroulement parcouru par un courant. On avance d’un pas en envoyant le courant d'un enroulement vers l'enroulement qui suit (ou précède). Ce mode produit un mouvement fluide (sans trop de vibrations) et consomme moins de courant. Il n'offre en revanche qu'un couple réduit. Il permet des révolutions rapides et aussi d’autres avantages plus subtils (au niveau de la résonance).

Le mode "two -coils" compense la manque de couple (1,4 fois plus grand qu'en single coil). Cependant le moteur travaille "entre deux" bobines, et l'incertitude sur la position augmente ce qui n'est pas souhaitable pour notre application.

 

 

Le mode half step, ou demi - pas, permet de multiplier par deux le nombre de pas du moteur. En créant un troisième état dans les bobines, l’état neutre (pas de courant), en mélangeant les pas des modes "single coil" et "two coils", on multiplie par deux les combinaisons possibles sur les enroulements.

Un moteur demi - pas ne souffre pas de problèmes de résonance : même s’il tourne très vite, on ne tombe jamais sur un point où le couple s’annule. En revanche, des pas intermédiaires ne sont maintenus que par un seul enroulement, ce qui ne fournit que la moitié du couple; cette alternance pas fort / pas faible peut altérer la précision du positionnement.

Il peut être utile de passer en mode 'half step' pour diminuer la valeur du déplacement du télescope par deux pour un pas. Cela limite également les vibrations, dans une certaine mesure.

 

 

 

Il nécessite 3 éléments :

 

  Solution à base d'un composant dédié

Il existe des composants électroniques dédiés au pilotage des moteurs pas à pas, générant directement les signaux de puissance à partir de 2 bits (une commande 'avancer d'un pas' et une commande 'sens'). Les signaux logiques à générer sont alors réduits à une simple horloge réglable en fréquence

Le composant le plus usuel est le SAA1042 de Motorola qui est d'abord utilisé pour les moteurs pas à pas à deux phases mais peut s'adapter à un moteur 4 phases. Les signaux en sortie de la puce peuvent fournir de la puissance.

Comme ils sont parfois assez difficile à trouver, je propose plus loin une interface à partir de composants plus courants. Je suggère à l'amateur qui vise avant tout la simplicité ou qui ne veut pas se lancer dans le bricolage de se procurer un tel circuit (une dizaine d'Euros). Cependant, dans le cas ou on utilise un calculateur externe, cette solution n'est pas indispensable, puisqu'on aura tout ce qu'il faut pour générer des signaux complexes.

Le SAA1042 nécessite un signal 'clock', et donc un générateur de créneaux de fréquence variable, celle-ci étant directement proportionnelle à la vitesse du moteur.

Je propose ici un oscillateur RC. On peut également en fabriquer un variateur à quartz, plus précis mais un plus complexe à réaliser (sauf si on dispose d'un calcultateur quelconque). Nous utiliserons ici un oscillateur diviseur de fréquence MC 144541B

 

 

L'oscillateur RC règle la fréquence du circuit avec f=1/(2.3* Rtc*Ctc) pour 1kHz<f<100kHz et Rs= 2Rtc avec Rs>10kohms

On prend Ctc=2.2nF, Rs=10kohms et un potentiomètre 10 tours 10kohmd pour Rtc, on peut ainsi ajuster de manière précise la fréquence de l’oscillateur autour de 30kHz.

En fonction de A et B, la fréquence initiale est divisée par 28, 2 10, 2 13 , ou 2 16 ce qui autorise une vitesse rapide pour les opérations de pointage. Et on obtient facilement nos 4Hz=30000/2^13 en sortie pour la vitesse de base.

D’autre part, on peut introduire de petites variations sur Rtc pour aller un peu plus ou moins vite : cela permet de faire des corrections en actionnant des interrupteurs qui mettent en série ou court-circuitent une résistance.

 

   Solution à base de composants courants

 

 Interface logique

Tous les signaux sortant des interfaces logiques fonctionneront en TTL, 0V-5V

 

Montage sans ordinateur

Deux possibilités existent :

Vous pouvez charger un example de code source pour un Motorola 68HC705. Le micro gère un joystick, 2 moteurs, le mode pas/demi-pas, et possède une base de temps quartz précise. Le réglage de la vitesse se fait en ajustant une tension de 0 à 5V sur un de ses ports analogiques. Contactez-moi pour plus de détails sur le code (brochage, etc).

J'utilise actuellement cette solution. C'est tres compact, surtout utilisé avec l'interface de puissance 'minimale' présentée plus loin. Le montage comporte 2 chips, quelques resistances, et tient sur moins de 10x10 cms.

 

 

 

R

1

2

3

4

5

6

 

Q1

0

1

0

1

0

1

0

 

/Q1

1

0

1

0

1

0

1

 

Q2

0

0

1

1

0

0

1

 

/Q2

1

1

0

0

1

1

0

ph1

/Q1/Q2

1

0

0

0

1

0

0

ph2

Q1/Q2

0

1

0

0

0

1

0

ph3

/Q1Q2

0

0

1

0

0

0

1

ph4

Q1Q2

0

0

0

1

0

0

0

Sens horaire (cw=1)

 

 

R

1

2

3

4

5

6

 

Q1

0

1

0

1

0

1

0

 

/Q1

1

0

1

0

1

0

1

 

Q2

0

1

1

0

0

1

1

 

/Q2

1

0

0

1

1

0

0

ph1

/Q1/Q2

1

0

0

0

1

0

0

ph2

Q1/Q2

0

0

0

1

0

0

0

ph3

/Q1Q2

0

0

1

0

0

0

0

ph4

Q1Q2

0

1

0

0

0

1

0

Sens antihoraire (cw=0)

 

 

Montage piloté par ordinateur

La solution la plus simple consiste à connecter l'interface de puissance sur le port parallèle d'un PC. On dispose en effet de 8 bits de sortie en parallèle, ce qui correspond aux 4 phases pour deux moteurs.

Si on ne dispose que d'un port série, il faut désérialiser les 8 bits de données corresponsant à chaque octet envoyé. On utilise pour cela un composant spécialisé, l'UART. Je n'ai pas mis en pratique cette solution, mais cela ne doit pas être très compliqué si on se plonge dans la doc du désérialiseur choisi.

 

Pour commander les moteurs, on envoie donc sur le port (série ou parallèle) une succession d'octets correspondant aux états des 4 phases pour chaque moteur.

En envoyant 1, 2, 4, 8, 1, 2, 4, 8, etc, le premier moteur tournera dans un sens. Il est plus simple de représenter les chiffres en binaire car on voit mieux à quoi correspondent les octets envoyés.

B00000001

B00000010

B00000100

B00001000

 Les 4 bits de poids faibles correspondent au premier moteur, et les 4 bits de poids fort au deuxième. Chaque bit correspond à l'à l'état d'une phase. Les signaux à envoyer dépendent du mode d'excitation choisi (voir la partie sur les moteurs pas à pas).

Un example pour piloter un moteur : le code source et le fichier executable . Désolé, le code n'est pas commenté, c'était juste un petit programme de test.

 

Pour l'utilisation du port parallèle, voici le cablage:

On utilise les broches 2 à 9, utilisables en 'output'.

 Il est facile de trouver celui du port série.

 

 Interface de puissance

 

Principe de fonctionnement de l'ampli pour une phase:

En entrée, un signal logique type TTL, 2 états, 0 V ou 5 V, avec un courant maximum réduit (quelques mA ou quelques dizaines de mA dans le meilleur des cas).

En sortie, un signal 2 états, 0 A ou In A, In étant le courant nominal de fonctionnement d’une phase du moteur pas à pas.

Pour mieux fixer les idées, nous prendrons comme moteur de référence un moteur pas à pas de lecteur de disquette qui fonctionne typiquement sous 12V et avec une résistance de bobinage de 30 Ohms environ. Le courant de fonctionnement d'une phase vaut donc I=U/R=400mA.

Compte tenu de la résistance assez faible des bobinages du moteur pas à pas (quelques Ohms a quelques dizaines d’Ohms), le courant à fournir est beaucoup plus important que ce que peut débiter notre circuit de pilotage logique.

Cela reste très raisonnable, et nous n’aurons ici pas besoin d’utiliser de gros transistors de puissance. D’ailleurs, le principe resterait identique pour un moteur nécessitant 10A. Seul la dimension des composants changerait : de bons gros transistors, avec dissipateurs thermiques et autres.

 

La figure ci-dessous illustre le montage à réaliser pour chaque phase.

 

On alimente le point commun des bobinages en 12V. Le transistor est utilisé en "interrupteur".

Le choix de R dépend du gain du transistor. Ce gain est le rapport Ib / Ir, entre le courant passant dans la bobine et celui passant dans R. Comme Ir ~ Vlogique / R ~ 5 / R, on peut en déduire R facilement. Pour des montages simples, avec des transistors courants dont le gain est grand, et compte tenu que le courant Ir est débité par notre interface logique, donc assez faible, on peut prendre Ir de l'ordre de 3000 Ohms à 10000 Ohms.

La diode est indispensable à la survie du transistor (selon le type de moteur pas à pas). En effet, la bobine possède une inductance, et lorsqu'on coupe le courant (en rendant le transistor non passant), la tension aux bornes de la bobine augmente (force contre électro-motrice). Cela risque de détruire le transistor. Avec la diode, dite "de roue libre", les surtensions sont évitées. La diode n'est pas indispensable pour les petits moteurs, mais outre son effet protecteur, elle assure un mouvement plus coulé entre 2 pas, au lieu d'un tac-tac-tac produisant des vibrations. Cette réduction des vibrations est utile pour l'astronomie. De plus, avec cette diode, on arrivera à faire tourner le moteur plus vite, ce qui est très intéressant pour des applications de pointage automatique d'objets.

Elle doit pouvoir supporter un courant de quelques centaines de mA.

 

Réalisation

Pour motoriser le télescope, 2 moteurs sont nécessaires, donc 8 signaux de pilotage. Le schéma ci-dessus est donc à reproduire en 8 exemplaires.

Pour le choix des composants, l'ULN2803A convient parfaitement pour notre application. Il s'agit de 8 transistors 'Darlington' montés sur un petit boîtier DIP 18 broches. Cela est beaucoup plus compact que de monter 8 transistors en parallèle. En outre, le composant est assez commun, et ne coûte que 1 Euro environ. Il ne peut cependant être utilisé que pour des petits moteurs, car le courant maximal autorisé est de 500mA, ce qui nous convient très bien ici.

De plus, les diodes de roue libre sont intégrées au boitier. Il n'y a vraiment rien a rajouter.

On peut éventuellement mettre des résistances de quelques kOhms en série sur chaque entrée (entre chaque sortie de l'interface logique et chaque entrée de l'ULN), cela permet de protéger l'interface de commande logique. Dans tous les cas, il est indispensable de protéger le tout par un fusible. Sinon, en cas de court-circuit, l' interface logique (microprocesseur ou port imprimante de votre PC) risque d'être détruite. J'ai pris comme protection un petit fusible rapide en verre de 800mA. (soit environ 30% de plus que ce que consomme mon circuit).

 Le plus dur, c'est de trouver l'ordre des phases … Le plus simple, c'est avec un ohmmètre: le point commun c'est celui avec lequel on mesure une résistance avec tous les autres. C'est la valeur de la résistance d'un demi enroulement. La valeur de la résistance d'un enroulement est mesurée entre les phases en opposition.

Par example, si les phases on pour ordre A B C D et le commun E, on mesure R/2 entre E et tous les autres, on mesure R entre A et C, et entre B et D.

On peut se repérer aussi avec les couleurs (voir dans la première partie).

On obtient les connexions suivantes:

On peut connecter directement les entrées au port imprimante (attention en cas de court circuit !) via une résistance (optionnelle). Je n'ai jamais eu de problème, mais faites attention si vous n'êtes pas sûr de ce que vous faites!

Le point commun des moteurs est alimenté en 12V. Lorsque chaque entrée 1 à 4 passe successivement de 0V à 5V, la phase correspondante est connectée au zéro volt, le courant s'établit dans la bobine, le moteur avance d'un pas … bref, le moteur tourne !!! C'est beau la technologie.

 

 Interface mécanique

 

Maintenant, il ne reste qu'à faire tourner le téléscope …

Il faut bricoler un raccord entre le moteur et les mouvements lents du télescope. En ce qui me concerne, je suis passé par l'intermédiaire d'un petit réducteur monté avec des engrenages d'horloge. Le plus dur est d'aligner les axes, pour que le système tourne bien 'rond'. Souvent, il faut laisser un peu de jeu sinon tout coince, et le moteur refuse de tourner.

Bref, ce n'est pas une partie de plaisir.

Juste un ou deux petits trucs à proscrire:

Le mieux c'est de connaître quelqu'un qui peut vous usiner les asaptateurs de diamètre : merci Christian!

 

Conclusion

 

Voila, avec quelques petits efforts, beaucoup d'essais, et peu d'argent, vous avez motorisé votre téléscope. Maintenant, à vous la photo en longues poses, et le pointage automatique (ce dernier point nécessitant peut être des encodeurs …).

Tous les commentaires sur vos expériences personnelles sont les bienvenus!