dimanche 28 mars 2021

Monture allemande : Réalisation du contrepoids

Après avoir calculé le contrepoids de la petite monture allemande, il faut le couler. Autrefois, l’astronome bricoleur récupérait des tuyaux en plomb, les fondait dans une bonne casserole sur son réchaud de camping. Ensemble instable, bouillant et donc extrêmement dangereux : mauvaise surprise de voir le manche se tordre sous le poids de la casserole et son contenu. Aujourd’hui, je vois deux solutions : la résine avec des billes d’acier, ou de la visserie, ou des morceaux de zinc noyés dedans, ou alors le mortier avec éventuellement les mêmes ajouts.

J’opte pour le mortier. Sa densité est 2,7. Mon moule est un contenant de masque capillaire de 12 oz soit 354 ml, ce qui me fera un contrepoids de 956 g. Cela devrait aller sans ajout. Pour la vis de serrage, j’inclus dans le moule un manchon fileté 6 pans sur lequel est ajouté un collier de serrage de plomberie afin qu’il ne risque pas de tourner une fois le mortier sec. L’axe du contrepoids est maintenu verticalement. Ce dernier est emballé dans du film alimentaire afin que le mortier ne colle pas.   

Le moule du contrepoids dans lequel est positionné un manchon fileté pour la vis de serrage. L'axe du contrepoids est maintenu verticalement. 

💫 Instrumentation astronomique 💫 Monture équatoriale 💫 Monture allemande 💫 Télescope Newton 💫

 

dimanche 21 mars 2021

Motorisation astronomique : Driver DRV8825

La motorisation d’un instrument astronomique est grandement facilitée par l’utilisation d’un microcontrôleur comme Arduino. C’est une carte électronique que l’on peut programmer et qui possède des broches. Le langage de programmation Arduino permet essentiellement de dire à la carte d'envoyer 1 ou 0 à chacune des broches, quand et pendant combien de temps. Attribuer 1 à une broche correspond physiquement à y faire passer du courant alors que lui attribuer 0 correspond à ne rien y faire passer. En d'autres termes, la carte envoie un bip ou non. C’est l’idéal pour piloter un moteur pas à pas puisqu’il fonctionne selon des impulsions qu’il reçoit dans ses bobines.

Programmer les bips à envoyer aux bobines du moteur est possible mais il y a encore plus simple : le driver. C’est ce dernier qui envoie les bips aux bobines du moteur, à la bonne polarité, à la bonne fréquence, et au bon moment. Vous n’avez plus qu’à envoyer des bips à une broche du driver pour lui indiquer la vitesse de rotation et à une autre broche pour le sens de rotation. Mais, c’est encore plus simple que cela : vous pouvez inclure une bibliothèque dans votre programme Arduino. Cette bibliothèque comporte des éléments de langage que n’a pas spontanément un Arduino. Vous n’avez plus qu’à écrire dans le programme « tourne à telle vitesse » et « tourne dans tel sens » pour qu’Arduino émette correctement les bips pour le driver et que ce dernier fasse tourner le moteur comme bon vous semble.

Un driver DRV8825 sur une planche de prototypage avec le câblage indiqué. Le driver est alimenté en courant par l’Arduino. Le moteur à besoin d’une alimentation séparée. Elle passe par le driver. Le moteur est branché sur le driver. On voit aussi les fils provenant de l’Arduino et permettant de contrôler la vitesse de rotation, le sens de rotation et le mode micro-pas.

 

💫 Arduino 💫 Astrophotographie 💫 DRV8825 💫 Instrumentation astronomique 💫 Monture équatoriale motorisée 💫 Moteur pas à pas 💫 Planchette équatoriale 💫 Star tracker 💫 Suivi stellaire 💫

 

dimanche 14 mars 2021

Newton T114 : Trépied

On progresse. Voici un trépied tout simple réalisé avec des pieds de meubles pour le petit Newton T114 et de sa monture équatoriale motorisée. Ce trépied mériterait d'être renforcé pour une version plus rigide mais l'idée est d'une part d'avancer vers les premiers vrais essais de suivi stellaire et d'autre part d'obtenir une solution ultra transportable. Pour ce dernier point, il suffit de dévisser les pieds ! 

 


💫 Astrophotographie 💫 Instrumentation astronomique 💫 Monture équatoriale motorisée 💫 Suivi stellaire 💫 Télescope Newton 💫

 

mercredi 10 mars 2021

Oculaire réticulé

Dans le billet du 28 février 2021, je rapportais le premier essai de la motorisation du T114 sur la petite monture allemande. Cet essai était largement prématuré pour plein de raisons, dont l'absence de bigourdinage. Ce terme est du jargon se référant à la méthode de mise en station décrite par Bigourdan. La mise en station d'un télescope consiste à aligner l'axe d'ascension droite avec l'axe du monde afin d'optimiser le suivi stellaire. Le document de référence de la méthode de Bigourdan est un article du CalaNews N°3 de 1987 (revue devenue depuis NGC 69). Afin de bigourdiner, il faut un oculaire réticulé et un bon oculaire réticulé est éclairé... c'est un peu délicat à réaliser. Je bricole donc un premier oculaire réticulé sans éclairage. C'est un oculaire de récupération, peut être de microscope ? Il est au coulant de 30 mm, totalement inhabituel pour l'astronomie. Mais en serrant les vis du porte-oculaire il est très bien maintenu. Le réticule est une brin unique d'un tout petit fil électrique souple collé sur une rondelle de plomberie. Trop grossier pour le suivi stellaire, c'est largement suffisant pour le bigourdinage. Le réticule est inséré dans le plan de netteté de l'oculaire après avoir dévissé puis revissé le diaphragme.

La réalisation d'un oculaire réticulé éclairé viendra plus tard.

  

💫 Bigourdan 💫 Instrumentation astronomique 💫 Monture équatoriale motorisée 💫 Oculaire réticulé 💫 Suivi stellaire 💫 Télescope Newton 💫

dimanche 7 mars 2021

Monture allemande : Code Arduino à deux vitesses

Le plan de câblage présenté dans le billet précédent permet non seulement le suivi stellaire mais aussi une vitesse rapide permettant le pointage. Lors du suivi stellaire, le joystick permet la correction des erreurs de suivi en ascension droite (axe alpha) et en déclinaison (axe delta). La pression du joystick bascule dans le mode pointage et allume la LED témoin de ce mode rapide. Le pointage peut alors être effectué avec le joystick. La pression du joystick permet de revenir en mode suivi stellaire.

Ce plan de câblage est prévu pour le code Arduino ci-dessous. Pour fonctionner, le code nécessite les bibliothèques de fonctions accelstepper et bounce2 qui doivent donc être installées sur le logiciel Arduino comme précédemment expliqué.

La vitesse de suivi stellaire est fixée ici à 46.924 µpas/s selon la démultiplication du mécanisme d'entraînement et d'après les calculs précédemment expliqués. Les corrections font varier cette vitesse de 9.5 µpas/s en plus ou en moins selon l'action sur le joystick. En mode pointage, la vitesse est alors de 950 pas/s (et plus µpas/s car le code Arduino désactive le mode micro-pas lors du pointage).

Il n'est pas impossible qu'en poursuivant les essais de ce système, je trouve que l'ajout d'une vitesse de centrage soit bien utile ? Nous verrons bien.

 

/*
 * Motorisation d'une monture équatoriale Contrôlée par joystick
 * Vitesse de suivi stellaire et de pointage, bascule par le bouton poussoir du joystick
 * Voyant LED pour le mode pointage
 * threshold à 100 pour la détection de l'actionnement du joystick (sur 1024)
 * délai à 100 ms contre l'incertitude du bouton poussoir
 * Motorisation via driver de moteur pas à pas DRV8825
 * Utilise les bibliothèques Arduino AccelStepper et Bounce2
 * Voir le blog Astronomie par les trois bouts
 * astronomiebbb.blogspot.com/
 */ 

//Inclusion des bibliothèques
#include <AccelStepper.h> // Gestions moteur pas à pas
#include <Bounce2.h> // Gestion bouton poussoir

//Déclararion des broches d'Arduino
const int pinM012 = 6; //Contrôle du mode micropas
//(les broches M0, M1 et M2 des deux DRV8825 sont connectées entre elles)
const int pinLed = 7; // Broche de la LED
const int pinSwJoy = 8; //Broche du bouton du joystick

//Broches pour l'axeA
const int pinJA = A0; //Lecture AxeA du joystick
const int pinDirA = 2; //Contrôle la direction du moteur AxeA
const int pinStepA = 3; //Contrôle la vitesse du moteur AxeA

//Broches pour l'axeD
const int pinJD = A1; //Lecture AxeD du joystick
const int pinDirD = 4; //Contrôle la direction du moteur AxeD 
const int pinStepD = 5; //Contrôle la vitesse du moteur AxeD

//Déclaration des variables
long speedA, valA, mapA; //variables de gestion des mouvements moteur AxeA
long speedD, valD, mapD; //variables de gestion des mouvements moteur AxeD
boolean micropas; //Contrôle du mode microstepping

boolean actionA, actionD; //Gestion de mise en oeuvre des corrections

unsigned long debounceDelay = 100; //Délai contre l'incertitude du bouton poussoir
boolean pointage; //true si mode pointage et false pour suivi stellaire

//Paramètres d'AccelStepper
const int maxSpeed = 1000; //Définit la Vmax du moteur (indispensable)

const int threshold = 100; //Contre la faible fiabilité des potentiomètres
long thresholdUp, thresholdDown; //variables ancillaires à la précédente

//Déclaration des moteurs dans la bibliothèque AccelStepper
AccelStepper AxeA(AccelStepper::DRIVER, pinStepA, pinDirA);
AccelStepper AxeD(AccelStepper::DRIVER, pinStepD, pinDirD);

//Déclaration du bouton poussoir du joystick
Bounce swJoy = Bounce();


void setup() {
  pointage = false; //Démarre en mode suivi stellaire
  
  //Définition des modalités des broches
  pinMode(pinM012, OUTPUT);
  pinMode(pinLed, OUTPUT);
  pinMode(pinSwJoy, INPUT_PULLUP);
  
  digitalWrite(pinLed, pointage); //LED- puisque mode suivi stellaire

  //Active le microstepping par défaut
  micropas = true;
  digitalWrite(pinM012, micropas);

  //Calcule la plage du joystick devant être considérée comme "Centré"
  thresholdDown = (1024 / 2) - threshold;
  thresholdUp = (1024 / 2) + threshold;

  //Configure les paramètres des moteurs
  AxeA.setMaxSpeed(maxSpeed);
  AxeD.setMaxSpeed(maxSpeed);

  //Configure le bouton poussoir du joystick
  swJoy.attach(pinSwJoy); // Bouton relié à la broche pinSwJoy
  swJoy.interval(debounceDelay); //Délai d'incertitude
}

void loop() {
  checkSwJoy(); // Lance la void ainsi nommée
  digitalWrite(pinLed,pointage); //Allume ou éteind la LED selon le mode
    
  //Par défaut, pas d'action sur le joystick 
  actionA = false;
  actionD = false;
   
  //Lecture des potentiomètres du joystick
  valA = analogRead(pinJA);
  valD = analogRead(pinJD);

  //Vérifie si le joystick est actionné en AxeA
  //Si "oui", code la valeur du potentiomètre en pas/s
  if (valA>thresholdUp || valA<thresholdDown)
  {
    mapA = map(valA, 0, 1023, -950, 950);
    actionA = true;
  }
    
  //Vérifie si le joystick est actionné en AxeD
  //Si "oui", code la valeur du potentiomètre en pas/s
  if (valD>thresholdUp || valD<thresholdDown)
  {
    mapD = map(valD, 0, 1023, -950, 950);
    actionD = true;
  }
   
 //Fait bouger les moteurs
  if (actionA) // Si le joystick est actionné en A
    {  
    if (pointage == false) // Si mode suivi stellaire
      {
        mapA = (mapA/100)+46.924; // Vitesse de suivi stellaire +/- correction
        micropas = true; // Active le microspepping
      }
      else // Si mode pointage
        {
          micropas = false; // Désactive le microstepping
          // Pas besoin de calculer la vitesse moteur, on utilise mapA
        }
    digitalWrite(pinM012, micropas);
    AxeA.setSpeed(mapA);
    AxeA.runSpeed();
    }
    else // Si pas d'action sur le joystick en A
      {
        micropas = true;
        digitalWrite(pinM012, micropas);
        AxeA.setSpeed(46.924); // Vitesse de suivi stellaire de la monture
        AxeA.runSpeed();
      }
  if (actionD) // Si le joystick est actionné en D
    {
    if (pointage == false) // Si mode suivi stellaire
      {
        mapD = (mapD/100); // Vitesse proportionnelle à l'axe A 
        micropas = true; // Active le microstepping
      }
      else // Si mode pointage
        {
          micropas = false; // Désactive le microstepping
          // Pas besoin de calculer la vitesse du moteur, on utilise mapD
        }
    digitalWrite(pinM012, micropas);    
    AxeD.setSpeed(mapD);
    AxeD.runSpeed();
    }
    else // Si pas d'action sur le joystick en D
      {
        AxeD.stop(); // Moteur à l'arrêt
      }
}

void checkSwJoy() // Bouton poussoir joystick actionné ?
{
  swJoy.update(); // Mise à jour du bouton
  if (swJoy.fell()) // Actionné ?
  {
    pointage = !pointage; // change le mode 
  }
}  

vendredi 5 mars 2021

Monture allemande : Plan de câblage, 2e version

J'avais promis une évolution de la motorisation de la petite monture allemande afin de pouvoir sélectionner soit une vitesse de suivi stellaire soit une vitesse de pointage. La correction du suivi stellaire se fait par joystick. C'est le sélecteur du joystick qui permet de changer de mode entre le suivi stellaire et pointage. Une LED est aussi ajoutée ; elle sert de témoin de vitesse de pointage. Le tout premier essai de suivi stellaire a été effectué avec la motorisation présentée ici. Je donnerai le code Arduino dans le prochain billet. Je reviendrai dans un futur billet sur le câblage du DRV8825, le driver de moteur pas-à-pas utilisé dans ce montage (les deux circuits violet). 

 


💫 Arduino 💫 Astrophotographie 💫 DRV8825 💫 Instrumentation astronomique 💫 Monture équatoriale motorisée 💫 Moteur pas à pas 💫 Suivi stellaire 💫

 

mercredi 3 mars 2021

Monture allemande : Contrepoids

Une monture allemande est un cas d’aberration mécanique. Tout est excentré et rien n'est équilibré. Afin de limiter ces problèmes, son principe inclut un contrepoids situé à l’opposée du tube du télescope par rapport à l'axe alpha d'ascension droite. Le calcul de la masse de ce contrepoids repose sur l'équivalence des masses en fonction de la distance à la flèche (l'axe alpha). Dans le cas de la petite monture allemande, le tube est décalé de 5 cm par rapport à l'axe alpha alors que la tige du contrepoids s'étend de 10 à 25 cm de cet axe. Le tube du T114 pèse 2 kg selon le fabriquant. Ainsi :

2 (kg) x 5 (cm) = x (kg) x 10 (cm) pour un contrepoids collé au plus près de l'axe alpha
ou alors 
2 (kg) x 5 (cm) = x (kg) x 25 (cm) pour un contrepoids excentré au plus loin de l'axe alpha

Le contrepoids doit donc peser entre 1 kg et 400 g. 

 

 

💫 Instrumentation astronomique 💫 Monture équatoriale 💫 Monture allemande 💫 Télescope Newton 💫

 

Newton T200 : Mise au point astrophoto déportée

P lusieurs limites étaient apparues lors du dernier essai d'astrophoto avec le T200 . L'une d'elles était la difficulté de mettr...