Raspberry Pi Pico: scopriamo il microcontrollore “da 4 soldi”!
Raspberry Pi Pico è la prima board che presenta un microcontrollore progettato interamente dalla Raspberry Pi Foundation. Ovviamente quello che ha fatto scalpore è il prezzo di quest’ultimo: costa solamente 4$ (in Italia 4,20 – 4,50 €). Partiamo però dal parlare di qualche caratteristica tecnica. La board presenta un chip microcontrollore RP2040 (processore dual core Arm Cortex-M0+ con 264KB di memoria SRAM e 16MB di memoria FLASH off-chip).
Le dimensioni della scheda sono di 51x21mm, ma nonostante le piccole dimensioni offre tantissime applicazioni: sarà possibile controllare periferiche di I/O attraverso la sua interfaccia PIO (Programmable Input Output), oppure gestire la comunicazione seriale attraverso le porte I2C ed SPI. Presenta ovviamente anche 26 Pin di GPIO (General Purpose Input Output), tre dei quali per Input Analogici. Sono anche presenti 2 canali UART (Universal Asynchronous Receiver-Transmitter) per la conversione da formato parallelo a seriale e viceversa, 16 canali per il controllo PWM e 3 ADC (Analog to Digital Converter) da 12 Bit ciascuno. Infine è importante notare che sono presenti 1 Timer e 1 Real Time Counter per il conteggio di tempo ed eventi.
Come si alimenta e programma Raspberry Pi Pico?
Ovviamente in questo articolo non troverete una guida su come utilizzare un Pico poiché esiste una documentazione ufficiale fornita da Raspberry Pi Foundation (datasheet e guida ufficiale) sicuramente più dettagliata, ma vi daremo delle linee guida per alimentare e programmarne uno. L’alimentazione avviene tramite la porta microUSB o tramite il Pin di GPIO VSYS. Il microcontrollore presenta un SMPS buck-boost integrato che genera in uscita i 3.3 V richiesti dal chip RP2040 prendendo in ingresso tensioni in range da 1.8 – 5.5 V (questo sicuramente fornisce grande flessibilità di alimentazione). Inoltre vengono fornite anche delle condizioni operative consigliate di temperatura e tensione VBUS (la tensione di input da microUSB): la temperatura deve rimanere nel range [-20 °C, 85 °C], mentre la tensione VBUS a 5V +/- 10%.
La memoria Flash può essere riprogrammata tramite microUSB oppure tramite la porta Serial Wire Debug tramite una programmazione “drag and drop”. I linguaggi di programmazione disponibili sono il Linguaggio C ed il linguaggio MicroPython. La Raspberry Pi Foundation fornisce un SDK C (Software Development Kit), un Toolchain basato su GCC e ovviamente un’ottima guida “Get Started with MicroPython on Raspberry Pi Pico” per iniziare a muovere i primi passi. Ovviamente non è possibile installare nessun sistema operativo, ma l’utilizzo del Raspberry Pi Pico è proprio quello di un microcontrollore alternativo al solito Arduino.
Perché sceglierlo?
Questo microcontrollore sicuramente si presta a tantissime applicazioni, dalle più semplici come il controllo di un LED, display o motori elettrici in PWM, alle più complesse come l’addestramento di reti di Machine Learning tramite l’utilizzo del Framework TensorFlow Lite di Google. L’obiettivo di TensorFlow è quello dell’Edge AI, ovvero di portare algoritmi di Machine Learning su dispositivi con limitate capacità computazionali (come il Chip RP2040). Questi diventano delle sorgenti di acquisizione dati e le elaborazioni viene fatta direttamente sul Raspberry Pi Pico, cosi da eliminare almeno parzialmente problemi di banda/latenza e privacy/sicurezza.
Il programmatore e gamer Ben Stragnell si è divertito utilizzando il Raspberry Pi Pico come emulatore del NES, ottenendo ottime prestazioni dal chip RP2040. Questo microcontrollore è quindi versatile, molto economico e con bassi consumi di corrente. Potrebbe essere una valida soluzione quella di affiancare al nostro Raspberry Pi Pico un’altra board che effettua i calcoli più gravosi comportandosi da Master (per esempio collegato alla Rete Internet), mentre il Pico effettuerebbe il controllo da Slave a bassa latenza verso sensori ed attuatori sul campo. Insomma non resta che provare di persona il Raspberry Pi Pico per divertirsi con tantissimi progetti!
Articolo a cura di Massimo Romano