OpenFocuser
 
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:
  1. è privo del meccanismo di compensazione termica (era troppo complesso da realizzare)
  2. è privo del controllo manuale del fuoco (non mi serviva)
  3. il motorshield più gestire un assorbimento di 1A (2A con il piggybacking), quindi il motore deve essere scelto entro questi limiti
  4. 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