mercredi 27 janvier 2021

Monture allemande : Démonstration

Dans le billet du 27 décembre je montrais le prototypage de l'asservissement de la petite monture allemande motorisée. C'est encore loin d'être abouti et pour l'instant cela ne fait que faire bouger les moteurs de l'axe Alpha et Delta à l'aide d'un joystick. Voici une petite vidéo démontrant que cela fonctionne. Il me reste donc encore à modifier le code Arduino afin d'obtenir un véritable outil de suivi stellaire avec possibilité de corrections. Dès que cela aura avancé, je mentionnerai le plan de câblage et le code Arduino. Il me faut encore comprendre si je dois utiliser la fonction Enable du driver DRV8825 en particulier pour l'axe Delta ? 

 


💫 Arduino 💫 Astrophotographie 💫 DRV8825 💫 goBilda 💫 Instrumentation astronomique 💫 Monture équatoriale motorisée 💫 Suivi stellaire 💫

 

dimanche 24 janvier 2021

Monture allemande : Modification

J'avais déjà mentionné l'intérêt d'un « meccano » comme le système goBilda que j'utilise : on peut corriger et modifier à souhait. Ayant réalisé l'avantage d'un viseur polaire lors de mes essais du Star Tracker, puis de la planchette équatoriale motorisée, je décide d'inclure cette possibilité sur la monture équatoriale allemande. J'ajoute une charnière qui permet la bascule de l'axe delta de déclinaison autorisant ainsi la visée polaire à travers l'axe alpha d’ascension droite. Notez que j'ai déjà en tête une optimisation du viseur polaire de la planchette équatoriale motorisée.


La monture allemande réalisée en structure goBilda avec la charnière permettant la bascule de l'axe Delta et donc la visée polaire. L'axe est ici basculé et la monture ne ressemble donc pas à grand chose. Une fois l'axe Delta re-basculé en place, elle est très similaire à la version précédemment présentée

  

💫 Astrophotographie 💫 goBilda 💫 Instrumentation astronomique 💫 Monture équatoriale 💫 Planchette équatoriale motorisée 💫 Star tracker 💫 Suivi stellaire 💫 Viseur polaire 💫

mercredi 20 janvier 2021

Planchette équatoriale : Routine Arduino avec correction de dérive

Le test de suivi stellaire de la planchette équatoriale motorisée réalisé sur Capella dans la nuit du 17 janvier fut très positif. L'asservissement du moteur pas à pas est effectué par un code Arduino qui inclut une correction de la dérive attendue du suivi stellaire. La correction consiste à considérer la développante du cercle comme une succession de segments de droites. Voici le code Arduino ci-dessous :

/*Routine Arduino pour Planchette équatoriale avec moteur pas à pas, 
driver de moteur DRV 8825, microstepping à 32 µpas par pas, 
utilisation de la bibliothèque de fonctions "accelstepper" 
Rotation continue
Mais compensation de dérive
(succesion de segments de droite)
Rembobinage par bouton pressoir
Voir le blog "Astronomie par les trois bouts" : 
https://astronomiebbb.blogspot.com/ */

// Inclut la bibliothèque "AccelStepper" :
#include <AccelStepper.h>

// Définit les connections Arduino destinées au contrôle du moteur pas à pas :
#define dirPin 2
#define stepPin 3
// Définit l'utilisation d'un driver (attribution de 1 au type d'interface) :
#define motorInterfaceType 1
// Définit la connection Arduino destinée au microstepping :
#define M012 4
// définit la variable rpm et lui attribue la valeur initiale 20
float Vmoteur=20;
// Définit la variable TempsRef et lui attribue le temps de la carte Arduino
long TempsRef = millis();


// Création du moteur dans le code Arduino :
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);
 
void setup() {
  // Déclare la pin 8 comme lecture du bouton poussoir
  pinMode(8,INPUT);
  // Fixe la vitesse maximale du moteur (indispensable) :
  stepper.setMaxSpeed(1000);
}

void loop() 
{
if(digitalRead(8) == 1)
  {
   // Ajustement Vmoteur
   if ((millis()-TempsRef)>86000) Vmoteur=20.001;
   if ((millis()-TempsRef)>162000) Vmoteur=(0.0014709*((millis()-TempsRef)/600000)+19.9978723);
   if ((millis()-TempsRef)>300000) Vmoteur=(0.0028689*((millis()-TempsRef)/600000)+19.9902650);
   if ((millis()-TempsRef)>600000) Vmoteur=(0.0057442*((millis()-TempsRef)/600000)+19.9591370);
   if ((millis()-TempsRef)>1200000) Vmoteur=(0.0095880*((millis()-TempsRef)/600000)+19.8822833);
   if ((millis()-TempsRef)>1800000) Vmoteur=(0.0134501*((millis()-TempsRef)/600000)+19.7664368);
   if ((millis()-TempsRef)>2400000) Vmoteur=(0.0173800*((millis()-TempsRef)/600000)+19.6109349);
   // Fixe le microstepping :
  pinMode (M012, OUTPUT);
  digitalWrite (M012, HIGH);
   // Fixe la vitesse de rotation en nombres de pas par seconde :
  stepper.setSpeed(Vmoteur);
  // Fait tourner le moteur à la vitesse définie par setSpeed():
  stepper.runSpeed();
  }
if(digitalRead(8) == 0)
  {
  // Inactive le microstepping :
  pinMode (M012, OUTPUT);
  digitalWrite (M012, LOW);
  // Fixe la vitesse de rotation en nombres de pas par seconde :
  stepper.setSpeed(-100);
  // Fait tourner le moteur à la vitesse définie par setSpeed():
  stepper.runSpeed();
  // Reset les valeurs pour un nouveau suivi
  Vmoteur=20;
  TempsRef=millis();
  }
}

lundi 18 janvier 2021

Newton T200 : Barillet neuf points

La conception du tube d'un télescope doit tenir d'un certain nombre de paramètres. Le plus important est bien sûr la distance focale du miroir principal. Mais la longueur du porte oculaire est aussi à prendre compte ainsi que l'espace mort en arrière de la surface optique du miroir primaire. Il me faut donc concevoir le barillet du miroir primaire afin de me faire idée de cet espace mort. Je choisi de faire un barillet neuf points. Ce n'est pas forcément nécessaire avec un miroir de 203 mm mais c'est tellement plus classe. Je commence donc par réaliser les trois triangles flottant portant chacun trois points de support du miroir. Ils sont réalisés en planche à découper PVC. La rotule de ce triangle est un écrou à rotule (cela sert de pied de meuble et se trouve dans les magasins de bricolage). Un logement pour la tête de l'écrou est creusé dans le morceau de planche à découper. La tête de l'écrou est maintenue en place par une rondelle collée.

Les triangles de flottant du futur barillet neuf points. Sur celui du bas, on voit le logement creusé afin d'accueillir la tête de l'écrou à rotule (en haut à gauche, il faudra enlever la protection en plastique). Le triangle à droite est finalisé avec l'écrou à rotule maintenu en place par une rondelle comme celle posée à côté de l'écrou en haut.

💫 Astronomie amateur 💫 Instrumentation astronomique 💫 Miroir 💫 Optique astronomique 💫 Télescope 💫

 

dimanche 17 janvier 2021

Planchette équatoriale : Test de suivi stellaire, 3ème

Le début de nuit du 15 janvier fut beau et ce fut l’occasion de tester la nouvelle stratégie de correction de la dérive attendue du suivi stellaire de la planchette équatoriale motorisée. Cette stratégie consiste à considérer la courbe de vitesse théorique du moteur pas à pas d'asservissement comme une succession de segments de droite. Le montage photo ci-dessous est réalisé comme pour le test sans correction (mis à part pour le premier temps qui ne comporte que le cliché initial). On ne perçoit la dérive qu'après 37,5' de suivi. C'est bien mieux que sans correction ou qu'avec la stratégie précédente. On ne peut pas savoir si la dérive encore observée est du à l'imperfection de la stratégie ou à un défaut de mise en station de la planchette équatoriale ou bien encore à la flexibilité de la tige mère qui augmente forcément plus elle est sortie... Quoi qu'il en soit, c'est super et il est temps de passer à autre chose avant les premières photos quand j'en aurai l'occasion...

 

Montage réalisé à partir d'une série de 120 clichés centrés sur Capella et objectivant un suivi stellaire quasi parfait sur au moins 35' surtout en comparaison de l'essai sans correction de suivi, intervallomètre 20 s, Lumix G, objectif de 25 mm (équivalent 50), F/D 1.8, 1/10 s, 6400 ISO

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

vendredi 15 janvier 2021

Planchette équatoriale : Développante du cercle

Voici la courbe théorique en bleu de la vitesse de rotation du moteur pas à pas d'asservissement de la planchette équatoriale motorisée. C'est une développante du cercle (enfin je crois, je ne suis pas un matheux). Arduino n'a pas la capacité de calcul afin d'ajuster la vitesse du moteur en fonction de cette développante du cercle. J'ai donc utilisé une autre solution qui consiste à ajuster cette vitesse de temps à autres. Un essai a montré que cette solution est bien meilleure que sans correction mais cela reste perfectible. Voici ma piste de travail : En découpant la courbe théorique en plusieurs parties, on peut assimiler chacune de ces parties à une droite en jaune sur le graphe. Le coefficient de régression r² est toujours très bon, au minimum à 0.993 et au maximum à 0.999. Je vais donc demander à Arduino d'adapter en permanence la vitesse du moteur mais non pas en fonction de la développante du cercle mais en fonction d'une succession de quelques segments de droite. Un calcul de la forme y = a.x + b devrait être dans les cordes d'Arduino ? Je vais donc explorer cette piste. 


 

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

 

jeudi 14 janvier 2021

Planchette équatoriale : Code Arduino

J'avais donc testé un code Arduino permettant de corriger la dérive attendue du suivi stellaire de la planchette équatoriale motorisée. C'était plutôt concluant... mais perfectible. Voici tout de même ce code Arduino. Il n'est pas très élégant car il comporte une série de tests conditionnels. J'ai déjà en tête une autre façon de faire, toujours via le code Arduino et avec des calculs qui devraient être dans les cordes d'Arduino et de ses performances limitées.

En attendant voici le code Arduino du dernier test :

 

/*Routine Arduino pour Planchette équatoriale avec moteur pas à pas, 
driver de moteur DRV 8825, microstepping à 32 µpas par pas, 
utilisation de la bibliothèque de fonctions "accelstepper" 
Rotation continue
Mais compensation de dérive
Rembobinage par bouton pressoir
Voir le blog "Astronomie par les trois bouts" : 
https://astronomiebbb.blogspot.com/ */

// Inclut la bibliothèque "AccelStepper" :
#include <AccelStepper.h>

// Définit les connections Arduino destinées au contrôle du moteur pas à pas :
#define dirPin 2
#define stepPin 3
// Définit l'utilisation d'un driver (attribution de 1 au type d'interface) :
#define motorInterfaceType 1
// Définit la connection Arduino destinée au microstepping :
#define M012 4
// définit la variable rpm et lui attribue la valeur initiale 20
float Vmoteur=20;
// Définit la variable TempsRef et lui attribue le temps de la carte Arduino
long TempsRef = millis();


// Création du moteur dans le code Arduino :
AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);
 
void setup() {
  // Déclare la pin 8 comme lecture du bouton poussoir
  pinMode(8,INPUT);
  // Fixe la vitesse maximale du moteur (indispensable) :
  stepper.setMaxSpeed(1000);
}

void loop() 
{
if(digitalRead(8) == 1)
  {
   // Ajustement Vmoteur
   if ((millis()-TempsRef)>86000) Vmoteur=20.001;
   if ((millis()-TempsRef)>162000) Vmoteur=20.002;
   if ((millis()-TempsRef)>212000) Vmoteur=20.003;
   if ((millis()-TempsRef)>253000) Vmoteur=20.004;
   if ((millis()-TempsRef)>288000) Vmoteur=20.005;
   if ((millis()-TempsRef)>319000) Vmoteur=20.006;
   if ((millis()-TempsRef)>347000) Vmoteur=20.007;
   if ((millis()-TempsRef)>373000) Vmoteur=20.008;
   if ((millis()-TempsRef)>398000) Vmoteur=20.009;
   if ((millis()-TempsRef)>421000) Vmoteur=20.01;
   if ((millis()-TempsRef)>604000) Vmoteur=20.02;
   if ((millis()-TempsRef)>744000) Vmoteur=20.03;
   if ((millis()-TempsRef)>861000) Vmoteur=20.04;
   if ((millis()-TempsRef)>964000) Vmoteur=20.05;
   if ((millis()-TempsRef)>1057000) Vmoteur=20.07;
   if ((millis()-TempsRef)>1222000) Vmoteur=20.08;
   if ((millis()-TempsRef)>1297000) Vmoteur=20.09;
   if ((millis()-TempsRef)>1367000) Vmoteur=20.1;
   if ((millis()-TempsRef)>1498000) Vmoteur=20.12;
   if ((millis()-TempsRef)>1619000) Vmoteur=20.14;
   if ((millis()-TempsRef)>1731000) Vmoteur=20.16;
   if ((millis()-TempsRef)>1836000) Vmoteur=20.18;
   if ((millis()-TempsRef)>1935000) Vmoteur=20.2;
   if ((millis()-TempsRef)>2030000) Vmoteur=20.22;
   if ((millis()-TempsRef)>2120000) Vmoteur=20.24;
   if ((millis()-TempsRef)>2207000) Vmoteur=20.26;
   if ((millis()-TempsRef)>2290000) Vmoteur=20.28;
   if ((millis()-TempsRef)>2370000) Vmoteur=20.3;
   if ((millis()-TempsRef)>2448000) Vmoteur=20.32;
   if ((millis()-TempsRef)>2523000) Vmoteur=20.34;
   if ((millis()-TempsRef)>2596000) Vmoteur=20.36;
   if ((millis()-TempsRef)>2667000) Vmoteur=20.38;
   if ((millis()-TempsRef)>2737000) Vmoteur=20.40;
   if ((millis()-TempsRef)>2804000) Vmoteur=20.42;
   if ((millis()-TempsRef)>2870000) Vmoteur=20.44;
   if ((millis()-TempsRef)>2934000) Vmoteur=20.46; 
   if ((millis()-TempsRef)>2997000) Vmoteur=20.48;
   if ((millis()-TempsRef)>3059000) Vmoteur=20.50;
   // Fixe le microstepping :
  pinMode (M012, OUTPUT);
  digitalWrite (M012, HIGH);
   // Fixe la vitesse de rotation en nombres de pas par seconde :
  stepper.setSpeed(Vmoteur);
  // Fait tourner le moteur à la vitesse définie par setSpeed():
  stepper.runSpeed();
  }
if(digitalRead(8) == 0)
  {
  // Inactive le microstepping :
  pinMode (M012, OUTPUT);
  digitalWrite (M012, LOW);
  // Fixe la vitesse de rotation en nombres de pas par seconde :
  stepper.setSpeed(-100);
  // Fait tourner le moteur à la vitesse définie par setSpeed():
  stepper.runSpeed();
  // Reset les valeurs pour un nouveau suivi
  Vmoteur=20;
  TempsRef=millis();
  }
}

mardi 12 janvier 2021

Planchette équatoriale : Viseur polaire

C'est en utilisant le Star Tracker que j'ai réalisé au combien le viseur polaire est pratique. J'en installe donc un sur la planchette équatoriale motorisée. Il est simplement constitué de deux pitons à visser qui sont positionnés sur la tranche d'une des deux planchettes supérieures côté articulation faisant office d'axe d'ascension droite. Il faudra que je songe a offrir cette possibilité de viseur polaire pour la petite monture allemande mais aussi pour le T200 en projet.

Gros plan de l'articulation de la planchette équatoriale motorisée faisant office d'axe d'ascension droite et sur laquelle sont positionnés deux pitons à visser alignés qui deviennent deux pitons à viser la polaire.
 

💫 Astrophotographie 💫 Instrumentation astronomique 💫 Planchette équatoriale motorisée 💫 Suivi stellaire 💫

 

lundi 11 janvier 2021

Planchette équatoriale : Correction de suivi

Lors du premier essai de la planchette équatoriale motorisée, on voyais très nettement la dérive du suivi. Je mentionnais mon projet d'une adaptation du code Arduino de pilotage du moteur pas-à-pas d'entraînement de la planchette afin de corriger cette dérive. Je pensais inclure dans le code des calculs trigonométriques selon le théorème de Pythagore (cf le billet sur la dérive de Pythagore)... mais apparemment c'est trop pour Arduino qui est surtout fait pour gérer des entiers et moins des réels. J'utilise donc une succession de tests conditionnels... mais nous verrons ce nouveau code Arduino dans un billet à venir. En attendant, voici le résultat du test effectué sur Cappella le 09 janvier. En comparaison du premier essai, c'est bien mieux ! Est-ce Perfectible ?


Montage réalisé à partir d'une série de 120 clichés, intervallomètre 20 s, Lumix G, objectif de 25 mm (équivalent 50), F/D 1.8, 1/10 s, 6400 ISO, post-traitement x 1000 (open office). L'élaboration du montage est la même que celle du premier essai.

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

 

vendredi 8 janvier 2021

Motorisation à faible coût

Voici le code Arduino tout simple afin de faire tourner le moteur 28BYJ-48 à un tour par minute afin d'être utilisé pour une planchette équatoriale motorisée. Le plan de câblage est indiquée dans le billet précédent

 

/*
  Motorisation la plus simplissime d'une planchette équatoriale
  Utilise un moteur pas à pas 28YBJ-48 (Unipolaire) et son driver ULN2003
  Avec la librairie Arduino "Stepper" (incluse lors de 
  l'installation de base du programme Arduino).
  fait tourner le moteur en permanence à 1 tour par minute (1 rpm)
*/

// Inclut la bibliothèque Arduino "stepper" 
#include <Stepper.h>
 
// Indique le nombre de pas par tour du moteur utilisé
#define STEPS 32
 
// Crée le moteur dans le programme Arduino, 
// mentionnant le nombre de pas par tour du moteur
// Mentionnant les pins Arduino utilisées
Stepper moteur1(STEPS, 8, 10, 9, 11);

// Définit le sens de rotation, 1 ou -1
int Sens = 1;
// Définit la vitesse de rotation (64 pour 1 rpm)
int Vitesse = 64;
  
void setup()
{
  // Fixe la vitesse du moteur
    moteur1.setSpeed(Vitesse);
}

 
void loop()
{
   // Fait tourner le moteur
  moteur1.step(Sens);
 }

jeudi 7 janvier 2021

Motorisation à faible coût

Voici le plan de câblage du moteur pas-à-pas 28BYJ-48 et son driver ULN2003A (le circuit bleu auquel est connecté le moteur). Je proposerai dans le prochain post le code Arduino permettant de faire tourner ce moteur en continu à une rotation par minute. Il s'agit donc d'une solution simple et peu onéreuse pour une planchette équatoriale motorisée.

💫 Arduino 💫 Astrophotographie 💫 Instrumentation astronomique 💫 Moteur pas à pas 💫 Planchette équatoriale motorisée 💫 Suivi stellaire 💫 28BYJ-48 💫



mercredi 6 janvier 2021

Motorisation à faible coût

Dans le billet mentionnant les fournitures de la planchette équatoriale motorisée dans sa première version, j'indiquais le projet de proposer une motorisation à faible coût à partir d'un ensemble moteur pas-à-pas 28BYJ-48 et son driver, l'ensemble ne dépassant pas 10 euros. Voici les premiers essais avec un programme Arduino des plus simples. Je donnerai le code ainsi que le plan de câblage dans les prochains billets.


Le montage du moteur pas-à-pas 28BYJ-48 et son driver et la connexion avec la carte Arduino. Je me suis largement inspiré d'un super cours sur les moteurs pas-à-pas (avec même une version vidéo).

💫 Arduino 💫 Astrophotographie 💫 Instrumentation astronomique 💫 Moteur pas à pas 💫 Planchette équatoriale motorisée 💫 Suivi stellaire 💫 28BYJ-48 💫

 

dimanche 3 janvier 2021

Planchette équatoriale : La dérive de Pythagore

Dans le billet précédent, je mettais en évidence la dérive attendue dans le suivi stellaire d'une planchette équatoriale. En voici la raison expliquée à l'aide de deux clichés superposés de la planchette, l'un en position initiale en début de suivi stellaire et le second en position finale. La flèche noire en trait plein donne la distance de 209 mm permettant d'obtenir une rotation en un jour sidéral de l'articulation entre la planche supérieure et moyenne. Mais durant le fonctionnement, l'articulation s'ouvre et la distance maintenant indiquée par la double flèche noire en trait pointillé est supérieure à celle en trait plein comme selon le théorème de Pythagore : l'hypoténuse d'un triangle rectangle est plus longue que son grand côté. La vitesse d'entraînement du moteur n'est donc plus adaptée à cette longueur plus grande, d'où la dérive du suivi stellaire. 

 

La planchette équatoriale dans sa position initiale fermée et finale ouverte. La distance initiale entre l'articulation et la vis mère du moteur pas à pas est de 209 mm avec une vitesse de rotation de 20 µpas/s. En position finale après progression de la vis mère de 100 mm, la distance à l'articulation est devenue 231,7 mm. La vitesse de rotation devrait alors être de 22,1 µpas/s.      

💫 Astrophotographie 💫 Instrumentation astronomique 💫 Moteur pas à pas 💫 Planchette équatoriale 💫 Suivi stellaire 💫

 

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...