AstroFocus
Motorizzazione del fuocheggiatore con interfaccia ASCOM

Uno dei presupposti dell'osservazione remota o automatizzata è quello che tutte le operazioni necessarie alle riprese debbano essere svolte da servomeccanismi. Tra gli aspetti senz'altro essenziali vi è la messa a fuoco che può essere automatizzata grazie a dei software, FocusMax è forse il più conosciuto, in grado di trovare la posizione ideale del fuocheggiatore esaminando una serie consecutiva di scatti. Ovviamente perché questi programmi possano funzionare è necessario che la posizione del fuocheggiatore sia modificabile attraverso un motore e che questo possa avvenire con una buona precisione.

In commercio esistono diverse soluzioni hardware per ottenere quanto ci serve. Ad esempio sul telescopio del Gezz Observatory, il mio piccolo osservatorio remoto, è montato un fuocheggiatore servoassistito TCF-S della Optec. Il sistema è ottimo, ma non certo a buon mercato. In previsione di un ampiamento dell'osservatorio, con l'aggiunta di un secondo telescopio, ho voluto provare a cercare una soluzione più a buon mercato. Da tempo sul Forum Astrofili Italiani si parlava di un progetto di servofuoco autocostruito basato su Arduino. Devo ammettere che inizialmente non avevo preso troppo sul serio questa soluzione ma, soprattutto grazie all'entusiasmo dell'astrofilo piemontese Simone Martina (un vero e proprio fan di Arduino) ho deciso di provarci.

Il mio obiettivo, come detto, è stato quello di realizzare un dispositivo hardware in grado di far girare il pomello della messa a fuoco di un telescopio e di un software di controllo dello stesso. Il motore deve essere in grado di posizionarsi e riposizionarsi in qualunque punto con una sufficiente precisione e per questo ho deciso di impiegare un motore passo passo. Per quanto riguarda il software di controllo ho scelto di realizzare un driver ASCOM in modo che qualunque programma si interfacci con questa piattaforma sarà in grado di utilizzare il servofuocheggiatore. Ho deciso di chiamare AstroFocus questo mio dispositivo.

HARDWARE

Ecco una lista dei componenti necessari alla realizzazione di AstroFocus:

  • Una scheda Arduino Uno.
  • Un motore passo passo bipolare QMOT QHS4218-51-10-049.
    Molti altri motori passo passo bipolari potranno essere utilizzati in alternativa a questo modello,
    purché non richiedano più di 12V e non assorbano più di 2A per canale.
  • Una scheda Arduino Motor Shield per il controllo del motore passo passo.
  • Un sensore di temperatura di precisione Adafruit MCP9808.

Il motore QMOT QHS4218-51-10-049 ha quattro fili colorati che vanno connessi alla scheda del controller utilizzata secondo questo schema:

Colore Funzione Arduino Motor Shield
Nero A A+
Verde A- A-
Rosso B B+
Blu B- B-

Il motore QMOT QHS4218-51-10-049

Il sensore di temperatura Adafruit MCP9808 dispone di una serie di connessioni. Solo quattro di queste vengono utilizzate in AstroFocus 5.

MPC9808 Arduino Motor Shield
Vdd 5V
Gnd Gnd
SCL A5
SDA A4

SOFTWARE

Per poter utilizzare AstroFocus servono diversi software. Come prima cosa dovrete scaricare, compilare ed installare sul vostro Arduino il firmware.

AstroFocus Firmware
Versione 5.0.1.0 per Arduino

Per compilare il firmware e scriverlo su Arduino vi servirà una IDE, scaricabile qui:

Arduino IDE

Al fine di permettere il funzionamento del sensore di temperatura è necessario intallare nell'IDE la libreria per Adafruit MCP9808. Per farlo selezionate la voce "Menage Libraries..." dal menu "Tools" dell'Arduino IDE e digitate nella casella di ricerca "MCP9808", quindi selezionate la voce "Adafruit 9808 Library" ed installate la versione più aggiornata.

Vi servirà poi il driver ASCOM di AstroFocus 5 che è scaricabile gratuitamente da qui:

AstroFocus ASCOM Driver
Versione 5.0.1.0

Si tratta di un driver progettato per la piattaforma ASCOM 6 che vi permetterà di utilizzare AstroFocus 5 con qualunque programma compatibile con questa piattaforma.

Se volete semplicemente far muovere il motore potreste utilizzare AstroFocus HC:

AstroFocus HC
Versione 1.2.1.1

Quest'ultimo programma non è necessario per il funzionamento di AstroFocus 5, ma può essere utile per far muovere il motore in modo "manuale". Si tratta di un client ASCOM quindi è in realtà in grado di pilotare non solo AstroFocus 5, ma qualunque fuocheggiatore dotato di interfaccia ASCOM.

Il funzionamento di AstroFocus è molto semplice. Accedendo alle impostazioni del driver ASCOM prima della connessione è possibile selezionare la porta COM a cui Arduino è collegato. Se invece la finestra delle impostazioni viene richiamata con la connessione già in corso appare una finestrella dalla quale è possibile impostare numerosi parametri.

Step Size
Questo parametro indica lo spostamento del piano focale per ogni passo del motore. Per calcolarlo è possibile misurare di quanti millimetri si sposta il fuocheggiatore effettuando 1000 passi.

T Coefficient
Questo è il coefficiente di dilatazione del telescopio. Misura il numero di passi necessari per rimettere a fuoco per ogni grado di variazione della temperatura.

Power
Questo valore indica la potenza applicata al motore con un valore che può variare tra 1 e 255. Se la potenza applicata è troppo poca il motore potrebbe non muoversi o perdere alcuni passi, se è troppa il motore potrebbe surriscaldarsi.

Pulse
Questo valore indica la durata in millisecondi di ciascun impulso inviato al motore. Se questo valore è troppo basso il motore potrebbe perdere dei passi, se è troppo alto il motore potrebbe essere eccessivamente lento.

Pause
Al termine di una sequenza di impulsi il motore viene mantenuto alimentato ancora qualche istante per stabilizzarne la posizione. La durata di questo periodo di stabilizzazione è determinata da questo parametro.

Stepper Mode
Questo valore indica se il motore deve essere mosso per passi interi o per mezzi passi.

Set Min
Questo pulsante permette di impostare la posizione zero del fuocheggiatore.

Set Max
Questo pulsante permette di impostare la posizione massima del fuocheggiatore.

Set Pos
Questo pulsante permette di impostare manualmente il valore corrispondente alla posizione attuale del fuocheggiatore.