Le billet précédent propose un code Arduino à trois vitesse pour le pilotage d'une monture équatoriale : suivi stellaire, centrage et pointage. Reste à l'essayer lors d'une véritable session astronomique. Je monte donc la petite monture allemande réalisée en meccano goBilda sur le trépied du star tracker. Je récupère le système de configuration astrophotographique planétaire et le transforme en support du tube du petit newton T114. J'ajoute sur ce support un rail photo de façon à pouvoir installer un appareil photo en parallèle sur le tube du télescope. Beaucoup de solutions présentes ici ne sont que provisoires mais c'est une façon d'avancer et de faire ce test. Il me reste encore à finaliser la préparation avec l'installation du contrepoids et du tube de télescope. Affaire à suivre.
dimanche 24 avril 2022
Monture allemande : préparation de l'essai
mercredi 20 avril 2022
Motorisation : Code Arduino à trois vitesses
J'avais évoqué le projet de faire évoluer le code Arduino de pilotage des moteurs pas à pas de la petite monture équatoriale à deux vitesses, suivi stellaire et pointage, vers une version incluant une troisième vitesse de centrage. Voilà qui est fait. Le code téléversé dans l'Arduino et son blindage fonctionne et pilote la monture dans l'atelier. Cependant je ne l'ai pas encore testé lors d'une véritable session astronomique. L'ensemble de l'instrument n'est pas encore finalisé mais un tel test devrait toutefois être possible. Attendons donc une nuit étoilée... tout en finalisant l'ensemble.
💫 Arduino 💫 Astrophotographie 💫 Blindage 💫 DRV8825 💫 Instrumentation astronomique 💫 Monture équatoriale motorisée 💫 Moteur pas à pas 💫 Suivi stellaire 💫
/*
* Motorisation d'une monture équatoriale Contrôlée par joystick
* Vitesse de suivi stellaire, de centrage et de pointage, bascule par le bouton poussoir du joystick
* Voyant LED pour le mode pointage, 1/2 éclairé pour le mode centrage, éteint en suivi stellaire
* Seuil à 100 pour la détection de l'actionnement du joystick (sur 1024)
* Délai à 100 ms contre l'incertitude du bouton poussoir
* Motorisation via drivers de moteur pas à pas DRV8825
* Broches Arduino organisées pour le blindage grand format Electrocookie
* 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éclaration des broches d'Arduino
const int pinM012 = 4; //Contrôle du mode micropas
//(les broches M0, M1 et M2 des deux DRV8825 sont connectées entre elles)
const int pinLed = 3; // Broche de la LED
const int pinSwJoy = 2; //Broche du bouton du joystick
//Broches pour l'axeA
const int pinJA = A0; //Lecture AxeA du joystick
const int pinDirA = 6; //Contrôle la direction du moteur AxeA
const int pinStepA = 5; //Contrôle la vitesse du moteur AxeA
//Broches pour l'axeD
const int pinJD = A1; //Lecture AxeD du joystick
const int pinDirD = 8; //Contrôle la direction du moteur AxeD
const int pinStepD = 7; //Contrôle la vitesse du moteur AxeD
//Déclaration des variables
long speedA, valA, mapA, bougeA; //variables de gestion des mouvements moteur AxeA
long speedD, valD, mapD, bougeD; //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
int mode; // mode de fonctionnement : suivi ou centrage ou pointage
//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() {
mode = 0; //Démarre en mode suivi stellaire
//Définition des modalités des broches
pinMode(pinM012, OUTPUT);
pinMode(pinLed, OUTPUT);
pinMode(pinSwJoy, INPUT_PULLUP);
analogWrite(pinLed, 0); //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
if (mode == 0) {
analogWrite(pinLed,0); //mode suivi, éteind la LED
}
if (mode == 1) {
analogWrite(pinLed,10); //mode centrage, LED 1/2 allumée
}
if (mode == 2) {
analogWrite(pinLed,255); //mode pointage, LED allumée
}
//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 (mode == 0) // Si mode suivi stellaire
{
bougeA = (mapA/100)+46.924; // Vitesse de suivi stellaire +/- correction
micropas = true; // Active le microspepping
}
if (mode == 1) // Si mode centrage
{
bougeA = (mapA);
micropas = true; // Active le microspepping
}
if (mode == 2) // Si mode pointage
{
bougeA = (mapA);
micropas = false; // Désactive le microstepping
}
digitalWrite(pinM012, micropas);
AxeA.setSpeed(bougeA);
AxeA.runSpeed();
mapA = 0;
}
else // Si pas d'action sur le joystick en A
{
micropas = true;
digitalWrite(pinM012,micropas);
AxeA.setSpeed(46.924);// Vitesse de suivi stellaire
AxeA.runSpeed();
}
if (actionD) // Si le joystick est actionné en D
{
if (mode == 0) // Si mode suivi stellaire
{
bougeD = (mapD/100); // Vitesse proportionnelle à l'axe A
micropas = true; // Active le microstepping
}
if (mode == 1) // Si mode centrage
{
bougeD = (mapD);
micropas = true; // Désactive le microstepping
}
if (mode == 2) // Si mode pointage
{
bougeD = (mapD);
micropas = false; // Désactive le microstepping
// Pas besoin de calculer la vitesse du moteur, on utilise mapD
}
digitalWrite(pinM012, micropas);
AxeD.setSpeed(bougeD);
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é ?
{
++mode; // incrémente le mode
if (mode>2) // revient en mode suivi
{
mode = 0; // mode suivi
}
}
} dimanche 10 avril 2022
T 200 : Coins du tube
Pas beaucoup de bricolage en ce moment : l’enseigne de fourniture présente dans le coin n’est pas fréquentable étant donné ce qui se passe sur la scène internationale. J’attendrai des jours meilleurs. J’avance cependant à petits pas avec pour objectif un premier jet du tube en planches de récupération afin de se donner une idée de la position des tourillons de l’axe delta. C’est une étape indispensable avant de penser à la réalisation de la fourche. On devrait théoriquement pouvoir calculer la position de ces tourillons selon la règle de l’équivalence des masses utilisée pour le contrepoids de la petite monture allemande… théoriquement car le poids de la structure même du tube devrait être prise en compte et cela m’apparait tout de même compliqué.
💫 Astronomie amateur 💫 Instrumentation astronomique 💫 Construction de télescope 💫 Télescope Newton 💫 Tube de télescope 💫
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...
-
Voici donc la planchette équatoriale. C'est assez simple à fabriquer. Deux demi-journées suffisent. Mais finalement pas si simple du fai...
-
A près une longue suspension de mes activités astronomiques pour raisons personnelles, j’ai repris du service depuis quelques semaines mai...
-
M on projet central consiste en la construction d’un télescope Newton équatorial de 200 mm. Je découvre cependant la joie d’utiliser le peti...

