Salve a tutti, mi servirebbe il vostro aiuto per l'acquisizione corretta dei dati in entrata da porta seriale.
Allora il sensore che fornisce i dati è un sensore inerziale che ho collegato alle porte Rx 0 e Tx 1 di Arduino mega; inoltre è alimentato da una batteria da 9V esterna alla scheda.
Ho collegato il tutto nel modo spiegato qui:
da cui ho preso anche il codice che poi ho caricato sulla scheda.
Il risultato è che collegando il sensore ottengo dei dati in entrata ma sono dei caratteri senza alcun senso e illegibili tra simboli e lettere.
Secondo voi il problema è il livello di tensione troppo alto? Devo interporre un Max232 tra il sensore e la scheda?
E' l'unica cosa che mi viene il mente e per questo vi chiedo un parere.
potrebbe essere una diversa velocità (in baud) tra il sensore e la configurazione della seriale Arduino?
Inoltre se usi una delle seriali hardware di Arduino Mega non devi usare la libreria SoftSerial.
valezanna:
Il risultato è che collegando il sensore ottengo dei dati in entrata ma sono dei caratteri senza alcun senso e illegibili tra simboli e lettere.
Se non dici di quale sensore parliamo è impossibile darti una risposta, molto probabilmente stai ricevendo dati in formato binario, trasmessi con un qualche protocollo, che non sono visualizzabili direttamente sul serial monitor, prima vanno elaborati.
valezanna:
Ok allora, il baud rate è lo stesso tra sensore e seriale; il sensore che uso è xsens MTi . Le informazioni sullo strumento le potete trovare qui:
L'uscita è una RS232, quindi ti serve un convertitore tra questa e i livelli UART, inoltre ha sicuramente un suo protocollo dati da implementare per poter "capire" cosa ti trasmette.
Si questo lo immaginavo e infatti mi sono procurato un convertitore RS232-TTL . Ora però vedendo la pedinatura, ho un dubbio su come vada fatto il collegamento. Ho visto dove vanno messi RX, TX e GND ma non so dove collegare il cavo rosso di alimentazione del sensore.
Mi potreste illuminare su questo collegamento? Può essere che ho sbagliato proprio quello.
Poi se aveste suggerimenti anche su un protocollo "tipo" al quale rifarsi per ricevere dei dati da un sensore seriale vi sarei davvero grato. Grazie per tutto.
valezanna:
Si questo lo immaginavo e infatti mi sono procurato un convertitore RS232-TTL . Ora però vedendo la pedinatura, ho un dubbio su come vada fatto il collegamento. Ho visto dove vanno messi RX, TX e GND ma non so dove collegare il cavo rosso di alimentazione del sensore.
Devi vedere il manuale del sensore per verificare a quale tensione lavora, se sono 5V li puoi prelevare direttamente dal relativo pin di Arduino.
Poi se aveste suggerimenti anche su un protocollo "tipo" al quale rifarsi per ricevere dei dati da un sensore seriale vi sarei davvero grato
Dovresti avere un manuale che spiega il protocollo usato dal sensore, non puoi usarne uno generico, devi usare il suo.
ho scaricato il manuale e confermo quanto ti hanno detto, è un protocollo "binario" con una precisa struttura del pacchetto dati... devi leggere byte per byte dalla seriale e interpretare correttamente il pacchetto ricevuto secondo specifiche per recuperare i dati.