OpenFocuser
L’OpenFocuser è un progetto openhardware volto alla realizzazione di un controllore per motori passo-passo atto a muovere il fuocheggiatore di un telescopio.
Allo stato attuale sto utilizzando Arduino 2009 con uno Motor Shield dell’Adafruit.
Il firmware è una versione ridotta del codice sviluppato da Stormywebber e FrostByte; il codice originale è disponibile al seguente URL: https://sites.google.com/site/arduinofocus/
Perché?
Il firmware è stato scelto perché compatibile con il controller commerciale RoboFocus. L’importanza di tale compatibilità è legata alla necessità di poter controllare il fuocheggiatore attraverso i più comuni software per la ripresa astronomica; tra questi software spiccano Robofocus, AstroRF e FocusMax.
Limitazioni?
Sì, OpenFocuser ha alcune limitazioni rispetto al RoboFocus o ad ArduinoFocus:
-
๏è privo del meccanismo di compensazione termica (era troppo complesso da realizzare)
-
๏è privo del controllo manuale del fuoco (non mi serviva)
-
๏il motorshield più gestire un assorbimento di 1A (2A con il piggybacking), quindi il motore deve essere scelto entro questi limiti
-
๏se viene impiegato l’halfstepping e con un singolo movimento di migliaia di passi, il controller può diventare irresponsivo lasciando il motore attivato (quindi in movimento); tale grave bug (irrisolto) può diventare pericoloso in caso di fuocheggiatori a cremagliera o sistemi totalmente remotizzati
Vantaggi?
Utilizzando un motore Nema17 da 200 passi, Arduino 2009 e il MotorShiled la spesa si aggira intorno ai 75€, decisamente meno di 500€ necessari per il Robofocus.
Inoltre è possibile adattare semplicemente il codice alle proprie esigenze, per esempio modificando il tipo di step: interleave per avere maggiore risoluzione, double per maggiore coppia.
Perché con AstroRF va e con Robofocus no?
Arduino è una scheda studiata per i prototipi, ad ogni boot del microprocessore un piccolo bootloader attende qualche secondo affinché l’IDE di Arduino possa effettuare l’upload dello sketch.
Nel nostro caso questa funzionalità diventa un problema: il software Robofocus infatti effettuare un reset di Arduino prima di cominciare; tale reset imposta la scheda in ascolto mentre RoboFocus si aspetta una risposta immediata: tale condizione porta il Robofocus a restituire un errore di timeout.
Si può aggirare il problema disabilitando il reset su Arduino come spiegato qui. Personalmente ho optato per aggiungere una resistenza da 120Ω tra i PIN di 5V e Reset direttamente sullo shield: in questo modo posso riprogrammare Arduino a piacimento avendo l’accortezza di rimuovere prima lo Shield.
Download
Se non vi spaventano le varie limitazioni del sistema e il dover smanettare un minimo di elettronica, potete scaricare le librerie per Arduino e il firmware modificato da qui.
Buon divertimento,
Simone