Raspberry Pi Pico è un microcontrollore a basso costo e ad alte prestazioni presentato a gennaio 2021. Si tratta della prima scheda Raspberry Pi a utilizzare il chip RP2040 sviluppato internamente dalla stessa società.
Il microcontroller integra un processore dual-core ARM Cortex-M0+ a 133 MHz e 264 KB di RAM. La scheda offre 26 pin GPIO per collegare sensori, attuatori e altri dispositivi, supporta varie modalità di comunicazione (seriale, I2C, SPI, PWM) e dispone di 2 MB di memoria flash on-board. Può essere programmato in diversi linguaggi come Assembly, C, C++, Free Pascal, Rust, Go, MicroPython, CircuitPython, Ada e TypeScript. Addirittura anche con il semplice linguaggio BASIC.
Avreste mai pensato di poter utilizzare una Raspberry Pi Pico come GPU?
I single-board computer Raspberry sono estremamente completi e versatili, anche per ciò che riguarda le abilità grafiche. Ma è difficile pensare a una Raspberry Pi Pico che riveste le funzioni di GPU. Eppure Clem Mayer di Element14 ha dimostrato che ciò è davvero possibile.
Come spiega in questo video su YouTube, Mayer aveva l’esigenza di aggiungere abilità grafiche a un dispositivo ESP32-S3, SoC sviluppato da Espressif Systems.
Mayer ha progettato un circuito stampato sul quale alloggiare la scheda Pi Pico. Una porta DVI è posizionata su un lato ed è disponibile un vano per esporre i contatti GPIO.
Il risultato finale è un processore grafico funzionante in grado di gestire alcune elaborazioni di basso livello per macchine di piccole dimensioni. Nel suo video, il ricercatore ha sviluppato codice utilizzando l’IDE Arduino e si è avvalso di una configurazione leggera basata su Linux.
Pico DVI
Gli standard DVI, DisplayPort, HDMI e persino VGA si affidano tutti a I2C per impostare le connessioni iniziali al dispositivo host e configurare il display prima ancora che sia necessario passare all’utilizzo di un driver dedicato.
Mayer ha quindi sfruttato la libreria PicoDVI di Wren6991, che consente a un chip RP2040 di inviare segnali DVI tramite PIO e controllare uno schermo.
Il codice messo a punto da Mayer è ancora basato sul progetto PicoDVI, ma invece di manipolare i singoli pixel, ha fatto sì che il microcontroller agisse come un dispositivo periferico I2C per accettare comandi e convertirli in chiamate Adafruit GFX che alla fine sono scritte sullo attingendo a un buffer.