Tutto sul Raspberry Pi Pico

tutorial del pi pico del lampone

Se state cercando di comprare il vostro primo Raspberry Pi, la Pico potrebbe essere un'opzione molto attraente.

Ma la vera domanda qui è se il Raspberry Pi Pico è giusto per voi.

Ci sono molti pro e contro nell'acquisto del Raspberry Pi Pico ed è importante capire l'adagio "cavalli per corsi".

Contenuto nascondere

Rivediamo il Raspberry Pi Pico

Il Raspberry Pi Pico rompe un nuovo terreno nella linea Raspberry Pi perché è una scheda di sviluppo a microcontrollore. Questo rappresenta una partenza dal resto dei Raspberry Pi che sono microcomputer.

È dotato del chip RP2040 che è stato progettato in-house da Raspberry Pi e ha le seguenti specifiche:

  • Core CPU dual-core ARM Cortex M0+ (fino a 133 MHz)
  • 264K SRAM
  • 2MB di memoria flash

Il Raspberry Pi Pico si distingue per essere un microcontrollore ad alte prestazioni e ha molti usi interessanti.

Pro: Economico e ottimo per chi è alle prime armi

Vendiamo il Raspberry Pi Pico per 4,10 euro che è il Raspberry Pi più economico che si possa comprare. Infatti, se siete nuovi ad armeggiare con il Raspberry Pi Pico, potete ottenere un kit completo per 24,95 euro che include tutto il necessario per costruire progetti facili.

Pro: Ottimo per applicazioni in tempo reale

Il Raspberry Pi Pico è perfetto per progetti in cui è necessario cronometrare gli eventi con precisione. Per esempio, la lettura dei sensori, il funzionamento dei motori e il monitoraggio delle attività.

Pro: ingressi analogici

Il Raspberry Pi Pico è il primo Raspberry Pi che ha ingressi analogici dalla fabbrica.

Viene fornito con un totale di 5 ingressi ADC (convertitore analogico digitale). Due dei quali sono utilizzati dal Pico per il suo sensore di temperatura interno e per il monitoraggio della tensione.

Quindi, come può essere utile avere un ingresso analogico? Beh, per esempio, uno dei miei progetti utilizzava un potenziometro per regolare la frequenza di commutazione di un relè. Così, il Raspberry Pi Pico sarebbe in grado di leggere un valore dal potenziometro e utilizzare i suoi valori nel programma che ho caricato su di esso.

Il Raspberry Pi Pico risolve i segnali ADC a 12 bit, che è meglio dell'ADC a 10 bit dell'Arduino Uno. Altre caratteristiche includono:

  • SAR ADC (ADC ad approssimazione successiva)
  • 500 kS/s (con clock esterno a 48MHz)
  • Interfaccia DMA sugli ingressi ADC che può accedere alla memoria senza utilizzare la CPU

Pro: IO programmabile (PIO)

Questa è una delle caratteristiche più interessanti del Raspberry Pi Pico ed è anche ciò che dà al Pico il dinamismo che alcuni altri microcontrollori non hanno.

PIO è un'interfaccia hardware che può essere programmata indipendentemente dai processori principali. Può quindi emulare molte interfacce diverse:

  • Porta parallela 8080 e 6800
  • I2C
  • 3 pin I2S
  • SDIO (interfaccia scheda SD)
  • SPI, DSPI, QSPI
  • UART
  • DPI o VGA (tramite rete di resistenze / DAC)

Le PIO State Machines sono completamente programmabili e dedicate esclusivamente all'I/O. Particolare attenzione è data alla tempistica precisa. 

Per esempio, l'interfaccia PIO può essere utilizzata per impostare applicazioni time-critical (sensibili ai tempi), come il controllo delle strisce LED, in modo stabile e affidabile. 

Pro: potrebbe emettere video con modifiche

Hai visto "DPI o VGA" nella sezione precedente? Sapete cosa significa...

Sì, il Raspberry Pi può emettere video che è qualcosa che non si sognerebbe nemmeno sulla maggior parte dei microcontrollori.

Abbiamo un tutorial che vi mostra come si fa, se siete interessati.

Pro: si adatta a una breadboard

raspberry pi pico su breadboard

Sul Raspberry Pi Pico, i pin sono su due lati opposti del Pi Pico, si può quindi posizionare il Pi Pico direttamente sulla breadboard con ogni lato su attraverso la grondaia divisoria.

Questo rende la prototipazione più facile perché non avrete bisogno di ottenere fili maschio-femmina (o maschio-maschio nel caso di Arduino Uno) per collegare il Pico su una breadboard.

Non si può fare questo con altri Raspberry Pis perché i loro pin sono tutti raggruppati insieme.

Pro: il più piccolo Raspberry Pi

confronto raspberry pi pico
Da sinistra, in senso orario: Raspberry Pi Pico, Raspberry Pi Zero 2, Raspberry Pi 4

Avere una piccola scheda è un bene perché è più facile da inserire in spazi ristretti e più facile da montare. Per esempio, diciamo che si vuole montare il Raspberry Pi Pico al muro, o all'interno di un ambiente chiuso: robot, dispositivi portatili, orologi, ecc.

Il Raspberry Pi Pico misura 51mm x 21mm /Fonte: Raspberry Pi

Pro: basso consumo energetico

Ho detto che il Raspberry Pi Pico è piccolo e che può stare in piccoli spazi.

La cosa bella è che, poiché il Pico assorbe energia, non avrete bisogno di una grande batteria per farlo funzionare.

Ho anche detto che accetta un'ampia gamma di tensioni? Può funzionare da 1,8 a 5,5 V, il che è fantastico perché puoi farlo funzionare con una sola batteria al litio (3,7 V) o con batterie al nichel collegate in serie (1,2 V ciascuna).

Un'analisi di Joey Castillo ha mostrato che l'efficienza del convertitore buck del Pico raggiunge un picco da 2,54 V a 3,2 V (equivalente a 2 batterie ricaricabili/alcaline AA completamente cariche) se si preleva una corrente inferiore a 10 mA.

A correnti più elevate, tuttavia, è meglio fornire 3 batterie AA o una batteria al litio.

Queste statistiche potrebbero non essere valide per il Pico W, che utilizza un convertitore buck diverso. Il Pico W utilizza il RT6154 mentre il Pico utilizza la funzione RT6150. Fare clic sui link per visualizzare le rispettive schede tecniche.

Ecco il grafico del convertitore buck del Pico:

Neutrale: Nessun supporto Linux sul Raspberry Pi Pico

Se questo è un pro o un contro del Raspberry Pi Pico dipende dal vostro progetto. Non avere Linux significa che i vostri progetti si caricano più velocemente, ma nel complesso, potete fare di più se avete un sistema operativo.

Cosa intendo per caricare più velocemente? Beh, dato che non c'è un sistema operativo da avviare, il vostro codice si caricherà più o meno nello stesso momento in cui collegate l'alimentazione al Pi Pico.

Su qualsiasi altro Raspberry Pi, ci vorrà molto più tempo prima di vedere una risposta.

Ma sfortunatamente, senza un SO, siete limitati a programmare con MicroPython o C, mentre con un SO, potete codificare in molti, molti altri linguaggi. Inoltre, puoi giocare, navigare in internet e godere di altre applicazioni multimediali.

Neutrale: No WiFi

Se questo è un aspetto negativo o meno dipende dal vostro progetto, ma se state sviluppando un progetto che richiede di controllare il tempo o caricare dati su Google Sheets, non sarete in grado di farlo sul Raspberry Pi Pico.

Ad essere onesti, è possibile installare WiFi o ethernet usando parti aftermarket come l'articolo qui sotto:

Neutro: Uscite GPIO 3.3V

Se questo è un pro o un contro dipende dai componenti a cui si intende accoppiare il Raspberry Pi Pico.

Uno scenario in cui ho trovato che i 3.3V sono un ostacolo è stato quando ho cercato di usarlo con relè a 5V. Ops! Non ho potuto spingere abbastanza tensione per far commutare il relè.

Così, sono passato al mio Arduino Uno, i cui pin GPIO mettono fuori 5V.

L'alternativa sarebbe quella di aggiungere componenti al prototipo in modo che i 3.3V possano essere intensificati, ma, uh, perché complicare le cose quando posso semplicemente farlo con un Arduino Uno?

Naturalmente, questo è solo uno scenario. Il tuo chilometraggio può variare a seconda di quello che stai facendo.

Usi di Raspberry Pi Pico

La gamma di usi del Raspberry Pi Pico è infinita. Puoi fare qualcosa che migliora la tua vita o fare qualcosa solo per divertimento.

Microcontrollore che legge MicroPython (invece che solo C)

Se avete usato un Arduino, saprete che dovrete programmarlo in C.

Tuttavia, potrebbe non piacerti programmare in C. Potresti avere un background più forte in Python.

E così se avete lottato con la scrittura di codice in C su Arduino, la buona notizia è che qualsiasi cosa Arduino può fare, il Raspberry Pi Pico è probabilmente in grado di adattarsi al vostro caso d'uso.

Quindi buttate via quelle parentesi graffe e iniziate a far rientrare il vostro codice!

Costruzioni a batteria per una lunga autonomia

Se avete bisogno di qualcosa che usi meno energia possibile, allora è sicuramente meglio il Raspberry Pi Pico rispetto a qualcosa di più potente come il Raspberry Pi Zero.

Ecco perché: è possibile utilizzare una gamma molto più ampia di ingressi di alimentazione (da 1,8V a 5,5V) e poiché il Raspberry Pi Pico è così efficiente, sarete in grado di ottenere tempi di esecuzione molto più lunghi rispetto a quelli che avreste potuto ottenere utilizzando un microcomputer come il Raspberry Pi Zero.

Ho già detto che il Raspberry Pi Zero è molto esigente per quanto riguarda la tensione di alimentazione? Accetta solo una tensione di 4,75-5,25 V.*.

* Secondo Arya, che ha lasciato un commento qui sotto, il Raspberry Pi Zero può funzionare con una sola batteria al litio, purché non si disponga di periferiche USB. Grazie Arya.

Tastiere macro, ginocchiere rotanti e altri HID

Don Hui con la sua tastiera macro di Discord che gli permette di alternare facilmente i controlli del volume / Fonte: YouTube.

Il Raspberry Pi Pico può essere usato come un dispositivo di interazione umana (HID).

Ma a differenza di un vecchio e noioso mouse o tastiera, il Raspberry Pi Pico vi permette di creare un dispositivo che fa qualcosa di nicchia e specifico per il vostro caso d'uso.

Quindi, è possibile creare tastiere macro che digitano una lunga stringa con la pressione di un pulsante. Oppure potete usarla per silenziare Discord. O usarlo per premere CTRL + ALT + DEL. Le possibilità sono infinite.

La manopola multifunzionale di Magi che funge da controllo del volume rotante o scrubber della timeline di Premiere Pro. Fonte: YouTube

kEyBoArD sArCaSm

Cosa c'è di meglio per esprimere il sarcasmo: mostrare un /s alla fine del tuo testo o tYpInG lIkE tHiS?

Preferisco la seconda perché trasmette immediatamente sArCaSm.

Il creatore di questo progetto, Ben S, ha condiviso che usa due Raspberry Pi Picos per far funzionare il tutto. Un Pico funge da dispositivo tastiera USB HID per il computer e un altro funge da host USB per leggere gli input dalla tastiera. L'host poi comunica con il dispositivo via UART ciò che è stato premuto.

La tastiera Pico sarcasm attiva e disattiva il blocco delle maiuscole dopo ogni pressione dei tasti, dando così un TeXt sArCaStIc.

Cosa non può fare il Raspberry Pi Pico?

Parliamo di una più tipica configurazione straight-out-of-box.

Riconosco che ci sono molti modi per aumentare le capacità del Raspberry Pi Pico. È possibile emettere video, impostare ethernet, emettere audio...

Con abbastanza modifiche, il Raspberry Pi Pico si avvicinerà alla capacità di un microcomputer.

Detto questo, nessuno razionale si spinge così lontano. Oltre un certo livello di modifica, diventa impraticabile.

Perché diventa impraticabile?

Perché tanto vale comprare qualcosa dove si ottengono tutte queste caratteristiche direttamente dalla scatola!

Un concorrente vicino che dovreste tenere d'occhio è il Raspberry Pi Zero 2. Abbiamo un mega-articolo che risponderà a tutte le vostre domande qui.

Ad un livello fondamentale, il Raspberry Pi Pico ha meno potenza di calcolo. Rispetto al microcomputer più economico, il Raspberry Pi Zero, il Pi Pico ha un clock di default di 133MHz e può fare 361,76 Dhrystone Million istruzioni al secondo (DMIPS), mentre il Raspberry Pi Zero può fare 1250 DMIPS.

Il Raspberry Pi Zero ha anche 512 MB di RAM, un sistema operativo, WiFi e uno slot per schede SD. Per una persona più abile in JavaScript come me, essere in grado di scrivere codice Node per collegarlo a Google Cloud è una ragione per cui mi piace usare i microcomputer Pi.

Microcomputer contro microcontrollore

Nell'illustrare lo scenario precedente, ho usato i termini microcomputer e microcontrollore. Riassumo alcuni usi in cui uno è meglio dell'altro.

Un microcontrollore è molto più semplice di un microcomputer, e quindi è molto più facile far fare a un microcontrollore compiti semplici. Se avete solo bisogno di far lampeggiare un LED, ruotare un servo, misurare i dati di temperatura, un microcontrollore può farlo molto facilmente e con capacità.

In effetti, si ottengono alcuni vantaggi come il riavvio rapido e una maggiore durata della batteria.

Con la semplicità arrivano le limitazioni. Per esempio, è molto più facile collegare il tuo prototipo a internet con un microcomputer. Per esempio, potreste voler collegare il vostro prototipo a un servizio di posta elettronica per ricevere un ping quando vengono raggiunte determinate soglie. Farei questi progetti su un Raspberry Pi Zero piuttosto che cercare di farlo funzionare con il Raspberry Pi Pico.

ScenarioMicrocontrollore (ad esempio Raspberry Pi Pico)Microcomputer (ad esempio Raspberry Pi Zero)
Eseguire un serverNo
Far lampeggiare un LEDMolto più veloce dall'inizio alla fineMolto più lento; molti più processi da attraversare
Riavvio automatico del programma in caso di mancanza di corrente?Non di default
Giocare ai videogiochiNo
Funziona a batteria?Sì, è molto probabile che duri più a lungo in mediaSì, non dura in media così a lungo
Gestione del calore?Nessuna richiesta di solitoDissipatori di calore, ventilatori, casse termicamente conduttive
Costi?InferiorePiù alto

Pin di Raspberry Pi

Il Raspberry Pi Pico ha 30 pin GPIO, di cui 26 sono disponibili per l'uso.

  • 2x SPI
  • 2 x UART
  • 2 x I2C
  • 8 x due canali PWM

c'è anche:

  • 4 x uscita di clock per uso generale
  • 4 x ingresso ADC
  • PIO su tutti i pin

Ecco l'immagine del pinout del Raspberry Pi Pico:

Raspberry Pi Pico pins / Fonte: Raspberry Pi

Infatti, un Redditor chiamato C_King_Justice ha anche fatto uno strumento che può aiutarvi a trovare i pin GPIO di Raspberry Pi Pico. È possibile scaricare il documento qui.

Pinout di carta da C_King_Justice / Fonte: Reddit

Specifiche del Raspberry Pi Pico

Raspberry Pi Pico
Prezzo€4.10 (consiglio) €24.95 (kit Raspberry Pi Pico per principianti)
CPURP2040 con dual-core Cortex M0+ fino a 133MHz
Capacità della CPUIl PLL su chip permette una frequenza del nucleo variabile
Frequenza della CPUfino a 133MHz, over/underclockable
GPUNo GPU
RAM264 kB di SRAM incorporata in 6 banchi
ReteNon incluso, ma puoi aggiungerlo
BluetoothNon incluso
Porta HDMINon incluso, ma puoi aggiungerlo
Porta USBMicroUSB per alimentazione e dati
Video compositoNon incluso, ma puoi aggiungerlo
Pin di resetNon incluso, ma si può saldare
Porta della macchina fotograficaNessuno
Consumo di energia~1.3mA in modalità SLEEP a 93mA nel test "Popcorn
Alimentazione5V tramite microUSB o 1,8 - 5,5V tramite VSYS
fattore di forma51 x 21 mm

Il Raspberry Pi Pico ha l'HDMI?

Raspberry-Pi-Pico-Video-Output-DVI-Sock

No, non lo fa di default. Ma puoi aggiungere tu stesso un video. Vedi la nostra guida qui.

Nota che mentre l'interfaccia video è un connettore HDMI, questo in realtà emette un segnale DVI. HDMI è un successore di DVI, quindi i segnali DVI possono essere trasmessi via HDMI.

Allo stesso modo, puoi comprare un adattatore da HDMI a DVI per convertire il connettore HDMI in DVI.

Detto questo, notate che questo set up non emette audio.

Il Raspberry Pi Pico ha l'ethernet?

No, non lo fa di default. Ma si può aggiungere ethernet da soli.

Raspberry Pi ha ufficialmente rilasciato una guida che potete seguire per installare ethernet sul vostro Raspberry Pi Pico.

In sostanza, avete bisogno di un RMII Ethernet PHY come un LAN8720, una breadboard e dei fili di collegamento. Il vostro Raspberry Pi Pico deve anche avere delle testate saldate.

Il Raspberry Pi Pico ha il WiFi?

No, ma puoi installarlo usando parti aftermarket. Un chip compatibile che ti aiuterà a ottenere capacità WiFi è il coprocessore Adafruit Airlift WiFi Featherwing.

Il Raspberry Pi Pico ha l'USB?

Sì, il Raspberry Pi Pico ha una porta microUSB. Può essere usata per alimentare il Raspberry Pi.

Inoltre, è anche possibile utilizzare il Raspberry Pi Pico come dispositivo di interazione umana. Collegandolo al computer con i componenti e il codice appropriati, può permettergli di diventare un joystick, una tastiera macro, una levetta, ecc.

Il Raspberry Pi Pico ha il Bluetooth?

No, ma si può installare usando parti aftermarket.

In genere, l'integrazione del Bluetooth sul Raspberry Pi Pico richiede l'acquisto di un modulo Bluetooth come il modulo Bluetooth HC-06.

Esiste una fotocamera Raspberry Pi Pico?

Il prototipo di Ralph Yamamoto che utilizza il modulo fotocamera HM01B0. Fonte: Ralph Yamamoto/Elemento 14

Sì, è possibile integrare il Raspberry Pi Pico con un modulo telecamera.

Una videocamera che puoi usare è la HM01B0 di Himax Imaging. Il vantaggio di usare questa è che è estremamente bassa, usando 1-2 milliwatt secondo Ralph Yamamoto che ha scritto sul suo esperienza nel far funzionare una fotocamera con il Raspberry Pi Pico.

Anteprima della fotocamera che funziona a 96×96 pixel. Fonte: Ralph Yamamoto/Elemento 14

La sua conclusione è stata che "sono sicuro che richiederà un sacco di modifiche", e inoltre ha detto che si sentiva limitato dalla sua abilità nell'elaborazione, e che la documentazione della fotocamera era carente.

Sistema operativo Raspberry Pi Pico

Generalmente, non farete girare un sistema operativo sul Raspberry Pi Pico.

Nella maggior parte dei progetti, è probabile che abbiate solo bisogno di caricare del codice e poi eseguire solo quel programma. In questo caso non c'è bisogno di un sistema operativo.

Ma sei il tipo che ha più schede su Chrome? Ora, immagina se potessi usare solo una scheda di Chrome.

Mentre il modo "classico" di programmare il Raspberry Pi Pico è il modo più efficiente in termini di risorse, limita anche la vostra capacità di eseguire più compiti.

Fortunatamente, ci sono sistemi operativi là fuori che funzionano sul Raspberry Pi Pico.

RTOS ufficiale (sistema operativo in tempo reale)

Non ce n'è uno, ma Raspberry Pi ha detto nelle sue FAQ (da febbraio 2022) che "lavoreranno presto al porting di un RTOS".

FreeRTOS

Il Raspberry Pi Pico può eseguire FreeRTOS. Ecco un breve video che vi guiderà attraverso il passaggio dalla programmazione bare-metal (il modo "tipico" di far lampeggiare un LED) alla programmazione basata sul sistema operativo.

Questa serie in cinque parti entra in dettaglio su FreeRTOS, come funziona e come puoi impostarlo e usarlo.

Fuzix

Non è possibile ottenere il Raspberry Pi Pico per eseguire Linux con un'interfaccia grafica, ma è possibile eseguire un clone Unix sul Raspberry Pi Pico con Fuzix.

Raspberry Pi ha ha pubblicato una guida che puoi seguire e di cui hai bisogno:

  • Non-Pico Raspberry Pi per la connessione seriale
  • Raspberry Pi Pico
  • Lettore di microSD per il Raspberry Pi Pico.

PyDOS

L'utente di Github RetiredWizard ha appena creato una shell simile al DOS per le schede RP2040/ESP32.

Come potete vedere nel video qui sopra, vi porta davvero indietro di oltre 30 anni.

Controlla il repo Github qui.

Iniziare con il Raspberry Pi Pico

Abbiamo progettato diversi kit in base a ciò che crediamo vi aiuterà di più nel lungo periodo per godervi il vostro viaggio con il Raspberry Pi Pico.

Al massimo, ecco alcuni accessori consigliati per Raspberry Pi Pico.

Il diodo Schottky è necessario se intendete far funzionare una seconda fonte di alimentazione al Pico. Questo è il modo più semplice per far funzionare un'alimentazione che rientra nell'intervallo di tensione da 2.3V a 5.5V che può essere una cella al litio o tre batterie AA.

L'aggiunta di questo diodo vi permetterà di "OR" le due tensioni da VBUS e la tensione esterna per alimentare VSYS con i diodi che impediscono ad entrambe le alimentazioni di retroalimentare l'altra.

Tuttavia, mentre questo è più semplice, ci sono perdite di efficienza. Scheda tecnica di Raspberry Pi spiega questo in dettaglio e spiega anche come mitigarlo nel capitolo 4.5.

Avere un portabatteria ti permette di avere un'alimentazione di riserva (con un diodo Schottky) o di eseguire il tuo setup completamente off-grid.

Questo è autoesplicativo. Avete bisogno di questo cavo per collegare il vostro Raspberry Pi Pico al computer per caricare il codice. Può anche funzionare come fonte di alimentazione.

Due header a 20 pin sono essenziali perché ne avrete bisogno per collegare il vostro Raspberry Pi ai componenti o a una breadboard.

L'intestazione a tre pin è necessaria per il debug.

Non comprate un header a 40 pin perché è destinato agli altri Raspberry Pis.

Se non volete saldare le testate da soli, potete considerare l'acquisto di un Pico con intestazioni presaldate.

Programmazione su Raspberry Pi Pico

È possibile codificare in MicroPython, C/C++ e CircuitPython sul Raspberry Pi Pico. Ecco una tabella che mostra lo sforzo necessario per far lampeggiare il LED interno.

LinguaMicroPythonC/C++CircuitPython
Impostazione necessaria per la prima esecuzioneMedioIl più altoPiù basso
Passi per creare un nuovo programmaMedioIl più altoPiù basso
Controllo dell'hardwareMedioIl più altoMedio

MicroPython sul Raspberry Pi Pico

MicroPython è essenzialmente Python lite. O Python dietetico.

È Python con un piccolo sottoinsieme della libreria standard Python, ottimizzato per funzionare su microcontrollori come il Raspberry Pi Pico.

Per utilizzare MicroPython, è necessario scaricare Thonny e vai in basso a destra dove c'è scritto "Python 3.7.9" e cliccaci sopra, selezionando MicroPython (Raspberry Pi Pico).

Probabilmente sarete accolti da una finestra pop-up che vi chiederà di aggiornare. Andate avanti.

L'aggiornamento è andato bene quando ho eseguito Thonny sul mio Raspberry Pi OS, tuttavia, su Windows, c'era questo errore che diceva "SSL: CERTIFICATE_VERIFY_FAILED".

Puoi risolvere questo problema scaricando questo certificato (https://letsencrypt.org/certs/lets-encrypt-r3.der), quindi fare clic con il pulsante destro del mouse sul file scaricato e "Installa certificato" e non si verificherà più questo errore.

Con MicroPython installato, potete fare l'equivalente di "Hello World" del Raspberry Pi Pico e far lampeggiare il suo LED interno usando questo codice

from machine import Pin, Timer
led = Pin(25, Pin.OUT)
timer = Timer()

def blink(timer):
    led.toggle()

timer.init(freq=2.5, mode=Timer.PERIODIC, callback=blink)

Premere RUN, salvarlo come blink.py e il LED interno del vostro Raspberry Pi dovrebbe lampeggiare.

Con questo, vediamo il processo equivalente su C.

Ulteriori letture

PiCockpit ha anche alcune guide per aiutarvi a iniziare con MicroPython sul Raspberry Pi Pico.

Raspberry Pi Pico e MicroPython su Windows - approfondiamo l'impostazione di MicroPython su Windows sul Raspberry Pi, come installare il driver giusto su Windows 8.1, la connessione al Pico usando PuTTY e una spiegazione dettagliata di Thonny.

Estensione C per MicroPython su Raspberry Pi Pico - E se si potesse eseguire MicroPython e C contemporaneamente e ottenere i benefici di entrambi i linguaggi? Il C funziona meglio di MicroPython su compiti computazionalmente pesanti e a volte potreste voler interfacciare dell'hardware attraverso un'API C dall'interno di MicroPython. Questa guida condivide come potete farlo.

LED lampeggiante con C/C++

Se avete bisogno di un controllo molto più fine, probabilmente vorrete scrivere C/C++.

Far funzionare il vostro Raspberry Pi Pico con il C è molto più impegnativo. Non è facile come scrivere MicroPython con Thonny.

Il modo più diretto è quello di utilizzare un microcomputer Raspberry Pi con Raspberry Pi OS.

Se volete usare un Mac o Windows, la guida ufficiale offre istruzioni nel capitolo nove.

Eseguite questi tre comandi:

wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh 
$ chmod +x pico_setup.sh
./pico_setup.sh

Avrete bisogno di circa 2GB di spazio per eseguire questo comando. Una volta fatto questo, riavviate eseguendo sudo reboot .

Una volta avviato, aprite Visual Studio Code (sotto la cartella Programming nel menu di avvio) e aprite la cartella situata in /home/pi/pico/pico-esempi. Dovete caricare questa cartella e non una sottocartella.

Poi è necessario configurare VS Code. Facendo riferimento all'immagine qui sopra, fate così:

  1. Clicca sulla parte che dice "No Kit";
  2. Apparirà un popup. Scegliete l'opzione dove c'è scritto "arm-none-eabi";
  3. Clicca su [all] e scegli il progetto che vuoi compilare. Per far lampeggiare il LED interno, ho scelto blink
  4. Premere Costruire

Sarete in grado di trovare il blink.uf2 nel file /build/blink cartella.

Copiate il file UF2 sul vostro Raspberry Pi Pico e vedrete il LED interno iniziare a lampeggiare.

Costruire il proprio progetto è più complicato su C/C++. La guida ufficiale ha capitolo otto che ti dice come creare il tuo progetto.

CircuitPython

Un terzo concorrente tra i linguaggi di programmazione che funzionano con il Raspberry Pi Pico è CircuitPython.

Per iniziare, scaricare il file .UF2 qui.

Pulsante BOOTSEL

Tieni premuto il pulsante BOOTSEL e collega il tuo Pico al computer. Dovresti vedere una nuova unità.

Copia il file .UF2 che hai scaricato su quel drive. Il tuo Pico si disconnetterà e si riconnetterà con un nuovo drive chiamato CIRCUITPY.

In quella cartella, c'è un file chiamato codice.pyaprirlo con il tuo editor di codice preferito (anche Notepad funziona).

Mettete questo codice:

import board
import digitalio
import time

led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT

while True:
    led.value = True
    time.sleep(0.5)
    led.value = False
    time.sleep(0.5)

Una volta salvato, vedrete che il LED interno del vostro Pico inizierà a lampeggiare.

Nel complesso, CircuitPython è stato il modo più fluido e diretto per far lampeggiare il LED interno. Le altre due opzioni erano più noiose, specialmente l'esecuzione del C sul Pico (triplicato se si sta cercando di farlo funzionare su Mac/Windows).

Detto questo, se state pensando di usare CircuitPython a lungo termine, c'è un argomento a favore dell'uso di Thonny come IDE perché può scaricare pacchetti per voi e potete anche eseguire e fermare programmi premendo il pulsante play/stop sulla barra dei comandi.

Per ulteriori riferimenti su CircuitPython, vedere La documentazione di Adafruit. Per tornare a MicroPython, scaricare un file .UF2 da qui e caricarlo sul tuo disco CIRCUITO.

Bonus: Assembler sul Raspberry Pi Pico

Sì, potete scrivere in assembler se non volete programmare il Raspberry Pi Pico in C o Python.

La FAQ di Raspberry Pi afferma che il Pico SDK ha alcune funzioni scritte in assembler e che,

"Il processore (dual-core ARM Cortex M0+) implementa il set di istruzioni ARMv6-M Thumb, comprese alcune istruzioni a 32 bit che utilizzano la tecnologia Thumb-2. Il set di istruzioni ARMv6-M comprende tutte le istruzioni Thumb a 16 bit di ARMv7-M escluse CBZ, CBNZ e IT e le istruzioni Thumb a 32 bit BL, DMB, DSB, ISB, MRS e MSR."

Bonus: linguaggio di programmazione Rust sul Raspberry Pi Pico

Se vi sentite scontrosi perché siete un ruspante che non vede l'ora di scrivere nella vostra lingua preferita, allora ho buone notizie per voi.

Il cuore di questo è il RP2040 Hardware Abstraction Layer che che potete ottenere su GitHub (chiamato rp-hal). Funziona per molte schede che usano il microcontrollore RP2040 oltre al Raspberry Pi Pico.

Ecco un video che vi mostra come impostarlo.

Cos'è UF2 e perché è usato così tanto sul Raspberry Pi Pico?

È una magia. Trascini un file UF2 sul tuo Raspberry Pi Pico e improvvisamente si rimuove con un nuovo nome o improvvisamente lampeggia un LED.

UF2 (U F al quadrato) sta per USB Flashing Format. Quando lo trascini sul tuo Raspberry Pi, stai trascinando il tuo codice in aggiunta alle istruzioni per il bootloader in modo che sappia cosa fare con quello che hai caricato.

Collegare il Pico tramite il terminale seriale

Windows

Collegarsi al Pico usando il terminale seriale è facile e abbiamo una guida qui.

Connessione a un Raspberry Pi 4 (Linux)

Per collegare il Raspberry Pi Pico a un Raspberry Pi 4, è possibile utilizzare i pin USB o UART, minicom e alcuni fili di collegamento.

Raspberry Pi Come iniziare con Pico ha tutte le informazioni del capitolo 4, in particolare 4.4 e 4.5.

Debugging del Raspberry Pi Pico

A cosa servono questi tre perni in basso?

pin di debug del raspberry pi pico
Pin di debug per Raspberry Pi Pico

Questi pin vi daranno la possibilità di resettare il Pico, caricare il codice in flash, eseguire il codice e soprattutto, capacità di debug.

Il più grande vantaggio è la capacità avanzata di debugging che si può ottenere da questi pin. Ora siete in grado di fare un'analisi del codice molto più fine perché potete:

  1. Impostate dei punti di interruzione nel vostro codice. I punti di interruzione vi permettono di mettere in pausa l'esecuzione del codice mentre controllate i valori delle vostre variabili, per esempio.
  2. Passa attraverso l'esecuzione del codice linea per linea. Quando va tutto storto? Linea per linea rende più facile il debug.

Possono essere collegati a un microcomputer Raspberry Pi attraverso i loro pin GPIO. Se volete collegarli ad altre macchine, probabilmente via USB, allora avrete bisogno di una sonda di debug.

Un Raspberry Pi Pico può anche agire come una sonda di debug che collega il vostro computer al Pico su cui volete lavorare. Pensatela in questo modo: il vostro computer non ha i pin GPIO necessari per stabilire una connessione UART/SWD, quindi userete un Pico per fornire quelle connessioni insieme al picoprobe firmware che lo abiliterà.

Tuttavia, se hai intenzione di usare la SWD per il debug, dovresti usare una connessione seriale basata su UART piuttosto che una connessione USB. Il debugging ferma i core dell'RP2040, il che causerà la disconnessione della connessione USB.

Parliamo un po' di cosa fa ogni pin:

SWDIOIl pin Serial Wire Debug Input/Output porta il traffico di debug tra l'RP2040 e il computer host (un computer completo o un microcomputer Raspberry Pi, per esempio).

GND: Terra. Necessario per mantenere una buona integrità del segnale tra l'host e il Pico.

SWCLK: Il pin Serial Wire Clock sincronizza la connessione.

La cosa migliore è fare riferimento al Come iniziare con Pico datasheet di Raspberry Pi, con un focus specifico sui capitoli 5, 6 e sull'Appendice A: usare Picoprobe.

Progetti Raspberry Pi Pico

Qui ci sono alcuni buoni progetti per principianti che si possono iniziare con un minimo di parti extra richieste.

Tastiera facile sArCasM e tastiera macro

Questo è un progetto divertente che vi permetterà di creare un modificatore che trasforma la normale digitazione in caso di sarcasmo. In tutta serietà, sapere come usare la libreria HID di Adafruit con un interruttore vi permetterà di creare tasti macro.

Se volete digitare sArCaSm in scala, è abbastanza faticoso. C'è un modo molto semplice per farlo con il Raspberry Pi Pico.

Non avete bisogno di nulla oltre al vostro Raspberry Pi Pico per il progetto più basilare. Tuttavia, il vostro Raspberry Pi Pico dovrebbe avere CircuitPython con la libreria HID di Adafruit.

Nella modalità regolare di Thonny, andare su Strumenti -> Gestisci pacchetti e cercare adafruit-circuitpython-hid. Installarlo.

Assicurati anche di usare l'interprete CircuitPython, che si trova in basso a destra di Thonny.

Mettete questo codice,

import time
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

keyboard = Keyboard(usb_hid.devices)

while True:

        keyboard.press(Keycode.CAPS_LOCK)
        time.sleep(0.2)
        keyboard.release(Keycode.CAPS_LOCK)

Carica il codice sul tuo Pico. Se necessario, premi il pulsante RUN in Thonny.

Ora, ogni volta che collegate il vostro Raspberry Pi Pico al computer... Attendete il messaggio del messaggio davanti ai vostri occhi.

Quello che fa questo script è che attiva e disattiva il Caps Lock ogni 0,2 secondi, come dichiarato in time.sleep(0.2). Se cambiate il valore all'interno delle parentesi, potete mettere a punto la vostra frequenza di cambio di caso.

Aggiungere un interruttore a questo progetto

aggiungere un interruttore al raspberry pi pico

Questo design di base ha l'inconveniente che bisogna tirare la USB per fermare il sarcasmo.

Aggiungiamo un interruttore che ci permetterà di attivare e disattivare questa funzione.

Teniamo anche il LED della scheda acceso quando si attiva il sarcasmo.

Schema per collegare un interruttore al Raspberry Pi Pico usando Wokwi.

Un interruttore a pulsante ha quattro poli. Collegate il pin 3.3V e il GPIO 22 (etichettato come GP 22) sui lati diagonalmente opposti del pulsante.

Quello che succede qui è che quando si preme l'interruttore, si collegano i 3,3V al pin GPIO 22, quindi, in termini profani, lo si attiva.

Questa è l'unica modifica fisica che dovete fare. È molto facile.

Per quanto riguarda il codice, è cresciuto di un bel po' di righe, (grassetto = relativo al pulsante, corsivo = relativo al LED)

import time
import digitalio
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

keyboard = Keyboard(usb_hid.devices)

<strong>btn1_pin = board.GP22
btn1 = digitalio.DigitalInOut(btn1_pin)
btn1.direction = digitalio.Direction.INPUT #GP22 is an input
btn1.pull = digitalio.Pull.DOWN #DOWN means it outputs False

</strong>
<em>led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT</em> #powering LED, so give it OUTPUT
 
activated = False #this variable stores if sarcasm is on or off

while True:
    <strong>if btn1.value: #if user presses btn1, start sarcasm
        activated = True</strong>
        
    if activated:
        <em>led.value = True</em> #turn on board LED
        keyboard.press(Keycode.CAPS_LOCK)
        time.sleep(0.2)
        keyboard.release(Keycode.CAPS_LOCK)
        if <strong>btn1.value: #if user presses btn1 while activated, cancels sarcasm
            activated = False
            <em>led.value = False</em> #turn off LED
            time.sleep(0.2)</strong> 
            <strong>#pauses while loop to give user time to remove finger from btn1</strong>

Conversione della tastiera del sarcasmo in una tastiera macro

È possibile utilizzare il pulsante per attivare macro come ALT + TAB, CTRL + ALT + DEL o qualsiasi altra cosa fino a un massimo di sei tasti regolari.

Dovete solo modificare i tasti all'interno di questo metodo keyboard.press e keyboard.release.

import time
import digitalio
import board
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

keyboard = Keyboard(usb_hid.devices)

btn1_pin = board.GP22
btn1 = digitalio.DigitalInOut(btn1_pin)
btn1.direction = digitalio.Direction.INPUT
btn1.pull = digitalio.Pull.DOWN

while True:
    if btn1.value:
        <strong>keyboard.press(Keycode.ALT,Keycode.TAB )</strong>
        time.sleep(0.2)
        <strong>keyboard.release(Keycode.ALT,Keycode.TAB)</strong>

Ci sono molte altre cose che potete fare con questo hack di tastiera. Per esempio, potreste usarlo per impedire al vostro screensaver di apparire premendo un tasto innocuo come Page Up. Oppure potresti usarlo specificamente per controllare Zoom, Discord, OBS, Meet, ecc.

Dati di temperatura/umidità con DHT22

raspberry pi pico dht22

Se avete un sensore DHT11, DHT22 o AM2302, potete usarlo con il Raspberry Pi Pico.

Questi sensori sarebbero probabilmente meglio accoppiati con un LCD o un modo per salvare i dati, ma iniziamo con un progetto rapido.

Avete bisogno di tre fili per i ponticelli, di intestazioni sul Raspberry Pi Pico e di una resistenza da 10K. Il seguente pacchetto ha tutto il necessario, oltre al Raspberry Pi Pico con gli header.

È davvero facile con Thonny, CircuitPython e la libreria DHT di Adafruit.

I seguenti passi utilizzano il DHT22.

Collegare il sensore DHT22 al Raspberry Pi Pico

È davvero facile collegare il DHT22 al Pico.

raspberry pi pico dht22

Ci sono quattro pin sul DHT22. Da sinistra a destra, con il lato a rete rivolto verso di voi, i pin sono VCC, DATI, NC e GND. Non avrete bisogno di collegare NC.

Collegare VCC al 3.3V pin sul Pi.

Collegare la resistenza 10K dal 3,3V a DATI, poi collegare DATI a GP0. Questo è più facile farlo con una breadboard in modo da poter dividere i 3,3V. Come si vede nella foto sopra, una resistenza va dal pin più a sinistra al secondo pin, così come il filo verde è collegato al GPIO 0.

Collegare GND a qualsiasi pin di terra del vostro Raspberry Pi Pico.

Hai finito. È il momento del software.

raspberry pi pico dht22
Diagramma fatto da Wokwi.

Codificare il DHT22 in Thonny per il Raspberry Pi Pico

Per prima cosa, aprite Thonny e fate in modo di essere in modalità regolare e CircuitPython (in basso a destra). Una guida più dettagliata per Thonny e CircuitPython è disponibile sopra.

Vai a Tools -> Manage packages -> cerca adafruit-circuitpython-dht.

raspberry pi pico dht22

Poi, inserire questo codice fornito da Adafruit.

import time

import adafruit_dht
import board

dht = adafruit_dht.DHT22(board.GP0)

while True:
    try:
        temperature = dht.temperature
        humidity = dht.humidity
        # Print what we got to the REPL
        print("Temp: {:.1f} *C \t Humidity: {}%".format(temperature, humidity))
    except RuntimeError as e:
        # Reading doesn't always work! Just print error and we'll try again
        print("Reading from DHT failure: ", e.args)

    time.sleep(1)

Premere Esegui in Thonny e dovreste vedere un output:

pi dht22

Display Raspberry Pi Pico

Il Raspberry Pi Pico è piuttosto figo perché può visualizzare immagini.

L'aspetto negativo è che richiede un bel po' di lavoro, alcune conoscenze tecniche e otterrete immagini che sembrano essere dell'era di Windows 3.1.

Perché? A causa della limitata RAM di 264KB. Questo limita la risoluzione del display e la profondità di colore.

Detto questo, ecco alcuni esempi di come ciò che si può produrre.

Facile uscita video con calza DVI

Il modo più semplice per l'uscita video è seguire la nostra guida e usare la calza DVI o la scheda di espansione VGA & Audio. La calza DVI utilizza un cavo HDMI che è probabilmente la porta più compatibile con i dispositivi odierni.

Leggi qui l'articolo completo su come puoi iniziare

Modi fai da te per collegare Pico al display

Ci sono altri modi di emettere video senza comprare periferiche.

Miroslav Nemecek ha scritto un articolo su come potete usare otto resistenze e una porta VGA per collegare un monitor al vostro Raspberry Pi Pico.

Ed ecco un modo in cui puoi usare un cavo HDMI e delle resistenze per collegare il tuo Pico a un monitor HDMI.

Consumo energetico di Raspberry Pi Pico

Il datasheet della Pico di Raspberry Pi ci fornisce una buona base per capire quanta potenza ci si può aspettare dalla Pico in base a certi usi tipici.

Queste cifre non rappresentano il massimo assoluto che si può trarre dal Raspberry Pi Pico, ma sono un buon punto di partenza.

Il loro primo test includeva l'accesso al video, all'audio e alla scheda SD per visualizzare una demo del lettore multimediale "Popcorn" tramite la scheda VGA, SD e audio.

Stato
Giocare Popcorn (video, audio, scheda SD)93.5mA
Modo BOOTSEL, attivo9.9mA
Modo DORMANT0,8mA
Modalità SLEEP1.3mA

Vi starete chiedendo: qual è la differenza tra DORMIRE e DORMIRE?

Dormant richiede un trigger esterno che manipola un pin GPIO per svegliare il Raspberry Pi Pico, mentre SLEEP può eseguire un orologio interno per svegliare l'RP2040, come illustrato nella Scheda tecnica RP2040.

Nelle FAQ di Raspberry Pi Pico, chiariscono ulteriormente che,

"La modalità SLEEP è quando i processori sono in wfi/wfe e il DMA è inattivo, quindi si può spegnere la maggior parte degli orologi di sistema, comprese cose come il bus fabric.
La modalità DORMANT è quando si spengono tutti gli oscillatori, e quindi è ancora meno potente, ma poi si hanno meno opzioni per il risveglio".

Posso far funzionare il Raspberry Pi Pico con un power bank?

raspberry pi pico power bank batteria

Sì, è possibile.

Ma il Raspberry Pi Pico potrebbe non assorbire abbastanza energia dal power bank e causare che il power bank vada in modalità risparmio energetico.

La soluzione è, sfortunatamente, di prelevare più energia mettendo una resistenza tra il power bank e il Raspberry Pi Pico. Ecco un video che spiega i pro e i contro.

Alimentazione del Pico (tensioni)

Il Raspberry Pi Pico può essere alimentato utilizzando la porta microUSB. Questo alimenta il VSYS dalla tensione 5V VBUS, tramite D1.

Se non state usando la porta USB per alimentare il vostro Raspberry Pi Pico, allora potete collegare VSYS alla vostra fonte di alimentazione nel range da 1.8V a 5.5V.

Tuttavia, se li state collegando entrambi, avrete bisogno di alimentare la seconda fonte di alimentazione nel VSYS tramite un diodo Schottky, che impedisce che una delle due alimentazioni dia back-powering all'altra. Il diodo Schottky consentirà anche il flusso della tensione più alta di VBUS o della tensione esterna.

Tuttavia, c'è una caduta di tensione sul diodo Schottky, quindi è necessario fornire una tensione da 2,3V a 5,5V.

Questo significa che puoi alimentare il Raspberry Pi Pico con un minimo di 2x batterie ricaricabili al nichel (2.4V) o 1x batteria al litio (3.7V).

Per non perdere efficienza usando il diodo Schottky, si può invece usare un MOSFET a canale P a bassa resistenza.

Per ulteriori informazioni, vedere il Scheda tecnica di Raspberry Pi Pico.

È possibile alimentare il Raspberry Pi Pico tramite l'USB di un televisore?

Sì, è possibile. Ecco un'immagine in cui ho fatto lampeggiare il LED interno.

consumo di energia del raspberry pi pico (2)

Una porta USB standard dovrebbe essere in grado di fornire fino a 500mA, che è molto di più di quello che il Raspberry Pi Pico ha bisogno. Come si può vedere nei test di consumo energetico fatti da Raspberry Pi, il test più intenso ha assorbito solo circa 90mA.

Potresti avere problemi se la tua configurazione Raspberry Pi Pico assorbe più di 500mA, per esempio, se il tuo Pico sta eseguendo periferiche affamate di energia.

Raspberry Pi Pico contro altre schede

Il Raspberry Pi Pico è un concorrente tardivo nel mondo dei microcontrollori, essendo stato rilasciato solo nel 2021. C'è già una forte concorrenza nel mondo dei microcontrollori con ESP32 e Arduino che hanno molte varianti che possono aiutarti a far partire il tuo progetto con le giuste caratteristiche come il WiFi.

Non ci sono varianti con il Raspberry Pi Pico, quindi sarà necessario acquistare HAT e altri componenti aggiuntivi per raggiungere lo stesso obiettivo.

Inoltre, se avete intenzione di aggiungere molti componenti... quando diventa il momento di comprare semplicemente un microcomputer?

Rispondiamo a questo guardando l'ESP32, Arduino Uno e Raspberry Pi Zero.

Raspberry Pi Pico vs Espressif ESP32

L'ESP32 è un grande passo avanti rispetto al Raspberry Pi Pico in termini di capacità tecnologiche. Per fare un confronto, ho scelto la variante PICO-KIT perché mi sembrava più simile al Pico in termini di fattore di forma.

Per prima cosa, avere WiFi e Bluetooth è un grande cambiamento di gioco. Per esempio, sarete in grado di eseguire un server sull'Espressif ESP32 che visualizza i valori del vostro sensore, mentre non sarete in grado di farlo sul Raspberry Pi Pico.

L'ESP32 ha anche un processore più veloce, più RAM e più memoria flash, ma tutto questo ha il costo di un maggiore consumo energetico.

Il Raspberry Pi Pico è un po' più modesto nelle sue specifiche, ma due cose spiccano. Il fatto che possa accettare tensioni da 1,8 V a 5,5 V permette davvero di utilizzare una sola batteria al litio che crea un pacchetto molto compatto. Questo non sarebbe possibile con l'ESP32 a meno che non si modifichi la tensione di 3,7 V della singola batteria al litio.

Raspberry Pi PicoEspressif ESP32-PICO-KIT
Frequenza della CPU133MHz80/160/240MHz
MicrocontrolloreRP2040Xtensa LX6
Nuclei22
Memoria flash2MB4MB
RAM256KB520KB
GPIO26 (utilizzabile dall'utente)36
Ha l'USB?microUSBmicroUSB
WiFi e/o BT?NoSì, entrambi
Tensione1.8 - 5.5V o 5V USB3,3 V (tramite pin) o 5 V tramite USB o 5 V-12 V (tramite regolatore di tensione)
Assorbimento (con attività)93mA (test Popcorn)100-128mA1
Dimensione51x21mm52x20mm
LingueMicroPython / CMicroPython / C

Nota: le cifre del consumo di energia sull'ESP32 è l'esecuzione di un programma con un ciclo vuoto.

Raspberry Pi Pico vs Arduino Uno Rev3

Arduino crea un sacco di schede e in termini di fattore di forma, l'Arduino Nano è probabilmente il più vicino, arrivando a 45 x 18 mm. Arduino produce anche una scheda che utilizza il microcontrollore RP2040.

Tuttavia, la scheda più comune è l'Arduino Uno Rev3, quindi diamo un'occhiata a come queste due schede si confrontano.

Raspberry Pi PicoArduino Uno Rev3
Frequenza della CPU133MHz16 MHz
MicrocontrolloreRP2040ATmega328P
Memoria flash2MB32KB
RAM256KB2KB
GPIO26 (utilizzabile dall'utente)14 digitali, 6 analogici
Ha l'USB?microUSBUSB B
WiFi e/o BT?NoVariante WiFi disponibile
Tensione1.8 - 5.5V o 5V USB6-20V (7-12V raccomandato) o via USB.
Dimensione51x21mm68x53mm
LingueMicroPython / CC

Per i principianti, una delle più grandi differenze da notare è come Arduino Uno opera su una logica di 5V mentre il Raspberry Pi Pico opera su una logica di 3.3V.

5V può potenzialmente rendere le cose più facili per i principianti perché alcuni componenti richiedono un ingresso di 5V come i relè. Se avete un componente a 5V che volete far funzionare sul Raspberry Pi Pico, dovrete fornire componenti aggiuntivi per aumentare i 3.3V a 5V.

L'altra differenza è che Arduino Uno è open source, il che significa che è possibile acquistare schede più economiche che hanno la stessa capacità. Detto questo, il Raspberry Pi Pico è già estremamente economico a $4 o 4,10€.

Arduino Uno accetta anche una gamma molto più ampia di tensioni (7-12V raccomandati), il che significa che puoi farlo funzionare con molti tipi di alimentatori.

In termini di linguaggi di programmazione, la Pico ha il vantaggio di permettervi di codificare in MicroPython, mentre dovrete scrivere C per Arduino. Detto questo, l'Arduino ha una libreria più grande per facilitare il lavoro con i componenti.

Raspberry Pi Pico vs Raspberry Pi Zero

pi zero pi pico
Foto di Harrison Broadbent.

In una certa misura, il Pico e lo Zero hanno capacità sovrapposte. In circuiti semplici, potete usare la Pico e lo Zero per fare esattamente la stessa cosa.

Ma il modo in cui si arriva allo stesso punto varia tra la Pico e la Zero.

Ecco la logica che uso per decidere quale usare:

ScenarioCosa prendere
Sono migliore in un linguaggio diverso da C/PythonZero
Ho una potenza "illimitata" (cioè un caso d'uso non solare o a batteria)Zero
Ho bisogno di WiFi e/o BluetoothZero
Ho bisogno di salvare dei dati (come i registri delle temperature)Zero
Ho bisogno di usare una macchina fotograficaZero
Ho bisogno della configurazione più compattaPico
Ho bisogno di un riavvio rapido in caso di crash/interruzione di correntePico
Non voglio impostare un sistema operativoPico
Voglio l'opzione più economicaPico

Un quadro più dettagliato del perché scegliere la Pico o la Zero è coperto sopra, e questo link vi porterà ad esso.

Raspberry Pi Pico vs Teensy 4.1

La Teensy 4.1 è una scheda estremamente potente grazie al suo chip ARM Cortex-M7 che gira a 600MHz.

Rilasciato da PJRC nel 2021, il Teensy 4.1 piacerebbe alle persone che hanno bisogno di qualcosa con molta potenza di elaborazione, RAM, memoria flash, ethernet e più pin GPIO di quello che si trova nel Raspberry Pi Pico.

Si ottengono 55 pin di ingresso/uscita, ma solo 42 sono "breadboardable". Ci sono 35 pin PWM, 18 ingressi analogici, 8 seriali, 3 SPI e 3 I2C.

Dove il Raspberry Pi Pico brilla si riduce alla sua semplicità. Se state appena imparando e volete il modo più semplice per iniziare con progetti semplici, il Raspberry Pi Pico offre il modo più semplice per essere operativi.

Per esempio, il linguaggio di programmazione del Raspberry Pi Pico è MicroPython, mentre il Teensy 4.1 è programmato principalmente in C.

È anche molto facile usare CircuitPython sul Raspberry Pi Pico, il che rende più facile costruire progetti.

Il prezzo del Teensy 4.1, a $26.85, è molto più del Raspberry Pi Pico $4.

Inoltre, è molto più facile alimentare il Raspberry Pi Pico con una batteria a causa dell'ampia tensione che può prendere.

Raspberry Pi PicoTeensy 4.1
Frequenza della CPU133MHz600MHz
Memoria flash2MB8MB
RAM256KB1024KB
GPIO26 (utilizzabile dall'utente)55 digitale, 18 analogico
Ha l'USB?microUSBmicroUSB
WiFi e/o BT?NoNo, ma ha Ethernet
Tensione1.8 - 5.5V o 5V USB5V via USB o VIN
Dimensione51x21mm61x15mm

Raspberry Pi Pico download

Ho compilato una lista di file che possono aiutarvi nei vostri progetti. La maggior parte di essi si trova nella cartella sottodominio datasheet di Raspberry Pi e quelli che sono qui sono rilevanti per il Raspberry Pi Pico.

Riferimenti

Pinout di Raspberry Pi Pico

Schemi di Raspberry Pi Pico

Scheda tecnica di Raspberry Pi Pico (sul Pico, specifiche meccaniche/elettriche, caratteristiche, alimentazione, debug, schema, posizione dei componenti)

Breve prodotto Raspberry Pi Pico (mazzo di marketing)

Scheda tecnica RP2040

Raspberry Pi Pico Fritzing file

Raspberry Pi Pico FAQ

10 fatti curiosi su Raspberry Pi Pico

Programmazione

Estensione C per MicroPython

Raspberry Pi Pico e MicroPython su Windows

RAspberry Pi Pico Come iniziare con Pico (per lo sviluppo C/C++)

File CircuitPython per Raspberry Pi Pico UF2

Thonny

Iniziare con MicroPython su Raspberry Pi Pico

Raspberry Pi Pico C SDK (kit di sviluppo software) documentazione

Raspberry Pi Pico MicroPython SDK (kit di sviluppo software) documentazione

CAD

File STEP per Raspberry Pi Pico

RP2040 file KiCAD minimo

RP2040 VGA file KiCAD

14 commenti

  1. Antony in Aprile 18, 2022 il 11:54 am

    Il consumo di energia non è 6W, è 0.5W (100mA a 5V)

    • Xuyun Zeng in Aprile 20, 2022 il 5:02 am

      Ciao Antony, l'ho corretto. Grazie per il tuo contributo.

    • Rys in Novembre 13, 2022 il 6:49 am

      chyba na wyjściach pinów. I dati sono stati raccolti in base alle caratteristiche tecnologiche di PICO.

  2. Andres Nuñez in Luglio 3, 2022 il 11:54 pm

    Posso collegare via usb un Raspberry Pi Pico con un Arduino Nano. che il rrasberry invia via usb i dati all'arduino?

    Gracias

  3. robert in Settembre 19, 2022 il 8:47 pm

    pico w ha il wifi ora

  4. Arya in Settembre 24, 2022 il 7:17 am

    > Oh, ho già detto che il Raspberry Pi Zero è molto esigente riguardo alla tensione di alimentazione? Accetta solo 4,75-5,25 V.

    Non è corretto, questa è la specifica dichiarata, ma è necessario un livello inferiore e funziona a meraviglia. vedere qui: https://hackaday.io/project/19035/log/69596

  5. FWBlack in Ottobre 4, 2022 il 7:12 pm

    Molto bello! Mi è piaciuto questo: " Per esempio, uno dei miei progetti utilizzava un potenziometro per regolare la frequenza di commutazione di un relè". - Mi chiedevo se potessi condividere i dettagli di questo progetto come esempio. Hai usato PIO / PIO State Machine?

    • Xuyun Zeng in Ottobre 5, 2022 il 10:01 am

      Non è stato utilizzato PIO!

      In pratica, quando si collega un potenziometro a un ADC, si ottiene un valore. Ruotando il potenziometro si aumenta o diminuisce il valore.

      In pratica ho utilizzato questi valori per creare un timer. Quindi, ad esempio, se il valore è 2000, corrisponderà a 2 secondi di accensione e 2 di spegnimento.

  6. Frabci in Dicembre 7, 2022 il 2:48 am

    Bene, è possibile che il raspberry pi pico sia in grado di ricevere in ingresso una corrente di 2A ma con una tensione di 5V?

    • Xuyun Zeng in Dicembre 8, 2022 il 7:09 am

      State usando un caricatore di cellulari che ha una corrente di 2A? Anche se c'è sempre un rischio, credo che il Pico abbia solo la corrente necessaria, anche se il vostro caricatore può fornirvi 2A (al massimo).

  7. Nigel A Gunn in Gennaio 20, 2023 il 9:42 pm

    La programmazione non è limitata al C o al microPython. Ho picos con interpreti FORTH e BASIC installati e c'è sempre CircuitPython.

    • raspi berry in Febbraio 4, 2023 il 11:49 am

      Grazie per il feedback - è interessante sapere che è possibile eseguire linguaggi come il FORTH anche su Pico!

  8. Antonio in Aprile 28, 2023 il 2:01 pm

    Su Raspberry Pi Pico W non riesco ad installare la libreria adafruit-circuitpython-hid.
    Inizia l'installazione e dopo un po mi da errore 28 memoria piena.
    dove sbaglio?
    Grazie 1000

  9. PoyFromFrance in Agosto 28, 2023 il 10:36 am

    Ottimo articolo! Ho usato un Pico per la mia tastiera personalizzata con firmware kmk (circuito basato su python) ed è fantastico.
    Di recente ho acquistato alcuni cloni di pico su aliexpress a soli 2,7 dollari, con un modulo di tipo C e 16 mb... Non li ho ancora testati.

Lascia un commento