L’implementazione nel codice è avvenuta intervenendo in due
diversi ambiti.
1) Ogni 10 millisecondi è incrementata la variabile SkyTrackingTime
del valore 10 in modo da tenere un conteggio dei millisecondi dalla accensione
del sistema. Con questo valore è eseguta la proporzione tra i millisecondi
trascorsi e quelli totali in un giorno:
SkyTrackingStep = (SkyTrackingTime * SidealSteps) / 86400000
Il valore SkyTrackingStep è sommato alla coordinata
correntemente puntata. In questo modo nel caso di motore di ascensione fermo (tracking
disabilitato) la coordinata puntata dal telescopio s’incrementa di 24 ore di
ascensione retta ogni giorno siderale.
2) Se il tracking è abilitato, una volta completato un
puntamento è mantenuto un conteggio di millisecondi trascorsi (variabile MotorTrackingTime)
incrementato ogni 10 millisecondi. Con questo valore è eseguta la proporzione
tra i millisecondi trascorsi e quelli totali in un giorno:
MotorTrackingStep = (MotorTrackingTime * SidealSteps) / 86400000
Il valore MotorTrackingStep è quindi sottratto a setpoint di
posizione per il motore di scensione retta in questo modo ogni volta che la
formula produce un incremento di 1 del valore il motore indietreggia di un
passo alla frequenza di 40.1095 Hz.
La combinazione delle due azioni fa si che in caso di
tracking attivo il telescopio si muove con la giusta velocità e la coordinata
puntata risulta invariata.
In questo video è possibile vedere il motore di ascensione retta:
- il motore esegue il tracking muovendosi a 1/16 di passo a circa 40Hz
- il motore si muove a 1/16 di passo sino ad un punto di sincronismo in cui è possibile cambiare il passo
- cambia la movimentazione in passi interi
- accelera la velocità da 200hz a 500hz
- mantiene la velocità sino nel pressi della coordinata finale
- decelera da 500hz a 200hz
- cambia la movimentazione a 1/16 di passo
- esegue il posizionamento finale di precisione
- il motore riprende il tracking
Questa versione di software si può scaricare all'indirizzo