Lezioni Raspberry Pi Pico MicroPython: piano di 6 settimane
Lezioni Raspberry Pi Pico MicroPython: 6 settimane da 40 minuti, progetti gratuiti, installazione di Thonny, materiali per 24 studenti e lezione di esempio.
Se stai preparando delle lezioni con Raspberry Pi Pico e MicroPython, ecco la risposta breve: 6 settimane, una lezione da 40 minuti a settimana, lavoro a coppie e un solo nuovo concetto di MicroPython ogni settimana. Nella settimana 1 gli studenti accendono il LED integrato con una sola riga nella REPL di Thonny; poi arrivano variabili e tempi, funzioni, pulsanti e condizioni, il suono e un sensore di distanza con il PWM, e nell'ultima settimana si costruisce un pianoforte a cinque pulsanti con una lista e un ciclo for. Il progetto di ogni settimana è gratuito su BlueGrays con schema, elenco dei componenti e codice, quindi gli studenti non hanno bisogno di Premium. Il piano usa il Raspberry Pi Pico o il Pico W con Thonny ed è pensato per studenti delle medie e delle superiori che non hanno mai programmato.
Prima vediamo perché Pico e MicroPython funzionano così bene in classe, poi la preparazione prima della prima lezione: il file UF2 di MicroPython, il pulsante BOOTSEL, la scelta dell'interprete in Thonny e a cosa fare attenzione sui computer della scuola. Seguono il piano settimana per settimana con l'equivalente Arduino C++ di ogni concetto, l'elenco dei materiali per una classe di 24, una lezione di esempio minuto per minuto, tre brevi esempi di codice, una tabella di valutazione e le soluzioni ai problemi più frequenti in classe. La versione di 8 settimane dello stesso approccio con Arduino e i blocchi è nell'articolo programmazione a blocchi in classe; questo piano non la ripete ed è pensato per le classi che vogliono partire subito con il codice testuale o passare a Python dopo i blocchi.

Perché Raspberry Pi Pico e MicroPython?
Il Pico è una piccola scheda a microcontrollore che Raspberry Pi ha costruito attorno al proprio chip RP2040. Non è un computer: come un Arduino, esegue un unico programma all'infinito. In classe ha tre punti di forza. Il primo è MicroPython, una versione alleggerita di Python per microcontrollori. Si legge facilmente e non ha punti e virgola né parentesi graffe; chi ha visto Python a informatica usa lo stesso linguaggio per comandare un LED o un buzzer. Il secondo è che non c'è compilazione: appena premi Esegui in Thonny, il codice gira sulla scheda e non aspetti compilazione e caricamento dopo ogni piccola modifica. In una lezione da 40 minuti questo significa molti più tentativi nello stesso tempo. Il terzo è la REPL: scrivi una sola riga nella Shell di Thonny, premi Invio e la scheda la esegue subito. Quando uno studente scrive led.on() e il LED si accende, capisce in cinque minuti che programmare vuol dire dare comandi alla scheda. Il prezzo basso e il fatto che la scheda si inserisca direttamente nella breadboard rendono possibile lavorare a coppie. Quando è più comodo Arduino? Con bambini piccoli che hanno appena imparato a leggere, o se il tuo kit è fatto soprattutto di moduli a 5 V, partire con Arduino e i blocchi riserva meno sorprese. Per le caratteristiche tecniche e la piedinatura della scheda, leggi che cos'è il Raspberry Pi Pico.
| Caratteristica | Raspberry Pi Pico + MicroPython | Arduino Uno + C++ |
|---|---|---|
| Tensione dei pin | 3,3 V (non tollera 5 V) | 5 V |
| Linguaggio ed editor | MicroPython, Thonny | C++, Arduino IDE |
| Eseguire il codice | Subito con Esegui, senza compilazione | Compilare e caricare dopo ogni modifica |
| Prove riga per riga (REPL) | Sì: >>> nella Shell di Thonny | No |
| Ingressi analogici | 3 pin (GP26–GP28), read_u16() 0–65535 | 6 pin (A0–A5), analogRead() 0–1023 |
| Porta USB | Micro USB | USB-B (Uno R3) |
| Sulla breadboard | Pico H / WH hanno i pin e si inseriscono direttamente | La scheda resta fuori, collegata con cavetti |
| Prezzo | Di solito nettamente più economico di un Uno | Più caro |
Prima della prima lezione: MicroPython e Thonny
- Riconosci la tua scheda: Pico, Pico W, Pico 2 e Pico 2 W richiedono ognuno un file MicroPython diverso. Guarda la scritta sulla scheda e scarica dalla pagina ufficiale di MicroPython il file .uf2 più recente per quella scheda precisa. Con il file sbagliato la scheda non si avvia o il Wi-Fi non funziona.
- Collega tenendo premuto BOOTSEL: tieni premuto il pulsante bianco BOOTSEL accanto alla porta USB mentre colleghi il cavo al computer, poi rilascialo. Sul computer compare un'unità chiamata RPI-RP2 (sul Pico 2 si chiama RP2350).
- Copia il file UF2: trascina il file .uf2 su questa unità. La scheda si riavvia in pochi secondi e l'unità scompare; non è un errore, significa che MicroPython è installato. MicroPython resta sulla scheda, non devi reinstallarlo a ogni lezione.
- Scegli l'interprete in Thonny: in Tools > Options > Interpreter seleziona "MicroPython (Raspberry Pi Pico)" e lascia la porta sul rilevamento automatico. Puoi fare la stessa scelta cliccando nell'angolo in basso a destra della finestra di Thonny.
- Prova la connessione: nella Shell in basso dovresti vedere il simbolo >>>. Scrivi print("ciao") e premi Invio; se arriva la risposta, la scheda è pronta per la lezione.
Non lasciare l'installazione sui computer della scuola alla lezione stessa; parlane con il referente informatico una settimana prima. Thonny funziona su Windows, macOS e Linux e include un proprio Python, quindi non serve installare Python a parte. Per Windows esiste anche una versione portable che non richiede installazione, e nei laboratori bloccati in cui solo il tecnico può installare programmi semplifica molto le cose. Windows 10 e 11 riconoscono il Pico come porta seriale (COM) senza driver aggiuntivi. Alcune scuole bloccano le chiavette USB; in quel caso l'unità RPI-RP2 potrebbe non comparire sui computer degli studenti, ma se hai installato MicroPython prima sul tuo computer non è un problema, perché a lezione si usa solo la connessione seriale. Infine mostra agli studenti le due opzioni della finestra di salvataggio di Thonny: "This computer" salva il file sul computer, "Raspberry Pi Pico" lo salva sulla scheda. Le coppie che non sanno quale hanno scelto non ritroveranno il loro codice nella settimana 6.
Il piano di 6 settimane per le lezioni con Raspberry Pi Pico
Ogni lezione è pensata per 40 minuti e per il lavoro a coppie. Tutti i progetti della tabella sono gratuiti su BlueGrays, e quelli delle prime tre settimane hanno anche una vista a blocchi accanto al codice. L'ordine è voluto: prima l'uscita (LED), poi variabili e tempi, funzioni, quindi ingresso e condizioni, suono e sensore con il PWM e infine liste e cicli. Ogni settimana aggiunge una sola idea nuova alla precedente. L'ultima colonna mostra lo stesso concetto in Arduino C++ e fa da ponte per chi passerà ad Arduino più avanti; per il lato C++ nel dettaglio, leggi le basi della programmazione Arduino.
| Settimana | Obiettivo | Progetto BlueGrays gratuito | Nuovo concetto MicroPython | Equivalente Arduino C++ |
|---|---|---|---|---|
| 1 | Conoscere il Pico, primo programma, uscita digitale | Lampeggio LED Integrato Raspberry Pi Pico (Pico e Pico W), Accensione di un LED esterno con Raspberry Pi Pico (GP14 + breadboard) | REPL (>>>), from machine import Pin, Pin(14, Pin.OUT), led.on() / led.off(), time.sleep(0.5), while True:, indentazione | pinMode(14, OUTPUT); digitalWrite(14, HIGH); delay(500); void loop() |
| 2 | Variabili, tempi, due uscite | Raspberry Pi Pico Due LED alternati (Flip-Flop, GP14 + GP13), Raspberry Pi Pico Effetto Lampeggiante Polizia (Rosso + Blu Stroboscopio, GP11 + GP12) | WAIT_MS = 300 (variabile), led.value(1), led.toggle(), sleep_ms(300) | int waitMs = 300; digitalWrite(13, !digitalRead(13)); delay(waitMs); |
| 3 | Meno ripetizioni: le funzioni | Simulatore Semaforo Raspberry Pi Pico (3 LED Sequenziali, GP11/GP12/GP13) | def all_off():, chiamare una funzione, secondi decimali con sleep(1.5) | void allOff() { … } ; delay(1500); |
| 4 | Ingresso, condizioni e stato | Semaforo Raspberry Pi Pico con selettore a 4 posizioni (macchina a stati, GP11-13 + GP4) | Pin(4, Pin.IN, Pin.PULL_UP), if / elif / else, mode = (mode + 1) % 4, time.ticks_ms() | pinMode(4, INPUT_PULLUP); if / else if / else; millis() |
| 5 | Sensore e suono | Sensore di parcheggio con Raspberry Pi Pico (HC-SR04 + 3 LED + buzzer) | PWM(Pin(17)), freq(), duty_u16(), time_pulse_us(), def … return | tone(17, 1200); pulseIn(); return |
| 6 | Liste, ciclo for, progetto finale | Pianoforte a pulsanti con Raspberry Pi Pico (5 pulsanti + buzzer + registratore) | NOTE_HZ = (523, 587, 659, 698, 784), for … in, cinque pulsanti con lo stesso codice | int notes[] = {523, 587, 659, 698, 784}; for (int i = 0; i < 5; i++) |

Mentre applichi il piano, fai diventare una regola che alla fine di ogni settimana si cambi un solo valore. Nella settimana 1, il progetto del LED integrato chiama il LED con il nome "LED", quindi funziona allo stesso modo su Pico e Pico W; il LED esterno va su GP14, cioè il pin fisico 19, e il pin 18 subito accanto è GND. Nella settimana 2, abbassare WAIT_MS da 300 a 80 nell'Effetto Lampeggiante Polizia mostra che una sola variabile cambia insieme il ritmo dei due LED. Nella settimana 3, il Semaforo chiama all_off() tre volte nel ciclo; chiedi agli studenti di cancellare la funzione e scrivere la stessa cosa a mano, e quando vedranno accumularsi nove righe ti diranno da soli a cosa servono le funzioni. La settimana 4 è un progetto di livello intermedio: il pulsante è collegato con PULL_UP, quindi premendolo si legge 0, e ogni pressione fa passare la modalità tra normale, solo rosso, giallo lampeggiante e spento. Il codice è lungo, quindi leggetelo prima con i passi della scheda Capire il codice. Nella settimana 5 l'HC-SR04 funziona a 5 V, quindi non dimenticare di collegare ECHO attraverso il partitore; giocare con i valori GREEN_CM 100, YELLOW_CM 50, RED_CM 25 e STOP_CM 10 dà agli studenti l'idea di soglia. Come funziona il sensore lo trovi nell'articolo sul sensore di distanza HC-SR04 e come generare suoni con il PWM in che cos'è un buzzer; usa un buzzer passivo, perché il progetto cambia la frequenza. Nella settimana 6 il pianoforte suona cinque note da DO a SOL tra 523 e 784 Hz, e tenendo premuto il tasto DO per un secondo parte la registrazione di una melodia. Il codice completo è lungo per questo livello; invece di farlo ricopiare tutto, chiedi agli studenti di cambiare le frequenze nella lista NOTE_HZ e costruire la propria scala.
Domande di uscita per ogni settimana
- Settimana 1: cosa succede se scambi le righe led.on() e time.sleep(0.5)? Perché le righe sotto while True: iniziano più a destra?
- Settimana 2: come cambia il lampeggiante se porti WAIT_MS da 300 a 1000? Quali due righe sostituisce da solo toggle()?
- Settimana 3: quante righe in più scriveresti senza la funzione all_off()? Che differenza c'è tra definire una funzione e chiamarla?
- Settimana 4: perché button.value() restituisce 0 quando premi un pulsante con PULL_UP? Se mode vale 3 e premi il pulsante, quanto vale mode?
- Settimana 5: perché non colleghiamo il pin ECHO dell'HC-SR04 direttamente al Pico? Che cosa fa al buzzer la riga duty_u16(0)?
- Settimana 6: quali liste del codice devi modificare per aggiungere un sesto tasto al pianoforte?
Elenco dei materiali per una classe di 24
Dividendo 24 studenti in coppie ottieni 12 gruppi; con uno di riserva, prepara 13 kit. Dato che il Pico costa poco, nella maggior parte delle scuole si può lavorare a coppie invece che a gruppi di tre, e ogni studente passa più tempo alla tastiera; se scegli gruppi di tre, scendi a 9 kit. Ogni gruppo ha bisogno di un computer, perché Thonny comunica con il Pico via USB. Il telefono o il tablet serve a tenere aperti su BlueGrays il progetto della settimana, lo schema e la scheda Capire il codice. Non serve saldare nulla: tutto si inserisce nella breadboard.
| Materiale | Per gruppo | Per la classe (12 gruppi + 1 di riserva) | Settimana |
|---|---|---|---|
| Raspberry Pi Pico H o Pico WH (pin saldati) | 1 | 13 | Tutte |
| Cavo micro USB dati | 1 | 13 | Tutte |
| Breadboard (400 o 830 fori) | 1 | 13 | Tutte |
| Cavetti jumper maschio-maschio | 20 | circa 260 | Tutte |
| LED da 5 mm (rosso, giallo, verde, blu) | 4 | circa 60 | 1–5 |
| Resistenza da 220 Ω | 4 | circa 60 | 1–5 |
| Pulsante (4 piedini) | 5 | circa 70 | 4, 6 |
| Buzzer passivo | 1 | 13 | 5, 6 |
| Sensore di distanza a ultrasuoni HC-SR04 | 1 | 13 | 5 |
| Resistenze da 1 kΩ e 2 kΩ (partitore ECHO) | 1 + 1 | 13 + 13 | 5 |
| Computer con Thonny | 1 | 12 | Tutte |
| Potenziometro da 10 kΩ (facoltativo, per l'ADC) | 1 | 13 | Gruppi veloci |
Lezione di esempio: settimana 1, il primo programma
Lo svolgimento qui sotto è per la settimana 1. La prima lezione è la più rischiosa, perché è lì che emergono i problemi di installazione. Diamo per scontato che MicroPython sia già sulle schede e che Thonny sia installato sui computer. Puoi usare la stessa struttura nelle altre settimane: riscaldamento, lettura insieme, previsione, circuito, esecuzione, modifica di un valore e domanda di uscita. Se hai un'ora doppia da 80 minuti, allunga la fase "modifica di un valore" e fai presentare alle coppie la risposta alla domanda di uscita.
| Tempo | Fase | Che cosa si fa? |
|---|---|---|
| 0–5 min | Riscaldamento | Domanda: che cosa bisogna dire a una scheda perché "accenda il LED"? Le risposte vanno alla lavagna. Si distribuiscono le schede e si indicano il pulsante BOOTSEL e la porta USB. |
| 5–12 min | Primo comando nella REPL | Shell di Thonny sul proiettore: from machine import Pin, led = Pin("LED", Pin.OUT), led.on(). Le coppie scrivono le stesse tre righe sul proprio computer, poi spengono con led.off(). |
| 12–18 min | Lettura insieme del progetto | Si apre su BlueGrays il progetto Lampeggio LED Integrato. Prima si leggono i blocchi con Mostra a blocchi attivo, poi il codice; si parla di while True e dell'indentazione. |
| 18–22 min | Esecuzione | Si incolla il codice in Thonny e si preme Esegui (F5). Il LED lampeggia ogni 0,5 secondi. Si mostra il pulsante Stop per fermarlo. |
| 22–32 min | Circuito con LED esterno | Si scollega l'USB. GP14 (pin 19) → 220 Ω → piedino lungo del LED, piedino corto → GND (pin 18). Si esegue il codice del progetto del LED esterno. Ruoli: montatore e controllore. |
| 32–37 min | Modifica di un valore | time.sleep(0.5) diventa prima 0.1, poi 2. Chi vuole sposta il LED su GP15 e nel codice cambia 14 in 15. |
| 37–40 min | Domanda di uscita | Una domanda su carta: cosa succederebbe se le righe sotto while True: non fossero indentate? Si scollegano le schede e si rimettono nelle scatole numerate. |
Tre brevi esempi di MicroPython per la lezione
Il LED integrato è ciò che crea più confusione tra Pico e Pico W. Sul Pico classico il LED è collegato a GP25, per questo negli esempi più vecchi trovi Pin(25). Sul Pico W il LED è collegato al chip Wi-Fi e non ha un pin GP numerato, quindi Pin(25) lì non lo accende. Il modo che funziona su entrambi è chiamare il LED per nome: Pin("LED"). Le versioni attuali di MicroPython definiscono questo nome per Pico, Pico W e Pico 2, ed è per questo che il progetto del LED integrato di BlueGrays lo usa. Se in classe hai schede miste, puoi distribuire a tutti lo stesso codice. Se un firmware vecchio non riconosce il nome "LED", basta aggiornare il file UF2.
1from machine import Pin
2import time
3
4# "LED" adı Pico, Pico W ve Pico 2'de karttaki LED'i bulur / The name "LED" finds the onboard LED on Pico, Pico W and Pico 2
5led = Pin("LED", Pin.OUT)
6# Eski firmware'li klasik Pico'da: Pin(25, Pin.OUT) / Classic Pico with old firmware: Pin(25, Pin.OUT)
7# Pico W'de Pin(25) LED'i yakmaz / On the Pico W, Pin(25) does not light the LED
8
9while True:
10 led.toggle() # Durumu tersine çevir / Flip the state
11 time.sleep(0.5) # 0,5 saniye bekle / Wait 0.5 seconds
12Il codice del LED esterno usa la stessa struttura; cambia solo il numero del pin. Qui abbiamo messo il tempo di attesa in una variabile chiamata WAIT, che sarà la prima riga che gli studenti modificheranno nella settimana 2. La variabile count e la riga print() scrivono un numero nella Shell di Thonny a ogni accensione, così gli studenti vedono sullo schermo che il ciclo gira davvero. Il 14 nel codice è un numero GP, non il numero del pin fisico; è il punto che gli studenti confondono più spesso.
1from machine import Pin
2import time
3
4LED_PIN = 14 # LED'in bağlı olduğu GP pini (fiziksel pin 19) / GP pin the LED is wired to (physical pin 19)
5WAIT = 0.5 # Bekleme süresi, saniye / Wait time in seconds
6
7led = Pin(LED_PIN, Pin.OUT) # Pini çıkış yap / Make the pin an output
8count = 0 # Kaç kez yandığını say / Count how many times it lit
9
10while True:
11 led.on() # LED'i yak / Turn the LED on
12 count = count + 1
13 print("LED", count) # Thonny Shell'e yaz / Print to the Thonny Shell
14 time.sleep(WAIT)
15 led.off() # LED'i söndür / Turn the LED off
16 time.sleep(WAIT)
17Per un pulsante ci sono due collegamenti, e vale la pena mostrarli entrambi. Con PULL_UP un piedino del pulsante va su GP15 e quello opposto su GND; una resistenza interna del Pico porta il pin a 3,3 V, premendo il pulsante il pin si collega a GND e si legge 0. Tutti i progetti con pulsante per il Pico su BlueGrays usano questo metodo, perché non serve nessun cavetto in più. Con PULL_DOWN il piedino opposto va sul pin 3V3(OUT) (pin 36) e premendo si legge 1; la logica sembra più naturale, ma è facile infilare il cavetto su VBUS (pin 40, 5 V) per errore. Quali dei quattro piedini del pulsante sono collegati tra loro lo spieghiamo nell'articolo sul collegamento di un pulsante. Puoi iniziare la settimana 4 con il breve codice qui sotto e poi passare al selettore di modalità.
1from machine import Pin
2import time
3
4led = Pin(14, Pin.OUT) # GP14 -> 220 ohm -> LED -> GND / GP14 -> 220 ohm -> LED -> GND
5button = Pin(15, Pin.IN, Pin.PULL_UP) # Buton GP15 ile GND arasında / Button between GP15 and GND
6# PULL_DOWN: Pin(15, Pin.IN, Pin.PULL_DOWN), buton GP15 ile 3V3(OUT) arasında / button between GP15 and 3V3(OUT)
7# PULL_DOWN ile koşul == 1 olur / With PULL_DOWN the condition becomes == 1
8
9while True:
10 if button.value() == 0: # PULL_UP: basınca 0 okunur / PULL_UP: reads 0 when pressed
11 led.on()
12 else:
13 led.off()
14 time.sleep_ms(10) # Döngüyü biraz yavaşlat / Slow the loop down a little
15Come usare BlueGrays in una lezione con il Pico
- Guida al codice, percorso MicroPython: la Guida al codice nella sezione Impara offre, accanto al percorso Arduino C++, un percorso MicroPython di 18 schede: import, print, pin in uscita, pin in ingresso (PULL_UP, PULL_DOWN), time.sleep, while True, indentazione, variabili, if / elif / else, for e range, liste, def e return, ADC, PWM, ticks_ms, Pin.irq, try / except e I2C. Ogni scheda contiene A cosa serve?, Sintassi, un esempio con le schede Blocchi · Arduino · MicroPython, Errore comune e un mini test. Consiglia le schede del concetto della settimana da leggere tra una lezione e l'altra; ogni studente vede il proprio avanzamento MicroPython x/18 nella schermata Il mio livello.
- Vedilo nei progetti: questo collegamento in fondo a ogni scheda elenca i progetti nel cui codice compare il comando, dal più facile al più difficile. Chi ha letto un comando sulla scheda passa da qui a ritrovarlo nel codice di un progetto vero.
- Domande del giorno: l'impostazione "Linguaggio di codice delle domande" offre Entrambi, Arduino e MicroPython. Se insegni con il Pico, fai scegliere MicroPython agli studenti; le domande generali senza codice arrivano con ogni scelta. Ogni giorno c'è una serie di circa 3 minuti, un test di livello da 15 domande e 6 livelli da A1 a C2, una buona abitudine di ripasso quotidiano tra una lezione e l'altra.
- Mostra a blocchi: cinque dei progetti gratuiti per il Pico (LED integrato, LED esterno, due LED alternati, Semaforo e Lampeggiante Polizia) hanno la vista a blocchi accanto al codice. Mostrare prima i blocchi e poi il codice dello stesso programma a chi vede Python per la prima volta costruisce l'idea "stessa logica, scrittura diversa"; questo passaggio lo spieghiamo in dettaglio in dai blocchi a MicroPython. I blocchi servono a leggere: nell'app non si modificano e sulla scheda va sempre il codice MicroPython.
- Capire il codice e Risoluzione dei problemi: tutti i progetti gratuiti per il Pico li hanno. La scheda Capire il codice inizia con il riassunto Cosa fa questo codice?, prosegue con la spiegazione Passo dopo passo e si chiude con Se ti blocchi e il compito Prova tu. Con il codice lungo delle settimane 4 e 6 è il tuo aiuto principale per le coppie che non leggono ancora velocemente.
- Costruiamolo insieme e Copia link: la modalità guidata procede in quattro passi e, al passo del codice, ricorda di scegliere l'interprete MicroPython in Thonny. Copia link nel codice sorgente fornisce un collegamento per aprire il codice sul computer, così nessuno deve ricopiare a mano in Thonny il codice del telefono.
Valutazione e differenziazione
| Criterio | 1 – Iniziale | 2 – In sviluppo | 3 – Acquisito |
|---|---|---|---|
| Montaggio del circuito | Monta con aiuto, dimentica GND | Monta seguendo lo schema, collega il numero GP al codice | Distingue pin fisici e numeri GP, trova l'errore di un compagno |
| Lettura del codice | Legge le righe, non sa spiegare cosa fanno | Spiega a grandi linee cosa fa il programma | Spiega ogni riga e il significato dell'indentazione |
| Modifica e prova | Cambia un valore, non sa spiegarne l'effetto | Prevede il risultato prima di provare | Se la previsione fallisce, trova la causa nel messaggio di errore della Shell |
| Collegamento con il C++ | Non collega | Collega Pin, sleep e while True | Collega anche if, for e le funzioni |
- Gruppi veloci, lettura analogica: nel piano non c'è una settimana sull'ADC; le coppie che finiscono prima collegano il piedino centrale di un potenziometro da 10 kΩ a GP26, leggono un valore tra 0 e 65535 con ADC(26).read_u16() e lo usano per regolare la velocità del lampeggiante della settimana 2. Per una sfida più grande, il progetto gratuito Falò LED con Raspberry Pi Pico (Matrice NeoPixel 8x8 + Potenziometro + Buzzer) comanda una matrice NeoPixel 8x8 con lo stesso potenziometro.
- Gruppi veloci, combinare: aggiungere il pulsante della settimana 4 al sensore di parcheggio della settimana 5 per scrivere una "modalità silenziosa" che attiva e disattiva il suono è il primo vero passo verso il proprio codice.
- Gruppi più lenti: consegna il circuito già montato o metti sul banco lo schema stampato in grande. Fai procedere passo dopo passo con la scheda Capire il codice e, per quel giorno, punta solo a cambiare un valore; è già un risultato concreto.
Problemi frequenti e soluzioni rapide
| Problema | Causa probabile | Soluzione |
|---|---|---|
| Il computer non vede proprio il Pico | Cavo solo di ricarica, contatto allentato, hub USB | Prova un cavo dati sicuro, collega la scheda direttamente al computer, prova un'altra porta USB. |
| L'unità RPI-RP2 si apre a ogni collegamento | Sulla scheda non c'è MicroPython o BOOTSEL resta premuto | Copia il file UF2 sull'unità; ricollega senza premere il pulsante. |
| RPI-RP2 non compare mai | BOOTSEL è stato premuto dopo aver collegato il cavo | Scollega, tieni premuto BOOTSEL mentre ricolleghi, poi rilascia. |
| Thonny non si connette, "Device is busy" o errore di porta | Interprete o porta sbagliati, porta aperta in un altro programma, codice in esecuzione occupato | Scegli "MicroPython (Raspberry Pi Pico)" in basso a destra, premi Stop/Restart, chiudi una seconda finestra di Thonny, scollega e ricollega l'USB. |
| No module named 'machine' | Il codice gira nel Python del computer | Imposta l'interprete su MicroPython (Raspberry Pi Pico). |
| IndentationError o SyntaxError | Indentazione mista, due punti mancanti | Vai al numero di riga dell'errore; le righe while, if e def finiscono con i due punti e quelle sotto hanno 4 spazi. |
| Il codice gira ma il LED resta spento | LED al contrario, manca GND, il numero GP nel codice non corrisponde al circuito, Pin(25) su un Pico W | Piedino lungo verso la resistenza (lato GP), controlla il cavetto di GND, usa Pin("LED") per il LED integrato. |
| Scollegato dal computer, il codice non parte | File salvato sul computer o non chiamato main.py | In Thonny scegli salva > Raspberry Pi Pico e chiamalo main.py; il codice partirà da solo ogni volta che la scheda riceve alimentazione. |
| main.py è in un ciclo infinito e Thonny non riesce a entrare | Il codice parte subito all'accensione | Premi Stop più volte o Ctrl+C nella Shell; se non basta, cancella la memoria con il flash_nuke.uf2 ufficiale e reinstalla MicroPython (tutti i file sulla scheda vengono cancellati). |
Lista di controllo prima della lezione
- MicroPython è installato su tutte le schede, schede e cavi sono numerati da 1 a 13.
- Thonny si apre su ogni computer con "MicroPython (Raspberry Pi Pico)" come interprete.
- Ogni coppia di scheda e cavo è stata provata e mostra >>> nella Shell.
- Le resistenze sono in scatole separate per valore: 220 Ω, 1 kΩ, 2 kΩ.
- Il progetto della settimana è aperto su BlueGrays al proiettore; nelle prime tre settimane Mostra a blocchi è pronto.
- I foglietti con la domanda di uscita sono stampati e i ruoli (montatore, controllore) assegnati.
- Prima della settimana 5, le resistenze del partitore per l'HC-SR04 sono messe da parte per ogni gruppo.
- A fine lezione i cavi USB sono scollegati e i componenti contati nelle scatole numerate.
Puoi aprire gratis nell'app BlueGrays tutti i progetti di queste sei settimane, con schema, elenco dei componenti, codice MicroPython e scheda Capire il codice; così è facile condurre la lezione dal proiettore mentre gli studenti seguono sul proprio telefono. Se dopo sei settimane vuoi passare ai progetti Premium per il Pico con luminosità del LED in PWM, servo, display OLED o tastierino, puoi distribuire codici per insegnanti invece di abbonamenti singoli; si acquistano con un unico pagamento e non si rinnovano automaticamente.
Domande frequenti
Come fare lezione con il Raspberry Pi Pico?
Metti un solo concetto nuovo in ogni lezione e ordinali così: uscita, variabili, funzioni, ingresso e condizioni, PWM e sensori, infine liste e cicli. Ogni lezione segue la stessa struttura: riscaldamento, lettura insieme, previsione, circuito, esecuzione, modifica di un valore e domanda di uscita. Il piano di 6 settimane di questo articolo è costruito così, con progetti gratuiti.
Come si installa MicroPython sul Raspberry Pi Pico?
Tieni premuto il pulsante BOOTSEL mentre colleghi il Pico al computer via USB; compare un'unità chiamata RPI-RP2. Copia lì il file .uf2 di MicroPython adatto alla tua scheda e la scheda si riavvia. Puoi anche installarlo con l'opzione "Install or update MicroPython" nelle impostazioni dell'interprete di Thonny.
Thonny non vede il mio Raspberry Pi Pico, cosa faccio?
Prima verifica di usare un cavo USB che trasmette dati, perché con un cavo solo di ricarica il computer non vede la scheda. Poi imposta in Thonny l'interprete "MicroPython (Raspberry Pi Pico)" e premi Stop/Restart. Se l'unità RPI-RP2 si apre a ogni collegamento, sulla scheda non c'è ancora MicroPython: installa il file UF2.
Raspberry Pi Pico o Arduino per la scuola?
Sono entrambi un buon inizio; la scelta dipende dal linguaggio e dagli studenti. Se insegni Python o vuoi provare in fretta senza aspettare la compilazione, il Pico con MicroPython è comodo. Con studenti più piccoli, se vuoi partire con i blocchi o se il tuo kit è fatto di moduli a 5 V, Arduino riserva meno sorprese.
Come far girare il codice sul Pico senza computer?
In Thonny salva il codice sulla scheda con l'opzione "Raspberry Pi Pico" e chiamalo main.py. Il Pico esegue main.py da solo ogni volta che riceve alimentazione, basta un caricatore USB o un power bank. Per fermare il codice, ricollega la scheda a Thonny e premi Stop.
In classe c'è differenza tra Pico e Pico W?
Tutti i progetti di questo piano funzionano su entrambi con gli stessi pin; l'unica differenza è il LED integrato. Sul Pico classico è collegato a GP25, sul Pico W al chip Wi-Fi, quindi usa Pin("LED"), che funziona su entrambi. Il Pico W ha in più Wi-Fi e Bluetooth, ma nelle prime sei settimane non ti serviranno.
Progetti da realizzare dopo questo articolo
Vedi tutti i progetti
Lampeggio LED Integrato Raspberry Pi Pico (Pico e Pico W)
Il progetto di apertura della serie Raspberry Pi Pico! Facciamo lampeggiare il LED verde integrato per verificare che la scheda funzioni — un classico primo esperimento "Hello World". NESSUN componente esterno, solo Pico e cavo USB. Il codice è scritto in MicroPython (il linguaggio ufficialmente supportato dalla Raspberry Pi Foundation). Impara la classe machine.Pin, la modalità Pin.OUT, i metodi led.on()/off() e time.sleep() in Thonny IDE. Segui ogni commutazi

Accensione di un LED esterno con Raspberry Pi Pico (breadboard)
Il passo successivo dopo il LED integrato di Pico: collegare un LED esterno alla breadboard e controllarlo tramite il pin GP14. Con questo progetto imparerai come utilizzare qualsiasi pin GPIO generico del Pico come uscita, la polarità del LED (stelo lungo = anodo/+, stelo corto = catodo/–) e perché è indispensabile un resistore di limitazione della corrente (220 Ω). Se non inserisci il resistore, l’LED riceverà una corrente eccessiva e potrebbe bruciarsi. Il circuito è molto semplice: Pico GP14

Raspberry Pi Pico Due LED alternati (Flip-Flop)
Il passo successivo dopo il LED singolo sul Pico: due LED lampeggiano alternativamente in un pattern flip-flop classico. Due LED di colori diversi (rosso su GP14, verde su GP13) scambiano stati ogni 500ms. Pin.toggle() di MicroPython rende il codice breve. Base di semafori, lampeggianti.

Simulatore Semaforo Raspberry Pi Pico (3 LED Sequenziali)
Simuliamo un vero semaforo con LED rosso, giallo e verde. Verde 4 sec "vai", giallo 1,5 sec "preparati", rosso 3 sec "fermati" e rosso+giallo 1 sec "partenza" (pattern europeo). Impara la definizione di funzione, la logica della macchina a stati e la sincronizzazione multi-GPIO. Circuito semplice: 3 LED su GP11/GP12/GP13.

Raspberry Pi Pico Effetto Lampeggiante Polizia (Rosso + Blu Stroboscopio)
Simuliamo il lampeggiante di un'auto della polizia con un Raspberry Pi Pico nella sua forma più semplice! I LED rosso e blu si alternano (flip-flop): mentre il rosso è acceso il blu è spento, e ogni 0,3 secondi si scambiano, all'infinito. Il codice scrive i due passi direttamente in un unico ciclo while True; la velocità si regola con la costante WAIT_MS.

Semaforo Raspberry Pi Pico con selettore a 4 posizioni (macchina a stati)
4 diverse modalità del semaforo con un solo pulsante! Ad ogni pressione del pulsante, la modalità cambia: Ciclo normale (rosso → giallo → verde in sequenza), Solo rosso (segnale di stop), Giallo lampeggiante (attenzione/modalità notturna), Spento (manutenzione). Concetti: state machine (macchina a stati — la variabile mode determina quale comportamento verrà eseguito), modulo mod cycling ((mode + 1) % 4 → 0→1→2→3→0 ciclo infinito), temporizzazione non bloccante (l

Raspberry Pi Pico LED Controllato da Pulsante (Push)
Primo progetto di input con Pico — lettura pulsante! LED si accende mentre il pulsante è premuto. Impara Pin.IN, Pin.PULL_UP e button.value(). GP14 LED, GP2 pulsante con PULL_UP interno. Premuto = 0, rilasciato = 1 — standard.

Raspberry Pi Pico PWM LED Fade (Effetto Respiro)
Il LED non lampeggia più — respira! Con il PWM (modulazione di larghezza d'impulso) del Raspberry Pi Pico, la luminosità sale e scende lentamente. Impara la classe machine.PWM, duty_u16() (luminosità a 16 bit 0–65535), la frequenza PWM, i cicli range() e l'uscita quasi analogica. Base per miscelazione colori RGB, controllo motori, servo e buzzer.
Altri articoli
App BlueGrays
Costruisci questo circuito passo passo sul telefono
Schema, codice ed elenco componenti in un’unica schermata. Oltre 200 progetti Arduino, ESP32 e Pico da realizzare.
Inquadra con il telefono
Punta la fotocamera sul codice: si apre lo store del tuo telefono.
oppure apri lo store

