Corso base di Arduino: il plotter seriale

Esaminiamo un utile strumento che ha lo scopo di rappresentare, in forma grafica, i dati e le informazioni elaborate da Arduino.

Avatar di Elettronica Open Source

a cura di Elettronica Open Source

banner prova1

A meno che non si colleghi un'unità di visualizzazione alla scheda Arduino (monitor, display o altro), essa non può mostrare i risultati derivanti dai suoi calcoli interni. Ci viene d'aiuto, pertanto, questo potentissimo strumento, presente nell'IDE di Arduino e giunto alla versione 1.8.5 alla data della scrittura dell'articolo, che consente di rappresentare graficamente i dati inviati alla linea seriale.

Il Plotter Seriale

Dalla versione 1.6.7 esiste, all'interno dell'IDE di Arduino, il Plotter Seriale. Esso è molto utile quando si vuole osservare una particolare grandezza fisica (temperatura, tensione o altro) nel dominio del tempo o se occorre visualizzare, sempre graficamente, una determinata funzione matematica. Per utilizzare il plotter seriale si devono inviare le informazioni numeriche sulla linea COM, attraverso la funzione Serial.println(). Il plotter seriale si avvia accedendo al menù Strumenti del programma e scegliendo l'omonima voce oppure premendo contemporaneamente i tasti <CTRL> <SHIFT> <L>, come mostra la figura 1. Il plotter seriale risulta particolarmente utile quando si ha a che fare con i dati analogici.

figura 1 come si avvia plotter seriale
Figura 1: come si avvia il plotter seriale

Facciamo conoscenza con il plotter seriale

Iniziamo subito a lavorare con il plotter seriale, realizzando il cablaggio di cui alla figura 2, che riguarda l'adozione di un termometro LM35, collegato alla porta analogica A0 di Arduino.

figura 2 cablaggio
Figura 2: il cablaggio del termometro LM35

Scriviamo anche il semplice sketch, riportato in figura 3, che ha il compito di impostare la velocità della linea seriale a 9600 baud, di leggere la tensione digitale restituita dal termometro, di convertirla in una equivalente misura di temperatura e d'inoltrarla ad ogni secondo. Si noti che con il riferimento interno di tensione a 1.1V, l'intervallo di temperature dell'LM35 è, ovviamente, limitato da 0°C a 110°C.

figura 3 listato
Figura 3: lo sketch per la visualizzazione della temperatura

Dopo aver compilato il programma ed effettuato l'upload sulla MCU è possibile avviare il plotter seriale. Si vedrà tracciare, secondo dopo secondo, il grafico relativo alla temperatura misurata dal sensore, come mostrato in figura 4. Toccando l'LM35 con una mano si potrà apprezzare un sensibile innalzamento del calore. Il grafico è caratterizzato dal tempo, sull'asse X, e dal valore della grandezza esaminata, sull'asse Y.

figura 4 grafico temperatura
Figura 4: il grafico della temperatura

Grafici con più serie di dati

Forse molti non lo sanno, ma il plotter seriale è in grado di visualizzare, contemporaneamente, più curve, nello stesso ambito. Si supponga di dover tracciare graficamente l'andamento della temperatura ambientale sia in gradi Celsius che in gradi Fahrenheit. Come nell'esempio precedente, è sufficiente visualizzare le due variabili sulla stessa riga, tramite la funzione Serial.print() e separarle tra loro con uno spazio o con un carattere di tabulazione ("\t"). La figura 5 mostra lo sketch per lo scopo.

figura 5 listato due temperature
Figura 5: lo sketch per la visualizzazione delle due temperature

Il grafico con le due curve è raffigurato in figura 6. Si notino le diverse colorazioni delle due grandezze e la piccola legenda colorata, posta in alto a destra.

figura 6 grafico con due serie di dati
Figura 6: il grafico con due serie di dati (Celsius e Fahrenheit)

In figura 7 è, invece, possibile osservare l'output del monitor seriale, che evidenzia come le due serie di dati siano visualizzati su un'unica riga e separate tra loro con uno spazio.

figura 7 il monitor seriale
Figura 7: output del monitor seriale

Consigli

Il plotter seriale è caratterizzato da un auto-ranging e si adegua automaticamente a seconda delle entità delle misurazioni. È tuttavia, possibile imporre dei limiti superiori e inferiori, semplicemente prevedendo la visualizzazione di questi ultimi nello sketch, come se fossero delle variabili da mostrare. La figura 8 mostra un grafico con limite superiore e inferiore imposti a -5 e a 100. Si notino, in alto a destra, le diverse colorazioni della legenda.

Il plotter può visualizzare sino a 500 punti e il tracciamento di un punto avviene a ogni esecuzione della funzione Serial.print() oppure Serial.println(). I successivi valori causano uno scorrimento del grafico verso sinistra. Non è possibile avviare diverse sessioni del plotter. Inoltre il tracciamento del grafico non avviene molto velocemente, dal momento che esso è aggiornato continuamente. Esso può visualizzare solo dati numerici.

figura 8 limiti imposti
Figura 8: come imporre il limite superiore e inferiore al grafico

Tom's Consiglia

Per chi inizia ora e voglia dotarsi di tutto l'occorrente, Arduino Uno si trova facilmente a un prezzo abbordabile.