AstroFocus 2.0

Attenzione

AstroFocus 2.0 è ormai deprecato, inoltre lo shield Arduino Motor Shield, basato sul chip L298, è decisamente più efficiente delle schede Adafruit che usano le varianti dell’L293D.
Per questo consiglio di implementare la versione 5 dell’AstroFocus come spiegato qui.

La storia

AstroFocus nasce dalla collaborazione con Ivaldo Cervini, un amico ed astrofilo svizzero; Ivaldo, partendo dall’idea dell’OpenFocuser, un fuocheggiatore open source compatibile con il protocollo utilizzato dal RoboFocus, ha ripensato da zero il progetto per eliminare alcuni difetti dell’OpenFocuser:

  1. Impiego di un driver di terze parti
  2. Impossibilità di salvare la posizione del fuocheggiatore
  3. Realizzazione scarsa della compensazione termica

Il progetto di Ivaldo è disponibile, con ampie spiegazioni sul funzionamento, sul suo sito internet.

L’AstroFocus si basa di Arduino Uno e, alternativamente, su due shield: l’Arduino Motor Shield R3 o l’Adafruit Motor Shield V2; poiché alcune persone avevano precedentemente realizzato l’OpenFocuser acquistando l’Arduino 2009 e l’Adafruit Motor Shield V1, ho deciso di realizzare un back porting del codice di Ivaldo in modo da permettere a queste persone di passare ad AstroFocus senza ulteriori spese.

Aggiornamento dall’OpenFocuser

Per coloro che intendono realizzare l’AstroFocus partendo dall’OpenFocuser, non ci sarà molto da fare in quanto avrete già sia l’Arduino 2009 che l’Adafruit Motor Shield V1. Potete scaricare il firmware da qui. Lo zip contiene tre directory: AstroFocus2_AFMS1, AFmotor, Adafruit_MCP9808.
La directory AstroFocus2_AFMS1 contiene il firmware del fuocheggiatore mentre le altre due solo librerie necessarie per la compilazione, in particolare la prima pilota lo shield mentre la seconda è necessaria per la lettura del sensore di temperatura (componente opzionale da acquistarsi a parte).
Se per il caricamento utilizzate l’IDE di Arduino 1.6.5 (che comunque potete scaricare dal sito arduino.cc), da qualche parte (Documenti su Windows e Mac OS X o la vostra Home su Linux) una directory chiama Arduino contenente una sottodirectory libraries: dovete scompatare le suddette librerie qui dentro prima di lanciare l’IDE.

Potete verificare che le librerie siano state correttamente installate andando su Skecth->Import Library:

Le librerie sono installate

In caso di problemi o dubbi, visitate l’apposita sezione sul sito di Arduino.

Se avrete caricato correttamente le librerie, potrete aprire il file contenente il firmware e avviarne una compilazione di test (usando il pulsante di spunta dell’IDE di Arduino):

Prima di flashare l’Arduino 2009 è necessario che prestiate attenzione ad alcuni punti:

  1. Se il vostro Arduino è stato precedentemente impiegato per l’OpenFocuser avrete, probabilmente, inserito una resistenza da 120Ω tra i PIN di 5V e Reset per evitare l’auto-reset di Arduino quando viene contattato dal RoboFocus. Con l’AstroFocus questa precauzione è superflua e ha un effetto collaterale: renderà impossibile la programmazione di Arduino con la Shield montata; potete risolvere il problema in tre modi:
    1. Togliete la resistenza
    2. Programmate l’arduino senza shield
    3. In fase di compilazione tenete premuto il tasto reset (presente sulla motor shield) per poi rilasciarlo quando inizia l’upload
  2. L’Adafruit Motor Shield V1, a differenza dell’Arduino Motor Shield R3, ha due morsettiere da 5 poli: la 1 collegata ai morsetti M1 e M2, la 2 collegata ai morsetti M3 e M4. Il mio codice sfrutta la seconda morsettiera, in quanto la trovavo più comoda essendo dalla parte opposta rispetto all’USB e all’alimentazione. In caso vogliate impiegare la morsettiera 1 dovrete modificare la linea
    AF_Stepper myMotor(200, 2);
  3. L’AstroFocus è predisposto per un controllo manuale tramite due pulsanti NO (normalmente aperti) collegati ai PIN 5 e 6 con un GND comune.
  4. L’AstroFocus può essere dotato di un sensore di temperatura Adafruit MCP9808, per il collegamento fate riferimento alla spiegazione sul sito di Ivaldo.

Scarica il firmware

Potete scaricare il firmware dell’AstroFocus 2.0.0.1 per Arduino 2009 e Adafruit Motor Shield V1 da SourceForge.