Basi · 5 min di lettura

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.

Scheda a microcontrollore Raspberry Pi Pico
Raspberry Pi Pico: il chip quadrato al centro è l'RP2040; a un'estremità ci sono il connettore micro USB e il pulsante BOOTSEL, con 20 pin per lato.

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.

CaratteristicaRaspberry Pi PicoArduino Uno R3Raspberry Pi 4 / 5
TipoScheda a microcontrolloreScheda a microcontrolloreComputer a scheda singola
Sistema operativoNessunoNessunoLinux
LinguaggioMicroPython, C/C++, ArduinoC/C++ (Arduino)Python e quasi ogni linguaggio
AvvioImmediatoImmediato20–30 secondi
ConsumoCirca 25 mACirca 45 mAAlcuni watt
Uso tipicoSensori, LED, motori, temporizzazioniSensori, LED, motoriVideocamere, server, computer desktop

Caratteristiche tecniche: Pico, Pico W e Pico 2

CaratteristicaPicoPico WPico 2
ChipRP2040, dual core Cortex-M0+, 133 MHzRP2040, dual core Cortex-M0+, 133 MHzRP2350, dual core Cortex-M33, 150 MHz
RAM264 KB264 KB520 KB
Memoria flash2 MB2 MB4 MB
WirelessAssenteWi-Fi (2,4 GHz) + BluetoothAssente (presente nel Pico 2 W)
GPIO utilizzabili262626
Ingressi analogici (ADC)3 canali, 12 bit3 canali, 12 bit3 canali, 12 bit
Tensione di lavoro3,3 V3,3 V3,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:

PinFunzione
VBUS5 V provenienti dall'USB
VSYSIngresso di alimentazione esterna (1,8–5,5 V)
3V3(OUT)Uscita a 3,3 V per i sensori (fino a circa 300 mA)
GNDMassa (sulla scheda ce ne sono 8)
GP0–GP22Ingressi/uscite digitali, PWM, I2C, SPI, UART
GP26–GP28In più ingressi analogici (ADC0–ADC2)
RUNRiavvia la scheda quando viene collegato a GND
I pin del Pico lavorano a 3,3 V e non tollerano i 5 V. Non collegare direttamente sensori con uscita a 5 V; metti in mezzo un Partitore di tensione. Di default ogni pin fornisce 4 mA, al massimo 12 mA; per un LED basta una resistenza da 220–330 Ω, ma carichi come motori e relè vanno sempre pilotati tramite un transistor.

Installare MicroPython (con Thonny)

  1. Scarica e installa Thonny da thonny.org.
  2. 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).
  3. 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à.
  4. Al termine dell'installazione il Pico si riavvia. Se vedi il simbolo >>> nella Shell in basso in Thonny, sei pronto.
  5. 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

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

MicroPython
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 pressed
Il chip RP2350 del Pico 2 ha un problema noto (E9) con le resistenze di pull-down interne: a volte il pin può restare bloccato su HIGH. Collegare il pulsante a GND e usare PULL_UP è la soluzione più sicura sia sul Pico sia sul Pico 2. Per approfondire il collegamento dei pulsanti vedi Come collegare un pulsante ad Arduino; la logica è la stessa.

Luminosità 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?

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

MicroPython
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 bisognoScheda consigliata
Primo progetto, sensori a 5 V, più esempi e risorseArduino Uno
Wi-Fi, Bluetooth, Internet, controllo dal telefonoESP32 o Pico W
Imparare a programmare in PythonRaspberry Pi Pico
Prezzo bassissimo, temporizzazioni precise (PIO)Raspberry Pi Pico
Progetti con videocamera e audioESP32-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.

Vedi tutti i progetti
Lampeggio LED Integrato Raspberry Pi Pico (GP25 LED Onboard)
#147Principiante

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

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

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

4.5(2)
7
Simulatore Semaforo Raspberry Pi Pico (3 LED Sequenziali, GP11/GP12/GP13)
#150Principiante

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.

4.0(1)
12
Raspberry Pi Pico LED Sequenziale (6 LED, GP14 → GP9)
#153Principiante
Premium

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.

0.0(0)
8
Raspberry Pi Pico LED Controllato da Pulsante (Push, GP14 + GP2)
#155Principiante
Premium

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.

0.0(0)
11
Raspberry Pi Pico Pulsante Debounce: IRQ vs Software Polling (GP5 + GP4)
#159Intermedio
Premium

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.

0.0(0)
12
Raspberry Pi Pico PWM LED Fade (Effetto Respiro, GP14)
#160Principiante
Premium

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.

0.0(0)
4
Raspberry Pi Pico LED RGB Ciclo di Colori (PWM a 3 Canali, GP11-13)
#161Principiante
Premium

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.

0.0(0)
6

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.

Cos'è il Raspberry Pi Pico? Installazione di MicroPython, piedinatura e primi progetti | BlueGrays