Réaliser une interface pour 2 encodeurs optiques à 5E !

(difficulté: ** facile)



Un ancien projet destiné à utiliser une souris à boule relié à un PC sous MS-DOS. La souris, modifiée permet la connexion aux deux encodeurs optiques d'un télescope qui éplace le pointeur à l'écran, ou permet, avec notre programme V14, de faire défiler le ciel en affichant les coordonnées.

Pour pointer précisément un télescope, on peut compter les pas d'un moteur pas à pas mais la meilleure méthode est probablement de disposer un encodeur optique haute résolution directement monté sur chacun des axes à pointer: équateur et déclinaison sur une monture équatoriale.

Rappelons ici qu'un encodeur optique est un boîtier (souvent étanche) muni d'un axe sur lequel est monté un disque de verre muni de très fines graduations radiales. En tournant, les graduations passent devant des détecteurs optiques qui envoient des impulsions: 1 phase, ou 2 phases en quadrature pour déterminer le sens de rotation. Les meilleurs encodeurs optique dépassent 5000 traits/tour. En gérant les 2 phases sur les fronts montant et descendant, on atteint une résolution de 20000 impulsions/tour largement suffisante pour un télescope.

Ces encodeurs optique coûtent chers, de l'ordre de 800 à 1000 €, pièce. 2 solutions: On peut en fabriquer voir: Un encodeur optique haute résolution (mais la réalisation est délicate) ou en récupérer.

Souvent, on connecte ces 2 encodeurs à un PC. On trouve dans le commerce des interfaces pour cette connexion.

On peut aussi réaliser très facilement, à partir d'une ancienne souris de PC à boule, modifiée, une interface 2 axes haute résolution : le coût est très faible, le matériel standard et la réalisation très simple.

Rappelons que dans une ancienne souris à boule, une boule, en roulant, entraîne 2 axes montés à 90° sur lequel des petites roues perforées tournent devant un système optique, un peu comme l'encodeur.

On ouvre la souris, on ôte la boule et les roues perforées, en général on supprime les systèmes optiques et on les remplace par 4 optocoupleurs (4N25...) reliées aux sorties des encodeurs. Si on veut encore économiser (et qu'on n'utilise pas le dernier modèle de portable à 3 000 €, :-), on peut, comme sur les photos, utiliser uniquement 4 résistances pour la connexion.

Sur le prototype, nous avons rajouté 2 prises DIN à la souris pour connecter les encodeurs et un câble pour leur alimentation 12 V.

Souris modifiée ouverte et les 2 encodeurs:

Souris modifiée ouverte en gros plan: on voit les 4 résistances au bout des fils reliés aux fiches DIN (à gauche) et la souris:

La souris montée reliée aux encodeurs:

Une souris de PC gère les encodeurs avec, en principe la résolution de l'écran : par exemple 640 x 480 : de 0 à 639 et de 0 à 479 ce qui n'est pas suffisant.

En pratique, par des interruptions DOS, on peut pousser la résolution de souris jusqu'à 30000 x 30000 : de 0 à 30000 et de 0 à 30000. Ce qui est suffisant, même avec 20000 impulsions/tour pour la déclinaison ou l'azimut : 0 à +- 120°

Voici un morceau de programme en C (de base) pour initialiser la souris :


#define MAXX 30000 /* curseur maxi*/
#define MAXY 30000
#define XDEF 15000
#define YDEF 0

void Souris(void)
{
inregs.x.ax=0; /*initialisation souris*/
int86(0x33,&inregs,&outregs);
if(outregs.h.al!=255)
{
printf("pas de souris détectée\n");
getch();
}

inregs.x.ax=7;
inregs.x.cx=0;
inregs.x.dx=MAXX;
int86(0x33,&inregs,&outregs);
inregs.x.ax=8;
inregs.x.cx=0;
inregs.x.dx=MAXY;
int86(0x33,&inregs,&outregs);

inregs.x.ax=4;
inregs.x.cx=XDEF; /* x depart */
inregs.x.dx=YDEF+(MAXY/2); /* y depart */
int86(0x33,&inregs,&outregs); /*interruption souris*/
}

Pour le site d'un télescope azimutal, on peut faire plusieurs fois le tour : il faut prévoir un offset que l'on rajoute à la position du curseur et que l'on modifie avant d'atteindre les butées du curseur.

Par exemple au départ, on choisit un offset de -15000, on positionne le curseur à 15000. Si on se rapproche des limites : par exemple on évolue autour de -10000, curseur à 5000 : on remet le curseur à 15000 et l'offset à -25000. De même si on évolue autour de +10000, curseur à 25000 : on remet le curseur à 15000 et l'offset à -5000. (On en profite pour retrancher ou ajouter 1 tour complet si nécessaire). Ainsi on peut faire faire une infinité de tours complets à la monture.

Une fois les encodeurs installés et opérationnels, plus besoin de compter les pas moteurs, de compenser les glissements... on peut monter n'importe quel type de moteur : moteur pas à pas, moteur à courant continu ou même pas de moteur du tout, on peut donner un coup de pied dans la monture (ce n'est pas recommandé) : les encodeurs "suivent" et affichent toujours la "vraie" position...

L'encodeur équateur monté sur le T600 :

La pièce en Omega en aluminium est mobile : elle est fixée sur le berceau équatorial de la monture. Elle entraîne l'axe de l'encodeur fixé sur une équerre en aluminium (fixe) vissée sur le pied Sud du télescope, du coté opposé au boîtier électrique de raccordement. L'angle de rotation est d'environ 200°.

Sur la déclinaison, c'est beaucoup plus simple : l'encodeur est monté directement en bout d'axe (percé auparavant) et fixé sur une équerre en alu.


SCIENCES POUR TOUS a écrit V14 : un programme (en C sous MSDOS) qui permet d'afficher les coordonnées des encodeurs via l'interface et la prise COM1 utilisée en souris externe. Ce programme V14.EXE affiche (avec 3 niveaux de zoom) la portion de ciel correspondante avec 11000 étoiles, les planètes, les objets Messier... dont on peut, avec n'importe quel éditeur de texte modifier le nom ou la position.

NOTA1 : du fait de l'utilisation de la souris, V14 ne peut pas fonctionner sous Windows

NOTA2 : V14 peut fonctionner sur des machines très peu puissantes: 486...

NOTA3 : sous MS-DOS, il faut supprimer les accélérations de souris (s'il y en a)

V14 contient un fichier "config" que l'on peut facilement adapter à la résolution des encodeurs utilisés avec un éditeur de texte standard.

V14 affiche (au choix) : les 11000 étoiles les plus brillantes (selon le niveau de zoom), leurs noms, les constellations, les planètes, les objets Messier.. La position de la monture, l'heure...


Des commentaire ? Écrivez-nous : 

email.gif


http://spt06.perso.libertysurf.fr

Compteur Global gratuit sans inscription


29/04/2019