Alessandro
Arduino e i grafici in tempo reale su Excel
Tutorials -
Domenica 23 Gennaio 2011 16:32
Scritto da Alessandro

Uno degli aspetti più importanti nella progettazione dei robottini è la possibilità di controllare i valori restituiti dai sensori analogici, come ad esempio accelerometri, giroscopi, sensori IR.

Per  poter visualizzare i valori dei sensori si può utilizzare la Serial Port che può essere visualizzata nel Serial Monitor del Client Arduino. Non è possibile però fare grafici, né memorizzare i valori restituiti dai sensori. Nel tempo sono stati creati una pletora di software che permettono di mettere in un grafico i valori della Serial Port. Io stesso ho pubblicato un altro tutorial che permette di utilizzare un sw che sfrutta le librerie QT di Nokia. Solitamente si usa Processing o altri linguaggi che richiedono però di dover scrivere codice ogni volta per poter modificare i grafici o per adattarli a nuove elaborazioni. Ho pensato che l’ideale sarebbe quello di poter utilizzare un programma che tutti conoscono molto bene, come l’Excel. Se fosse possibile utilizzare l’Excel per ricevere i dati della serial port, sarebbe facilissimo fare grafici molto carini e molto user friendly.

Ho googolato un po’ e ho trovato un sw che permette con semplicità di visualizzare i valori della serial port su excel. Il sw è della concorrenza, infatti è della Parallax, quella del boe-bot e del propeller che sono in diretta concorrenza con Arduino.

Il sw si chiama PLX-DAQ, è liberamente scaricabile da qui. In pratica è un programmino in VBA che aggiunge alcune funzionalità all’excel per la ricezione di dati in tempo reale e per la ricezione di semplici comandi che agiscono sull’excel. Avere i dati su excel permette inoltre di poterli memorizzare e salvare.  Permette inoltre di sfruttare l’enorme libreria di funzioni di excel per farci mille altre elaborazioni. La documentazione a supporto di PLX-DAQ è esauriente e completa.

Il PLX-DAQ vuole comandi espressi in maiuscolo e ogni riga di dati deve terminare con un ‘a capo’. La velocità della seriale che il PLX-DAQ richiede è un po’ particolare, perché è tarata sui prodotti Parallax, in ogni caso da 9600 bit/sec fino a 128.000 bit/sec. Impostando i corrispondenti valori su Arduino funziona benissimo. Fortissimo impostare 128.000 (che più del massimo di Arduino – 115200) e vedere che funziona!

I principali comandi sono:

-        LABEL che permette di definire le intestazioni di colonna. Il formato del comando è:

  • Serial.println(“LABEL,INT_COLONNA");

-        DATA che permette di inviare dati dalla seriale a Excel. Il primo campo da riportare è sempre TIME,successivamente vanno messi i campi di interesse. Il formato del comando è:

  • Serial. print(“DATA,TIME,”); Serial.println(val)

-        ROW, SET,k che permette di definire la prossima riga su cui scrivere. E’ utile nel caso in cui si vogliano rappresentare n dati e poi si vuole ciclare. Ad esempio rappresentare 1000 dati sul grafico e poi ricominciare dalla prima posizione, in modo da non avere un grafico troppo grande. Il formato del comando è:

  • Serial.println(ROW,SET,2)    che in questo caso riporta il cursore sulla seconda riga.

Vediamo un esempio che riporta su Excel la funzione sen(x).

Grafico Excel



Ecco il codice Arduino:

int x = 0;

int row = 0;

void setup() {

Serial.begin(128000); // opens serial port, sets data rate to 9600 bps

Serial.println("CLEARDATA");

Serial.println("LABEL,Time,x,sin(x)");

}


void loop() {

Serial.print("DATA,TIME,"); Serial.print(x); Serial.print(","); Serial.println(sin(x*PI/180));

row++;

x++;

if (row > 360)

{

row=0;

Serial.println("ROW,SET,2");

}

delay(100);

}

PLX-DAQ permette di interagire con Excel in modo più complesso, prendendo valori dalle celle di excel, leggendo e scrivendo check box. Vi rimando alla documentazione di PLX-DAQ.

 

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