Costruiamo un astroinseguitore motorizzato con Arduino Uno


Ciao ragazzi e bentornati qui su S.V. Design per un nuovo tutorial tecnologico ed in questo caso anche fotografico.

Ciò che vi presento oggi è un astroinseguitore motorizzato: una tavoletta equatoriale che ci permette di inseguire il moto celeste apparente, per permetterci di fotografare le stelle senza dover sottostare alla regola del 600.

WP_20150221_018

Come funziona una tavoletta equatoriale?

Semplicemente si gioca sulla corrispondenza quasi precisa della stella polare con il nord celeste, e grazie ad una serie di meccanismi (nel nostro caso cerniere), si emula la rotazione terrestre compensandola.


 

Come inquadro la stella polare?

Bisogna portare la tavoletta ad una declinazione (inclinazione verticale) pari ai gradi di latitudine del punto in cui ci si trova (nel nostro caso ci aiuteremo con un goniometro), e poi muoverci orizzontalmente cercando la stella polare, ovvero l’ultima stella dell’orsa minore.

 

Quanto spenderò per tutto il progetto?

All’interno del tutorial è spiegata una procedura manuale ed una motorizzata: la prima porterà via intorno alle 20€, mentre la seconda intorno alle 40€.

 

Ringraziamenti

Ringrazio Manuel Montesano (ideatore del progetto iniziale dell’astroinseguitore manuale di cui vedrete alcune foto anche qui), e Michele Sella che mi ha stampato gli ingranaggi.

 

Costruzione della tavoletta

Cosa ci serve:

  • 3 tavolette di legno da 15x32cm
  • 3 cerniere di metallo da 8cm con viti da legno
  • 1 barra filettata da 1/4″ – 20 filetti per pollice (www.novarametalli.iteBay)
  • 5 o 7 dadi da ordinare insieme alla barra filettata (5 per la versione manule, e 7 per la versione motorizzata)
  • 2 rondelle di metallo con foro da 6mm
  • 1 cd-rom
  • 1 punta da legno per trapano da 10
  • Colla a caldo, forbici, martello, e qualsiasi altro strumento per modellare il legno.

Parte motorizzata:

  • Arduino uno
  • Motore passo passo a 5v con relativo driver ULN2003
  • Mini-breadboard
  • Cavi per breadboard
  • Cavo usb per arduino

 

WP_20150207_002

Numeriamo le 3 tavolette, e ritagliamo dalla prima 4cm dal lato corto.

Pratichiamo un foro al centro di questa tavola, e con l’aiuto del martello e della colla a caldo, incastriamoci uno dei dadi.

Successivamente provate ad avvitare la tavola sul vostro cavalletto per vedere se sta ferma.

Ora pratichiamo un altro foro su uno dei bordi di questa tavola, incastrando sempre un dado al suo interno.

post-125176-1389994785

In quest’ultimo foro, andremo a inserire un pezzo della barra filettata in modo da poter regolare l’inclinazione del nostro astroinseguitore.

Prendiamo ora la tavola numero 2 e pratichiamo un foro al centro vicino al bordo alto della tavola (dobbiamo incastrare anche qui un dado).

Ora è il momento di fissare le 3 cerniere.

Prendiamo la tavoletta numero 1, e fissiamo 2 cerniere sul bordo lungo da unire alla tavoletta numero 3 (come nel disegno qui sotto)

 

post-125176-1389995100

Le due tavolette unite, vanno fissate sul bordo sinistro della tavoletta numero 2 per mezzo dell’ultima cerniera rimasta.

WP_20150209_004

Pratichiamo ora l’ultimo foro sulla tavoletta numero 2, ad esattamente 290mm dal perno della cerniera appena messa.

Prendiamo la striscia da 4 cm tagliata all’inizio del tutorial, tagliatela a metà e sagomatela a forma di freccia della grandezza del CD-Rom.

Tracciamo ora il contorno di un CD-Rom su un foglio di carta bianca, e con l’aiuto di un goniometro, disegnamo un trattino ogni 6° fino a formare una specie di orologio, da incollare poi sul CD-Rom stesso.

WP_20150209_003

Inseriamo ora nel foro a 290mm dal perno della terza cerniera, un altro pezzo di barra filettata e cerchiamo di far in modo che la barra ed il dado nel foro facciano gioco orizzontalmente.

Dalla parte superiore della barra inseriamo il CD-Rom ed incolliamo la freccia sulla barra filettata.

Dalla parte inferiore invece dobbiamo calcolare dove poggia la barra, ed in quel punto preciso incolleremo le 2 rondelle in modo da formare una guida.

WP_20150220_002

Il risultato finale della versione manuale dovrebbe essere il seguente:

post-125176-1389995801

 

Passiamo ora a motorizzare il tutto per ottenere maggiore precisione e stabilità!

Sulla parte inferiore della barra dove è presente l’orologio, inseriamo un dado poi l’ingranaggio grande e poi un altro dado.

Avvitiamo i due dadi contro l’ingranaggio assicurandoci di lasciare sotto all’ultimo dado, circa 5mm di barra filettata visibile che andrà ad incastrarsi nelle rondelle fissate precedentemente.

Con la metà della striscia di legno di 4 cm rimasta, intagliamo un alloggio per il motore sul quale inseriremo l’ingranaggio piccolo da far combaciare al grande.

WP_20150220_009

Fatto ciò, pensiamo ad un posto in cui alloggiare la breadboard ed Arduino Uno.

Prima di fissarli però, testiamo il funzionamento del motore installando il software di arduino (www.arduino.cc) ed eseguendo il seguente collegamento:

ArduinoUno_R3_Front

  • Arduino collegato via USB al PC
  • Colleghiamo il pin con l’etichetta 5V, sul polo di alimentazione positivo della breadboard.
  • Il pin con l’etichetta GND invece andrà sul polo negativo.

400px-ULN2003_stepper_driver

Colleghiamo ora il driver in foto sulla breadboard, e con degli altri cavi colleghiamo il pin contrassegnato con l’acronimo VDD, al polo positivo della breadboard. Mentre GND andrà sempre al negativo.

Infine colleghiamo i 4 ingressi del driver, ai pin di arduino: Pin 8 ad ingresso 4, pin 9 ad ingresso 3, pin 10 ad ingresso 2, e pin 11 ad ingresso 1.

Ovviamente il motore va collegato tramite l’apposito spinotto, al driver.

WP_20150220_007

Collegato il tutto, apriamo il software per gestire la programmazione di Arduino.

Copiate il codice qui di seguito:

int motorPin1 = 8;
int motorPin2 = 9;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime = 6;
// the setup function runs once when you press reset or power the board
void setup() {
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
} 

// the loop function runs over and over again forever
void loop() {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(delayTime); 

digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(delayTime); 

digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime); 

digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(delayTime);
}

Per velocizzare il motore ci basta cambiare il numero associato alla variabile delayTime (attualmente è 6).
Numero maggiore = motore più lento, numero minore = motore più veloce.

Una volta caricato il codice in arduino tramite il pulsante “Carica”, arduino lo memorizzerà e quindi il software non ci servirà più.

Come si utilizza l’astroinseguitore?

Dopo aver inquadrato la stella polare in corrispondenza della cerniera sulla tavoletta numero 2, giriamo la barra filettata fino a farle compiere un giro completo al minuto. Il codice di arduino è calcolato appositamente, ma potrebbe variare a causa del peso del legno utilizzato.

 

Test

Ho effettuato questo test girando manualmente gli ingranaggi perché ancora dovevano consegnarmi il motore, utilizzando un 105mm e scattando con un tempo di esposizione di ben 30 secondi. Ho inquadrato il nord celeste senza precisione ed ho ritardato di 5 secondi la rotazione perché ho sbagliato a contare i secondi… eppure guardate la differenza da senza inseguitore a con inseguitore:

con-senza

Video-tutorial

Potreste aver bisogno di vedere in video come posizionare il tutto, perciò ho fatto anche un video tutorial nel quale vedrete il progetto finito e le spiegazioni passo passo.



13 Commenti

  1. Dario Benevento ha detto:

    Ciao! Bel progettino! Ma dove compri gli ingranaggi? E in che materiale sono fatti?

  2. Claudio ha detto:

    Salve..ma le barre filettata devono essere per forza di quel diametro e con passo fotografico? O può andare bene qualsiasi passo e diametro? Grazie

  3. Luigi ha detto:

    Ciao e complimenti per il progetto!
    Volendo usare un puntatore laser per aiutare nel puntamento della Polare, cosa consiglieresti?
    Grazie

  4. Francesco ha detto:

    Il codice genera un errore e non funziona.

    Questo l’errore:

    sketch_jul18b.ino:1:6: note: ‘void setup()’ previously defined here
    void setup() {
    ^
    exit status 1
    stray ‘\302’ in program

    • Stefano Venneri ha detto:

      Ciao,
      come dice l’errore stesso “void setup()’ previously defined here”.

      Ovvero non hai cancellato il codice iniziale quando hai copiato il mio, e c’è 2 volte il setup nel codice.

      • Francesco ha detto:

        Vero, ma l’errore deriva da una schermata all’interno del video.

        Adesso tutto funziona bene.

        Volendolo migliorare, si potrebbe fare in modo che il motore parta in sincrono con lo scatto in modo da avere una migliore sincronizzazione. A ciò si potrebbe aggiungere un pulsante di accensione (ON/OFF) per l’accensione del motore.

  5. Francesco ha detto:

    Salve, ho notato alcune mancanze nel progetto.

    1) La lunghezza delle barre che sono montate sulle tavolette.

    2) Il diametro degli ingranaggi.

    Grazie per la risposta

    • Stefano Venneri ha detto:

      Salve,
      la lunghezza della barra è ininfluente dal progetto.
      Una barra serve ad alzare l’arco, l’altra a puntare… la lunghezza è a piacere purche siano abbastanza lunghe da puntare la stella polare (per una) e da fare qualche minuto di inseguimento (l’altra).

      Il diametro degli ingranaggi è ininfluente anche, servono solo per fare coppia e far girare la barra, bisogna regolare la velocità del motore affichè faccia un giro al minuto, quindi anche con ingranaggi diversi, basta agire sul motore.

      • Francesco ha detto:

        Grazie.
        Quindi 30 cm di barra dovrebbero essere sufficienti?

      • Enrico ha detto:

        Ciao Francesco, molto interessante quanto hai fatto. Anche io sto cercando di autocostruire un semplice astroinseguitore. Ho, però, un paio di dubbi:

        1) facendo girare il motore passo passo ad 1 giro/min, per ottenere 1 giro/giorno dell’inseguitore, si deve demoltiplicare di 1440 volte il movimento, ma dal rapporto tra gli ingranaggi che hai usato, demoltiplichi di max 10 volte… cosa sto sbagliando nel ragionamento, non mi torna.

        2) che motore devo scegliere, puoi indicarmi marca e modello? il driver è un microstepper?

        Grazie

%d blogger hanno fatto clic su Mi Piace per questo: