Lezione 1 – Corso di Elettronica Creativa con Arduino Sensor Kit

Introduzione

Negli ultimi mesi mi sono occupato, nell’ambito dell’azione PNRR Scuola 4.0, della progettazione delle “next generation classroom” e dei “next generation labs” per l’istituto in cui insegno. L’obiettivo principale di questa azione è stata quella di progettare percorsi didattici con strumenti che potessero arricchire l’apprendimento degli studenti nel campo dell’elettronica e dell’automazione, ma soprattutto prevenire il più possibile la dispersione pensando ad attività che possano appassionare i ragazzi. La mia attenzione si è naturalmente focalizzata sui prodotti Arduino che da sempre utilizzo in quanto consentono di rendere l’elettronica accessibile e stimolante per appassionati di tutte le età.

Ho analizzato diversi kit e tra quelli acquistati è presente l’Arduino Sensor Kit. Questo kit, pensato per essere intuitivo anche per i giovani studenti senza precedenti esperienze in elettronica, si presta perfettamente come elemento “attivatore” di curiosità e desiderio di esplorazione. La scelta di questo prodotto non è casuale: utilizzando il sistema Grove di Seeed Studio, esso facilita enormemente la connessione tra componenti elettronici, permettendo agli studenti di concentrarsi sulla programmazione e sull’interazione con sensori e attuatori senza preoccuparsi della complessità hardware.

La particolarità dell’Arduino Sensor Kit risiede anche nel fatto che ogni modulo è progettato con tutta la componentistica di supporto necessaria, semplificando notevolmente il processo di apprendimento e consentendo di focalizzarsi sui principi di base dell’elettronica e della programmazione. Questo approccio è adatto soprattutto ai neofiti e pone le basi per una comprensione più approfondita nei corsi avanzati che verranno svolti in anni scolastici successivi.

Le lezioni che troverete in queste pagine sono pensate per studenti di ogni età e per quanto mi riguarda saranno la base per i futuri corsi che svolgerò dal prossimo anno scolastico. Per quanto riguarda questo specifico kit, durante gli incontri, sia in presenza che online, arricchirò il materiale didattico già presente sul sito Arduino, con contenuti tecnici e teorici, facendo sviluppare progetti pratici che stimolano la creatività e la comprensione. Questo percorso non solo vi introdurrà ai fondamenti dell’elettronica e dell’automazione ma vi guiderà nella realizzazione di progetti concreti, permettendovi di vedere immediatamente i risultati delle vostre creazioni.

A chi è rivolto questo corso?

A tutti gli studenti della secondaria di primo grado e del primo anno dell’ITIS e a chiunque sia interessato a esplorare il mondo dell’elettronica e dell’automazione partendo da zero. Attraverso questo corso, avrete l’opportunità di imparare, sperimentare e, soprattutto, divertirvi, ponendo le basi per future esplorazioni elettroniche.

Durante queste brevi lezioni entrerò nel dettaglio dei termini tecnici, quindi troverete in più punti note specifiche che daranno dettagli sui termini utilizzati in modo che la guida oltre ad essere uno strumento che vi porta alla scoperta del kit sia anche un manuale di studio.

Benvenuti nel mondo di Arduino e dell’elettronica creativa. Iniziamo questo viaggio insieme 🙂

Cosa Imparerete

Durante il corso, esploreremo insieme i principi base dell’elettronica e della programmazione attraverso l’uso dell’Arduino Sensor Kit. Imparerete a:

  • Leggere dati da vari sensori ambientali per comprendere il mondo intorno a voi.
  • Elaborare informazioni attraverso la programmazione di base con Arduino, trasformando i dati grezzi in informazioni utili.
  • Agire sul mondo esterno, utilizzando attuatori come motori e LED per creare effetti visibili e meccanici.

Analisi della kit

L’Arduino Sensor Kit include dieci moduli con connessione Grove che possono essere utilizzati individualmente o combinati per realizzare i vostri progetti. Tutti i moduli utilizzano un connettore Grove, che può poi essere collegato facilmente ad Arduino UNO R3 o R4 tramite uno Shield, il tutto può essere programmato tramite l’IDE di Arduino.

NOTE

    • IMPORTANTE. I moduli sono montati su una PCB (scheda a circuito stampato – vedete foto allegata), che viene collegata allo Shield di base. È possibile lasciarli in questo modo e non è necessario alcun cablaggio con fili elettrici. Se si decide di provare i moduli individualmente, tenete presente che dovrete staccarli dal PCB principale ed essere cablati mediante fili elettrici e NON potranno più essere reinseriti nella PCB principale.
    • Cos’è uno Shield Arduino. Uno shield Arduino è un modulo progettato per essere sovrapposto direttamente su una scheda Arduino standard, estendendone le funzionalità senza la necessità di un cablaggio esterno complicato. Gli shield sono utilizzati per aggiungere nuove capacità alle schede Arduino, come connettività wireless, controllo di motori, sensoristica avanzata, interfacciamento con display, e molto altro.

Caratteristiche chiave degli shield Arduino includono:

    • Compatibilità di Form (form factor): Gli shield sono progettati per adattarsi perfettamente ai pin di connessione presenti sulle schede Arduino, garantendo una connessione fisica sicura e stabile.
    • Facilità di Uso: Possono essere facilmente montati o rimossi, consentendo agli utenti di aggiungere o modificare funzionalità al loro progetto in modo rapido.
      – Stackabili (imputabili): Molti shield sono progettati per essere impilabili, il che significa che è possibile montarne diversi contemporaneamente, a patto che non ci siano conflitti tra i pin utilizzati dai vari moduli.
    • Librerie Dedicate: Spesso, per facilitare l’utilizzo degli shield, sono disponibili delle librerie software specifiche che permettono di sfruttarne le funzionalità tramite l’IDE di Arduino.

Grazie alla loro facilità d’uso e alla vasta gamma di funzionalità che offrono, gli shield sono particolarmente apprezzati sia dai principianti che dai professionisti del mondo dell’elettronica e del DIY (Do It Yourself – fai da te), permettendo di realizzare progetti complessi senza dover entrare nei dettagli tecnici di ogni singolo componente hardware.

    • Connessione Grove. Una connessione Grove è un tipo di interfaccia standardizzata sviluppata da Seeed Studio, progettata per semplificare il processo di connessione fisica tra diversi componenti elettronici e piattaforme di prototipazione, come Arduino. L’obiettivo principale del sistema Grove è rendere più accessibile l’elettronica a hobbisti e studenti che iniziano lo studio dell’elettronica, minimizzando la necessità di saldature o di comprendere complessi schemi di collegamento.

Apriamo la scatola

Vediamo cosa è incluso nel Breakout Board del Kit Sensori Arduino:

  • Lo Shield di Base
  • 4 moduli digitali: LED, Pulsante, Buzzer e un Sensore di Angolo Rotativo
  • 5 Sensori: Luce, Suono, Barometro, Temperatura & Umidità e Accelerometro
  • 1 Display Oled
  • Materiali didattici

Inoltre, tutti i pin su UNO R3 o R4 rimangono accessibili mediante l’uso di cavi jumper.

NOTE

    • Le breakout board rappresentano uno strumento essenziale nel mondo dell’elettronica e del prototipaggio. Sono schede che incorporano uno specifico componente elettronico, il quale è già saldato sulla scheda stessa. Questo permette agli appassionati e ai professionisti di lavorare con componenti altrimenti difficili da maneggiare a causa delle piccole dimensioni o della complessità dei pin. Le breakout board rendono i collegamenti estremamente accessibili, portando le connessioni del componente all’esterno su terminali facilmente gestibili. Tipicamente, queste connessioni terminano su piazzole con un passo standard di 2,54 mm, lo standard per molte breadboard e dispositivi di prototipazione, facilitando così l’integrazione del componente in circuiti più ampi senza la necessità di saldature complesse o configurazioni intricate.
    • I cavi jumper sono piccoli cavi usati in elettronica per stabilire connessioni temporanee tra i componenti su una breadboard, tra differenti breadboard, o tra componenti elettronici e dispositivi di input/output. Sono particolarmente utili nel prototipaggio e nel test di circuiti elettronici perché permettono di modificare rapidamente le connessioni senza la necessità di saldature. Esistono cavi jumper Maschio-Maschio (M-M), le estremità del cavo terminano con un connettore maschio, Femmina-Femmina (F-F) che hanno connettori femmina su entrambe le estremità (F-F), Maschio-Femmina (M-F), questi cavi hanno un connettore maschio da un lato e un connettore femmina dall’altro (M-F). I cavi jumper sono disponibili in diversi colori, il che può aiutare a mantenere l’organizzazione dei collegamenti in un progetto elettronico, facilitando l’identificazione dei diversi segnali, alimentazioni e terre. Sono strumenti indispensabili nel kit di chiunque lavori con l’elettronica a livello di hobbistica o professionale, offrendo una soluzione rapida e flessibile per esperimenti e prototipi.

Lo Shield di base

Lo Shield di base è progettato per essere montato sopra una scheda Arduino UNO R3 o R4. È dotato di 16 connettori Grove, che, quando posizionati sopra la scheda Arduino, forniscono funzionalità a vari pin. Per interagire con i componenti utilizza i seguenti pin:

  • 7x pin digitali – D2, D3, D4, D5, D6, D7
  • 4x pin analogici – A0, A1, A2, A3
  • 4x pin I2C
  • 1x pin UART

NOTE

  • IMPORTANTE. Lo Shield di base ha un interruttore per la selezione della tensione di ingresso (3V3 e 5V) che alimenta i moduli, mantenere su 5V per seguire far funzionare correttamente i dispositivi contenuti nel kit.
    I 10 moduli inclusi possono essere collegati allo shield di base, attraverso i pin digitali, analogici e I2C presenti sulla scheda.
  • Cosa sono i pin digitali e analogici. Nel contesto dell’elettronica e in particolare quando si parla di schede come Arduino, i termini “pin digitale”, “analogico” e “I2C” si riferiscono a diversi tipi di connessioni o porte sulla scheda che hanno funzioni specifiche. Ecco una spiegazione più dettagliata di ciascuno:
    • Pin Digitali
      I pin digitali sono utilizzati per leggere o scrivere due stati distinti: HIGH (alto) o LOW (basso), che corrispondono solitamente a tensioni specifiche (per esempio, 5V o 3.3V per HIGH e 0V per LOW). Questi pin sono adatti per controllare LED, leggere lo stato di pulsanti o interruttori, e per comunicazione digitale. Un pin digitale configurato come input può leggere lo stato di un dispositivo esterno (ad esempio, se un pulsante è premuto o meno), mentre un pin configurato come output può inviare un segnale (ad esempio, accendere o spegnere un LED).
    • Pin Analogici
      I pin analogici sono usati per leggere valori che possono variare su un ampio range, non limitandosi solo a due stati come i pin digitali. Questi pin sono tipicamente utilizzati per leggere il segnale da sensori che forniscono una variazione continua nel tempo, come un potenziometro o un sensore di temperatura. Il valore letto da un pin analogico è quindi convertito in un numero digitale tramite un convertitore analogico-digitale (ADC) interno alla scheda, permettendo al microcontrollore di elaborarlo.
    • I2C (Inter-Integrated Circuit)
      I2C è un protocollo di comunicazione seriale che utilizza due linee: SDA (Data) e SCL (Clock). Permette la comunicazione tra un microcontrollore (master) e uno o più dispositivi periferici (slave) utilizzando solo queste due linee, indipendentemente dal numero di dispositivi collegati. Questo lo rende particolarmente adatto per connettere vari sensori, display, e altri moduli a microcontrollori con un numero limitato di pin disponibili. I2C è apprezzato per la sua semplicità e efficienza nel collegare multiple periferiche con un cablaggio minimo.

Ogni tipo di pin ha il suo scopo specifico e la scelta tra di loro dipende dal tipo di segnale che si vuole leggere o trasmettere e dalla natura del progetto elettronico che si sta realizzando.

I moduli disponibili nel kit

Sono presenti 10 moduli, tutti dotati di connessione Grove.

  • Pulsante – un pulsante che può assumere lo stato HIGH o LOW.
  • Potenziometro – un resistore variabile che aumenta o diminuisce la resistenza quando si gira la sua manopola.
  • LED Rosso – un semplice LED che può essere acceso, spento o regolato in intensità.
  • Buzzer – un altoparlante piezoelettrico che viene utilizzato per produrre suoni binari.
  • Display OLED da 0,96″ – uno schermo su cui possono essere stampati valori o messaggi.
  • Sensore di Luce – un fotoresistore che legge l’intensità luminosa.
  • Sensore di Suono – un piccolo microfono che misura le vibrazioni sonore.
  • Sensore di Pressione dell’Aria (BMP280) – legge la pressione dell’aria, utilizzando il protocollo I2C.
  • Sensore di Temperatura e Umidità – legge contemporaneamente temperatura e umidità.
  • Accelerometro – un sensore utilizzato per misurare l’orientamento, usato per rilevare il movimento.
  • Materiali Didattici

Il kit è fornito di 10 lezioni in lingua che potrete seguire online in lingua inglese sul sito Arduino e vi guidano passo passo all’uso di tutti i moduli dal come collegarli a come programmarli. Le lezioni seguono un approccio Plug-Sketch-Play che vi permette di programmare rapidamente i moduli e capire come funzionano. “Plug” mostra come collegare i componenti, “Sketch” fornisce il programma che deve essere caricato e “Play” definisce come puoi sperimentare con il modulo.
Per quanto mi riguarda mi riguarda, amplierò la proposta offerta da Arduino in quanto ritengo più consono aggiungere ulteriori moduli che vanno ad approfondire ancora di più argomenti che poi verranno svolti negli anni successivi dagli studenti.

Nota: Le lezioni che trovate sul sito Arduino che fanno riferimento al Sensor Kit possono essere utilizzate come guide di riferimento e possono essere svolte in qualsiasi ordine a vostra scelta, così come lo saranno le lezioni aggiuntive che aggiungerò io.

Strumenti Arduino

Oltre ai componenti e allo shield di base avrete bisogno dei seguenti strumenti:

  • Una Scheda Arduino UNO R3 o R4
  • L’Ambiente di Sviluppo Arduino
  • La Sensor Kit library

NOTA

Cos’è una library?

Una library (o libreria in italiano) di Arduino è una raccolta di codice che semplifica la programmazione di compiti specifici in progetti Arduino. Le librerie forniscono un modo per estendere le funzionalità dell’IDE (ambiente integrato di programmazione) di Arduino, permettendo agli sviluppatori di utilizzare codice pre-scritto per controllare nuovi hardware, comunicare con specifici protocolli di comunicazione, o eseguire compiti complessi senza dover scrivere da zero tutto il codice necessario.

Le librerie Arduino possono includere definizioni di funzioni, costanti e istruzioni per tipi di dati che rendono più semplice, per esempio, il controllo di sensori, motori, display e altri componenti elettronici. Usando le librerie, anche i programmatori principianti possono implementare rapidamente tecnologie complesse, come la comunicazione WiFi, Bluetooth, o la gestione di display OLED, solo per citarne alcune.

Ecco alcune caratteristiche principali delle librerie di Arduino:

    • Riutilizzabilità: Una volta che una libreria è stata scritta, può essere riutilizzata in molti progetti diversi.
    • Condivisione: Le librerie possono essere condivise con altri sviluppatori, facilitando la collaborazione e la diffusione di conoscenze.
    • Semplificazione: Le librerie astraggono i dettagli di basso livello, permettendo di concentrarsi sulla logica del progetto piuttosto che su problemi tecnici specifici.
    • Estensibilità: Le librerie permettono di aggiungere facilmente nuove funzionalità ai progetti Arduino.

Per utilizzare una libreria in un progetto Arduino, tipicamente si include l’header della libreria all’inizio dello sketch con una direttiva `#include`, è un modo per aggiungere al codice di programmazione tutte le istruzioni che consentono di gestire uno specifico componente. Un volta inclusa la libreria si potrà accedere alle funzioni come definito nella documentazione della libreria. L’IDE di Arduino viene fornito con diverse librerie standard, e ci sono migliaia di librerie aggiuntive sviluppate dalla comunità disponibili online.

La Scheda UNO R3 e R4

Per utilizzare lo Shield di Base avete bisogno di una scheda Arduino UNO R3 o R4 ciò permetterà di programmare i sensori. Lo Shield di Base condivide lo stesso layout dei pin con l’UNO R3 ed R4 e può essere inserito facilmente nella parte superiore della scheda.

La libreria della Sensor Kit

La libreria Sensor Kit di Arduino è una libreria è una libreria che permette di interagire con l’accelerometro, il sensore di pressione dell’aria, il sensore di temperatura e il display OLED. Questa libreria fornisce istruzioni facili da usare che vi aiuteranno nella realizzazione dei vostri progetti.

Configurazione dell’ambiente di sviluppo

Prima di iniziare con le lezioni e sperimentare con i moduli, vi consigliamo di configurare l’ambiente di sviluppo. Seguite i passaggi sottostanti per assicurarvi di avere tutto ciò di cui avete bisogno.

Scegliete l’IDE di programmazione

Per poter sviluppare i vostri programmi, in altro modo gli sketch, potete optare per due soluzioni:

L’IDE Offline

L’IDE Offline ha un processo di configurazione semplice. Scaricate dal sito di riferimento ed installate l’Arduino IDE per il vostro sistema operativo.

L’IDE Online

Se decidete di utilizzare l’Editor Web, dovete solo creare un account e installare il plugin Create. Non sono richieste altre installazioni.

Aggiungere la libreria Sensor Kit

Nell’IDE Offline, aprite il Gestore delle Librerie da Strumenti > Gestisci Librerie, cercate la Libreria Sensor kit Arduino e installatela.

Clic su “INSTALLA”

E’ probabile che non abbiate già installato in precedenza le librerie necessarie che servono per il funzionamento di alcuni sensori, in questo caso procedete facendo clic su “INSTALLA TUTTO”

Per l’IDE Online, non è necessario scaricare la libreria, ma potreste doverla cercare nella scheda Librerie. Una volta trovata, fate clic per aprire l’esempio specifico.

Collegare lo shield di base ad Arduino

Collegate lo shield di base alla vostra scheda Arduino e connettete la scheda Arduino al computer.

Collegari i moduli

Proviamo a controllare il modulo LED Rosso tramite il modulo Button. Collegate un’estremità del cavo Grove al modulo LED e l’altra estremità al pin D6 dello Shield di Base. Allo stesso modo, collegate il modulo Button al pin D4.

NOTA

IMPORTANTE. Se non avete tolto i moduli dalla scheda di breakout, allora non dovete collegarli usando i cavi Grove, in questo caso i moduli sono già connessi allo Shield di Base Grove.

Caricate lo Sketch

Successivamente, dovrete caricare lo sketch PlugSketchPlay per attivare il LED tramite il pulsante. Questo sketch può essere trovato all’interno di File > Esempi > Arduino_Sensorkit > Plug_Sketch_Play

Per caricare uno sketch su Una Scheda Arduino è necessario connettere la scheda mediante un cavo USB al computer

successivamente cliccare su Strumenti > Porta per selezionare la porta corretta.

Per gli utenti Windows, la scheda è generalmente connessa tramite le porte COMX (dove X è un numero). Per gli utenti Mac OS, dovrebbe essere le porte /dev.

Nel caso si desidera utilizzare il Web Editor online procedere come segue:

  1. Create un account
  2. Installate il plugIn Create (Utilizzate un browser Chrome)
  3. Selezionate Plug_Sketch_Play

Se avete installato correttamente il plugin Create la scheda viene identificata

Nell’angolo superiore sinistro sia della versione online che offline dell’IDE Arduino, ci sono due pulsanti, Verifica e Carica. Prima, premi il pulsante Verifica (✓) per compilare. Quando la compilazione è avvenuta con successo, premete il pulsante di caricamento (→).

NOTA

La compilazione di un programma è il processo di trasformazione del codice sorgente, scritto in un linguaggio di programmazione ad alto livello (come C, C++, Java, o Python), in codice macchina o in un formato intermedio (come il bytecode in Java). Questo processo è essenziale perché il computer, nel nostro caso il microcontrollore, può eseguire direttamente solo istruzioni nella sua lingua nativa, cioè il codice macchina, che è una serie di istruzioni binarie comprese direttamente dall’unità di elaborazione centrale (CPU) del computer.

Il processo di compilazione può essere suddiviso in più fasi:

    1. Preprocessamento: In questa fase preliminare, il preprocessore esegue le direttive indicate nel codice sorgente, come l’inclusione di altri file di codice o la definizione di macro.
    2. Compilazione vera e propria: Il compilatore traduce il codice sorgente preprocessato in codice assembly, che è una rappresentazione leggibile dell’insieme di istruzioni macchina.
    3. Assemblaggio: L’assemblatore converte il codice assembly in codice macchina in formato binario, generando i file oggetto.
    4. Linking: In questa ultima fase, il linker unisce tutti i file oggetto (che possono includere librerie e moduli compilati separatamente) in un unico file eseguibile. Questo file contiene il codice macchina pronto per essere eseguito sul computer target.

Questo processo è fondamentale nello sviluppo di software e può variare leggermente a seconda del linguaggio di programmazione, del compilatore e dell’ambiente di sviluppo utilizzato. Per esempio, nella programmazione Arduino, si scrive il codice in una variante di C/C++, si utilizza l’IDE Arduino per compilare il codice, e poi si carica il programma compilato sulla scheda Arduino per l’esecuzione.

Sperimenta con i Moduli

Dopo aver caricato lo Sketch, premete il pulsante per accendere il LED e rilasciate il pulsante per spegnere il LED.

Nelle prossime lezioni vedremo nel dettaglio come utilizzare gli altri moduli.

Spero che questa lezione possa esservi di aiuto e per essere aggiornato tempestivamente sulle prossime lezioni e sperimentazioni che svolgerò iscriviti al sito e sui miei social, per farlo vai in colonna destra in alto.

Buon Making a tutti 🙂

Questa voce è stata pubblicata in arduino, i miei allievi e contrassegnata con , , , , , , , . Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.