Cos'è il Raspberry Pi Pico? Installazione di MicroPython, piedinatura e primi progetti
Cos'è il Raspberry Pi Pico e in cosa si differenzia da un Raspberry Pi e da Arduino? RP2040, Pico W e Pico 2, piedinatura, installazione di MicroPython con Thonny e primi codici per LED, pulsante, PWM e letture analogiche.
Il Raspberry Pi Pico è una scheda a microcontrollore molto economica, grande quanto il palmo di una mano, basata sull'RP2040, un chip progettato dalla stessa Raspberry Pi Foundation. Il suo punto di forza è che si programma in MicroPython, cioè in Python: scrivi il codice, lo esegui e vedi subito il risultato, senza aspettare la compilazione. Per questo è un'ottima porta d'ingresso per studenti che imparano Python e per chi inizia con l'elettronica. Se preferisci, puoi programmarlo anche in C/C++ o con l'Arduino IDE.

Cos'è il Raspberry Pi Pico? La differenza con un Raspberry Pi
Nonostante il nome simile, il Pico non è un computer come il Raspberry Pi 4 o 5. Non ha sistema operativo, uscita HDMI né desktop; come un Arduino, è una scheda a microcontrollore che esegue un solo programma. Il programma parte appena dai corrente, consuma pochissima energia e gestisce in tempo reale compiti come leggere sensori, accendere LED e pilotare motori.
| Caratteristica | Raspberry Pi Pico | Arduino Uno R3 | Raspberry Pi 4 / 5 |
|---|---|---|---|
| Tipo | Scheda a microcontrollore | Scheda a microcontrollore | Computer a scheda singola |
| Sistema operativo | Nessuno | Nessuno | Linux |
| Linguaggio | MicroPython, C/C++, Arduino | C/C++ (Arduino) | Python e quasi ogni linguaggio |
| Avvio | Immediato | Immediato | 20–30 secondi |
| Consumo | Circa 25 mA | Circa 45 mA | Alcuni watt |
| Uso tipico | Sensori, LED, motori, temporizzazioni | Sensori, LED, motori | Videocamere, server, computer desktop |
Caratteristiche tecniche: Pico, Pico W e Pico 2
| Caratteristica | Pico | Pico W | Pico 2 |
|---|---|---|---|
| Chip | RP2040, dual core Cortex-M0+, 133 MHz | RP2040, dual core Cortex-M0+, 133 MHz | RP2350, dual core Cortex-M33, 150 MHz |
| RAM | 264 KB | 264 KB | 520 KB |
| Memoria flash | 2 MB | 2 MB | 4 MB |
| Wireless | Assente | Wi-Fi (2,4 GHz) + Bluetooth | Assente (presente nel Pico 2 W) |
| GPIO utilizzabili | 26 | 26 | 26 |
| Ingressi analogici (ADC) | 3 canali, 12 bit | 3 canali, 12 bit | 3 canali, 12 bit |
| Tensione di lavoro | 3,3 V | 3,3 V | 3,3 V |
La piedinatura del Pico
Il Pico ha in tutto 40 pin lungo i due lati. Ognuno dei 26 pin GPIO, da GP0 a GP28, può generare PWM, e I2C, SPI e UART si possono usare su diversi pin alternativi. Gli ingressi analogici sono solo su GP26, GP27 e GP28. Puoi vedere la piedinatura completa nello strumento Pinout; i pin di alimentazione e speciali più importanti sono:
| Pin | Funzione |
|---|---|
| VBUS | 5 V provenienti dall'USB |
| VSYS | Ingresso di alimentazione esterna (1,8–5,5 V) |
| 3V3(OUT) | Uscita a 3,3 V per i sensori (fino a circa 300 mA) |
| GND | Massa (sulla scheda ce ne sono 8) |
| GP0–GP22 | Ingressi/uscite digitali, PWM, I2C, SPI, UART |
| GP26–GP28 | In più ingressi analogici (ADC0–ADC2) |
| RUN | Riavvia la scheda quando viene collegato a GND |
Installare MicroPython (con Thonny)
- Scarica e installa Thonny da thonny.org.
- Tieni premuto il pulsante BOOTSEL del Pico mentre colleghi il cavo USB al computer; il Pico compare come un'unità chiamata RPI-RP2 (RP2350 sul Pico 2).
- Nel menu dell'interprete in basso a destra in Thonny scegli MicroPython (Raspberry Pi Pico), poi usa "Install or update MicroPython" per installare la versione adatta alla tua scheda (Pico, Pico W o Pico 2). In alternativa puoi scaricare il file .uf2 da micropython.org e trascinarlo sull'unità.
- Al termine dell'installazione il Pico si riavvia. Se vedi il simbolo >>> nella Shell in basso in Thonny, sei pronto.
- Se salvi il codice sul Pico con il nome main.py, verrà eseguito automaticamente a ogni accensione, anche senza computer collegato.
Primo programma: far lampeggiare il LED integrato
1from machine import Pin
2import time
3
4led = Pin(25, Pin.OUT) # Pico'da dahili LED; Pico W ve Pico 2 W'de Pin("LED") yaz
5 # onboard LED on Pico; use Pin("LED") on Pico W / Pico 2 W
6
7while True:
8 led.toggle() # durumu tersine çevir / flip the state
9 time.sleep(0.5)Comandare un LED con un pulsante
Collega un LED a GP15 con una resistenza da 220 Ω e un pulsante a GP14. L'altro piedino del pulsante va a GND e si attiva la resistenza di pull-up interna del Pico: così il pulsante legge 1 quando è rilasciato e 0 quando è premuto.
1from machine import Pin
2
3led = Pin(15, Pin.OUT)
4button = Pin(14, Pin.IN, Pin.PULL_UP) # butonun diğer ucu GND'de / other leg to GND
5
6while True:
7 led.value(not button.value()) # basılıyken yanar / on while pressedLuminosità di un LED con il PWM
Ogni pin GPIO del Pico può generare PWM. In MicroPython il valore di duty va da 0 a 65535. Il codice qui sotto accende lentamente il LED e poi ricomincia; trovi il principio del PWM spiegato in dettaglio in Cos'è il PWM?
1from machine import Pin, PWM
2import time
3
4led = PWM(Pin(15), freq=1000)
5
6while True:
7 for d in range(0, 65536, 1024): # yavaşça yan / fade in
8 led.duty_u16(d)
9 time.sleep_ms(10)Letture analogiche e sensore di temperatura integrato
Collega il piedino centrale di un potenziometro a GP26 e quelli laterali a 3V3 e GND. read_u16() restituisce un valore da 0 a 65535. Il Pico contiene inoltre un sensore di temperatura collegato al 4° canale dell'ADC; la misura è approssimativa, ma è un modo divertente per leggere la temperatura senza componenti aggiuntivi:
1from machine import ADC
2import time
3
4pot = ADC(26) # GP26 (ADC0) / potansiyometre orta ucu / pot wiper
5sensor = ADC(4) # dahili sıcaklık sensörü / internal temperature sensor
6
7while True:
8 value = pot.read_u16() # 0–65535
9 volts = sensor.read_u16() * 3.3 / 65535
10 temp = 27 - (volts - 0.706) / 0.001721 # °C (yaklaşık / approximate)
11 print(value, round(temp, 1))
12 time.sleep(1)Programmare il Pico con l'Arduino IDE
Se preferisci il C++ e le librerie Arduino, puoi usare il Pico anche con l'Arduino IDE. Aggiungi https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json nel campo delle URL aggiuntive del Gestore schede (File > Impostazioni) e installa dal Gestore schede il pacchetto Raspberry Pi Pico/RP2040/RP2350 di Earle Philhower. Per il primo caricamento collega la scheda tenendo premuto BOOTSEL; dopo, il caricamento avviene normalmente. L'esempio Blink con LED_BUILTIN e la maggior parte delle librerie Arduino funzionano senza problemi.
Pico, ESP32 o Arduino?
| Di cosa hai bisogno | Scheda consigliata |
|---|---|
| Primo progetto, sensori a 5 V, più esempi e risorse | Arduino Uno |
| Wi-Fi, Bluetooth, Internet, controllo dal telefono | ESP32 o Pico W |
| Imparare a programmare in Python | Raspberry Pi Pico |
| Prezzo bassissimo, temporizzazioni precise (PIO) | Raspberry Pi Pico |
| Progetti con videocamera e audio | ESP32-S3 o ESP32-CAM |
Per i progetti wireless, conosci l'ESP32 in Cos'è l'ESP32? Un punto di forza esclusivo del Pico sono i blocchi PIO (ingressi/uscite programmabili): gestiscono compiti con temporizzazioni critiche, come le strisce LED WS2812B o protocolli di comunicazione personalizzati, senza appesantire il processore.
Idee di progetti con il Raspberry Pi Pico
- Semaforo: un semaforo con tre LED che si accendono in sequenza.
- Supercar (Knight Rider): un effetto luminoso che va avanti e indietro su sei LED.
- Pulsanti e interrupt (IRQ): codice che intercetta la pressione di un pulsante senza aspettare il ciclo principale.
- Ciclo di colori RGB: un effetto arcobaleno su un LED RGB con tre canali PWM.
- Web server con il Pico W: comanda un LED o un relè da una pagina aperta sul telefono.
- Mini termometro: mostra il sensore di temperatura integrato su un display OLED.
Errori comuni e come risolverli
- L'unità RPI-RP2 non compare: la scheda è stata collegata senza tenere premuto BOOTSEL, oppure il cavo è solo di ricarica; usa un cavo dati.
- Thonny non trova la scheda: è selezionato l'interprete sbagliato o MicroPython non è installato.
- Il LED non si accende sul Pico W: sul Pico W il LED integrato è collegato al chip wireless; usa Pin("LED") invece di Pin(25).
- Collegare segnali a 5 V: i GPIO sono a 3,3 V; i segnali a 5 V possono danneggiare il pin.
- Il codice non parte senza computer: non è stato salvato sul Pico come main.py.
- Troppa tensione su VSYS: VSYS accetta al massimo 5,5 V; non collegare direttamente un alimentatore da 9 V o 12 V.
Grazie al prezzo basso e al supporto di Python, il Raspberry Pi Pico è uno dei modi più semplici per unire programmazione ed elettronica. Le basi dei LED sono in Cos'è un LED?; nell'app BlueGrays trovi progetti con il Pico per LED, semaforo, Supercar, interrupt con pulsante, effetto respiro in PWM e ciclo di colori RGB, passo passo con schemi e codice MicroPython.
Domande frequenti
Il Raspberry Pi Pico è un computer Raspberry Pi?
No. Il Pico è una scheda a microcontrollore prodotta dalla Raspberry Pi Foundation; non ha sistema operativo, uscita video né desktop. Come un Arduino, esegue un solo programma. Il Raspberry Pi 4 e il 5 sono invece computer completi con Linux.
Con quale linguaggio si programma il Raspberry Pi Pico?
La scelta più comune è MicroPython: si installa facilmente con Thonny e chi conosce Python può iniziare subito. Si possono usare anche l'SDK ufficiale in C/C++ e l'Arduino IDE (con il pacchetto di Earle Philhower). È supportato anche CircuitPython.
Che differenza c'è tra Pico e Pico W?
Il Pico W aggiunge un chip wireless che offre Wi-Fi a 2,4 GHz e Bluetooth; tutto il resto è uguale. Poiché il LED integrato del Pico W è collegato a quel chip, nel codice si usa Pin("LED") invece di Pin(25).
Il Raspberry Pi Pico funziona a 5 V?
La scheda si può alimentare con i 5 V dell'USB o con 1,8–5,5 V sul pin VSYS. I pin GPIO però lavorano a 3,3 V e non tollerano i 5 V, quindi non devi collegarci direttamente segnali a 5 V.
Quanti ingressi analogici ha il Pico?
Ci sono tre ingressi analogici accessibili: GP26 (ADC0), GP27 (ADC1) e GP28 (ADC2). Il 4° canale dell'ADC è inoltre collegato al sensore di temperatura interno del chip. In MicroPython read_u16() restituisce un valore da 0 a 65535.
Posso programmare il Raspberry Pi Pico con l'Arduino IDE?
Sì. Installando nell'Arduino IDE il pacchetto di schede Raspberry Pi Pico/RP2040/RP2350 di Earle Philhower puoi programmare il Pico con i comandi Arduino e usare la maggior parte delle librerie Arduino. Per il primo caricamento devi collegare la scheda tenendo premuto il pulsante BOOTSEL.
Progetti da realizzare dopo questo articolo
Vedi tutti i progetti
Lampeggio LED Integrato Raspberry Pi Pico (GP25 LED Onboard)
Il progetto di apertura della serie Raspberry Pi Pico! Facciamo lampeggiare il LED integrato (LED verde collegato a GP25) 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 (GP14 + 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

Simulatore Semaforo Raspberry Pi Pico (3 LED Sequenziali, GP11/GP12/GP13)
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 LED Sequenziale (6 LED, GP14 → GP9)
Animazione LED sequenziale classica con Pico — versione 6 LED! 🌊 6 LED si accendono da sinistra a destra sequenzialmente. Impara la lista Python, la comprensione di liste ([Pin(p, Pin.OUT) for p in LED_PINS]), il ciclo for con controllo pin e enumerate(). 6 LED su GP9-GP14, ciascuno con resistenza 220Ω. Codice molto pulito: invece di definire 6 LED uno per uno, usiamo una lista — anche 100 LED manterrebbero il codice uguale. Simula in Wokwi o costruisci in 5-7 minuti su breadboard.

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

Raspberry Pi Pico Pulsante Debounce: IRQ vs Software Polling (GP5 + GP4)
Una pressione e il codice conta 3-4? È contact bounce! 🔁 Confronta 2 metodi di conteggio in Serial: polling RAW (cattura bounce, conta male) vs IRQ + software debounce (preciso). Impara fisica del bounce, software debounce, Pin.irq() interrupt, IRQ_FALLING trigger, ISR handler, sicurezza delle variabili globali ISR.

Raspberry Pi Pico PWM LED Fade (Effetto Respiro, GP14)
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.

Raspberry Pi Pico LED RGB Ciclo di Colori (PWM a 3 Canali, GP11-13)
Un LED, milioni di colori! 🌈 Un LED RGB contiene 3 LED: rosso, verde e blu. Con un canale PWM del Pico per ciascuno, i colori si mescolano: rosso + verde = giallo, verde + blu = ciano, tutti e tre = bianco. Il LED scorre 8 colori. Impara più canali PWM, funzioni (def), miscelazione RGB, conversione da 8 a 16 bit (x257) e catodo comune vs anodo comune.
Altri articoli
Scopri che il Raspberry Pi Pico è un microcontrollore e non un computer, la differenza tra Pico, Pico W e Pico 2, come installare MicroPython e i tuoi primi progetti con LED, pulsante, PWM e letture analogiche.

