Raspberry Pi Pico è un recente microcontrollore programmabile simile ad Arduino e ESP8266 ed è visibile qua sotto in foto
Raspberry Pi Pico - RP2040Raspberry Pi Pico - RP2040
La moneta da 10 centesimi è riportata solo per evidenziare le reali dimensioni
E' basata sul microcontroller RP2040 le cui caratteristiche principali sono:
  • Processore dual-core Arm Cortex-M0+
  • RAM interna da 264 KB e supporto per un massimo di 16 MB di Flash off-chip
  • un'ampia gamma di opzioni di I/O flessibili che includono I2C, SPI e I/O programmabili (PIO)
  • porta USB
  • può essere programmato in C/C++ e MicroPython
Allo stato attuale non ha nessun supporto di rete/WI-FI.
Se serve il supporto al WI-Fi conviene usare ESP8266 come in questo esempio Prese comandate IoT controllate da cellulare (ESP8266).
La mappatura dei Pin è questa
Pin mapPin map
In questo tutorial vedremo come iniziare a programmarla in MicroPython con Visual Studio Code
Oltre a Visual Studio Code esiste anche un altro editor per il Python che si chiama Thonny che può essere usato per programmare il Pico.
Attenzione per proseguire nel tutorial, sulla macchina deve già essere installato Python 3 e Visual Studio Code

Iniziare con MicroPython

Per usare Micro Python va prima installato il firmware corretto sul Pico tramite drag & drop.

Procedi in questo modo:
  • scarica il file MicroPython UF2 (attualmente la versione 1.15, per vedere i firmware disponibili vedi Firmware for Raspberry Pi Pico)
  • tieni premuto il pulsante BOOTSEL sul tuo Pico e collegalo alla porta USB del tuo PC, una volta collegato rilascia il pulsante
  • Verrà montato come dispositivo di archiviazione di massa chiamato RPI-RP2
  • trascina e rilascia il file MicroPython UF2 sul volume RPI-RP2, il Pico si riavvierà, MicroPython è installato.
Il tasto BOOTSEL è quello evidenziato in foto
Tasto BOOTSELTasto BOOTSEL
Finché non viene installato MicroPython, Pico comparirà come periferica USB non riconosciuta (RP2 Boot)
Pico non installatoPico non installato
ma sarà comunque visibile come dispositivo di archiviazione
Pico non installatoPico non installato
Una volta scaricato e fatto il drag & drop del file MicroPython UF2
Installazione MicroPythonInstallazione MicroPython
sarà visualizzato in questo modo Board in FS mode
Pico installatoPico installato
Il Pico è pronto per essere programmato.

Utilizzo di VS Code

Per utilizzare Visual Studio Code è necessario installare l'estensione Pico-Go VS Code Extension
Estensione Pico-GoEstensione Pico-Go
se tutto è andato a buon fine nella barra in basso deve comparire la dicitura Pico Connected e visualizzata la console Pico Console dove è possibile inserire i comandi MicroPython
Estensione Pico-GoEstensione Pico-Go
In questa fase viene anche visualizzata la porta a cui è connesso il Pico, nell'esempio COM5.
I tre simboli di maggiore >>> indicano che il Read–Eval–Print Loop (REPL) di Pico è pronto a ricevere comandi.

Configurazione progetto

Tramite il comando All Commands / Configure project è possibile impostare il progetto in automatico perché sia configurato con tutte le dipendenze necessarie
configurazione progettoconfigurazione progetto
Questo crea la cartella .vscode con, tra le altre cose, le librerie MicroPython e un file pico-go.json
JSON: pico-go.json
{
    "sync_folder": "",
    "open_on_start": true
}
in ultimo visualizza le estensioni consigliate per questo tipo di progetto.

Lampeggio di un LED in MicroPython

Come primo programma di esempio, facciamo lampeggiare il LED incorporato nel controller Pico
LED on-boardLED on-board
Crea un file demo-led.py (il nome file non è importante) e inserisci il codice seguente
Python: demo-led.py
# carico le librerie necessarie
from machine import Pin
import utime

# salvo in una variabile il pin collegato al LED interno (built-in)
# lo imposto in modalità OUTPUT
led1 = Pin(25, Pin.OUT)

# cliclo all'infinito
while True:
   print("LED acceso")
   led1.value(1)
   # aspetto 1 secondo
   utime.sleep(1)

   print("LED spento")
   led1.value(0)
   # aspetto 1 secondo
   utime.sleep(1)
Dove:
  • Pin(25, Pin.OUT) imposta il pin 25, dove è collegato il LED interno, in output
  • led1.value(...) permette di impostare la corrispondente uscita come attiva (accesa) o disattiva (spenta)
  • utime.sleep(1) crea una pausa di 1 secondo tra le fasi accensione / spegnimento.
  • while True crea un ciclo infinito .

Il programma può essere semplificato con l'uso dell'istruzione toggle in questo modo
Python
# carico le librerie necessarie
from machine import Pin
import utime

# salvo in una variabile il pin collegato al LED interno (built-in)
# lo imposto in modalità OUTPUT
led1 = Pin(25, Pin.OUT)

# cliclo all'infinito
while True:
   led1.toggle()
   utime.sleep(1)
L'istruzione toggle inverte lo stato dell'uscita.

Vedi anche Cominciare ad usare Python - Parte 1.

Esecuzione

Possiamo mandarlo in esecuzione direttamente sul Pico tramite il pulsante Run senza doverlo caricare (upload)
RunRun
e fermalo con Stop
Running & StopRunning & Stop
mentre nella console vengono visualizzati gli output dei comandi print.

Upload

Tramite il pulsante Upload (nella barra in basso), è possibile caricare il file selezionato sul Pico in modo da renderlo persistente e disponibile anche in caso di riavvio
Upload file selezionatoUpload file selezionato
Attenzione in questo caso (upload) il file deve assolutamente chiamarsi main.py, altrimenti non verrà eseguito nessun programma.

Cancellazione

Prima di partire con un nuovo progetto può essere utile cancellare tutto il contenuto del Pico tramite il comando All commands / Delete all files from board
Cancella tutti i file dal PicoCancella tutti i file dal Pico
Potrebbe interessarti anche: