![]() |
|
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).

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.
