SatHole – un controllore per rotore di antenna basato su Arduino

Sathole è un semplice controller per rotori di antenna che emula il protocollo gs232.
E’ basato su hardware a basso costo, Arduino uno o nano
Il Firmware è un “work in progress”, ha un modo “setup”, tramite il quale è possibile settare vari parametri, come la posizione del rotore in base alla tensione dei sensori di posizione, e così via.
I dati di azimut/elevazione sono visualizzati su un display LCD.
Ho usato 4 porte di output per controllare i comandi sx/dx, alto/basso, e due porte analogiche di input per la tensione di feedback della posizione.

Una volta programmata la scheda, sathole va in modalità “setup”, tramite la quale è possibile configurare varie opzioni.
Ci si collega tramite seriale settata 9600 baud, no parity, 8 bit.
Premendo “h” si ha lista dei comandi, è possibile salvare tutti i parametri in eeprom.
Per accedere alla modalità setup basta premere “+++” quando sathole è in modalità emulazione.
Per entrare in modalià emulazione basta selezionare l’opportuna voce in modalità setup.
Setup iniziale:
Si può usare un emulatore di terminale seriale o il serial monitor di Arduino, scegliendo “carriage return” per il fine linea.
I dati di calibrazione vengono scritti nella eeprom: al primo avvio non essendoci sul terminale seriale viene riportato “Calibration data missing :please calibrate”
A questo punto, in modalità comandi ( per chiarire, quando funziona il tasto h= help) si sposta il rotore a 0 gradi e si immette il comando “set-a0 0”. Poi si sposta al massimo ( es. 350 gradi), e si immette il comando “set-a1 350”. La stessa cosa con l’elevazione a 0 “set-e0 0” e a 180 “set-e0 180”. Questo serve per creare il rapporto tra la tensione sull’adc di arduino e la posizione in gradi del rotore, (es. a 0 gradi corrisponde 0.1 volts e a 350 4 volts) il tutto viene automaticamente scritto nella eeprom di arduino, va fatto solo una volta.

Quando è tutto calibrato si può verificare il funzionamento con i comandi “az <azimuth>” e “el <elevazione>”, ( es. az 180 per puntare a sud ), poi dando il comando “gs232a” si attiva l’emulazione gs232 che da modo a tutti i programmi che la supportano di comandare il rotore.

Se serve, dalla modalità emulazione per tornare a quella comandi/debug basta immettere “+++” ( se qualcuno si ricorda, come nei vecchi modem Hayes)


Codice sorgente su github

73