Guide · 16 min di lettura

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.

Scheda Raspberry Pi Pico WH con i pin già saldati, porta micro USB e il pulsante bianco BOOTSEL accanto
Pico WH: arriva con i pin già saldati, quindi si inserisce direttamente nella breadboard. Il pulsante bianco accanto alla porta USB è BOOTSEL; ti servirà per installare MicroPython.

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.

CaratteristicaRaspberry Pi Pico + MicroPythonArduino Uno + C++
Tensione dei pin3,3 V (non tollera 5 V)5 V
Linguaggio ed editorMicroPython, ThonnyC++, Arduino IDE
Eseguire il codiceSubito con Esegui, senza compilazioneCompilare e caricare dopo ogni modifica
Prove riga per riga (REPL)Sì: >>> nella Shell di ThonnyNo
Ingressi analogici3 pin (GP26–GP28), read_u16() 0–655356 pin (A0–A5), analogRead() 0–1023
Porta USBMicro USBUSB-B (Uno R3)
Sulla breadboardPico H / WH hanno i pin e si inseriscono direttamenteLa scheda resta fuori, collegata con cavetti
PrezzoDi solito nettamente più economico di un UnoPiù caro
I pin del Pico lavorano a 3,3 V e non tollerano 5 V. Se colleghi a un pin GPIO un'uscita che fornisce 5 V (per esempio il pin ECHO di un HC-SR04 alimentato a 5 V), il pin può danneggiarsi per sempre; per questo nella settimana 5 mettiamo sulla linea ECHO un partitore di tensione con una resistenza da 1 kΩ e una da 2 kΩ. Nella prima lezione mostra agli studenti i pin VBUS (pin 40, i 5 V dell'USB), VSYS (pin 39) e 3V3(OUT) (pin 36) e scrivi la regola alla lavagna: pulsanti e uscite dei sensori non vanno mai su VBUS. Collega sempre un LED con una resistenza da 220 Ω; a 3,3 V in un LED rosso passano circa 6 mA. Potete trovare i pin insieme nello strumento pinout.

Prima della prima lezione: MicroPython e Thonny

  1. 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.
  2. 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).
  3. 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.
  4. 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.
  5. 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.

Per chiudere la preparazione in un colpo solo, installa tu MicroPython su tutte le schede prima del corso, numera schede e cavi da 1 a 13 e fai in modo che ogni coppia riceva lo stesso numero ogni settimana. Il collegamento "Install or update MicroPython" nella finestra dell'interprete di Thonny trova una scheda in modalità BOOTSEL e ti chiede di scegliere la variante giusta, così puoi installare anche senza scaricare l'UF2. Se provando una scheda vedi >>> nella Shell, quella coppia di scheda e cavo è pronta.

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.

SettimanaObiettivoProgetto BlueGrays gratuitoNuovo concetto MicroPythonEquivalente Arduino C++
1Conoscere il Pico, primo programma, uscita digitaleLampeggio 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:, indentazionepinMode(14, OUTPUT); digitalWrite(14, HIGH); delay(500); void loop()
2Variabili, tempi, due usciteRaspberry 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);
3Meno ripetizioni: le funzioniSimulatore 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);
4Ingresso, condizioni e statoSemaforo 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()
5Sensore e suonoSensore di parcheggio con Raspberry Pi Pico (HC-SR04 + 3 LED + buzzer)PWM(Pin(17)), freq(), duty_u16(), time_pulse_us(), def … returntone(17, 1200); pulseIn(); return
6Liste, ciclo for, progetto finalePianoforte a pulsanti con Raspberry Pi Pico (5 pulsanti + buzzer + registratore)NOTE_HZ = (523, 587, 659, 698, 784), for … in, cinque pulsanti con lo stesso codiceint notes[] = {523, 587, 659, 698, 784}; for (int i = 0; i < 5; i++)
Blocchi in italiano del progetto Semaforo con Raspberry Pi Pico: funzione all_off, GP11, GP12 e GP13 come uscite, blocchi di scrittura e di attesa in secondi nel ciclo infinito
Settimana 3: Semaforo. Il blocco della funzione all_off spegne tutti e tre i LED e viene chiamato tre volte nel ciclo; i blocchi di attesa da 4, 1,5, 3 e 1 secondo corrispondono uno a uno alle righe sleep() del codice.

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.

MaterialePer gruppoPer la classe (12 gruppi + 1 di riserva)Settimana
Raspberry Pi Pico H o Pico WH (pin saldati)113Tutte
Cavo micro USB dati113Tutte
Breadboard (400 o 830 fori)113Tutte
Cavetti jumper maschio-maschio20circa 260Tutte
LED da 5 mm (rosso, giallo, verde, blu)4circa 601–5
Resistenza da 220 Ω4circa 601–5
Pulsante (4 piedini)5circa 704, 6
Buzzer passivo1135, 6
Sensore di distanza a ultrasuoni HC-SR041135
Resistenze da 1 kΩ e 2 kΩ (partitore ECHO)1 + 113 + 135
Computer con Thonny112Tutte
Potenziometro da 10 kΩ (facoltativo, per l'ADC)113Gruppi veloci
Quando compri le schede, scegli il Pico H, il Pico WH o una versione con i pin già saldati. Un Pico senza pin non entra nella breadboard e saldare 40 pin su 13 schede porta via un fine settimana; se vuoi inserire la saldatura nel corso di proposito, leggi come saldare. Assicurati che i cavi siano cavi dati: i cavi micro USB economici solo di ricarica alimentano la scheda, ma il computer non vede mai il Pico, ed è il problema che fa perdere più tempo nella prima lezione. Tieni le resistenze in scatole separate per valore; potete controllare le fasce colorate con il calcolatore del codice colori e il valore giusto per un LED con il calcolatore della resistenza per LED.

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.

TempoFaseChe cosa si fa?
0–5 minRiscaldamentoDomanda: 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 minPrimo comando nella REPLShell 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 minLettura insieme del progettoSi 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 minEsecuzioneSi 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 minCircuito con LED esternoSi 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 minModifica di un valoretime.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 minDomanda di uscitaUna 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.

MicroPython
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
12

Il 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.

MicroPython
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)
17

Per 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à.

MicroPython
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
15

Come 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

Criterio1 – Iniziale2 – In sviluppo3 – Acquisito
Montaggio del circuitoMonta con aiuto, dimentica GNDMonta seguendo lo schema, collega il numero GP al codiceDistingue pin fisici e numeri GP, trova l'errore di un compagno
Lettura del codiceLegge le righe, non sa spiegare cosa fannoSpiega a grandi linee cosa fa il programmaSpiega ogni riga e il significato dell'indentazione
Modifica e provaCambia un valore, non sa spiegarne l'effettoPrevede il risultato prima di provareSe la previsione fallisce, trova la causa nel messaggio di errore della Shell
Collegamento con il C++Non collegaCollega Pin, sleep e while TrueCollega 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

ProblemaCausa probabileSoluzione
Il computer non vede proprio il PicoCavo solo di ricarica, contatto allentato, hub USBProva un cavo dati sicuro, collega la scheda direttamente al computer, prova un'altra porta USB.
L'unità RPI-RP2 si apre a ogni collegamentoSulla scheda non c'è MicroPython o BOOTSEL resta premutoCopia il file UF2 sull'unità; ricollega senza premere il pulsante.
RPI-RP2 non compare maiBOOTSEL è stato premuto dopo aver collegato il cavoScollega, tieni premuto BOOTSEL mentre ricolleghi, poi rilascia.
Thonny non si connette, "Device is busy" o errore di portaInterprete o porta sbagliati, porta aperta in un altro programma, codice in esecuzione occupatoScegli "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 computerImposta l'interprete su MicroPython (Raspberry Pi Pico).
IndentationError o SyntaxErrorIndentazione mista, due punti mancantiVai 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 spentoLED al contrario, manca GND, il numero GP nel codice non corrisponde al circuito, Pin(25) su un Pico WPiedino lungo verso la resistenza (lato GP), controlla il cavetto di GND, usa Pin("LED") per il LED integrato.
Scollegato dal computer, il codice non parteFile salvato sul computer o non chiamato main.pyIn 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 entrareIl codice parte subito all'accensionePremi 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.

Vedi tutti i progetti
Lampeggio LED Integrato Raspberry Pi Pico (Pico e Pico W)
#147Principiante

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

5.0(1)
10
Accensione di un LED esterno con Raspberry Pi Pico (breadboard)
#148Principiante

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

4.5(2)
7
Raspberry Pi Pico Due LED alternati (Flip-Flop)
#149Principiante

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.

5.0(2)
19
Simulatore Semaforo Raspberry Pi Pico (3 LED Sequenziali)
#150Principiante

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.

4.0(1)
12
Raspberry Pi Pico Effetto Lampeggiante Polizia (Rosso + Blu Stroboscopio)
#151Principiante

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.

4.7(3)
10
Semaforo Raspberry Pi Pico con selettore a 4 posizioni (macchina a stati)
#158Intermedio

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

5.0(1)
15
Raspberry Pi Pico LED Controllato da Pulsante (Push)
#155Principiante
Premium

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.

0.0(0)
11
Raspberry Pi Pico PWM LED Fade (Effetto Respiro)
#160Principiante

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.

0.0(0)
4