Astroinseguitore: prove tecniche di programmazione di Arduino

Il mio amore per la scienza – e l’astronomia in particolare – mi è stato di stimolo per apprendere – e anche sperimentare – un’infinità di cose tra loro molto diverse. In gioventù toccò alla elettronica applicata alle onde radio 1 che mi avvicinò anche al mondo radioamatoriale. Poi fu la volta dei computer e della loro capacità di elaborazione (fondamentale in astronomia) ad attirare la mia attenzione. E se è vero che la vecchiaia è una seconda gioventù, alla soglia dei cinquanta non devo farmi cogliere impreparato.

Lo schema da me usato per il circuito di test. Credit: Il Poliedrico.

Lo schema da me usato per il circuito di test.
Credit: Il Poliedrico.

Progettare un astroinseguitore (o tavoletta equatoriale) pone dei limiti progettuali piuttosto importanti, di cui il principale è senz’altro l’errore tangenziale nella velocità di guida che rischia di vanificare la bontà di qualsiasi buon lavoro di costruzione.
Per questo ho scelto di pilotare il motore con un sistema che fosse programmabile. Così posso decidere se, quando e quanto variare la velocità del braccio pilota. Ma essendo io quasi a digiuno di elettronica, di controllori programmabili e di robotica, da buon sperimentatore ho deciso di addentrarmi anche in questo campo, armato del buon spirito da autodidatta che da sempre mi si confà 2
Poter programmare una scheda come in questo caso un Arduino UNO R3 (clone) non è difficile; i programmi sono piuttosto semplici da leggere per chi sa programmare in C, anche a livello elementare.
Qui in fondo troverete lo sketch (si chiamano proprio così i programmi scritti per Arduino) infarcito ben bene di commenti 3 per rendere meglio l’idea su come esso funzioni. In pratica il programma istruisce Arduino a leggere lo stato di alcune porte per vedere se viene premuto un qualsiasi tasto e in tal caso accendere o spegnere il LED corrispondente, pilotato questo dalla commutazione di un’altra porta digitale della scheda.
Può apparire, ed in effetti lo è, un’operazione piuttosto banale ma comprendere come cambiare stato logico ad una porta digitale, poterne pilotare gli effetti (in questo caso accendere un LED) e come funziona tutta la circuiteria elettronica di contorno, non è poi così ovvio. Al posto dei LED potremmo scegliere di fare un’altra cosa, come azionare un motorino elettrico, controllarne la direzione e la velocità di rotazione. Oppure accendere una luce di casa, controllare una tapparella o ruotare una cupola di un osservatorio astronomico. Le possibilità sono infinite.

I materiali usati per il circuito descritto in questo articolo:

  • una bread board (basetta sperimentale senza saldature) da 400 reofori.
  • 4 resistenze da 1 kΩ 1/2 W.
  • 4 pulsanti n.a. (normalmente aperti) del tipo SMD/SMT a 4 pin.
  • 4 diodi LED di recupero.

Questi sono materiali poveri, incluso il costo di una scheda clone di Arduino UNO R3, che per le prove va più che bene, in totale sono appena 10 euro, tutto sommato una cifra davvero ridicola.
Spero così di stuzzicare la vostra curiosità così come è stata solleticata la mia, cieli sereni.

[code language=”arduino”]
#define LED1 9 // Led 1 collegato alla porta digitale 9
#define LED2 10 // Led 2 collegato alla porta digitale 10
#define LED3 11 // Led 3 collegato alla porta digitale 11
#define LED4 12 // Led 4 collegato alla porta digitale 12
#define PULSANTE1 1 // Pulsante 1 collegato alla porta digitale 1
#define PULSANTE2 2 // Pulsante 2 collegato alla porta digitale 2
#define PULSANTE3 3 // Pulsante 3 collegato alla porta digitale 3
#define PULSANTE4 4 // Pulsante 4 collegato alla porta digitale 4

int porta1 = 0; // Azzera la variabile per la porta digitale 1
int porta2 = 0; // Azzera la variabile per la porta digitale 2
int porta3 = 0; // Azzera la variabile per la porta digitale 3
int porta4 = 0; // Azzera la variabile per la porta digitale 4

void setup() { // Inizializza il programma
pinMode(LED1, OUTPUT); // Attribuisce lo stato di scrittura alla porta digitale 9
pinMode(LED2, OUTPUT); // Attribuisce lo stato di scrittura alla porta digitale 10
pinMode(LED3, OUTPUT); // Attribuisce lo stato di scrittura alla porta digitale 11
pinMode(LED4, OUTPUT); // Attribuisce lo stato di scrittura alla porta digitale 12
pinMode(PULSANTE1, INPUT); // Attribuisce lo stato di lettura alla porta digitale 1
pinMode(PULSANTE2, INPUT); // Attribuisce lo stato di lettura alla porta digitale 2
pinMode(PULSANTE3, INPUT); // Attribuisce lo stato di lettura alla porta digitale 3
pinMode(PULSANTE4, INPUT); // Attribuisce lo stato di lettura alla porta digitale 4
}

void loop() { // Avvia il ciclo principale
porta1 = digitalRead(PULSANTE1); // Legge lo stato del pulsante 1 e lo assegna alla variabile porta1
porta2 = digitalRead(PULSANTE2); // Legge lo stato del pulsante 2 e lo assegna alla variabile porta2
porta3 = digitalRead(PULSANTE3); // Legge lo stato del pulsante 3 e lo assegna alla variabile porta3
porta4 = digitalRead(PULSANTE4); // Legge lo stato del pulsante 4 e lo assegna alla variabile porta4

if (porta1 == HIGH) { // Se lo stato letto prima è ALTO allora
digitalWrite(LED1, HIGH); // accendi il led 1
} else { // altrimenti
digitalWrite(LED1, LOW); // spegni il led
}
if (porta2 == HIGH) { // Se lo stato letto prima è ALTO allora
digitalWrite(LED2, HIGH); // accendi il led 2
} else { // altrimenti
digitalWrite(LED2, LOW); // spegni il led
}
if (porta3 == HIGH) { // Se lo stato letto prima è ALTO allora
digitalWrite(LED3, HIGH); // accendi il led 3
} else { // altrimenti
digitalWrite(LED3, LOW); // spegni il led
}

if (porta4 == HIGH) { // Se lo stato letto prima è ALTO allora
digitalWrite(LED4, HIGH); // accendi il led 4
} else { // altrimenti
digitalWrite(LED4, LOW); // spegni il led
}
}
[/code]


Note:

Costruire un astroinseguitore: le scelte

Era da molto che mi ero riproposto di prendere in mano un vecchio argomento, la costruzione di un astroinseguitore, o tavoletta equatoriale, se preferite.
Lo dico, ho una manualità da far schifo ma tanti buoni propositi e tante idee. Forse ne uscirà qualcosa di buono.

RISO.II = distanza tra il fulcro del braccio pilota (rosso) e la vite motrice (giallo) lungo la base portante (grigio). B = distanza tra punto di contatto del braccio pilota con il braccio della fotocamera (blu) e il suo fulcro. C = distanza tra i fulcri dei due bracci lungo la base portante.

RISO.II = distanza tra il fulcro del braccio pilota (rosso) e la vite motrice (giallo) lungo la base portante (grigio).
B = distanza tra punto di contatto del braccio pilota con il braccio della fotocamera (blu) e il suo fulcro.
C = distanza tra i fulcri dei due bracci lungo la base portante.

Ho deciso di passare ai fatti. Per il progetto di un astroinseguitore ho scelto quella che senz’altro dal punto di vista tecnico presenta più difficoltà, la soluzione a doppio braccio per annullare gli errori di tangente presenti – o in agguato – nelle soluzioni a braccio singolo. In pratica si tratta di un braccio di alzata motorizzato su cui semplicemente appoggia un secondo braccio che si muove sotto la spinta del primo.
Ma prima di passare alla costruzione della complessa struttura mi sono messo a studiare cosa occorre per muovere tutto e rendere il più automatico possibile i diversi processi, dal movimento equatoriale motorizzato alla gestione da remoto delle immagini. Qui serve un sistema che consenta di scattare più fotogrammi da diversi secondi fino ad alcuni minuti consecutivamente mentre il braccio dinamico guida la fotocamera nel percorso apparente del cielo senza sbavature. Potrebbe in questo caso bastare un banalissimo telecomando remoto magari in radiofrequenza, ce ne sono di molto validi e abbastanza economici in commercio – come l’ottimo Pixel TW-282TX, io stesso ne ho uno – ma perché non gestire tutto con un unico sistema?
Per automatizzare il movimento 1 ho pensato – come già avevo anticipato nei precedenti articoli – ho pensato ad un motore passo-passo, ideale per tutte quelle applicazioni che richiedono precisione nello spostamento angolare e nella velocità di rotazione; infatti vantano un ampio arco di impieghi, dalla robotica fino alle montature dei telescopi.
Per pilotare un motore passo passo occorrono diversi impulsi consecutivi in corrente continua, non è quindi possibile farli girare applicandovi una semplice tensione. Però con un circuito digitale che invia impulsi con una specifica frequenza è possibile guidarne il funzionamento e anche la velocità senza ricorrere a complicati meccanismi di demoltiplica. Una struttura hardware del genere che non richiede eccessive conoscenze ingegneristiche esiste già e si chiama Arduino.

Una scheda Arduino sormontata da un display LCD 1602 (16 caratteri per 2 righe) Credit: Il Poliedrico

Una scheda Arduino sormontata da un display LCD 1602 (16 caratteri per 2 righe)
Credit: Il Poliedrico

Arduino è una piattaforma hardware nata nel 2005 a Ivrea, Italia, come progetto open-source  a basso costo per gli studenti della facoltà di Interaction Design Institute Ivrea [cite]https://goo.gl/ZSyuLR[/cite]. Nonostante che l’istituto in sé non esista più, negli anni il progetto si è sviluppato e, grazie all’idea iniziale Open Source, è stato possibile progettare e creare una miriade di dispositivi hardware aggiuntivi e schede logiche a costi irrisori. Di conseguenza anche la comunità intorno a quest’idea è cresciuta allo stesso modo. Oggi si possono trovare progetti che con una singola scheda Arduino e pochi altri componenti di contorno fanno di tutto: dall’automazione degli irrigatori da giardino a stazioni meteorologiche complesse gestibili da remoto, dall’automazione casalinga alla robotica industriale e alla prototipizzazione di sistemi complessi. Di suo la scheda non fa poi molto, se non quello di mettere a disposizione alcune porte digitali e analogiche in ingresso e uscita. Ma la sua incredibile potenza deriva dalla straordinaria capacità di essere interamente programmabile con un linguaggio che deriva direttamente dal celebre C, addirittura. È questo che la rende un eccellente strumento, può addirittura eseguire dei calcoli matematici.
Di fronte a cotanta flessibilità la mia scelta di affidarmi ad Arduino per questo progetto mi è apparsa naturale. Ora non mi resta che sperimentare (ahi! il metodo galileiano anche qui) le varie soluzioni e vedere cosa ne esce. Spero che siano rose!
Cieli sereni.

(continua)


Note:

Fotografare il cielo: l’astroinseguitore (2a parte)

Prosegue il ciclo dedicato allo studio della tecnologia degli astroinseguitori speriando che possa in futuro suscitare interesse anche presso la Comunità degli autocostruttori italiani.
La fonte principale di questa puntata è ripresa dalla pagina inglese di Wikipedia.

 

I vari schemi apparsi su Sky & Telescope nel 1988

Fig. 1
I vari schemi apparsi su Sky & Telescope nel 1988

Lo scopo di un astroinseguitore è quello di muovere una macchina fotografica con la stessa velocità con cui si muove la volta celeste senza per questo usare, o comprare,  una costosa montatura equatoriale. I motivi di questa scelta possono essere i più disparati: si può immaginare che tra i più comuni vi siano l’ingombro, la facilità di stazionamento, il costo, etc.
L’unica cosa da tenere sempre ben presente è che anche un astroinseguitore richiede il puntamento preciso del suo asse verso il Polo Nord Celeste esattamente come una qualsiasi altra montatura equatoriale da telescopi. 
Non starò a ripetere la storia di questo strumento, per cui come ho promesso, adesso un po’ di teoria. 

 

Scotch_mount

Fig. 2

Qui è rappresentato lo schema più semplice, detto a braccio singolo e vite senza fine verticale, o tangente all’asse di rotazione sul cardine. Il problema è che questo schema introduce degli errori nella velocità angolare tanto più ci si discosta lungo la tangente teorica dalla circonferenza immaginaria del cerchio di raggio Rtan.
La precisione di inseguimento non supera i 5 – 10 minuti a basse focali (< 50 mm), il che non lo rende affatto adatto per pose a lunga esposizione e grandi obiettivi.

Isoscele-mount

Fig. 3

Una parziale soluzione è questa con la vite senza fine montata di sghembo, seguendo una linea secante tra i due vertici della vite e il cerchio immaginario Riso. in questo modo la deviazione tra la velocità angolare dello strumento e la velocità siderale sarà molto ridotta rispetto al primo schema, ma non nulla. La massima deviazione si avrà attorno alla metà corsa della vite per poi di nuovo ridursi verso la fine. Con questa configurazione si possono raggiungere fino a circa 20 minuti di esposizione sempre con basse focali.

Curved_rod_mount

Fig. 4

Come si sarà intuito, la soluzione migliore per uno schema a singolo braccio è quello di curvare la vite secondo una circonferenza di raggio Rarc. In questo modo ogni errore introdotto dalla linearità della vite dei modelli precedenti decade[cite]http://www.garyseronik.com/?q=node/52[/cite].
Con un’accurata sincronia col moto celeste, questa configurazione può virtualmente estendere all’infinito il tempo di esposizione; in pratica, errori nella creazione dell’asta curva e nella velocità dell’asta possono vanificare la bontà di questa soluzione.

Double-arm-mount

Fig. 5

Una novità introdotta nel 1988 da Dave Trott e pubblicata su Sky & Telescope fu la soluzione a doppio braccio, che a fronte di una maggiore complessità di progettazione e realizzazione rispetto ai modelli precedenti qui sopra illustrati, la precisione nell’inseguimento è molte volte superiore, permettendo di ottenere addirittura tempi di esposizione di oltre un’ora.  In sostanza un secondo braccio mobile semplicemente appoggiato al primo consente quel grado di libertà necessario per trasformare il movimento lineare della vite senza fine in movimento circolare su cui appoggia la fotocamera. 

Era quel salto qualitativo che gli astrofili che non potevano permettersi una vera montatura equatoriale da tanto attendevano; a quei tempi non erano disponibili reflex a CCD così economiche come oggi e per il profondo cielo si usavano ancora pellicole ed acidi. Era frustrante scoprire che il lavoro di una notte era stato inutile.

[table “60” not found /]

Questa tabella mostra l’errore di inseguimento in secondi d’arco calcolata per gli schemi proposti dalla rivista Sky & Telescope nel 1988 e visibili qui all’inizio dell’articolo (Fig. 1).
Il quarto schema  a doppio braccio consente, in via del tutto teorica s’intende, di arrivare fino a 75 minuti di esposizione senza che l’errore apparente superi il secondo d’arco.  Per questo infatti è l’approccio più studiato oltre a quello del braccio singolo e vite curva (Fig. 4), costruttivamente più semplice.

Fig. 5a
RISO.II = distanza tra il fulcro del braccio pilota (rosso) e la vite motrice (giallo) lungo la base portante (grigio).
B = distanza tra punto di contatto del braccio pilota con il braccio della fotocamera (blu) e il suo fulcro.
C = distanza tra i fulcri dei due bracci lungo la base portante.

Osserviamo ora in dettaglio la figura 5a che rappresenta uno schema a doppio braccio di tipo 4, il più interessante. In questo schema il braccio pilota nella configurazione a isoscele aziona un secondo braccio su cui è montata la fotocamera. Esperimenti degli astrofili americani su questo schema hanno evidenziato che esistono condizioni particolari in cui l’errore di inseguimento è ridotto al minimo. Queste si ottengono quando il rapporto (che potremo chiamare β) tra la lunghezza del segmento B  e la distanza dei  fulcri rosso e verde (segmento C) è tra 2 e 2,186. L’angolo $\Phi$ attraverso cui il braccio della fotocamera si muove è dato da:
Φ=Θ+arcsinsin Θβ

Caratteristiche_filettatura

Fig. 6

La distanza invece tra il fulcro e il braccio motorizzato (rosso) RISO.II stabilisce direttamente la velocità di inseguimento del sistema tenendo conto del passo della vite motrice e la sua rotazione espressa in giri al minuto. 
In Europa, dove vale il sistema metrico decimale, il passo (fig. 6) posseduto dalle barre filettate i commercio è espresso in millimetri. Una barra comune spendibile come esempio è la M6, dove 6 sta ad indicare il suo diametro medio, che è di 6 mm e ha il passo di 1,00 mm (vedi tabella).

[table “62” not found /]

I motori passo-passo per uso hobbistico sono perfetti per questo tipo di congegni. Un comune NEMA 1 [cite]http://www.circuitspecialists.com/stepper-motor[/cite] con micropassi da 0,9° 2 è l’ideale per pilotare un astroinseguitore. Si tratta di un motore passo-passo che richiede ben 400 singoli impulsi (360/0,9)  per completare un singolo giro e che quindi può garantire una precisione di movimento molto fine, fino a un quarto di secondo; molto più di quella che si potrebbe richiedere ad un progetto a così basso costo .
Tenendo conto della lunghezza del giorno siderale in minuti e decimali (23h 56m 4,1″), ossia 1436,068, la velocità dell’asta motrice in secondi (supponiamo per semplicità di calcolo di farle compiere un giro in 60 secondi) e il suo passo (in questo caso 1,00 mm), con questa equazione dovremmo ottenere il valore di RISO.II:

RISO.II=((passovite60secondi×giro)1436,0682π


RISO.II=(1,00 mm6060)1436,0682π=228,55 mm

A questo punto credo di aver detto molto sulla teoria che sta dietro a questi congegni. Adesso valuterò l’idea per la realizzazione pratica di un astroinseguitore a doppio braccio di tipo 4 come quello descritto in questo articolo. Se avete idee, suggerimenti o critiche, oppure volete dare il vostro aiuto alla realizzazione di questo progetto, vi invito ad usare la form direttamente qui sotto o a scrivere direttamente a : astroinseguitore_at_ilpoliedrico_dot_com. 

[contact-form][contact-field label=’Nome’ type=’name’ required=’1’/][contact-field label=’E-mail’ type=’email’ required=’1’/][contact-field label=’Sito web’ type=’url’/][contact-field label=’Commento’ type=’textarea’ required=’1’/][/contact-form]

 (continua)


Note:

Fotografare il cielo: l’astroinseguitore

La fotografia di panorami stellari è indubbiamente molto affascinante. Ma l’ostacolo principale è il moto stellare che rende questo tipo di riprese un po’ più complicato del solito. Ma basta un pelino di fantasia e la rotazione terrestre non è più un problema.

[latexpage]

 

Credit: yorkastr.oorg.uk

Un semplice astroinseguitore.
Credit: yorkastro.org.uk

A quanto ho visto in rete, l’autocostruzione di astroinseguitori non pare essere molto in voga tra gli astrofili italiani, che magari si affidano a strumenti commerciali non esattamente poco costosi per soddisfare questa esigenza. Invece pare essere stata piuttosto di moda oltreoceano dove, soprattutto ai tempi delle pellicole e camere oscure,  gli astrofili svilupparono interessanti soluzioni tecniche.
Un astroinseguitore autocostruito, in inglese barn door tracker, noto anche come  Haig o Scotch mount, è un dispositivo utilizzato per l’osservazione o la fotografia del cielo che consente di fare lunghe esposizioni del cielo notturno facendo ruotare lo strumento di ripresa alla stessa velocità della Terra, ma nella direzione opposta, in modo che il campo di vista rimanga sempre esattamente lo stesso durante tutta l’osservazione.
Si tratta di una semplice alternativa a cui collegare una macchina fotografica rispetto a una ben più costosa e ingombrante montatura equatoriale motorizzata. L’idea originale di questo strumento si deve probabilmente all’astronomo Donald Menzel di Harvard che fin dal 1930 organizzò spedizioni internazionali per osservare le eclissi solari. Un’eclissi solare totale non dura mai più di 7 minuti e per quel breve lasso di tempo la precisione di inseguimento di questo strumento è davvero eccellente. 
Adatto a qualsiasi latitudine, un astroinseguitore può portare la gamma più stravagante di strumenti di studio per un breve periodo (massimo un’ora per gli schemi più complessi a doppio braccio) senza il bisogno di contrappesi e ingombranti meccanismi. 
Nel mese di aprile 1975 la rivista americana Sky & Telescope pubblicò i disegni originali di un semplice astroinseguitore ideato da George Haig. Questo articolo scatenò l’interesse degli astrofili, i quali ben presto scoprirono e superarono i limiti di quel semplice progetto. Ulteriori versioni modificate di quello schema furono pubblicate nella stessa rivista nel mese di febbraio 1988 e nel giugno 2007.

 

(continua ….)