Perché usare Arduino UNO R4 WiFi invece di un ESP32?

Vi condivido la mia risposta alla domanda che un utente mi ha fatto sulla mia pagina Facebook in riferimento al post: Aggiornare il firmware dell’Arduino UNO R4 WiFi

Grazie degli spunti che ci dai! Ti volevo chiedere quale fosse il vantaggio di avere un Arduino che per la connettività usa, anche se integrata, una esp32 e perché invece non usare solo quest’ultima che integra la maggior parte delle funzionalità?

Poiché si tratta di una domanda ricorrente che mi viene fatta ho pensato di pubblicare la risposta su questo sito.

Ciao Antonio C.
Scusami se non ti ho risposto subito, ma ho sfruttato la tua domanda per riflettere su alcune cose che metterò in evidenza durante le prossime lezioni con i miei studenti (e forse ne farò un post) e quindi le ho scritte in modo tale da rispondere anche a loro, sono stato un po’ prolisso, pensavo e scrivevo, comunque grazie per la domanda.

Il motivo principale per cui in laboratorio uso Arduino UNO R4 WiFi è la prototipazione plug & play in un contesto dove girano tanti shield a 5 V e progetti “da banco”. Avere un UNO “classico” con la rete integrata riduce gli intoppi: niente (o molti meno) convertitori di livello, meno sorprese sui pin, più tempo per scrivere codice e fare misure. Il vantaggio, insomma, è soprattutto pratico.
In più, le schede vengono usate da classi e anni diversi: questa scelta consente di avviare attività che interagiscono con il mondo reale in modo rapido e uniforme per tutta la classe; quando il gruppo è pronto, si passa volentieri anche ad altre piattaforme.

Interessante il fatto che con l’UNO R4 mantieni logica/alimentazione a 5 V e la compatibilità con gli shield R3 tipici dell’ecosistema Arduino, senza dover inserire level-shifter. Molte schede ESP32 lavorano invece a 3,3 V e non sono 5 V-tolleranti, quindi richiedono più accortezze sull’hardware. Immagina la situazione di sperimentazione in classe: tanti adolescenti alle prime armi, dove una delle competenza da raggiungere è l’attenzione, quanti ESP32 brucerei? 🙂

Per le prime classi dell’ITIS è un plus avere l’ecosistema Arduino pronto (IDE, Cloud, librerie, esempi).

Su R4 WiFi usi direttamente WiFiS3 e gli esempi ufficiali: accendi, compili, carichi, senza dover toccare RTOS, partizioni o toolchain ESP.

Un’altra comodità è la separazione dei compiti tra i due chip:

  • la RA4M1 esegue il tuo sketch e le parti “tempo-critiche” (ADC, PWM, servo, protocolli, ecc.);
  • l’ESP32-S3 gestisce Wi-Fi/BLE e, sulla UNO R4 WiFi, cura anche la USB-to-serial verso il RA4M1. Questo schema riduce il rischio che stack di rete/USB “sporchino” il timing del codice utente.

Sul fronte analogico, hai a bordo un DAC a 12 bit e un OP AMP integrato, con un ESP32-S3 “puro” queste funzioni non le hai integrate, quindi dovresti aggiungerle con IC esterni.

Non ultimo, la matrice LED 12×8 integrata: perfetto per debug e feedback rapidi (numeri, icone, barre, stati). Tutti gli studenti vedono subito cosa succede senza dover guardare solo il Serial Monitor, e ci sono esempi pronti nell’IDE.

Detto questo, non devo “convincere” nessuno: quando la classe risponde bene e c’è voglia di spingersi oltre, uso anche ESP32 (e altro), soprattutto per progetti tutto a 3,3 V o più “muscolosi” lato rete/calcolo, con componentistica esterna ad hoc. Dipende molto dal contesto e dagli obiettivi didattici.

In sintesi, UNO R4 WiFi è un oggetto che include già molto (5 V + shield, connettività, DAC, OP AMP, matrice) e mi permette di gestire velocemente gruppi diversi (dal punto di vista delle competenze) senza perdite di tempo.

Una cosa che vorrei sottolineare: i tempi di sviluppo sperimentazione che un appassionato Maker o professionista si discostano parecchio da quelli di uno studente che usa il “tempo scuola” per studiare anche altre discipline, però fortunatamente abbiamo molti ragazzi che si appassionano e fanno tanto in autonomia e che io ed i miei colleghi seguiamo la mattina ma anche in attività pomeridiane.

Tutto ciò per dire che Arduino UNO R4 WiFi è un buon compromesso.

Grazie.

Progettare bene, programmare meglio: diagrammi di flusso – cos’è il formato Mermaid? – Lezione 2/5

Ripasso di inizio anno – appunti per la classe.

In elettronica e automazione, un errore concettuale spesso costa più tempo di un errore di cablaggio. I diagrammi di flusso aiutano a scomporre il problema in passi elementari, chiarire condizioni e cicli, progettare la logica prima di scrivere il codice. Questo riduce la probabilità di “scrivere e sperare” e mette gli studenti nella condizione di ragionare per stati, condizioni e transizioni: esattamente ciò che serve per gestire sensori (LDR, potenziometri), attuatori (LED, buzzer) e sequenze temporizzate su Arduino.

In classe, partire dal diagramma rende trasparente il legame tra:

  • Analisi del problema > (diagramma);
  • Progettazione > (pseudocodice);
  • Implementazione > (sketch Arduino).

Questa filiera abitua a un metodo di lavoro replicabile, valutabile e condivisibile.

Che cos’è Mermaid

Mermaid è uno strumento open-source che trasforma descrizioni testuali (uno specifico linguaggio “simile al Markdown”) in diagrammi resi automaticamente nel browser. È scritto in JavaScript ed è pensato proprio per “diagrammare come si scrive”: poche righe leggibili, risultato grafico immediato.

Nato come progetto open-source nel 2014 per semplificare la creazione di diagrammi nelle documentazioni tecniche, Mermaid è sviluppato dalla comunità (MIT license) e supporta diversi tipi di diagramma: flowchart, sequence diagram, state diagram, Gantt, ER, class diagram e altri.

Dove funziona (integrazioni utili a scuola)

Mermaid è integrato o supportato nativamente in molte piattaforme usate anche in ambito didattico e progettuale (editor Markdown, wiki, ambienti di sviluppo, appunti digitali). Questo significa che studenti e docenti possono scrivere il diagramma nello stesso file in cui documentano, e vederlo renderizzato senza strumenti pesanti.

Un vantaggio pratico importante: GitHub permette di includere i diagrammi Mermaid direttamente dentro i file Markdown del repository. Per noi significa versionare codice e diagrammi nello stesso posto.

Perché Mermaid è più interessante rispetto ai tool grafici tradizionali

Molti software di disegno (Visio, draw.io, ecc.) producono file binari o complessi da confrontare e unire. Mermaid, invece, produce testo:

  • che viene integrato nella versione con Git insieme allo sketch (storia delle modifiche, differenze riga-per-riga, revisioni);
  • si integra nei flussi “docs-as-code”, cioè il trattare la versione e gli aggiornamenti della  documentazione di progetto come si fa per il codice (documentazione e progetto nello stesso repository);
  • è più veloce da modificare: cambiare una logica significa aggiornare due righe, non ridisegnare frecce e box;
  • è adatto all’automazione (generare diagrammi da script o dati).

Inoltre, per gli studenti è inclusivo: chi fatica con strumenti grafici complessi oppure non è particolarmente allenato nello scrivere codice, può concentrarsi sulla logica invece che sulla formattazione.

Tipi di diagrammi utili nel laboratorio di sistemi con Arduino

  • Flowchart (diagrammi di flusso): progettano il comportamento dello sketch (lettura sensore > confronto con soglia > azione). Perfetti per attività didattiche laboratoriali, come ad esempio con la gestione di: LDR, potenziometri, PWM su LED/buzzer.
  • State diagram (diagrammi di stati): modellano macchine a stati finiti, utili per sistemi reattivi (allarmi luminosi/acustici, sequenze a tempo e molto altro).
  • Sequence diagram: descrivono interazioni nel tempo (Utente > Arduino > Sensore >  Attuatore), utili per chiarire responsabilità e tempi (debounce, ritardi, feedback).
  • Gantt: pianificano attività di laboratorio (ricerca componenti, prototipazione, test, consegna), favorendo un’organizzazione realistica del progetto.
  • ER diagram: modellano dati (es. datalogger con tabelle misure, sensori), utile quando il progetto prevede salvataggi su SD/PC e successiva analisi.

Un flusso di lavoro consigliato (didattico e “versionabile”)

Di seguito trovate il flusso di lavoro che bisognerebbe adottare nello sviluppo di un sistema con Arduino e non solo, ovviamente è suscettibile di modifiche, ma percorrendo i 6 punti molto probabilmente il vostro progetto funzionerà, o come diceva un mio caro amico probabilmente “funzionicchierà” 🙂

  1. Definisci il comportamento atteso del sistema (requisiti minimi e soglie).
  2. Scrivi il flowchart in Mermaid (anche direttamente nel README del progetto).
  3. Aggiungi lo state diagram se il comportamento è meglio descritto per stati.
  4. Deriva lo pseudocodice riga-per-riga dal diagramma.
  5. Implementa lo sketch Arduino e committa insieme a diagrammi e note.
  6. Versiona su GitHub e usa pull request per rivedere sia codice che diagrammi (il diff testuale evidenzia le modifiche di logica).

Esempio pratico

Vediamo ora un esempio minimale pratico che conduce dal diagramma di flusso allo sketch

flowchart TD
A[Start] --> B[Leggi LDR A0]
B --> C{v < soglia?}
C -- Si --> D[LED ON]
C -- No  --> E[LED OFF]
D --> B
E --> B

Lettura della LDR, confronto a soglia, attivazione LED: lo schema diventa facilmente uno sketch con analogRead(), confronto, digitalWrite(). Questo ponte chiaro tra diagramma e codice rende la progettazione più rigorosa e la correzione più rapida.

Strumenti gratuiti per generare il diagramma di flusso

E’ possibile utilizzare diversi software gratuiti o semi-gratuiti che vi consentono di scrivere la descrizione del diagramma e lo traducono immediatamente in un grafico, vi segnalo due software

Mermaid Live Editor

Mermaid Live Editor (browser, nessuna installazione). Accedendo all’applicativo web scriverete sulla sinistra della pagina e se la descrizione del grafico è ben scritta e formatta, vedrete il diagramma a destra della pagina. Sarà possibile esporta in PNG/SVG. Ottimo per le prime esercitazioni.
Per la documentazione ufficiale di Mermaid Live Editor seguite il link.

Drawio

Un altro software credo già molto impiegato nella scuola è draw.io che può essere integrato all’intero degli applicativi Google come estensione oppure potete utilizzare direttamente collegandovi al sito di riferimento drawio.com.
Utilizzare l’applicativo è estremamente semplice e l’importazione di un grafico Mermaid potete farlo seguendo il percorso: Organizza > Inserisci > Mermaid… si aprirà un pannello in cui inserire il testo Mermaid.
L’uso di drawio facilita maggiormente l’editing, in quanto le modifiche avvengono su un editor grafico, pertanto l’orientamento delle frecce di collegamento tra i blocchi, spessori di linee, aggiunte di blocchi ed altro sono probabilmente più semplici, quindi probabilmente potrebbe essere utile insegnare a scrivere il testo Mermaid e poi rielaborarlo in drawio.

Nella prossima lezione vedremo come passare dal diagramma di flusso allo pseudocodice su problemi della vita comune.

Buona progettazione a tutti 🙂

Aggiornare il firmware dell’Arduino UNO R4 WiFi

Con l’aiuto di alcuni studenti procederò nelle prossime mattinate all’aggiornamento del firmware del modulo di connettività ESP32-S3 dell’Arduino UNO R4 WiFi, questa operazione è necessaria perché la scheda venga riconosciuta correttamente dagli strumenti di sviluppo (Arduino IDE, Arduino Cloud) e per usare le funzioni di rete.

Poiché questa operazione verrà effettuata su una grande quantità di schede, ho preferito scriverne un post che i ragazzi potranno seguire, in ogni caso il riferimento ufficiale è la documentazione del sito Arduino da cui ho estrapolato la guida.

Metodo consigliato — da Arduino IDE (2.2.1 o successivo)

1 – Collega l’UNO R4 WiFi al PC con un cavo USB-C dati e aprite Arduino IDE 2.

2 – Se avevate aperto Serial Monitor o Plotter, chiudetele.

3 – Andate su StrumentiAggiornamento del firmware.

4 – Nel menu a tendina selezionare “UNO R4 WiFi” e premete sul pulsante “VERIFICA AGGIORNAMENTI“. Se la scheda non compare, verificate il cavo/porta, provate a premere il pulsante RST. Se ancora non appare, potrebbe mancare il firmware del bridge USB: usate la procedura di ripristino indicata seguendo questo link.

5 – Dal menu a discesa: “Seleziona la versione del firmware” scegliere l’ultima disponibile e fate clic su “INSTALLA“.

Nota importante: l’installazione sovrascrive lo sketch presente sulla scheda.

6 – Attendete il messaggio “Firmware correttamente installato” (in basso a sinistra, guardate l’immagine che segue)

7 – Scollegate e ricollega la scheda dal PC (passaggio fondamentale)
Finché non la scollegate e ricollegate, la scheda resta in ESP Download mode; se caricate uno sketch in questo stato, rischiate di cancellare il firmware del bridge USB.

8 – Chiudete la finestra dell’ “Aggiornamento del firmware” facendo clic in alto a destra. A questo punto la scheda dovrebbe essere rilevata correttamente e pronta per essere programmata.

Nel caso in cui il l’aggiornamento non va a buon fine bisogna procedere con l’aggiornamento manuale, in tal caso la guida ufficiale è quella che trovate al seguendo il link: Restore the USB connectivity firmware on UNO R4 WiFi with espflash di cui dettaglio i passi di seguito. Continua a leggere

Comprensione del testo tecnico – Escape game didattico con BBC micro:bit V2 – icebreaker per l’inizio dell’anno scolastico

Grazie ai molti colleghi che hanno apprezzato l’idea del gioco presentata nel post “Comprensione del testo tecnico – Escape game didattico con Arduino UNO R4 – icebreaker per l’inizio dell’anno scolastico“. In diversi mi avete chiesto una proposta analoga per BBC micro:bit V2: ho quindi riadattato un paio di esercizi di base.

Le motivazioni della creazione di un escape game di questo tipo sono le medesime di quelle indicate nel post indicato sopra.

Questa attività è il primo tassello di un percorso più ampio che presenterò nel mio prossimo corso per Tecnica della Scuola, “Carta, Cartone e Coding“, il corso a fine ottobre, con contenuti aggiornati rispetto alle edizioni precedenti. Se vi interessa restare informati, iscrivetevi alle novità tramite il box:  “Iscriviti al blog tramite email” che trovate nella colonna destra del sito.

Condivido anche il Google Site che ospita il gioco: ho mantenuto un’ambientazione fantascientifica perché è lo stile che preferisco, ma ovviamente potete personalizzarla a piacere. Il nome Aurora-β richiama un mio precedente escape, Aurora-α.

Blackout sull’astronave Aurora-β

Spero che questa versione vi sia utile in classe.

Buon coding a tutti! 🙂

Quick References per lo studio – Metodo Cornell

Il Metodo Cornell non è solo un modo “ordinato” per prendere appunti: è una struttura che trasforma la lezione in un percorso di studio già pronto.

Dividendo la pagina in Cue (parole-chiave/domande), Note (annotazioni essenziali) e Sintesi (3–4 frasi finali), costringe a selezionare, collegare e riformulare le tre operazioni che fissano davvero le informazioni in memoria.

È utile in tutte le materie, dalle spiegazioni frontali all’analisi di testi, fino ai video. Funziona bene con studenti che faticano nell’organizzazione: rende visibile il “cosa è importante” e scandisce i tempi (durante, subito dopo, nei giorni successivi).

In classe l’insegnante può proporlo come routine: appunti brevi, pausa di 5–10 minuti per compilare le Cue, chiusura con la Sintesi. Al momento del ripasso, gli studenti coprono la colonna Note e rispondono alle Cue: è retrieval practice integrata nel quaderno.

Come compilare il foglio di lavoro – guida

Struttura della pagina

  • Colonna Cue (sx): parole-chiave e domande guida.
    Suggerimento dimensioni A4: ~6–7 cm (≈30% della larghezza).
  • Colonna Note (dx): appunti essenziali, schemi, formule, esempi.
    Suggerimento dimensioni A4: ~13–14 cm (≈70%).
  • Sintesi (in basso): 3–5 frasi che rispondono a: Che cosa ho imparato? Perché conta? Come si collega ad altro?

IMPORTANTISSIMO: brevi frasi, elenchi puntati, frecce e simboli, evitare il “romanzo”.

Metodo Cornell – fonte: wikipedia

Procedura che consiglio (timeline)

Durante la lezione

  • Scrivi nella colonna Note: parole-chiave, schemi, esempi minimi.
  • Lascia vuota la colonna Cue.

Entro 5–10 minuti dalla fine

  • Compila le Cue: trasforma i titoli in domande (Perché…? Come…? Qual è la differenza…?).
  • Evidenzia 3 idee centrali con un ● o ★ nella colonna Note.

Entro 24 ore

  • Scrivi la Sintesi (3–5 frasi).
  • Fai un giro di richiamo attivo: copri le Note e rispondi alle Cue a voce o per iscritto.

Ripassi successivi

  • Usa le Cue per sessioni di 5–8 minuti a 1–3–7–14 giorni (ripetizione spaziata).
  • Quando una Cue è “facile”, allunga l’intervallo; se è “difficile”, accorcialo.

Come si scrivono delle Cue efficaci

Fai domande che costringono a spiegare/collegare:

  • Perché … ? / Come … ?
  • Qual è la differenza tra A e B?
  • Quale formula uso quando… e perché?
  • Quale esempio reale dimostra…?
  • Che errore tipico si commette in…?

Evitare Cue generiche tipo “definizione”, “formule”: è importante renderle mirate.

Scarica PDF A4 della guida operativaApri il sorgente Markdown su GitHub

Se non sai cos’è il Markdown segui il link

---
title: "QR – Metodo Cornell"
version: "1.0"
autore: "Classe/Studente"
licenza: "CC BY 4.0"
ultimo_aggiornamento: "01-09-2025"
---

## Tema / Lezione


## Cue (domande / parole-chiave)
- 
- 
- 

## Note (appunti brevi)
- 
- 
- 

## Sintesi (in 3–4 frasi)


## Ripasso attivo (spaziatura)
- Giorno 1: 
- Giorno 3: 
- Giorno 7: 

Vediamo ora qualche esempio compilato con alcuni argomenti.

01 – Elettronica – Legge di Ohm

Cue (sx)

  • Cos’è R e unità di misura?
  • Quando uso V=I·R?
  • Differenza tra resistenza e resistività
  • Errore tipico nel calcolo

Note (dx)

  • Legge di Ohm: V (volt) = I (ampere) · R (ohm, Ω)
  • R dipende da materiale, lunghezza, sezione → ρ·L/A
  • Se V costante ↑R ⇒ ↓I (proporz. inversa)
  • Errore tipico: unità sbagliate (mA ↔ A)

Sintesi
La Legge di Ohm lega tensione, corrente e resistenza. Per calcoli corretti: unità coerenti e attenzione a ρ·L/A quando la geometria cambia.

02 –  Italiano – Analisi del testo poetico

Cue

  • Tema centrale?
  • Figure retoriche principali?
  • Tono e ritmo come influenzano il significato?
  • Collegamento a contesto storico

Note

  • Tema: memoria/tempo
  • Metafora ricorrente dell’acqua
  • Enjambement = sospensione → crea attesa
  • Collocazione: primo Novecento, ermetismo

Sintesi
Il testo usa metafore d’acqua ed enjambement per esprimere la precarietà del tempo; l’ermetismo spiega densità e allusioni.

03 – Storia – Rivoluzione francese (cause)

Cue

  • Cause economiche vs sociali
  • Ruolo degli Stati Generali
  • Perché la presa della Bastiglia è simbolica?

Note

  • Crisi fiscale; carestie 1788–89
  • 3° stato chiede voto per testa → Assemblea Nazionale
  • Bastiglia: simbolo dispotismo, armi e polvere

Sintesi
Cause intrecciate economico-sociali e crisi politica; Bastiglia segna la rottura simbolica col passato monarchico.

Integrare il metodo Cornell con il Spaced Learning e Retrieval Practice

Per rendere più efficace il proprio studio:

  • traformare ogni Cue in una flashcard (fronte = domanda, retro = risposta breve);
  • pianifica ripassi 1–3–7–14 giorni usando solo le Cue: copri le Note e prova a ricordare;
  • se non ricordate, non rileggere subito: provate a ricostruire dagli indizi; poi controllate e correggete.