Stellarium + Arduino

ho un grosso problema,
come già detto devo controllare un telescopio da computer, in particolare da stellarium (telescopio a forcella quindi devo portarlo nella posizione della stella e poi farlo andare con velocità opposta a quella terrestre).
Tuttavia non riesco a capire che dati Stellarium manda via seriale, e quindi su cosa dovrò lavorare.
Avete già avuto esperienze a riguardo?

Francesco

Devi capire il formato che usa Stellarium.
Fortunatamente è un software opensource per cui potresti scaricare i sorgenti e studiare il protocollo di comunicazione del software.

EDIT:
ho googlato "stellarium arduino" e mi sono venute fuori diverse cose. Hai già guardato Google? :wink:

Su google ho già guardato ma i risultati non portano a molto... :frowning:
comunque adx provo a leggermi i sorgente di stellarium,
Grazie per la risposta :slight_smile:

Hai cercato male :slight_smile:
Stellarium è in grado di comandare qualunque telescopio compatibile con il Meade LX-200, una rapida ricerca ed ecco il pdf con tutto il protocollo di comunicazione.

Adesso che ho ricevuto i miei arduino posso riesumare questo topic ]:smiley: ]:smiley:
Allora, ho iniziato a creare uno sketch che mi rispondesse ai veri comandi inviati da stellarium. Quando inizio la connessione stellarium chiede la RA e la Declinazione, sono riuscito a rispondere al comando della RA e mi accetta il valore che do in risposta ma non riesco a rispondere alla richiesta della Declinazione, infatti nella documentazione che mi è stata postata da Astrobeed c'è scritto che il comando :GD# accetta come risposta sDD*MM#
io ho interpretato la s come il segno(+ o -) mentre ai valori DD e MM ne ho sostituiti di fittizi.(es.+45*00#).
Ciò è quello che invio via serial, tuttavia nel file di log:

15445, 11:34:00.890104Z: Lx200Connection::sendCommand(Lx200CommandGetRa)
15445, 11:34:00.890104Z: Lx200Connection::writeFrontCommandToBuffer(Lx200CommandGetRa): queued
15445, 11:34:00.890104Z: Lx200Connection::sendCommand(Lx200CommandGetDec)
15445, 11:34:00.890104Z: Connection::performWriting: writeNonblocking(5) returned 5; #:GR#
15445, 11:34:05.904390Z: Lx200Connection::resetCommunication
15445, 11:34:05.921391Z: Lx200Connection::sendCommand(Lx200CommandGetRa)
15445, 11:34:05.921391Z: Lx200Connection::sendCommand(Lx200CommandGetDec)
15445, 11:34:15.952965Z: Lx200Connection::writeFrontCommandToBuffer(Lx200CommandGetRa): queued
15445, 11:34:15.952965Z: Connection::performWriting: writeNonblocking(5) returned 5; #:GR#
15445, 11:34:16.018969Z: Connection::performReading: readNonblocking returned 11; 03:00:00#


15445, 11:34:16.018969Z: Lx200CommandGetRa::readAnswerFromBuffer: RA = 03:00:00
15445, 11:34:16.018969Z: Lx200Connection::writeFrontCommandToBuffer(Lx200CommandGetDec): queued
15445, 11:34:16.077972Z: Connection::performWriting: writeNonblocking(5) returned 5; #:GD#
15445, 11:34:16.138976Z: Connection::performReading: readNonblocking returned 7; +45*00#
15445, 11:34:16.138976Z: Lx200CommandGetDec::readAnswerFromBuffer: error: '+' or '-' expected
15445, 11:34:16.138976Z: Lx200Connection::resetCommunication
15445, 11:34:16.202979Z: Lx200Connection::sendCommand(Lx200CommandGetRa)
15445, 11:34:16.202979Z: Lx200Connection::sendCommand(Lx200CommandGetDec)
15445, 11:34:16.202979Z: Connection::performReading: readNonblocking returned 2;

risulta l'errore: error: '+' or '-' expected nonostante vi sia il più dove dovrebbe essere.
le ho provate tutte ma non ne esco, quindi...
avete idea di come potrei scriverlo( ho provato anche +3:0:0)
oppure anche:
]:slight_smile: ]:slight_smile: ]:slight_smile: ]:slight_smile: ]:slight_smile:
c'è qualche anima pia che possiede un telescopio meade lx200 o compatibile che potrebbe connetterlo al pc a stellarium e può postare il file di log( si trova in AppData/Roaming/Stellarium ed è il file log_TelescopeServer1(o qualsivoglia numero sia il telescopio)) nel caso qui la guida alla configurazione:http://www.stellarium.org/wiki/index.php/Telescope_Control_plug-in

Grazie in anticipo per l'aiuto

Francesco

Ho dato un'occhiata al file PDF ma il comando :GD dice che preleva la declinazione, mentre per impostare la declinazione di un oggetto devi usare il comando :SdsDD*MM#

Appunto, il comando GD# richiede al telescopio, nel mio caso all'arduino la declinazione attuale, in modo da poter visualizzare correttamente sulla sfera celeste virtuale il mio telescopio; so di per certo che è quel comando per il semplice motivo che non sono io a inviarli ma una volta connessa la scheda è il pc che per prima invia delle richieste, la RA e la DEC.
il mio problema è che mentre alla richiesta della RA riesco a rispondere correttamente

15445, 11:34:15.952965Z: Lx200Connection::writeFrontCommandToBuffer(Lx200CommandGetRa): queued
15445, 11:34:15.952965Z: Connection::performWriting: writeNonblocking(5) returned 5; #:GR#
15445, 11:34:16.018969Z: Connection::performReading: readNonblocking returned 11; 03:00:00#
15445, 11:34:16.018969Z: Lx200CommandGetRa::readAnswerFromBuffer: RA = 03:00:00    //è stata accettata come valore di RA

a quella della DEC non riesco

15445, 11:34:16.018969Z: Lx200Connection::writeFrontCommandToBuffer(Lx200CommandGetDec): queued
15445, 11:34:16.077972Z: Connection::performWriting: writeNonblocking(5) returned 5; #:GD#
15445, 11:34:16.138976Z: Connection::performReading: readNonblocking returned 7; +45*00#
15445, 11:34:16.138976Z: Lx200CommandGetDec::readAnswerFromBuffer: error: '+' or '-' expected     //mi continua a dare questo errore :(

, ma pur seguendo la documentazione non ne vengo a capo :disappointed_relieved: :disappointed_relieved:

P.S.
il comando Sds è per il pc per dire al telescopio dove deve puntare infatti sulla documentazione viene indicato come "imposta declinazione bersaglio", quindi nel nostro caso di una stella e non del telescopio.

Ah, scusa. Quindi tu rispondi al posto del telescopio.
Fai una cosa, da Stellarium invia quel comando per impostare la declinazione e guarda cosa Stellarium ti spedisce. A questo punto sai i caratteri che usa e che quindi si aspetta da te in risposta.

Ci avevo pensato e pure già provato, tuttavia lui dal momento che non è riuscito a ottenere la posizione del telescopio, a inizializzarlo, non prova neanche a inviare il messaggio via serial, nel log mi compare la funzione richiamata e i parametri con cui la richiama, il nostro RA e DEC, tuttavia con la DEC che usa come parametro continua a non funzionare(lui chiama ad es +3:0:0) che inserita nell'Arduino non funziona :0 :0
purtroppo dal momento che non fa l'invio seriale non so come la manderebbe.

Credo che l'unica sia di trovare qualcuno con un telescopio compatibile e vedere quel log cosa dice :frowning:

Ho provato di tutto ma non ne vengo a capo, non c'è qualcuno con un telescopio con montatura lx200 compatibile che potrebbe provare a collegare il telescopio all'IDE di arduino e inviare tramite il serial monitor il comando #:GD# e postare la risposta ricevuta :sweat_smile:?
Sarebbe molto apprezzato :slight_smile: :).

Grazie
Francesco

Scusa Francesco forse è superfluo chiederlo, ma hai provato a girare la domanda anche su un forum di astrofili "fai da te"?
ciao Carlo

Ma certo.... :cold_sweat:

Ho postato su tre forum diversi e inviato pure un'email allo sviluppatore del plugin di stellarium.
Tuttavia sembra di essere giunti a un vicolo cieco.

Francesco

Risolto :smiley: :smiley: :smiley: :D,
parlando con lo sviluppatore è venuto fuori che probabilmente veniva inviato via seriale un carattere che però non veniva visualizzato e che veniva controllato al posto del + o -, risolto semplicemente cambiando la funzione di stampa dell'RA da println() a print(), e cosi sarà per tutto il resto della comunicazione.

Grazie a tutti comunque per il supporto
Francesco