Projet pour le suivi sidéral téléscope

Bonjour à tous,

Avant tous je vais essayer de respecter les post épinglés et s’il vous plait je suis un petit mais alors vraiment petit débutant.

Voici mon projet à ce jour.
Piloter sur un axe le suivi sidérale d’un téléscope (réaliser un tour de 360° en 23H 56min et 04,0916s correspondant à la vitesse sidérale).

Pour ce faire j’ai démultiplié la rotation à engrenage de la monture.

Du coté matériel, j’en attend du nouveau mais pour le moment j’utilise

  • des moteurs pas à pas tel que “step motor 28BYJ-48 5V DC” (mes premières investigation ont été de compter le nombre de dents des pignons afin de définir la démultiplication total)
    Je sais que c’est fou mais je cherche quelque chose de précis :wink:

  • carte nanoV3

  • ULN 2003

interne moteur:

sortie rotor 9 dents
pignon 1 entree 32 dents
pignon 1 sortie 11 dents
pignon 2 entree 22 dents
pignon 2 sortie 9 dents
pignon 3 entree 27 dents
pignon 3 sortie 8 dents
pignon 4 entree 24 dents

interne boite

interieur boite
pignon 4 sortie 12 dents
pignon 5 entree 60 dents
pignon 5 sortie 12 dents
pignon 6 sortie boite entree 87 dents

inter monture ATTENTION c’est une vis sans fin
vis sans fin 11 filet
sur un pignon de 148 dents

Les données: (détaillé en 3 parties)
moteur 32 pas = 1 tour du rotor
moteur 2048 pas = 1 tour pignon en sortie de moteur

D’après mes calculs j’obtiens une réduction totale de 1/31214,54 auquel je multiplie par 32 pas soit 998865,45 pas pour 360°

J’ai peut être fait une erreur avec les calculs sur la vis sans fin. difficile de savoir si je suis sur la bonne voie.

Donc maintenant voici le début de mon code pour mon faible niveau de débutant mais qui ne fonctionne pas:

Les raisons après avoir bûché 3 jours sont:

  • soit ca va trop vite
  • soit pas assez vite.

Pouvez vous m’aider s’il vous plait?

#include <Stepper.h>


long pas_par_tour=11.59259543;                    
long Nb_de_pas=9988654.545;              


Stepper moteur(pas_par_tour, 2, 4, 3, 5); 


void setup()
{
  moteur.setSpeed(695.5557258); //Ici après avoir déterminé le nombre de pas pour faire 360°,
  // il faut l'amené à la vitesse sidérale

}

void loop()
{
  moteur.step(2048);

}

A terme j’aimerai ajouté d’autre vitesse tel que suivie solaire et lunaire et commander par bouton ou autre

Merci pour votre support,

déjà tu initialises les variables de type long avec des valeurs réelles (c-à-d non entières).
Puis tu exprimes tes valeurs réelles avec un grande précision (695.5557258 par ex), or un float n'a pas une telle précision, donc la valeur utilisée par le programme sera arrondie.

raph1259:
… réaliser un tour de 360° en 23H 56min et 04,0916s correspondant à la vitesse sidérale). …

Vous définissez la période sidérale au 1/10000ème de seconde. Soit pour un jour cela représente :
1 / ((3600 x 24) x 10000), c’est à dire une définition (précision, stabilité, …) de l’ordre de 10-9.

Je n’ai pas cherché à savoir si une telle précision, stabilité, … est nécessaire, mais si tel est le cas, ce n’est pas avec l’horloge d’un Arduino que vous y arriverez.

Cordialement.

Pierre

Merci pour vos remarques messieurs,

Je ne sais pas le niveau de détail de l'arduino et en particulier au niveau de sa gestion des calculs.
J'ai opté pour un max de détail.

Dans la pratique il est important que le suivi comporte un minimum d'erreur périodique.
Plus la rotation est fine (sans accoue) et plus vous obtenez une qualité d'image (prise avec le téléscope) "irréprochable"

J'ai peut ètre trop réduit le nombre de tours à réaliser du coté engrenage pour 1 tour sidéral.

Vous avez peut-ètre des conseils à me donner? changer de carte? changer de moteur?

Sinon j'ai fais un test "a blanc" (un disque gradué sur le télescope donne les 24h de rotation) sur une durée de 10H et j'i obtenu un écart d'environ 10 minutes. ce qui est je pense pas si mauvais. (problème du coté des engrenages et leurs usinages). cela indique que je suis un peu sur la bonne voie je pense :slight_smile:

Merci par avance,
Raph

raph1259:
... un écart d'environ 10 minutes. ce qui est je pense pas si mauvais. ...

Ah bon !

10 minutes de temps correspondent à 360° x 10" / 24 h, soit 360 x 1 / 6 / 24 = 2.5 °.

A mon sens, vu d'un télescope, c'est énorme !

Cordialement.

Pierre

ChPr:
A mon sens, vu d'un télescope, c'est énorme !

Oui c'est vrai qu'en réfléchissant ça peut faire peur.
Je pense que cette erreur peut se corriger lorsque le ciel sera dégagé. Dans la pratique ca demande quelques dizaine de minutes d'exposition sur une étoile. ensuite il faudra recalculer le décalage de l'étoile ciblé. la je pourrais corriger et affiner le suivi.

En revanche Pierre, cela vous parait-il cohérent avec les capacités de l'arduino face a mes données?

Merci,
Raph

Question précision, stabilité, … faire une prise de vue sur 10 minutes va impliquer une dérive angulaire liée aux performances de l’horloge de l’Arduino qu’on va fixer à environ 10-5. Dans ces conditions, la dérive angulaire va être de 2.5 ° / 100000 = 0.1 " d’arc. Je pense que cette fois c’est négligeable … pour autant que votre vitesse initiale soit correcte. Si elle ne l’est pas, il faut ajouter cette dérive. Par exemple, si votre vitesse initiale, liée à vos coefficients, facteurs de démultiplication, … est de 10-3, alors vous aurez une dérive supplémentaire de 10" d’arc. Compte tenu de votre grossissement, cela n’est peut-être plus négligeable. A vous de faire ces simples petits calculs.

Pour ce qui est de la charge de travail consistant à faire tourner un moteur pas à pas, ce n’est pas un problème pour un Arduino.

Cordialement.

Pierre

ChPr:
Question précision, stabilité, … faire une prise de vue sur 10 minutes va impliquer une dérive angulaire liée aux performances de l’horloge de l’Arduino qu’on va fixer à environ 10-5. Dans ces conditions, la dérive angulaire va être de 2.5 ° / 100000 = 0.1 " d’arc. Je pense que cette fois c’est négligeable … pour autant que votre vitesse initiale soit correcte. Si elle ne l’est pas, il faut ajouter cette dérive. Par exemple, si votre vitesse initiale, liée à vos coefficients, facteurs de démultiplication, … est de 10-3, alors vous aurez une dérive supplémentaire de 10" d’arc. Compte tenu de votre grossissement, cela n’est peut-être plus négligeable. A vous de faire ces simples petits calculs.

Pour ce qui est de la charge de travail consistant à faire tourner un moteur pas à pas, ce n’est pas un problème pour un Arduino.

Cordialement.

Pierre

Merci beaucoup Pierre, je vais laisser en suspend mon post pour le moment et je pense que je vais revoir à la baisse la démultiplication dans un premier temps.
Puis revenir sur cette partie pour intégrer l’erreur mécanique :slight_smile:
Encore merci pour votre soutiens

Bien à vous,

Raph