PicoGraphics è la libreria utile quando si desideri estendere le capacità di grafica di Pico al di là degli esenpi di base, usando MicroPython.
Qualche mese fa Fabrizio Bianchini ha presentato il Pico GFX, un sistema offerto da Pimoroni basato su Raspberry Pico e minidisplay. In molti ci avete chiesto come estendere le capacità grafiche del piccolo sistema, pertanto eccoci qui per un articolo pieno zeppo di esempi.
Gfx e Micropython
Dopo aver configurato la board per partire con il firmware corretto, possiamo aggiugnere il modulo gfx_pack.
Questa libreria offre comode funzioni per interagire con Pico GFX Pack – Il Pico GFX Pack aggiunge infatti un display LCD Matrix 128×64 al tuo Raspberry Pi Pico o PicoW con intestazione, con retroilluminazione RGBW e 5 pulsanti di input per tutte le tue esigenze di visualizzazione e controllo.
La classe GfxPack si occupa della retroilluminazione RGBW e dei pulsanti del GFX Pack. Per crearne uno, importa il modulo gfx_pack, quindi definisci una nuova variabile della scheda:
1 2 3 |
import gfx_pack board = gfx_pack.GfxPack() |
Da qui è possibile accedere a tutte le opzioni chiamando le funzioni a bordo. Inoltre, quando si utilizzano dispositivi Qwiic / Stemma QT, è possibile accedere al canale I2C da utilizzare con board.i2c.
Interruttori
GFX Pack ha cinque interruttori appena sotto il display. Per leggere uno degli switch, basta chiamare .switch_pressed(switch), dove switch è un valore compreso tra 0 e .NUM_SWITCHES – 1. Questo restituisce True quando viene premuto l’interruttore specificato e False in caso contrario.
Per leggere un input specifico, il modulo gfx_pack contiene queste utili costanti:
- SWITCH_A = 0
- SWITCH_B = 1
- SWITCH_C = 2
- SWITCH_D = 3
- SWITCH_E = 4
1 2 3 4 5 |
if board.switch_pressed(SWITCH_A): # Do something interesting here! if board.switch_pressed(SWITCH_B): # Do something else even more interesting here! |
Retroilluminazione RGBW
Il GFX ha una retroilluminazione RGB oltre alla normale retroilluminazione del display Matrix per cambiare il colore della retroilluminazione. Vi si accede tramite il seguente metodo.
.set_backlight(r, g, b, w=None)
Dove r, g, b e w sono valori compresi tra 0 e 255
esempio:
1 2 3 4 |
board.set_backlight(255, 0, 0) # Makes the Backlight Red board.set_backlight(0, 255, 0) # Makes the Backlight Blue board.set_backlight(0, 0, 255) # Makes the Backlight Green board.set_backlight(0, 0, 0, 255) # Makes the Backlight White |
Display
Il display è tutto gestito dai driver picographics personalizzati a cui è possibile accedere tramite .display.
esempio:
1 2 3 4 |
display = board.display display.text("Hello World!", 0, 0) display.line(0, 0, 128, 64) display.update() # Update display with the above items |
Seguendo questo link è possibile accedere ad una vasstissima libreria di primitive grafiche, come Line, Circle, Rectangle, Triangle, Polygon, Pixels e Sprites.
Retroilluminazione
Nei driver del display picographics è inclusa una funzione per controllare solo la retroilluminazione bianca del display a cui si accede tramite .set_backlight(). Questa funzione accetta un valore in virgola mobile compreso tra 0,0 e 1,0.
1 2 3 4 |
display = board.display display.set_backlight(0.0) # Backlight is off display.set_backlight(0.5) # Backlight is 50% display.set_backlight(1.0) # Backlight is 100% |
Considerazioni finali
Abbiamo visto al volo come lavorare sui display con Pico e Micropython. Per chi volesse approfondire l’uso dei vari moduli disponibili (scritti in C/C++), è ovviamente presente anche una pagina completissima con tutte le chiamate e i metodi a disposizione del programmatore, con tanto di codice sorgente di esempio.
Buon divertimento!
Join our groups on Telegram…