Seeed Studio Grove Beginner Kit for Arduino

Seeed Studio Grove Beginner Kit per Arduino è indubbiamente uno dei migliori kit per iniziare a lavorare con Arduino. L'idea di fondo, rispetto ad altri kit disponibili, è quella di avere incluso in un unico stampato una scheda Arduino compatibile (Seeeduino Lotus) e 10 moduli che normalmente sono forniti separatamente. Tutti i moduli, pur avendo ciascuno un connettore Grove autonomo, sono collegati elettricamente all'unità centrale, in questo modo è possibile farli interagire senza dovere ricorrere a cavi volanti e breadboard. È comunque possibile staccare i moduli, solo in questo caso sarà necessario utilizzare i cavi Grove per i collegamenti.

Pin digitali utilizzati: 0, 1, 3, 4, 5, 6
Pin analogici utilizzati: A0, A2, A6

Sui connettori grove sono 'liberi' i pin: [-, D2], [D7-D8] e [-, A1], [-, A3], [-, A7]

Anche il prezzo è sensibilmente più basso rispetto alla concorrenza e comunque è inferiore alla somma dei prezzi delle singole parti. Il kit può essere acquistato su Amazon.it al prezzo di 23 euro (gennaio 2021).

Lo stampato è inserito in una scatola di cartone che misura 21.4 x 11.8 x 2.8 cm (140 grammi), in pratica le dimensioni di un libro. La scatola, lateralmente, ha due sportellini che contengono un cavetto USB e 6 cavi Grove.
Questa soluzione la rende facilmente trasportabile anche da parte di studenti, ma è soprattutto comoda per corsi di gruppo: al termine della sessione didattica è possibile raccogliere i vari kit senza problemi.
Purtroppo il connettore micro-USB è piuttosto "delicato" e in mani poco esperte potrebbe rompersi facilmente.

open box 840x473

Per quanto riguarda la programmazione oltre al classico IDE Arduino, Seed Studio mette a disposizione Codecraft un software grafico in stile Scratch che dà la possibilità di programmare tramite a blocchi grafici. Codecraft può essere utilizzato in modo online oppure essere installato sul pc (download).

La dotazione comprende i seguenti moduli:

Seeeduino Lotus: scheda compatibile Arduino UNO con 12 porte Grove

Grove - Red LED: modulo con un LED rosso e un trimmer per la regolazione della luminosità massima (collegamento su D4)

Grove - Buzzer: contiene un cicalino (buzzer) piezoelettrico (collegamento su D5)

Grove - OLED Display 0.96": contiene un display monocromatico (SSD1315) da 128 × 64 punti (collegamento in I2C, 0x78)

Grove - Button: modulo con un pulsante (collegamento su D6)

Grove - Rotary Angle Sensor: modulo con un potenziometro rotativo (collegamento su A0)

Grove - Light Sensor: modulo con un fototransistor per rilevare l'intensità della luce circostante (collegamento su A6)

Grove - Sound Sensor: modulo con un piccolo microfono per la rilevazione del suono (collegamento su A2)

Grove - Temperature & Humidity Sensor: modulo con un sensore (DHT11) per la misura di temperatura e umidità (collegamento su D3)

Grove - Barometer Sensor: modulo con un sensore (BMP280) di pressione atmosferica (collegamento in I2C, 0x77)

Grove - 3-Axis Digital Accelerometer: modulo con un sensore (LIS3DHTR) di accelerazione a 3 assi (collegamento in I2C, 0x19)

Seeed Studio mette a disposizione il tutorial in lingua inglese Grove Beginner Kit For Arduino [html]  [pdf], con riferimenti ampi, ma piuttosto generici, ai moduli contenuti nel kit. Per questo motivo ho deciso di scrivere questo articolo con indicazioni sintetiche, ma più precise, per un corretto uso del kit: per ogni modulo vengono forniti inoltre uno o più esempi con le indicazioni di eventuali librerie di supporto.


Modulo LED    (Grove - Red LED)

Il modulo contiene un LED rosso e un trimmer (resistenza variabile) per la regolazione della luminosità massima (per aumentare la luminosità ruotare il trimmer con un cacciavite in verso antiorario).
Il LED è collegato al pin digitale 4 che deve essere impostato come output.

Esempi

Sketch Arduino: [Lampeggia.ino]     CodeCraft: [Lampeggia.cdc]


Modulo Cicalino    (Grove - Buzzer)

Buzzer

Il modulo contiene un cicalino piezoelettrico (buzzer) in grado di emettere un suono. Il buzzer è un dispositivo di segnalazione acustica, non adatto a riprodurre parlato o musica, ma solo suoni semplici in un ristretto intervallo di frequenze.

Il buzzer è collegato al pin digitale 5 che deve essere impostato come output.

Per generare un suono di una determinata frequenza usare l'istruzione tone(pin, frequenza) o tone(pin, frequenza, durata), per disattivare il suono usare noTone(pin); per ottenere un'onda quadra di frequenza fissa uguale a 976 Hz è possibile usare anche l'istruzione analogWrite(5, 127).

Esempi

Sketch Arduino: [SirenaBitonale.ino]    [976Hz.ino]     CodeCraft: [Cicalino.cdc]


Modulo Display    (Grove - OLED Display 0.96")

Il modulo contiene un display monocromatico (SSD1315) da 128 × 64 punti collegato in I2C con indirizzo 0x78. Per utilizzarlo con l'IDE di Arduino è necessario utilizzare la libreria di supporto U2g8; purtroppo questa libreria utilizza gran parte della memoria di Arduino UNO. Nell'esempio successivo sono riportate le istruzioni per il caricamento della libreria.

Esempio con Sketch Arduino: [Display.ino]


Modulo Pulsante    (Grove - Button)

Il modulo contiene un pulsante e un resistore da 10 kO, collegati al pin digitale 6. Quando il pulsante viene premuto si chiude il contatto elettrico portando il livello di tensione da +5 V (stato HIGH) a 0 V (stato LOW). Per monitorare lo stato del pulsante si usa l'istruzione digitalRead(pin).
Il pulsante può essere usato per generare eventi quali l'accensione di un LED, la generazione di un suono o la visualizzazione di un messaggio sul display.
Nell'esempio successivo, premendo il pulsante si accende il LED rosso e viene emesso un suono di 1000 Hz.

Esempi

Sketch Arduino: [Pulsante.ino]      CodeCraft: [Pulsante.cdc]


Modulo Potenziometro    (Grove - Rotary Angle Sensor)

Il modulo contiene un potenziometro rotativo (dispositivo a resistenza variabile), che consente una rotazione di circa 300°. I tre terminali del potenziometro sono collegati rispettivamente +5 V, al pin analogico A0 e a massa, con la rotazione del perno varia la tensione rilevata dal pin A0 che può essere letta con l'istruzione analogRead(pin), i valori letti sono quelli del convertitore analogico-digitale a 10 bit, quindi da 0 a 1023 (210-1).

Esempi

Sketch Arduino: [Potenziometro.ino]    CodeCraft: [Potenziometro.cdc]


Modulo Sensore di Luce    (Grove - Light Sensor)

Il modulo contiene un fotodiodo in grado di variare la resistenza con le condizioni di luce circostanti ed è collegato al pin analogico A6 tramite un amplificatore. La tensione rilevata dal pin A6 può essere letta tramite l'istruzione analogRead(pin), i valori letti sono quelli del convertitore analogico-digitale a 10 bit, quindi da 0 a 1023 (210-1). L'amplificatore, oltre ad aumentare il segnale fornito dal fotodiodo, genera anche un "rumore elettrico" per questo è necessario usare qualche accorgimento per ridurlo almeno in parte. Per l'analisi del segnale può essere utile il Plotter seriale dell'IDE Arduino.

Esempi

Sketch Arduino: [SensoreLuce.ino]    CodeCraft: [SensoreLuce.cdc]


Modulo Microfono    (Grove - Sound Sensor)

Grove - Sound

Il modulo contiene un microfono collegato al pin analogico A2 tramite un amplificatore. Il segnale di uscita dell'amplificatore può essere monitorato tramite l'istruzione analogRead(pin), i valori letti sono quelli del convertitore analogico-digitale a 10 bit, quindi da 0 a 1023 (210-1). L'amplificatore, oltre ad aumentare il debole segnale fornito dal microfono, genera anche un "rumore elettrico" per questo è necessario usare qualche accorgimento per ridurlo almeno in parte. Per l'analisi del segnale può essere utile il Plotter seriale dell'IDE Arduino.

Esempi

Sketch Arduino: [Microfono.ino]    CodeCraft: [Microfono.cdc]


Modulo Temperatura & Umidità    (Grove - Temperature & Humidity Sensor)

Il modulo contiene il sensore di temperatura e umidità DHT11, presente in molti kit per uso didattico essendo di basso costo ma con una precisione relativamente bassa. Il sensore è collegato al pin digitale 3 e per essere utilizzato con l'IDE di Arduino è necessaria una libreria di supporto: negli esempi successivi sono riportate le istruzioni per il caricamento della libreria.

Esempi

Sketch Arduino: [Grove_DHT.ino]    [Grove_DHT_Display.ino]

CodeCraft: [DHT11.cdc]


Modulo Barometro    (Grove - Barometer Sensor)

Barometro (BMP280)

Il modulo contiene il sensore di pressione BMP280 in grado di misurare sia la pressione atmosferica sia la temperatura. Il sensore è collegato in I2C con indirizzo 0x77. Per utilizzarlo con l'IDE di Arduino è necessario utilizzare una libreria di supporto: nell'esempio successivo sono riportate le istruzioni per il caricamento della libreria.

Esempio con Sketch Arduino: [Barometro.ino]   [Meteo.ino]


Modulo Accelerometro    (Grove - 3-Axis Digital Accelerometer)

Accelerometer 746x758

Il modulo contiene il sensore di accelerazione a 3 assi LIS3DHTR. Il sensore è collegato in I2C con indirizzo 0x19. Per utilizzarlo con l'IDE di Arduino è necessario utilizzare una libreria di supporto (download): nell'esempio successivo sono riportate le istruzioni per il caricamento della libreria.

Esempio con Sketch Arduino: [Accelerometro.ino]