Con la libreria HCScreen, ci stiamo sempre più avvicinando alla possibilità di creare un microcontrollore gestito comodamente con ESP32 e un display TFT.
Otteniamo un gran numero di nuove possibilità attraverso l'uso delle icone. In primo luogo, le icone sono più chiare e facili da associare a una determinata funzione, in secondo luogo, ora possiamo anche utilizzare le opzioni X-Y del joystick.
Nuove funzioni nella libreria:
initIconGrid (x, y, colonne, righe)
Nelle posizioni xey, viene creata una griglia con colonne e righe in cui è possibile visualizzare icone con 31x31 pixel. La funzione verifica se i limiti dei parametri del display vengono superati e corregge i parametri di conseguenza.
initIconGrid ()
Questa forma semplificata della funzione inizializza una griglia che utilizza l'intero schermo (per 160x128 sono 5 x 4 icone).
showIcon (indice, icona *)
Indice è il numero della cella della griglia in cui deve essere visualizzata l'icona. La numerazione inizia con 0 e viene eseguita riga per riga, ovvero con 4 x 5 prima riga = 0, 1, 2, 3, 4 seconda riga = 5, 6, 7, 8, 9 ecc.
* L'icona è il puntatore a una struttura del tipo HCIcon nella memoria del programma.
showIcon (icona x, y, *)
Un'altra variante per impostare un'icona, qui sono indicati la colonna (x) e la riga (y) dove dovrebbe essere collocata l'icona. L'icona * è di nuovo il puntatore a una struttura HCIcon.
setGridColor (colore di evidenziazione, colore di sfondo)
Con questa funzione è possibile impostare il colore dello sfondo per la griglia e il colore con cui deve essere contrassegnata un'icona selezionata. I valori di colore vengono trasferiti in formato a 3 byte (rosso, verde, blu) come al solito nelle pagine Web. Quindi ad es. 0xFF0000 = rosso, 0x00FF00 = verde o 0x0000FF = blu. I colori vengono quindi convertiti automaticamente nel formato a 16 bit per il display. Per contrassegnare un'icona selezionata, viene disegnato un quadrato attorno all'icona nel colore di marcatura.
Icone:
Un numero maggiore di icone comuni è già definito nella sottodirectory Icone, che può essere facilmente incluso nello schizzo. Ma è anche molto facile creare la tua icona. Abbiamo bisogno del programma di modifica delle immagini GIMP. Come output, abbiamo bisogno di un'immagine che possiamo ridimensionare a 31 x 31 pixel. Quindi esportiamo l'immagine e scegliamo il formato sorgente, scegliamo il codice sorgente c (*. C) o l'intestazione del codice sorgente c (*. H) aggiungendo .c o .h come estensione al nome del file. Dopo aver fatto clic sul pulsante Esporta, viene visualizzata una finestra di dialogo in cui immettiamo il nome dell'icona (ad es. Icon_senden). Nessuna delle caselle di controllo dovrebbe avere un segno di spunta! Un file con estensione .c o .h viene ora creato nella cartella di destinazione specificata. Apriamo questo file con un editor di testo. Dovrebbe iniziare qualcosa del genere:
/ * Dump immagine C-Source GIMP RGB (icon_senden.c) * /
const statica struct {
larghezza int senza segno;
altezza int senza segno;
unsigned int bytes_per_pixel; / * 2: RGB16, 3: RGB, 4: RGBA * /
char unsigned pixel_data [1024 * 386 * 3 + 1];
} icon_senden = {
31, 31, 3,
"\274\273\267\272\271......
Ora dobbiamo sostituire la parte mostrata in rosso con il tipo di struttura HCIcon, che è stato definito nella libreria.
const statica HCIcon icon_senden = {
31, 31, 3,
"\274\273\267\272\271......
Se ora includiamo questo file nello schizzo, possiamo usare l'indirizzo della struttura icon_senden nella funzione showIcon.
! importante I file delle icone devono sempre essere importati in HCScreen.h.
Esempio di programma:
Uno schizzo con il nome Esp32_Control_Center_Icon dovrebbe essere disponibile nei programmi di esempio della libreria. Apriamo questo schizzo nell'IDE di Arduino e lo cariciamo sull'ESP32 che era collegato al display TFT e al modulo joystick secondo le informazioni nel commento.
Tutte le 20 icone dovrebbero essere visualizzate sul display come mostrato qui nell'immagine. Con il joystick ora possiamo selezionare un'icona e premere il pulsante joystick. Il numero dell'icona su cui è stato fatto clic viene visualizzato sul monitor seriale. Nel programma di esempio, a due icone è assegnata una funzione. Se si fa clic sulla cartella dell'icona, il contenuto di una scheda SD viene visualizzato nel lettore di schede. Se si fa clic sull'icona di configurazione, in basso a sinistra viene visualizzato un modulo di esempio con due icone.
La libreria può provenire daLibreria HCScreenpuò essere scaricato. Nell'IDE di Arduino, è sufficiente importare il file ZIP dal download nel gestore librerie.
Dai un'occhiata agli altri post su HCScreen in questo blog. Lì troverai anche informazioni dettagliate sull'hardware utilizzato.