Archivi categoria: tutorial

Lezione 6 – Corso di Elettronica Creativa con Arduino Sensor Kit

Sensore di luminosità

Inizio questa lezione con un’informazione che va a correggere quanto scritto sul sito Arduino in riferimento al Grove Light Sensor in cui erroneamente viene indicato il dispositivo come fotoresistenza, in realtà si tratta di un fototransistor e ciò, soprattutto per i neofiti può creare qualche problema di comprensione, soprattutto perché lo sketch presentato non fornisce esattamente quanto indicato.

Fotoresistenza o fototransistor?

  • Versione 1.0 del Grove-Light Sensor – usava una classica CdS LDR GL5528, cioè una vera fotoresistenza.
  • Versione 1.1 / 1.2 (quella montata sullo Shield dell’Arduino Sensor Kit) – per ragioni RoHS (il cadmio delle CdS è vietato) Seeed ha sostituito l’LDR con un LS06-S: si tratta di un sensore a fototransistor lineare (tecnicamente una fotodiodo-transistor) che “mima” la vecchia fotoresistenza ma è più rapido e lineare.

Il sito di Arduino non ha aggiornato la terminologia e continua a chiamarlo “photo-resistor”.

Ora come possiamo fare per non creare problemi a chi inizia?

Innanzi tutto se volete utilizzare una fotoresistenza vi rimando alle mie slide: Alfabeto di Arduino – Lezione 3, ma attenzione in questo caso dovrete usare una breadboard e realizzare un circuito con un resistore da 10Kohm e una fotoresistenza, in questo modo usando lo sketch presente sul sito Arduino o quelli indicati nelle mie slide tutto funzionerà ed avrete valori che variano tra 0 e circa 900, coll’esempio sul sito Arduino avrete un valore massimo più basso.

Dal punto di vista teorico cosa succede (usando una fotoresistenza):

La fotoresistenza (o LDR, Light Dependent Resistor) per rilevare l’intensità della luce:

  • la resistenza della fotoresistenza diminuisce quando l’intensità luminosa aumenta;
  • la resistenza della fotoresistenza aumenta quando l’intensità luminosa diminuisce.

L’ADC dell’Arduino la converte in un numero intero da 0 (buio) a 1023 (molta luce) quindi la lettura avviene tramite l’istruzione analogRead() per questo kit collegheremo direttamente il modulo al pin A3 e quindi nel codice scriveremo: analogRead(A3).

// Prof. Maffucci Michele
// Uso del sensore di luminosità
// 27.05.2025

int sensore_luce = A3;   // pin del sensore di luminosità

void setup() {
  analogReference(INTERNAL);   // 1,1 V; attivare PRIMA di qualsiasi analogRead
  delay(3);                    // attesa minima per la stabilizzazione della reference
  Serial.begin(9600);          // avvia la comunicazione seriale
}

void loop() {
  int luce_grezza = analogRead(sensore_luce);      // legge il valore grezzo dal pin A3
  int luce = map(luce_grezza, 0, 1023, 0, 100);    // converte 0–1023 in 0–100 (percentuale)

Serial.print("Livello di luce: ");
  Serial.println(luce);  // stampa il valore di luce sul Monitor Seriale

delay(1000);           // attende 1 secondo prima della prossima lettura
}

Le cose sono simili con il Grove-Light Sensor sull’Arduino Sensor Kit, ma avrete, come dicevo, valori massimi più bassi, che raggiungo circa i 750 con la torcia dello smartphone direttamente puntata sul fototransistor. Dal punto di vista funzionale nulla cambia ma è importante aver ben presente che siamo lavorando con componenti elettronici diversi che hanno comportamenti simili.

Con lo sketch precedente otterremo sulla serial monitor questi valori:

Il fatto che il valore massimo si fermi attorno a 750 è in realtà perfettamente coerente con l’elettronica del modulo.

Quindi per ora, per chi inizia potete far finta che il componente sull’Arduino Sensor Kit è una fotoresistenza e se desiderate potete fermarvi a questo punto.

Continua a leggere

Lezione 3 – Corso di Elettronica Creativa con Arduino Sensor Kit

A distanza di qualche mese riprendo le mie brevi lezioni sull’uso dell’Arduino Sensor Kit, mi dispiace non stato celere nel produrre altre lezioni, ma gli impegni lavorativi mi hanno parecchio coinvolto.

Come già avevo avuto modo di segnalare nelle precedenti lezioni, per la realizzazione di queste guide prendo come riferimento l’indice presente sul sito Arduino e su quella traccia realizzo lezioni un po’ più approfondite che mi permettono poi di strutturare una lezione di laboratorio di circa due ore di attività.

Giusto per non far “arrabbiare” nessuno — mi riferisco a chi potrebbe critica le modalità con cui vengono presentati alcuni argomenti di elettronica — ricordo che queste lezioni sono dedicate a chi non ha mai affrontato lo studio dell’elettronica (neofiti o studenti della secondaria di primo grado e studenti dei primi due anni della scuola superiore), pertanto alcuni concetti richiedono chiarimenti e inevitabili semplificazioni, che consentiranno di riprendere gli stessi argomenti con maggiore facilità quando le competenze teoriche saranno più solide.

Gli obiettivi di questa terza lezione sono:

  • comprendere come funziona un pulsante a livello elettrico e meccanico.
  • sviluppare sketch via via più complessi:
    • accensione di un LED alla pressione del pulsante;
    • Indicazione dello stato del LED sulla SerialMonitor;
    • cicli di blink avviati da pulsante;
    • cicli di blink avviati da pulsante e segnalazione del numero di cicli.

Per lo svolgimento di questa esercitazione abbiamo necessità solamente dell’Arduino Sensor Kit ed utilizzeremo:

Il pulsante:

Il LED:

Continua a leggere

5 min da maker: pannello modulare SKÅDIS per prototipi elettronici

Manteniamo in ordine i nostri progetti.

  • Tempo di realizzazione: ≈ 90 min (stampa 3D esclusa)
  • Skill richieste: modellazione di base, slicing FDM, taglio laser, assemblaggio elettronico
  • Obiettivo: ottenere un pannello ordinato e modulare dove fissare in un attimo Arduino, Raspberry Pi, breadboard, alimentazione, accessori di misura, strumenti da lavoro.

Ingredienti (“stampa & taglia”)

Piedini + ganci SKÅDIS
File STL “IKEA SKADAS Desktop Stand” di HX8

Supporti Raspberry Pi 1‑5
File STL “Support Raspberry Pi 1 to 5”

Supporti Arduino
SKADIS Support ARDUINO Uno R4 MINIMA / WIFI

Pannello SKÅDIS personalizzato (4 mm multistrato) – mia versione
SVG generato da boxes.py

Variante XL
Pannello SKÅDIS IKEA originale 76×56 cm

Per la realizzazione sono necessari:

  • Stampante 3D FDM
  • Laser CO₂ / diode ≥ 40 W per taglio multistrato 4 mm (o servizio esterno).

Il pannello SKÅDIS può essere stampato in 3D di dimensioni variabili che possono essere agganciati tra loro.

Perché costruirlo questi pannelli per le sperimentazioni didattiche

Durante le lezioni di elettronica applicata mi trovo spesso a dover passare, nella stessa mattina da un semplice circuito realizzato con Arduino ad un sistema di automazione gestito da PLC, oppure alla realizzazione di un’esercitazione di demotica svolta su pannelli su cui è riposta la planimetria di un’abitazione su cui gli studenti cablano sensori ed attuatori. 

Un pannello modulare SKÅDIS risolve quattro problemi in un colpo solo:

  1. Ordine operativo – ogni circuito trova il suo posto: MCU, shield, breadboard e linee di alimentazione sono ancorati, non “ballano” sul banco, e i cavi di misura restano liberi da grovigli.
  2. Visualizzazione del complessivo – fissando al legno la stampa di una pianta dell’abitazione, gli allievi hanno sotto gli occhi una mappa in cui inserire tutti i dispositivi, ciò rende più chiara la distribuzione dell’I/O e logica di cablaggio.
  3. Portabilità – in pochi secondi il pannello diventa una valigetta di prototipazione che può diventare una piccola stazione meteorologica o un sistema per la rilevazione di micropolveri da collocare all’esterno della scuola oppure portare ad una fiera.
  4. Ecosistema open‑source infinito – online esistono migliaia di modelli gratuiti compatibili SKÅDIS (strumenti, bobine per cavi, supporti sensore, clip per sonde, mini‑cassetti, barre DIN, porta-breadboard e molto altro). Bastano pochi clic su MakerWorld, Printables o Thingiverse per scaricare l’STL, lanciare la stampa e arricchire il pannello con accessori su misura, espandendo il progetto all’infinito senza costi aggiuntivi.

Il pannello SKÅDIS lo vedo non solo come un supporto fisico, ma è il canvas su cui disegnare, smontare e ricostruire qualunque idea elettronica, sfruttando una community globale che rilascia in continuazione nuovi moduli pronti da stampare, un modo per mantenere ordinato il laboratorio.

I link di seguito indicati vi permettono di accedere ad una lista enorme di oggetti da stampare in 3D ed agganciare al pannello SKÅDIS.

In un prossimo post vi mostrerò come ho realizzato un carrello con piccoli tavolini acquistati all’Ikea per contenere scatole per progetti. Sui lati del carrello ho fissato pannelli SKÅDIS per conservare gli attrezzi di lavoro.

Buon Making a tutti.

Organizzare il lavoro con il sistema PARA: una guida per formatori e insegnanti

Tutto ebbe inizio dalla lettura del libro: “Il tuo secondo cervello” di Tiago Forte.

Sto lavorando alle nuove slide del mio “Starter Kit delle competenze digitali”, un percorso pensato per fornire strumenti pratici e immediati per affrontare le sfide della progettazione, gestione del tempo e documentazione nel contesto formativo indirizzato sia a docenti che studenti.

Una delle sezioni più importanti è proprio dedicata alle metodologie organizzative, e tra queste non poteva mancare il sistema PARA ideato da Tiago Forte, una strategia che ha modificato nell’ultimo anno il mio modo di gestire il lavoro. Questo metodo, semplice e versatile, consente di strutturare progetti, responsabilità e risorse in modo funzionale, riducendo il disordine mentale e migliorando la produttività.

In questo post voglio condividere un riassunto del metodo PARA, che inserirò nel mio Starter Kit, spiegandone i principi base e illustrando come può essere applicato nella progettazione didattica e nella gestione dei corsi.

Scopriamo come funziona e quali vantaggi offre.

Cos’è il sistema PARA?

PARA è un acronimo che si sviluppa in quattro categorie principali:

  1. Projects (Progetti):
    tutte le attività specifiche che hanno un obiettivo chiaro e una scadenza.
    Esempio: preparare un corso di formazione, creare materiali didattici, organizzare una lezione pratica.
  2. Areas (Aree di responsabilità):
    gli ambiti più generali e continuativi della tua vita o del tuo lavoro.
    Esempio: la didattica, la comunicazione con gli studenti, la gestione dei materiali formativi.
  3. Resources (Risorse):
    tutte le informazioni e i materiali utili, non legati a un progetto specifico, ma che potrebbero servire in futuro.
    Esempio: articoli, modelli di slide, esempi di attività didattiche.
  4. Archive (Archivio):
    dove conservi ciò che non è più attuale ma potrebbe tornarti utile.
    Esempio: materiali di corsi passati o progetti conclusi.

Applicare PARA per l’organizzazione di corsi Continua a leggere

Arduino UNO R4 WiFi – DAC – generazione di onde sinusoidali, quadre e a dente di sega

Una delle nuove caratteristiche presenti in entrambe le schede Arduino Uno R4, Minima e WiFi, è l’inclusione di un singolo DAC a 12 bit. Questo può generare tensioni di uscita discrete da 0 a 5 volt. Poiché questa funzionalità può essere di estremo interesse nelle attività di laboratorio di Elettronica ne indico di seguito il principio di funzionamento per sviluppare future esercitazioni.

Principio di funzionamento

Un DAC, o Convertitore Digitale-Analogico (in inglese: Digital-to-Analog Converter), è un dispositivo che converte un valore digitale (in binario) in un valore analogico (segnali continui che possono assumere un’infinità di valori all’interno di un intervallo).
Si tratta dell’operazione inversa di quella eseguita da un ADC, o Convertitore Analogico-Digitale, che converte un segnale analogico in una rappresentazione digitale.

Il processo di conversione avviene in tre fasi:

  1. lettura in input dei dati digitali,
  2. conversione in analogico
  3. output del segnale analogico

Il DAC riceve in input un segnale digitale, che è rappresentato da una serie di valori binari (0 e 1), l’elettronica del DAC consente successivamente di convertire i valori binari in un segnale di output analogico che può essere utilizzato per pilotare dispositivi analogici come altoparlanti, motori, o altre apparecchiature che necessitano di un ingresso analogico.

Dal punto di vista pratico un DAC può essere utilizzato per creare un’uscita analogica a partire da un valore digitale utile per molte applicazioni, ad esempio per generare forme d’onda audio, per pilotare dispositivi che richiedono un input analogico, o per creare segnali di tensione variabile. Ad esempio nei sistemi audio un DAC converte i segnali audio digitali (come quelli presenti nei file MP3 o nei CD) in segnali analogici che possono essere riprodotti attraverso altoparlanti o cuffie.

Per semplificare ulteriormente nell’utilizzo con Arduino UNO R4, immaginate di avere un valore digitale che varia da 0 a 4095 (rappresentando un range di 12 bit). Un DAC potrebbe convertire questo valore in una tensione che varia, ad esempio, da 0V a 5V. Quindi, se il valore digitale fosse 512 (circa metà del range), l’uscita del DAC potrebbe essere di circa 0,6V.

Vediamo un esempio pratico.

Lo sketch che segue genera una forma d’onda sinusoidale o, meglio, una forma d’onda sinusoidale “simulata”. La frequenza della forma d’onda sinusoidale viene controllata da potenziometro.

Utilizzeremo un oscilloscopio per visualizzare l’onda sinusoidale, il collegamento è piuttosto semplice, abbiamo bisogno di un potenziometro lineare con una resistenza di 5 KOhm o superiore, io ho utilizzato un potenziometro da 10 KOhm.

La sonda dell’oscilloscopio deve essere connessa al pin A0 che viene usata come uscita del DAC. Il potenziometro ha il pin centrale connesso ad A5 (ingresso del DAC), un pin laterale connesso a 5V sulla scheda e l’altro pin laterale connesso a GND sulla scheda.

Se non possedete un oscilloscopio potete inviare l’output ad un amplificatore audio in modo che possiate ascoltare la tonalità generata, ricordate però che se procedete in questo modo bisogna assicurarsi che il controllo del volume sull’amplificatore sia al minimo, dopo di che lentamente aumentate il volume.

Il codice indicato di seguito è tratto dall’esempio di riferimento sul sito Arduino e all’interno degli esempi dell’IDE su cui ho inserito i commenti tradotti in italiano e fatto una piccola correzione.

La spiegazione del funzionamento la trovate nei commenti.

// Prof. Maffucci Michele
// Arduino UNO R4 Digital-to-Analog Converter (DAC)
// Sketch di esempio tratto da: https://docs.arduino.cc/tutorials/uno-r4-wifi/dac/

// libreria per la generazione di forme d'onda analogiche
#include "analogWave.h"

// Crea un'istanza della classe analogWave, usando il pin DAC
analogWave wave(DAC);

int frequenza = 10; // variabile intera che conterrà la frequenza rilevata

void setup() {
Serial.begin(115200);
// pinMode(A5, INPUT); // non necessaria perchè ingresso analogico
wave.sine(frequenza);
}

void loop() {
// legge un valore analogico dal pin A5 e lo mappa nell'intervallo 0 - 10000 Hz
frequenza = map(analogRead(A5), 0, 1024, 0, 10000);

// Stampa l'aggiornmento dell frequenza impostata sulla serial monitor
Serial.println("La frequenza e' " + String(frequenza) + " hz");

// Imposta la frequenza del generatore di forma d'onda sul valore aggiornato
wave.freq(frequenza);

// aspetta un secondo prima di ripetere la successiv rilevazione
delay(1000);
}

Volutamente ho lasciato commentata nel setup() la riga di codice in cui viene impostato il pinMode del pin A5 perché non è necessario inizializzare un pin Analogico, nell’esempio originale invece viene inizializzata.
A tal proposito per chi inizia con Arduino consiglio la lettura della guida: “Errori comuni nell’uso di Arduino – confondere pin analogici con pin digitali“.

Il risultato sarà il seguente:

E’ possibile quindi generare forme d’onda non solo sinusoidali, la funzione wave permette di impostare:

  • sine – onda sinusoidale
  • square – onda quadra
  • saw – onda a dente di sega

sarà sufficiente sostituire wave.sine(frequenza) presente nella sezione setup() rispettivamente con:

  • wave.square(frequenza);
  • wave.saw(frequenza);

Onda quadra:

Onda a dente di sega:

Buon Making a tutti 🙂