Come visualizzare subito il valore di un sensore

Niente è più prezioso del tempo, e questo vale anche per il laboratorio di un maker. In questo articolo presenteremo, perciò, un utilissimo tester fai-da-te – portatile ed a basso costo – per sensori Arduino-compatibili, cioè per i cosiddetti “sensori grove”. Grazie a questo tester, per provare un sensore e leggerne i valori di uscita non dovrai più collegare il sensore alla scheda Arduino, scrivere o copiare sul computer un programma di lettura del sensore e caricarlo su Arduino: potrai avere il valore analogico / digitale del sensore grove in pochi secondi e in modo diretto, senza più bisogno del PC e di listati.

Testare un sensore è il primo passo quando vogliamo farci un’idea del suo comportamento e/o iniziamo a costruire un nuovo progetto interattivo Arduino che usa dei sensori. Se sei un fan dell’hardware open source, potresti avere dozzine di sensori nel tuo cassetto e, ogni volta che vuoi usarli, devi testarli uno per uno per assicurarti che si tratti di un sensore analogico o digitale, oppure per capire se è ancora in buone condizioni, e come il valore analogico cambierà a seconda delle condizioni.

Il modo più comune per farlo è scrivere un programma per Arduino (sketch) che legga il valore del pin e fare la stampa con “Serial.print” sul monitor seriale oppure visualizzare l’uscita su un dispositivo di visualizzazione come un oscilloscopio digitale o uno schermo OLED. Bene, queste soluzioni ti costano almeno una scheda di sviluppo, una grove shield e il tuo prezioso tempo per scrivere quel codice, e devi anche finire il lavoro con un PC, per non parlare dei vari cavi svolazzanti ovunque.

Il materiale occorrente, invece, per realizzare il progetto proposto in questo articolo.

In una parola, questa è una scena che si verifica ad alta frequenza e non abbiamo nemmeno un semplice strumento per risparmiare tempo ed energia. Anche la soluzione di adottare un tester per misurare l’uscita del sensore, non risolve il problema alla radice. Pertanto, ho realizzato questo semplice tester per moduli di sensori per Arduino per soddisfare i requisiti: in pochi secondi, è possibile ottenere il valore analogico o digitale del modulo del sensore e non sono necessari PC e codifica alcuna.

Un tester rapido per l’uscita di un sensore

Premetto che il “grove” è un sistema modulare aperto progettato per una facile connessione di qualsiasi modello di input o output a un microprocessore. Il Grove semplifica la connessione, la sperimentazione ed il processo di prototipazione. Non sono richiesti ponticelli o saldature. Sono stati sviluppati più di 300 moduli Grove, coprendo una vasta gamma di applicazioni in grado di soddisfare una varietà di esigenze nella categoria di Robotica, Prossimità, Movimento, Ambiente, Biomedicale, etc.

Il modulo display “grove” a 4 cifre (è quello in alto, che è differente da quello in basso, che invece usa i connettori illustrati in figura, i quali hanno un passo più grande e inadatto per la Base Shield di Arduino) usato in questo progetto è un esempio di modulo che usa questo standard. Molto utile anche in vari altri progetti, lo puoi trovare ad es. qui.

I componenti necessari per realizzare questo progetto sono i seguenti:

  • Arduino Nano
  • Base Shield grove per Arduino Nano
  • Modulo display grove a 4 cifre
  • Vari moduli di sensori grove per Arduino (per i test).

Il modulo display a 4 cifre è generalmente un modulo a 12 pin. Nel display grove, invece, viene utilizzato un TM1637 per ridimensionare i pin di controllo a 2 pin Grove. Ci vogliono quindi solo 2 pin digitali di Arduino o per controllare il contenuto e la luminanza di questo display (ad es. il 6 per CLK e il 7 per DIO). Per i progetti che richiedono una visualizzazione alfanumerica, questa può essere una buona scelta. Un display di questo tipo (che trovi ad es. qui) può essere usato anche per la visualizzazione del tempo o come cronometro.

Arduino Uno è la scheda Arduino più popolare finora, tuttavia a volte è frustrante quando il tuo progetto richiede molti sensori o LED ed i tuoi cavi jumper sono in disordine. Lo scopo della Base Shield è di aiutarti a sbarazzarti della breadboard e dei cavi jumper. Con i connettori Grove di cui la Base Shield è ampiamente fornita, puoi aggiungere comodamente tutti i moduli Grove ad Arduino Uno o ad altra scheda Arduino La piedinatura della Base Shield V2 è la stessa della Arduino Uno R3, per cui è sovrapponibile.

La Base Shield (in alto) per Arduino Uno, con lo switch di alimentazione (indicato con “5” nella figura in basso). Può essere acquistata facilmente online, ad esempio qui.

La Base Shield ha sia 4 porte analogiche (A0, A1, A2 e A3) sia 7 porte digitali (D2, D3, D4, D5, D6, D7 e D8). Poiché normalmente la Base Shield richiede un’alimentazione di circa 3,3 V, quando si utilizza la Arduino UNO con la Base Shield v2 (cioè le due schede sono incolonnate una sopra all’altra piedino per piedino) occorre ruotare l’interruttore “5” in figura in posizione 5 V. Analogamente, quando si prova un sensore grove, occorre controllare – per evitare danni – quale sia l’alimentazione da fornirgli.

Si può apprezzare l’utilità e la versatilità della Base Shield, ad esempio, collegando un Buzzer grove alla porta D3 della Base Shield e un Pulsante grove alla porta D2 della Base Shield. Collegando poi la Base Shield ad Arduino Uno e quest’ultimo al PC tramite un cavo USB, si copi e incolli e poi si carichi su Arduino il codice (sketch) scaricato da qui. A questo punto basterà premere il pulsante e si udirà il suono del buzzer. Il tutto senza perdere tempo nei collegamenti dei singoli cavi, per di più antiestetici.

Un esempio di applicazione della Base Shield. Si noti come la Base Shield per Arduino Uno sia diversa da quella per Arduino Nano. Quindi procurati quella che fa al caso tuo!

Come assemblare e testare il progetto

Assemblare il circuito del tester di sensori grove è molto semplice. Collega la scheda Arduino Nano alla Grove Base Shield. Collega il display a 4 cifre, rispettivamente, ai piedini 6 (CLK) e 7 (DIO) sulla Base Shield. Collega un cavo grove a 4 pin al piedino A0 (che è possibile collegare a qualsiasi sensore grove che è necessario testare). Colloca il tutto in un contenitore apposito, che puoi autocostruire oppure acquistare già pronto sul mercato (non tutti i portali di e-commerce ce l’hanno, perciò dovrai cercare un po’).

Ad esempio, è possibile utilizzare un software CAD per progettare una scatola, qui è possibile trovare il file .dxf. Il contenitore proposto è più grande di quanto dovrebbe essere, dal momento che si vuole fare più spazio per contenere il cavo. È possibile rimuovere il cavo saldandolo alla scheda e modificare il file di progettazione per rendere la shell molto più compatta e decente. Dopo il taglio laser, per assemblare le parti usa la colla acrilica, lasciando il retro aperto per inserire l’hardware.

Il layout di un possibile contenitore del progetto a cui il file .dxf si riferisce.

Per un sensore analogico, il valore di uscita letto da Arduino varia da 0 a 1023, mentre il valore del sensore digitale è 0 o 1. Normalmente usiamo analogRead () per leggere il sensore analogico e digitalRead () per leggere il sensore digitale. In effetti, potremmo usare analogRead (Pin) per rilevare sia il sensore analogico che digitale, ma quando lo facciamo e stampiamo l’uscita del sensore sul monitor seriale, otterrai da un sensore digitale il valore 0 oppure un altro valore (che indica 1).

Per evitare questa confusione, si può aggiungere un sensore di commutazione ad A2. Quando si passa su ALTO, il programma utilizza analogRead () per leggere il valore del sensore e la stampa seriale del sensore analogico. Quando si passa a BASSO, il programma utilizza digitaldRead () per leggere il valore del sensore digitale e della stampa seriale che è 0 o 1. Se non hai un interruttore, va bene anche usare una unica modalità per rilevare sia il sensore analogico che quello digitale.

Come appare il progetto una volta assemblate le varie parti.

Scarica da qui il semplice codice (sketch) per il software di gestione di Arduino (IDE) e poi caricalo sul tuo Arduino Nano tramite un cavo USB, scaricando dalla rete e installando su Arduino le relative librerie Wire.h e TM1637.h. Ora sei pronto per effettuare il primo test del circuito con il computer collegato. Collega un sensore grove ad A0, vedrai il valore analogico visualizzato sul display grove. Cambia le condizioni del sensore e vedi se la cifra cambia. Finché il tutto è collegato al PC puoi anche aprire il monitor seriale per vedere i dati stampati sul monitor del PC.

Naturalmente, il progetto descritto non soltanto è utile per avere un tester veloce di sensori vari, ma può anche costituire la base per realizzare dei sensori portatili (ad es. di gas o di polveri sottili) alimentati a 5 V (ad es. con USB), con display incorporato e alloggiato in un contenitore insieme al sensore. In quel caso, non avremo bisogno della Base Shield e può essere utile impiegare un codice (sketch) ad hoc, anche se in alcune applicazioni sono sufficienti misurazioni relative, non assolute.

Con il tester qui proposto non puoi testare rapidamente (perché non grove) i sensori per Arduino contenuti nel famoso kit di 37 sensori che puoi trovare, ad esempio, qui.