Astro-Tracker – Astroduino 3D Printer Model

Author: @
License: CC BY
File formats: ino,STL
Download type: zip
Size:1.1MB

The file 'Astro-Tracker – Astroduino 3D Printer Model' is (ino,STL) file type, size is 1.1MB.

Summary

Systeme de suivi equatorial type "planchette" pour l'astrophotographie pose longue , motorisé par un moteur pas a pas bi-polaire et un Arduino uno.
La tige filetée est démontable pour faciliter le transport.
Le moteur est dispo chez Go-tronic: http://www.gotronic.fr/art-moteur-24byj48-19028.htm
Les blocs sont assemblés a l'aide de tiges lisse en acier inox diametre 8mm et longueur 220mm(précis). Les tiges sont collées dans leur logement a l'aide de colle epoxy bi-composant.
La tige filetée courbée est du M8 (laiton).

Le code arduino gere le moteur en augmentant ou reduisant le nombre de MicroSecondes de delai entre chaque pas. Les touches du shield LCD permet d'incrementer ou de reduire la vitesse de 1Ms avec les touches haut/bas ou 10Ms avec les touches droite/gauche.
Un compteur de temps de poursuite est ajouté (le compte s'arrete lorsque le systeme est arrèté.

materiel necessaire:

MECANIQUE:
2 vis M3x16mm + 2ecrous M3 (platine moteur)
2 vis M6x65mm + 4 ecrous M6 (fixation tige courbée , boutons de serrage)
4 tiges acier inox diametre 8mm long.220mm
1 tige acier inox long. 155mm filetée aux 2 extremités sur 7mm + 2 ecrous M8(ou tige filetée M8 (axe charnière)
mais moins bon car diametre legerement plus petit et cause de jeu)
1 tige filetée M8 laiton courbée (rayon 285.7mm) + 3 ecrous M8 dont un borgne
3 vis chc M4x20mm + 3 ecrous M4 (cale de compensation - support rotule)
2 vis chc M5x30mm + 2 ecrous M5 (fixation rapide trepied photo)
3 vis chc M5x30mm + 3 ecrous M5 (support viseur polaire)
4 roulements type "roller" 8x22
1 roulement 12x32 (epaisseur 10)

ELECTRONIQUE:
1 arduino uno r3
1 shield LCD DFrobot
1 driver moteur Easydriver V4
interrupteur
batterie 6v 2 ou 4 Ah

Ajout du boitier pour l'electronique: ( l'arduino+lcd+easyDriver sont maintenus dans le boitier par des vis plastique et des ecrous M3 )

Les premiers tests m'ont permis de realiser la photo de la voie lactée jointe , 180 secondes de pose a 24mm f4.5 1200 iso.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//  ASTRODUINO - STARTRACKER//  motorisation d'une "planchette equatoriale" a tige filetée courbée //  controle de vitesse du moteur PAP par gestion du delai "microseconde" entre les          fronts montants et descendants//  compteur de temps de poursuite en utilisant un timer#include <TimerOne.h>               // librairie pour le timer d'horloge                #include <LiquidCrystal.h>          // librairie ecran LCDLiquidCrystal lcd(8, 9, 4, 5, 6, 7);    // declaration des pins utilisées par l'ecran lcd#define motorPinStep  13   // commande de pas moteur sur pin 13#define motorPinDir  12    // commande de direction du moteur sur pin 12 int adc_key_val[5] ={50, 200, 400, 600, 800 };  // valeurs analogiques des boutonsint NUM_KEYS = 5;                               // declaration du nombre de boutonsint adc_key_in;                                 // valeur analogique du bouton appuyéint key=-1;                                     // int isRun;                                      // variable "en marche" ou "arret"int DelaiPas = 458;        // delai en microsecondes entre chaque pas moteurint minspeed = 8000;        // delai max pour vitesse minimumchar message[16] = "";      // taille d'une ligne de l'ecran pour affichage de l'horlogeint heures,minutes,secondes;  // variables pour horlogevolatile unsigned long blinkCount = 0; //iterations du timer/////////////////////////////////////////////////////////////////////////////void Horloge(void)     // fonction d'interruption timer pour affichage de l'horloge{    blinkCount = blinkCount + 1;  // incrementation du timer// on commence par gérer le temps qui passe...secondes++;if(secondes == 60) // une minute est atteinte ?{    secondes = 0; // on recompte à partir de 0    minutes++;}if(minutes == 60) // une heure est atteinte ?{    minutes = 0;    heures++;}if(heures == 24) // une journée est atteinte ?{    heures = 0;}  sprintf(message,"%2d:%2d:%2d",heures,minutes,secondes); // formatage de l'horloge  lcd.setCursor(8,0);             lcd.write(message);}//////////////////////////////////////////////////////////////////////void motorrun()   // fonction moteur{digitalWrite( 13 , HIGH );delayMicroseconds( DelaiPas );digitalWrite( 13 , LOW );delayMicroseconds( DelaiPas );}/////////////////////////////////////////////////////////////////////////////void setup() {pinMode( 12 , OUTPUT);  // declaration des broches en sortiespinMode( 13 , OUTPUT);  //digitalWrite( 12 , HIGH );  // on fixe le sens de rotationheures = 0;       //minutes = 0;      //  initialisation des variables de tempssecondes = 0;     //Timer1.initialize(1000000);       // initialisation du timer (1000000 de microsecondes = 1        seconde)Timer1.attachInterrupt(Horloge);  // affectation d'une fonction d'interruption ( quoi faire a chaque interruption du timer)Timer1.stop();      // on stop le timer pour empecher le debut du comptelcd.clear();       // efface l'ecranlcd.begin(16, 2);  // initialise l'ecranlcd.setCursor(0,0);   // place le curseur au premier caractere de la premiere lignelcd.print("***ASTRODUINO***");lcd.setCursor(0,1);  lcd.print("**STAR-TRACKER**");delay(2000);lcd.clear();lcd.setCursor(0,0);lcd.print("Stopped  0: 0: 0"); lcd.setCursor(0,1); lcd.print("Delay= "); lcd.print(DelaiPas);lcd.print(" Msec");isRun = 0;   }///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////void loop() {adc_key_in = analogRead(0);    // lire la valeur du capteurkey = get_key(adc_key_in);  // convertir en " qulle touche a ete appuyée"if (key >= 0)   // si appui d'une touche detecté.. {    if (key == 1) {                 DelaiPas += 1;                 delay(150);                }  if (key == 2 && DelaiPas > 0) {                                 DelaiPas -= 1;                                 delay(150);                                }  if (key == 0) {                 DelaiPas += 10;                 delay(150);                }  if (key == 3) {                 DelaiPas -= 10;                 delay(150);                }  if (DelaiPas>minspeed) {                          DelaiPas = minspeed;                         }  if (DelaiPas<-minspeed) {                           DelaiPas = -minspeed;                          }  if (key == 4) {        // si touche " select " appuyée > "running" ou "stopped"                 isRun = 1 - isRun;   // bascule logique > si "marche" alors "arret" et vice   versa                 lcd.setCursor(0,0);                  if (isRun == 1) {                                  lcd.print("Running");                                 } else {                                         lcd.print("Stopped");                                         Timer1.stop();    // arret du timer (donc de l'horloge) quand  passage de running a stopped                                        }                 delay(150);                }  lcd.setCursor(0, 1);  lcd.print("Delay= ");   lcd.print(DelaiPas);  lcd.print(" Msec  ");  delay(50);}if (isRun == 1) {     // si "running"...               motorrun();         // ... fonction moteur...               Timer1.resume();        //... reprise de l' horloge               }}// fonction destinée a savoir quelle touche a ete appuyéeint get_key(unsigned int input){int k;for (k = 0; k < NUM_KEYS; k++)  {   if (input < adc_key_val[k])        return k;  }if (k >= NUM_KEYS)   k = -1;  // No valid key pressed   return k;}
ASTRODUINO_moteur_reduit_delayMicroseconds_horloge_timer.ino 6.1KB
AstroTracker_support_moteur.STL 165.0KB
AstroTracker_support_rotule.STL 188.3KB
AstroTracker_support_roulements.STL 125.9KB
AstroTracker_support_tige_filetee.STL 53.0KB
bouton_support_viseur.STL 625.3KB
cale_compensation_petit_model.STL 105.2KB
corp_boitier.STL 193.1KB
couvercle.STL 261.5KB
fixation_tige.STL 158.2KB
pignon_moteur.STL 43.1KB
plaquette_support_moteur.STL 27.8KB
Plateau_fixation_trepied.STL 44.0KB
roue84d.STL 195.4KB
serrage_fixation_tige.STL 754.1KB
support_viseur_polaire.STL 374.3KB