Alessandro
Mettere in un grafico i valori della porta seriale
Tutorials -
Venerdì 13 Agosto 2010 15:49
Scritto da Alessandro

Spesso è necessario mettere in un grafico i valori della porta seriale (RS-232) come succede ad esempio con Arduino. Si rilevano dei valori e l'unica possibilità offerta dall'ambiente IDE di Arduino è di utilizzare il serial monitor. Tuttavia sul serial monitor i valori sono testuali e poco leggibili. Si può utilizzare processing, come fa vedere gbm in questo tutorial. L'utilizzo di processing è tuttavia complicato quando si vuole visualizzare più di un grafico, quando si vogliono visualizzare i valori della seriale anche come testo, quando si vuole personalizzare il grafico. Bisogna programmare.

Ho trovato un programmino fatto con le librerie grafiche QT che necessita solo di una leggera parametrizzazione permettendo di plottare in modo molto semplice i valori della seriale. Il programmino si chiama SERIALCHART.

E' possibile personalizzare in maniera semplice il grafico e modificare i colori e l'aspetto senza impazzire. Il programmino è spiegato qui.

Va accompagnato da un file di configurazione molto elementare che viene spiegato in tutte le sue parti qui.

Ho fatto una prova di lettura dei valori restituiti da un acceleratore a tre assi collegato all'arduino.

 

Il programma di lettura dei tre assi dell'Arduino è molto semplice:

// leggi valori x, y, z dell'accelerometro

// imposta le variabili per l'input
int analogInput0 = 0;
int analogInput1 = 1;
int analogInput2 = 2;

// variabili dove memorizzare l'input
int value0 = 0;
int value1 = 0;
int value2 = 0;

void setup(){

// imposta i pin di input
pinMode(analogInput0, INPUT);
pinMode(analogInput1, INPUT);
pinMode(analogInput2, INPUT);

// inzializza la comunicazione con la porta seriale
Serial.begin(9600);
}

void loop(){
// leggi i valori degli accelerometri
value0 = analogRead(analogInput0);
value1 = analogRead(analogInput1);
value2 = analogRead(analogInput2);

// scrivi i valori sulla serial port separati da una virgola
Serial.print(value0);
Serial.print(",");
Serial.print(value1);
Serial.print(",");
Serial.println(value2);

// attendi un pochino prima della nuova lettura
delay(100);   }

Invece l'output di SerialChart è illustrato nella foto sottostante, in cui ho inserito anche la parametrizzazione fatta.


 

Gioblu Robotics © 2010 - 2012 · Sitemap · privacy

gioscarab@gmail.com

Gioblu BOTServer è online dal 10 Aprile 2010 - 319.232 Visite - 1.027.175 Pagine visualizzate - 182.309 Visitatori unici - 536 utenti attivi