Thingiverse
Astro-Tracker - Astroduino by jamesdedij
by Thingiverse
Last crawled date: 3 years ago
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 // librairie pour le timer d'horloge
#include // librairie ecran LCD
LiquidCrystal 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 boutons
int NUM_KEYS = 5; // declaration du nombre de boutons
int 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 moteur
int minspeed = 8000; // delai max pour vitesse minimum
char message[16] = ""; // taille d'une ligne de l'ecran pour affichage de l'horloge
int heures,minutes,secondes; // variables pour horloge
volatile 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 sorties
pinMode( 13 , OUTPUT); //
digitalWrite( 12 , HIGH ); // on fixe le sens de rotation
heures = 0; //
minutes = 0; // initialisation des variables de temps
secondes = 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 compte
lcd.clear(); // efface l'ecran
lcd.begin(16, 2); // initialise l'ecran
lcd.setCursor(0,0); // place le curseur au premier caractere de la premiere ligne
lcd.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 capteur
key = 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ée
int 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;
}
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
#include
LiquidCrystal 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 boutons
int NUM_KEYS = 5; // declaration du nombre de boutons
int 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 moteur
int minspeed = 8000; // delai max pour vitesse minimum
char message[16] = ""; // taille d'une ligne de l'ecran pour affichage de l'horloge
int heures,minutes,secondes; // variables pour horloge
volatile 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 sorties
pinMode( 13 , OUTPUT); //
digitalWrite( 12 , HIGH ); // on fixe le sens de rotation
heures = 0; //
minutes = 0; // initialisation des variables de temps
secondes = 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 compte
lcd.clear(); // efface l'ecran
lcd.begin(16, 2); // initialise l'ecran
lcd.setCursor(0,0); // place le curseur au premier caractere de la premiere ligne
lcd.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 capteur
key = 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ée
int 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;
}
Similar models
thingiverse
free
guidage haut tige filetée by liar
...ilise de préférence avec l' anti wobble "http://www.thingiverse.com/thing:1240175" pour être réellement efficace .
thingiverse
free
Profilé "Alu" by meche_3
...trage et un trou pour faire passer un tige fileté tout le long pour consolidé le tout et les encoche pour les ecrous bien entendu
3dwarehouse
free
#003 Horloge 1950]
...0]
3dwarehouse
modèle d'horloge d'inspiration années 50. création d'un réseau circulaire pour les heures et minutes.
thingiverse
free
Bras articulé by Kyalma
...ente de contrôler les mouvement d'un bras avec un moteur et une tige filetée.
un support complet avec axe moteur est en cours
thingiverse
free
Prusa i3 rework axe-Z solidification by jjdu67
...de 10.
prevoir aussi de rajouter une vis (percer le chasis) et changer la longueur des vis de 3 pour attacher les pieces du haut.
3dwarehouse
free
Horloge paramétrable (dyn)
...des minutes... indiquez l'heure exacte souhaitée. #horloge #chiffre #romain #arabe #heure #minute #configurable #paramétrable
thingiverse
free
Spool Dry Box - Vertical by Tex-Lab
...enêtres transparentes pour visualiser les bobines
un supports pour nettoyeur de filaments avant la sortie du filament de la boite
thingiverse
free
Ender 3 - Filament holder DELUXE for 3kg Filament by Oregos
...st adapté en conséquences.
prévoire une tige fileté métallique plus longue (18.2cm environ). compatible avec le reste du système.
thingiverse
free
Tiges filetées trapezoidales pour Discovery200 renforcée by jamesdedij
...iennent se fixer au dessus des tiges permettent un reglage facile de la hauteur si besoin , ils neccessitent chacun 2 vis chc m4.
thingiverse
free
Verin électrique by Semopy
...age dans le tube afin d'unir le poussoir avec le tube. la vis aura aussi la fonction d'actionneur sur les fins de courses
Jamesdedij
thingiverse
free
Support de cables USB by jamesdedij
...upport de cables usb by jamesdedij
thingiverse
support de cables usb (ou autres) , a fixer par un morceau d’adhésif double face
thingiverse
free
Sd card support for Ender 3 by jamesdedij
...e sd card pour l' ender 3 ; garde l'acces au port usb.
se fixe sur le profilé du y avec une m4x10 plus un ecrou marteau.
thingiverse
free
Metier a tisser les perles by jamesdedij
... tete h et 3 ecrous papillon pour la fixation des fils.
pla e-sun , res 0.2 , remplissage 25%.
version taille reglable a venir...
thingiverse
free
MicroFocuser pour canon 100mm by jamesdedij
...is hex m4-20
les tetes de vis sont collées a l'epoxy ainsi que les deux ecrous noyés dans les boutons de serrage des colliers
thingiverse
free
Pince d'accessoires pour trepied photo by jamesdedij
...ne vis m6 tete hex longueur 70mm + un ecrou pour la molette de serrage.
une vis de 12 doit etre percée au diam. 5 et taraudée m6.
thingiverse
free
Cache d'oeilleton de visée pour Canon EOS 1000D,6D,7D by jamesdedij
...1000d , 6d , et 7d. permet d'eviter la lumiere de penetrer par l'oeilleton pendant les poses longue en astrophotographie.
thingiverse
free
DEV-BOX Arduino by jamesdedij
...=1&model=1&product_id=51
breadboard: http://fr.farnell.com/pro-s-kit/bx-4112n/breadboard-round-hole-840-points/dp/2503746
thingiverse
free
Tiges filetées trapezoidales pour Discovery200 renforcée by jamesdedij
...iennent se fixer au dessus des tiges permettent un reglage facile de la hauteur si besoin , ils neccessitent chacun 2 vis chc m4.
thingiverse
free
Design alternatif pour Discovery200 - Dagoma by jamesdedij
...de ranger quelques accessoirs (pince , spatule , cartes sd...).
(la version du bloc avant a evoluée et est differente des photos)
thingiverse
free
Discovery 200 renforcée by jamesdedij
...xations hautes: 22 vis chc m3-12 (ou m3-16) + 22 ecrous
renforts arriere: 12 vis chc m4-20 + 12 ecrous
8 vis chc m4-15 + 8 ecrous
Astro
3ddd
$1
Astro
...astro
3ddd
astro
два переговорных столика astro.
материалы corona.
3ddd
free
Astro Deneb
...astro deneb
3ddd
astro , deneb
люстра astro deneb
размеры плафона: 440х440х440
3d_export
$20
ASTRO
...astro
3dexport
alien astronaut
3ddd
$1
ASTRO MOMO 4527
...astro momo 4527
3ddd
astro , momo
astro momo 4527 table light. suitable for bathroom.
3ddd
$1
Люстра Metallux Astro
...люстра metallux astro
3ddd
metallux , astro
люстра metallux astro
h=900
d=200
3ddd
$1
ДИВАН ASTRO
...ллекция contemporaneo, фабрика keoma.
polys: 19498
verts: 19678
длина: 180/200/220
ширина: 94
высота: 82
быстрых рендеров!
3ddd
$1
Metallux | Astro Ceiling
...astro ceiling
3ddd
astro ceiling , metallux
astro cieling lampd 90 h 40 cherry
3ddd
$1
astro capella
... отражение
люстра capella российской фирмы astro.
размер плафона 75 х 75 см
шнур 1.8 м
используется как в, так и вне помещений
3d_export
$1
astro
...astro
3dexport
i created it for about two hours, i hope you will like it.
3ddd
$1
Astro - Calvi wall 7105
...astro - calvi wall 7105
3ddd
astro
astro-calvi wall 7105
Tracker
turbosquid
$8
Tracker Knife
... model tracker knife for download as blend, dae, fbx, and obj on turbosquid: 3d models for games, architecture, videos. (1588741)
turbosquid
$1
Tracker Knife
... available on turbo squid, the world's leading provider of digital 3d models for visualization, films, television, and games.
3d_export
$5
solar tracker
...aterial : -arduino uno -2 step motor with driver -4 ldr sensor -some wires -small photovoltaiic pannel -buzzer -cnc laser machine
turbosquid
$23
E3D -HTC Vive Tracker
...model e3d -htc vive tracker for download as max, obj, and c4d on turbosquid: 3d models for games, architecture, videos. (1190728)
3d_export
$7
sci-fi injector or tracker
... can be tracker, use as you want. pbr 4k contain: blend (includes high poly)/ dae / fbx / obj / stl / glowing injector + box
3d_export
$10
Motion Tracker Aliens
...er out moving objects from stationary background and then displayed them on the monitor as a series of contours of probable loci.
3d_export
$5
single axis solar tracker stand
...single axis solar tracker stand
3dexport
3d_export
$60
grumman s-2 f tracker
...ining in service with other air arms into the 21st century. argentina and brazil are the last countries to still use the tracker.
3d_export
$19
Chevrolet tracker 2021
...pport ticket and request for that. we can convert 3d models to: .stl, .c4d, .obj, .fbx, .ma/.mb, .lwo/.lws, .3ds, .3dm, .dxf/.dwg
3d_export
$25
emergency power with solar tracker
...cker
3dexport
this is a tool used to distribute electricity during an emergency disaster, it is recommended to use sketchup 2019