PDA

Visualizza Versione Completa : astroinseguitore, scotch mount o che dir si voglia! FAI DA TE



Federico_ms
05-02-2016, 20:50
eccomi!
finalmente ho trovato un pomeriggio libero dallo studio per dedicarmi alla costruzione di questo astroinseguitore. Avevo visto molti progetti sul web ma nessuno mi ha colpito tanto da dire '' lo faccio proprio cosi!''.
Da piccolo giocavo con il meccano ( non so se lo conoscete) e mi sono tornati utili degli ingranaggi (ho dovuto adattarli ripassando i buchi con il trapano).
Tutto inizia dalla mia passione per l' astronomia ma essendo una passione piuttosto onerosa ho deciso di iniziare cosi.
Cosa ci occore:
- legno multistrato;
- attacco per reflex;
- cerniera 10X4 ( + viti);
- asta filettata con passo da 1/4'' (20 filetti per pollice) con 3 dadi.
- 3 ruote dentate ( una più grande e due piccole)
- 2 motori passo passo da 5V con driver ULN2003;
- breadboard con cavetti maschio-maschio;
- arduino uno;
- alimentatore da 5V in uscita (se lo colleghiamo alla usb di arduino) o da 7V-12V (se lo colleghiamo dal jack di alimentazione).

Bene, ora che abbiamo tutto, iniziamo!
Prendete le misure che volete; io ho scelto 30x15 per la tavoletta in alto e 30X18 per la tavoletta in basso. Tagliamole.

15824

Una volta tagliate le due tavolette, prendiamo un trapano e foriamo nei punti indicati. Io ho praticato anche 2 fori al centro per attaccare la slitta del treppiede.
N.B.: state attenti a prendere le misure dei fori per i motori!

15826

15825

15828

15827

Ora è il momento di piegare l' asta filettata. ma con quale raggio??? dalla base della tavoletta al foro per l'asta misuriamo 27 cm. Io ho posizionato la cerniera in modo da usare lo spazietto di 1.5mm tra fulcro e base della cerniera stessa come guida per essere piu precisio possibile. L' asse di rotazione del nostro inseguitore sarà proprio il centro della cerniera, percio calcoliamo il rggio (del fulcro) che è di circa 3.5mm.

15829

fatto cio abbiamo trovato il raggio della circonferenza per la nostra asta: 3.5mm + 1.5mm + 27 cm = 27.5 cm
Sono sicuro che non avete un compasso cosi grande... aiuitatevi con una corda meno elastica possibile e una matita. Ora pieghiamo finalmente l' asta facendola combaciare con l' arco di circonferenza tracciato.

15830

Possiamo ora infilare l asta nei buchi: nel buco in alto la bloccano con due dadi (uno sotto e una sopra la tavoletta) e nel buco in basso la lasciamo libera.


Passiamo alla motorizzazione.
Un motore passo passo (STEPPER motor) è una macchina sincrona in corrente continua con un gran numero di step. Questi motori si limitano a bloccare l' asse in una sola posizione se alimentati senza controllo elettronico della corrente: per farlo ruotare bisogna inviargli la corrente ''a scatti'' in modo da far spostare di step in step la posizione di equilibrio. Ruoterà piu velocemnte o lentamente variando la frequenza della corrente che gli forniamo. Praticamente vengono eccitati a turno i vari elettromagneti che ci sono al suo interno che attrarrano i denti di una specie di ingranaggio all' interno ( facendolo ruotare) favorendo un movimento fluido.
Nel mio caso i motori dovranno girare nello stesso verso.
Questa è la parte elettronica.


15831


Occorreva rialzare leggermente la ruota dentata centrale, così ho trovato un piccolo rialzo e l ho forato; quindi l'ho incollato alla tavola. Sotto la ruota ho messo una rondella per limitare al minimo l' attrito.
15832

Questo è il lavoro finito.

15833

Devo solamente dare una passata di turapori e della vernice trasparente.
N.B.: Questa sarà la mia tesi di laurea. Chiedo gentilmente a chiunque volesse riutilizzare il progetto di citarmi.

Quando alimentate arduino se lo fate dalla usb usate SOLO 5V ; se lo alimentate dal jack usate da 7V a 12 V ( preferibilmente 9).

Qesto è il video.

https://youtu.be/BASED9wsXSE


Spero vi piaccia il mio progetto :)

Federico_ms
06-02-2016, 01:31
15837

questi sono i collegamenti. Qui sotto vi scrivo il programma che va bene per QUESTI specifici collegamenti!!
altra cosa: quando riportate l' alimentazione sul driver, i5V che da arduino avete messo sul + della breadboard li dovete riportare su VDD e GND che avete portato a - sulla breadboard va su GND!!!!!!

15838

int MotorPin1 = 8;
int MotorPin2 = 9;
int MotorPin3 = 10;
int MotorPin4 = 11;
int MotorPin5 = 4;
int MotorPin6 = 5;
int MotorPin7 = 6;
int MotorPin8 = 7;
int DelayTime = 6;

void setup() {

pinMode(MotorPin1, OUTPUT);
pinMode(MotorPin2, OUTPUT);
pinMode(MotorPin3, OUTPUT);
pinMode(MotorPin4, OUTPUT);
pinMode(MotorPin5, OUTPUT);
pinMode(MotorPin6, OUTPUT);
pinMode(MotorPin7, OUTPUT);
pinMode(MotorPin8, OUTPUT);

}

void loop() {

digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, LOW);
digitalWrite(MotorPin3, LOW);
digitalWrite(MotorPin4, HIGH);

digitalWrite(MotorPin5, LOW);
digitalWrite(MotorPin6, LOW);
digitalWrite(MotorPin7, LOW);
digitalWrite(MotorPin8, HIGH);

delay(DelayTime);

digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, LOW);
digitalWrite(MotorPin3, HIGH);
digitalWrite(MotorPin4, LOW);

digitalWrite(MotorPin5, LOW);
digitalWrite(MotorPin6, LOW);
digitalWrite(MotorPin7, HIGH);
digitalWrite(MotorPin8, LOW);

delay(DelayTime);

digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, HIGH);
digitalWrite(MotorPin3, LOW);
digitalWrite(MotorPin4, LOW);

digitalWrite(MotorPin5, LOW);
digitalWrite(MotorPin6, HIGH);
digitalWrite(MotorPin7, LOW);
digitalWrite(MotorPin8, LOW);

delay(DelayTime);

digitalWrite(MotorPin1, HIGH);
digitalWrite(MotorPin2, LOW);
digitalWrite(MotorPin3, LOW);
digitalWrite(MotorPin4, LOW);


digitalWrite(MotorPin5, HIGH);
digitalWrite(MotorPin6, LOW);
digitalWrite(MotorPin7, LOW);
digitalWrite(MotorPin8, LOW);

delay(DelayTime);
}

Federico_ms
06-02-2016, 13:08
Aggiungo un video per quei pochi a cui interessa :whistling:

https://youtu.be/pNbi3U68jH0

La velocità è da diminuire di circa 1/3. Perciò questo ci consentirà un inseguimento di circa 90 minuti.

EDIT:
Inserendo il delaytime di 6 mi esce fuori che la ruota principale fa 1 giro ogni 37.02 secondi. Impostando una semplice proporzione, troviamo facilmente il delaytime per far fare un giro al minuto alla ruota.
37.02 : 6 = 60 : T
T= (6x60)/37.02 = 9.73

Avevamo dichiarato il delaytime come numero intero ( int delaytime); per poter mettere un numero decimale scriviamo "float" al posto di "int" .

15854

Ho messo tutto sotto. Dovrò trovare un modo per far sparire meglio i fili.

bertupg
08-02-2016, 09:31
Complimenti, ottima realizzazione ;)

Federico_ms
08-02-2016, 09:59
Ti ringrazio!

Marcos64
08-02-2016, 10:07
Bel lavoro, a quando il collaudo?

Federico_ms
08-02-2016, 10:11
Sicuramente dopo la sessione di esami che finirà il 26 febbraio :hm:
Ora sono con la c... ehm...con i libri fino al collo:sowsuser:

Gianluca97
08-02-2016, 14:53
Complimenti, bel lavoro. anche io sono alle prese con la costruzione, visti i problemi con la 3d che sto avendo però sto pensando di cambiare progetto.
Attendiamo le tue prove ;)

Federico_ms
08-02-2016, 14:59
Io avevo fatto anche un altro progetto che non prevedeva ingranaggi ma andava bene solo nel caso in cui ci fosse stato un solo motore.
Se vuoi posso farti vedere... magari ti do qualche idea Gianluca97
Io ne ho messi due di motori, poiché essendo solo a 5v avevo paura che uno solo sforzasse troppo. Così almeno posso montare anche un tele più lungo magari

Gianluca97
08-02-2016, 15:28
Grazie se riesci a farmelo vedere meglio ;)
Comunque ottima l'idea di usare due motori, quei motori sono piccoli meglio dividere il lavoro.

Federico_ms
08-02-2016, 15:30
D accordo. Stasera ti faccio un disegno e te lo mando..

Cespe
08-02-2016, 18:16
Gran bel lavoro Complimenti ;) hai risolto non pochi problemi piegando lasse :shock: Bravo!!

Federico_ms
08-02-2016, 18:28
Grazie mille!
Eh lo so... ma per piegarsi mi ha fatto dannare! !!! Cespe
Non riuscivo mai a piegarla perfettamente rispetto all arco di circonferenza che avevo tracciato.. ci avrò messo 20 minuti.
Non vedo l ora di provarla!!
Ora sto cercando il giusto delay time da mettere nel codice pwr far fare un giro esatto al minuto alla ruota dentata ( 1 giro al minuto grazie al fatto chr ho il passo dell asta da 1/4).
A quanto pare la proporzione non rispetta la realtà. .

ryo
08-02-2016, 19:52
Ciao, la tua asta è da 1/4", 20 filetti per pollice e passo 1,270 (praticamente la classica filettatura UNC in misura da 1/4")?
Marcello

Federico_ms
08-02-2016, 20:14
Sì esatto. ryo

ryo
08-02-2016, 20:51
Ok!
A che distanza dal fulcro della cerniera attraversa la tavoletta di legno?
A 29,106cm?
Marcello

Federico_ms
08-02-2016, 21:01
No. Sono 27. 5 cm
Se leggi nella spiegazione dei passaggi spiego anche a come arrivo a quella misura :weeabooface:

ryo
08-02-2016, 21:30
Avevo letto, ma volevo averne conferma, visto che, da come ho capito, vorresti regolare il motorino per fargli eseguire una rotazione completa al minuto della barra al fine di compensare il moto terrestre.
A quella distanza (27,5cm), con quella barra, per compensare il moto terrestre, la rotazione non può essere di un giro al minuto.
Marcello

Federico_ms
08-02-2016, 21:56
Hai ragione!!!
Grazie non ci avevo pensato! A conti fatti mi esce fuori 56.689 secondi ogni giro...
Correggimi se sbaglio e confermami se dico giusto ryo
In effetti c era qualcosa che non mi tornava. Quando mi calcolavo i giri mi usciva o 56 e qualcosa al giro ( quella giusta, alla quale stupidamente non avevo pensato) o più di un minuto.

ryo
08-02-2016, 22:01
Figurati, volevo solo essere certo dei tuoi dati.
Per l' "alzo" dato dal passo (1,270mm) della tua barra da 1/4", per compensare il moto terrestre con un giro al minuto, dovresti distanziare fulcro e foro (foro da cui passa la barra) di 29,106cm.
Marcello

ryo
08-02-2016, 22:05
...o dovresti impostare una rotazione diversa al minuto (non il giro singolo completo) per compensare il differente alzo dato dall'utilizzare quel passo (1,270mm) alla distanza inferiore (27,5cm).
Marcello

Federico_ms
08-02-2016, 22:20
Sì faccio prima ad impostare un tempo diverso.
Se per fare un giro al minuto la distanza tra buco e asse della cerniera deve essere di 29.106 cm allora....
29.106 : 60 (secondi al giro) = 27.5 : T (secondi al giro)
T=56,689 secondi ogni giro
Giusto? ryo

ryo
08-02-2016, 22:38
Avendo lo stesso passo (1,270), ma ad una distanza inferiore a quella "corretta" (adatta cioè per il classico un giro al minuto), il tuo problema è che, in un minuto, compiendo un giro completo, l'alzo è eccessivo.
Facendo compiere un giro in 56,... alzeresti ancora di più, penso.
Dovresti fare in modo da fargli compiere 340, ... gradi di giro al minuto e non 360 (giro completo), credo...
Quindi in 63,5... secondi il giro completo di 360 gradi
Marcello

Federico_ms
08-02-2016, 22:56
Giusto hai ragione.
Grazie mille!

ryo
08-02-2016, 22:58
Di nulla.
Marcello

Federico_ms
10-02-2016, 20:58
Ragazzi ho un problema. Non riesco a capire quale numero devo mettere nel programma. Se metto 11 va troppo piano (un giro ogni 1.07 minuti) e se metto 10 troppo veloce (1 giro al minuto o poco meno). Arrivo ai decimali e cerco di ridurre l intorno in cui lavorare sul numero è. .. a una cifra decimale è ancora troppo e a quella successiva è poco... ma come è possibile? ????
Dovrebbe fare un giro ogni 1.3 minuti xome suggerito da Marcello.
Ho perso un ora e mezza e momenti lo prendo a calci quel coso

Gianluca97
10-02-2016, 21:24
Allora se non ricordo male quel motore ha 64 step, con un riduttore di circa 64 ( cerca il dato preciso), quindi raggiungiamo circa 4076 step per fare un giro completo. Tu devi fare un giro ogni 78 secondi quindi devi fargli compiere circa 52 step al secondo, quindi uno step ogni circa 19ms. Se non ho dimenticato niente quel valore, cerca di farlo il più preciso possibile, dovrebbe corrispondere al tuo delaytime.

Per capire bene, per ogni tuo pezzo di programma prima di un delay corrisponde uno step solo, oppure una serie di step? Non conosco bene il motore.

Gianluca97
10-02-2016, 21:36
Allora credo di aver sbagliato qualcosa prima, però ho trovato questa interessante libreria di arduino
http://www.lucadentella.it/2012/12/01/stepper-kit-per-arduino/

Prova a darci un'occhiata, vista la semplicità del lavoro che devono fare i tuoi motori può essere comoda secondo me

Federico_ms
10-02-2016, 21:45
Mh non 78 secondi ogni giro della ruota dentata ma 63.5 ogni giro della ruota dentata per ciò che abbiamo detto nei messaggi precedenti con Marcello.
Il motore passo passo funziona a step nel senso che gli mandi la corrente a scatti praticamente è questo eccita i vari elettromagneti che fanno girare l albero. La corrente che mandi a scatti la mandi ogni TOT millisecondi e quei TOT millisecondi sono il delay time nel codice. Quei 4 MotorPin che vedi sono solo gli ingressi del driver uln2003. Quindi si: prima di ogni delay time c'è uno step (uno per ognuno dei 2 motori).
Con delaytime 6 fa un giro ogni 37 secondi

Gianluca97
10-02-2016, 21:50
Ok adesso mi torna tutto, mi ero perso i 63.5sec, allora basta modificare i miei conti per questi secondi. Comunque non sottovalutare la libreria stepper.h di arduino, secondo me con quella setti i comandi setspeed () e step () per il tuo caso e al resto ci pensa il software e il driver.

Federico_ms
10-02-2016, 21:53
Interessante... finiti gli esami do uno sguardo. Pensavo di riuscire con il mio programma ma sto impazzendo con i numeri decimali :hm:
Edit
Quindi quanto metto di delay time?

Federico_ms
11-02-2016, 09:10
Ho dato uno sguardo al codice che mi hai linkato. Allora, sembra molto semplice e credo che neanche dovrei impazzire! Se ho ben capito basta che gli dico quanti giri fare al minuto (0.94 nel mio caso) e poi fa tutto lui.... così è facile. Dopo provo.
L unico dubbio è : lui mette un delay. Ma lo mette solo a scopo illustrativo per far fare una piccola pausa tra un cambio di giro e l altro (fa cambiare la direzione di rotazione con il - davanti). In teoria nel mio loop devo solo scrivere
Mystepper step (2048)
Giusto?

Gianluca97
11-02-2016, 14:25
Credo che usare la libreria sia la cosa più semplice visto che deve solamente ruotare in continuazione ad una determinata velocità. Secondo me basta che metti nel void loop la funzione setSpeed impostando il valore che hai detto. Mystepper devi mettere (numero step per compiere un giro che nel tuo caso credo siano 2048,2,3,4,5) così dovrebbe funzionare altrimenti cambia la sequenza dei pin, comunque in rete trovi tutte le soluzioni.
Prova, è il bello di arduino, servono 2 minuti per cambiare qualcosa ;) po facci sapere se funziona.

UmbyWanKenobi
13-02-2016, 18:42
Ho dato uno sguardo al codice che mi hai linkato. Allora, sembra molto semplice e credo che neanche dovrei impazzire! Se ho ben capito basta che gli dico quanti giri fare al minuto (0.94 nel mio caso) e poi fa tutto lui.... così è facile. Dopo provo.
L unico dubbio è : lui mette un delay. Ma lo mette solo a scopo illustrativo per far fare una piccola pausa tra un cambio di giro e l altro (fa cambiare la direzione di rotazione con il - davanti). In teoria nel mio loop devo solo scrivere
Mystepper step (2048)
Giusto?

Salve,
anch'io sto progettando un astroinseguitore motorizzato da Arduino. Sto sperimentando l'uso del controller EasyDriver 4.4 basato sull'integrato IC A3967 che consente di suddividere un singolo step di un passo-passo in ben 8 microstep semplicemente modulando due porte. Quindi ben 1600 microstep per giro con un comune NEMA 17 da 1.8° come prevedo di usare io.
Spero che la mia dritta possa esserti d'aiuto. :-)

Federico_ms
15-02-2016, 15:54
Purtroppo questi giorni non ho tempo da dedicare alla mia costruzione. Verso fine mese proverò ad usare la libreria stepper come consigliato da Gianluca. Nel caso non funzionasse valuterò il tuo suggerimento.
Grazie! UmbyWanKenobi

etruscastro
15-02-2016, 17:08
UmbyWanKenobi è gradita una presentazione in sezione di benvenuto! ;)

Gianluca97
15-02-2016, 17:22
Occhio però perchè l'easy driver 4.4 gestisce solo motori bipolari da quanto ho letto, mentre il tuo, credo sia il 28bjy-48, è un motore unipolare, a 5 fili che non può essere gestito da quel tipo di driver, a meno di fare una piccola modifica ai collegamenti interni del motore interrompendo il collegamento comune tra le due bobine. se devi optare per questa scelta (anche se personalmente non lo farei) allora ti consiglio il driver Pololu a4988, più compatto e gestisce fino a 1/16 di passo.

UmbyWanKenobi
15-02-2016, 17:33
UmbyWanKenobi è gradita una presentazione in sezione di benvenuto! ;)

Me n'ero proprio dimenticato, scusatemi. Ho appena rimediato :-)

UmbyWanKenobi
15-02-2016, 18:08
Occhio però perchè l'easy driver 4.4 gestisce solo motori bipolari da quanto ho letto, mentre il tuo, credo sia il 28bjy-48, è un motore unipolare, a 5 fili che non può essere gestito da quel tipo di driver, a meno di fare una piccola modifica ai collegamenti interni del motore interrompendo il collegamento comune tra le due bobine. se devi optare per questa scelta (anche se personalmente non lo farei) allora ti consiglio il driver Pololu a4988, più compatto e gestisce fino a 1/16 di passo.

Giusto. Ogni progetto ha le sue peculiarità hardware e su di quello occorre poi studiare la configurazione migliore possibile. Spero che Federico_ms non si offenda se mi aggiungo alla sua conversazione anziché avviarne un'altra; potremmo entrambi trarre vantaggio dalle esperienze dell'altro. :-)

Federico_ms
02-05-2016, 17:08
Buonasera a tutti!
Ho modificato leggermente l inseguitore. ..ho fatto scomparire tutti quei fili da li sotto e li ho messi in una scatola che ho fatto con del plasticglass. Così non c'è rischio di staccare accidentalmente i fili. Per arduino ho fatto un buco sulla scatola che mi permette di collegarlo con l usb agevolmente.
La vernicerò nera credo:weeabooface:

17654

17655

UmbyWanKenobi
04-05-2016, 10:12
Buonasera a tutti!
Ho modificato leggermente l inseguitore. ..ho fatto scomparire tutti quei fili da li sotto e li ho messi in una scatola che ho fatto con del plasticglass. Così non c'è rischio di staccare accidentalmente i fili. Per arduino ho fatto un buco sulla scatola che mi permette di collegarlo con l usb agevolmente.
La vernicerò nera credo:weeabooface:

Bel lavoro! Complimenti!
Io invece sto ripensando tutto in ottica GoTo. In fondo basta allinearsi al campo magnetico corretto per la deviazione dal polo e conoscere l'esatta longitudine che l'allineamento alla Polare è automatico. Poi ho preso un motore Nema17 demoltiplicato 100 a 1 che messo in asse polare guiderà direttamente la testa fotografica. Così evito la rottura della parallasse :-)

Federico_ms
04-05-2016, 10:36
Potrebbe essere molto interessante!
Facci sapere come procede:biggrin: UmbyWanKenobi

gregorio95
12-08-2018, 11:14
Ciao, è pòssibile utilizzare una barra filettata M8 con passo 1mm,al posto di quella 1/4″ con passo 1,27mm ? Posso adattare il programma di Arduino in modo che la mia barra filettata M8 compia 1,27mm per riprodurre il passo 1,27 mm della barra filettata whitworth da te utilizzata ?

Inviato dal mio ONEPLUS A6003 utilizzando Tapatalk