caricare icona all'accensione di arduino

ciao stavo seguendo dei tutorial ma ho trovato difficoltà in merito questo argomento. Parto subito nel dire che sto guardando un codice già fatto con una piccola icona 50x50 px che si vede all'avvio di arduino e rimane in bella vista. Ho provato a modificarla tramite dei programmi che si trovano online o che si scaricano e il risultato è un'immagine che non si vede tutta pixellata, eppure seguo alla lettera dei video che spiegano come si fa ma nonostante inserisco i valori anche se me lo carica su arduino, non si vede. Stavo vedendo che bisogna anche modificare altri valori per apportare le modifiche ma ne sto uscendo pazzo,sicuramente sarà una stupidaggine. Dico io non esiste un codice che richiama il comando per far comparire l'icona invece di tutti quei numeri 0x0000 ecc ecc ? grazie

Che Arduino? Immagino Arduino UNO ...

... in tal caso NO, non sei su un computer, sei su una piccola MCU dove devi fare tutto tu e quindi, visulizzare un'immagine, seignifica dire esattamnete quali pixel accendere e quali spegnere. A seconda delle librerie che si utilizzano e dei display, esistono dei piccoli programmi che girano sul computer a cui si da in pasto un immagine (... ad esempio un .bmp a 2 colori, nero/bianco) ed essi generano il codice opportuno.

Se ci dai un po' più di informazioni ... modello di Arduino, modello di display grafico, libreria che stai usando, ecc. magari riusciamo anche ad aiutarti :wink:

Guglielmo

gpb01:
Che Arduino? Immagino Arduino UNO ...

... in tal caso NO, non sei su un computer, sei su una piccola MCU dove devi fare tutto tu e quindi, visulizzare un'immagine, seignifica dire esattamnete quali pixel accendere e quali spegnere. A seconda delle librerie che si utilizzano e dei display, esistono dei piccoli programmi che girano sul computer a cui si da in pasto un immagine (... ad esempio un .bmp a 2 colori, nero/bianco) ed essi generano il codice opportuno.

Se ci dai un po' più di informazioni ... modello di Arduino, modello di display grafico, libreria che stai usando, ecc. magari riusciamo anche ad aiutarti :wink:

Guglielmo

allora ho arduino nano e piccolo display lcd TFT da 1.8 pollici, per il fatto delle librerie ne ho caricato una che si chiama TFT_ST7735. Ho scaricato un programma che si chiama LCDAssistant ma niente da fare non so come fare per far vedere l'icona bene a colori :frowning:

Ci fai vedere com'è attualmente definita nel codice questa icona?

Nano o UNO è la stessa cosa ... sempre ATmega328P monta ...

... per poterci far leggere le carattersitsiche esatte dovresti mettere il link sia al display che hai acquistato che alla libreria che hai scaricato perché ... ne esistono parecchie di entrambe le cose ... ::slight_smile:

LCDAssistant, dal nome, è fatta per display monocromatici LCD che nulla hanno a che vedere con il tuo display, a colori, TFT.

Guglielmo

docdoc:
Ci fai vedere com'è attualmente definita nel codice questa icona?

non posso metterlo tutto che non mi entra, è strutturato così come vedi e infatti se lo sostituisco a quello dovrebbe funzionare, ma non è così..magari non funziona per il motivo che ha detto guglielmo spero o non basta caricarlo così ma bisogna modificare altri valori.

/*******************************************************************************
* generated by lcd-image-converter rev.90f620c from 2017-10-04 21:09:44 +0500
* image
* filename: unsaved
* name: dji_logo-48x48
*
* preset name: Color R5G6B5
* data block size: 16 bit(s), uint16_t
* RLE compression enabled: no
* conversion type: Color, not_used not_used
* split to rows: yes
* bits per pixel: 16
*
* preprocess:
*  main scan direction: top_to_bottom
*  line scan direction: forward
*  inverse: no
*******************************************************************************/

// We need this header file to use FLASH as storage with PROGMEM directive:
#include <avr/pgmspace.h>

// Icon width and height
const uint16_t Width = 48;
const uint16_t Height = 48;

// The icon file can be created with the "UTFT ImageConverter 565" bitmap to .c file creation utility, more can be pasted in here
const unsigned short  dji_logo[2304] PROGMEM={
    
    0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xd6bb, 0xc639, 0xc639, 0xc659, 0xc659, 0xc65a, 0xc67a, 0xce7a, 0xce9a, 0xce9a, 0xcebb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 0xd6db, 0xdefb, 0xdefb, 0xdefc, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xd6db, 0xc67a, 0xc67a, 0xce7a, 0xce7a, 0xce9a, 0xce9a, 0xce9b, 0xcebb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 
    0xdf1c, 0xdf1c, 0xdf1c, 0xdefb, 0xc659, 0xc639, 0xc659, 0xc659, 0xc65a, 0xc67a, 0xce7a, 0xce9a, 0xce9a, 0xce9a, 0xcebb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 0xd6fb, 0xdefb, 0xdefc, 0xdefc, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdefb, 0xc67a, 0xc67a, 0xce7a, 0xce7a, 0xce9a, 0xce9a, 0xce9b, 0xcebb, 0xcebb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 
    0xdf1c, 0xdf1c, 0xdf1c, 0xce7a, 0xc659, 0xc659, 0xc65a, 0xc65a, 0xc67a, 0xce7a, 0xce7a, 0xce9a, 0xce9a, 0xcebb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 0xd6db, 0xdefb, 0xdefb, 0xdefc, 0xdefc, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xce9a, 0xce7a, 0xce7a, 0xce7a, 0xce9a, 0xce9a, 0xce9a, 0xce9b, 0xcebb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 
    0xdf1c, 0xdf1c, 0xd6db, 0xc659, 0xc65a, 0xc65a, 0xc65a, 0xc67a, 0xce7a, 0xce7a, 0xce9a, 0xce9a, 0xce9a, 0xcebb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 0xd6db, 0xdefb, 0xdefb, 0xdefc, 0xdefc, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xd6db, 0xce7a, 0xce7a, 0xce7a, 0xce9a, 0xce9a, 0xce9b, 0xce9b, 0xcebb, 0xd6bb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 
    0xdf1c, 0xdf1c, 0xce7a, 0xc65a, 0xc65a, 0xc67a, 0xc67a, 0xce7a, 0xce7a, 0xce9a, 0xce9a, 0xce9a, 0xcebb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 0xd6db, 0xd6fb, 0xdefb, 0xdefc, 0xdefc, 0xdefc, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xce9b, 0xce9a, 0xce9a, 0xce9a, 0xce9a, 0xce9b, 0xce9b, 0xcebb, 0xcebb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 0xd6db, 
    0xdf1c, 0xd6fb, 0xc67a, 0xc67a, 0xc67a, 0xce7a, 0xce7a, 0xce7a, 0xce9a, 0xce9a, 0xce9a, 0xce9b, 0xd6bb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 0xd6db, 0xdefb, 0xdefb, 0xdefc, 0xdefc, 0xdefc, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdefb, 0xce9a, 0xce9a, 0xce9a, 0xce9a, 0xce9b, 0xce9b, 0xcebb, 0xcebb, 0xd6bb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 0xd6db, 
    0xdf1c, 0xd6bb, 0xce7a, 0xce7a, 0xce7a, 0xce7a, 0xce7a, 0xce9a, 0xce9a, 0xce9a, 0xce9b, 0xd6bb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 0xd6db, 0xd6fb, 0xdefb, 0xdefc, 0xdefc, 0xdefc, 0xdefc, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xdf1c, 0xd6db, 0xce9b, 0xce9b, 0xce9b, 0xce9b, 0xce9b, 0xcebb, 0xcebb, 0xd6bb, 0xd6bb, 0xd6bb, 0xd6db, 0xd6db, 0xd6db, 0xd6db, 0xd6db, 
};

gpb01:
Nano o UNO è la stessa cosa ... sempre ATmega328P monta ...

... per poterci far leggere le carattersitsiche esatte dovresti mettere il link sia al display che hai acquistato che alla libreria che hai scaricato perché ... ne esistono parecchie di entrambe le cose ... ::slight_smile:

LCDAssistant, dal nome, è fatta per display monocromatici LCD che nulla hanno a che vedere con il tuo display, a colori, TFT.

Guglielmo

questo è il display https://www.amazon.it/gp/product/B07N6FQ5XW e questa la libreria GitHub - Bodmer/TFT_ST7735: Arduino graphics library for ST7735 displays with propotional fonts.
ps: se provo a caricare un'icona con sfondo e bianco e contorno nero, me la fa vedere

luciano9:
non posso metterlo tutto che non mi entra

Ma anche no... Se pensi di incollarlo come testo hai un limite a 9000 caratteri circa, però ti basta caricarlo come allegato!

Comunque, per prima cosa quell'array non è 50x50 pixel perché ovviamente deve essere di 2500 elementi, e quello è da 2304 quindi è 48x48 (ossia la radice quadrata di 2304). D'altronde, come si vede dnche dai commenti che ci sono sopra all'array stesso, il file originario si chiama "dji_logo-48x48". E sempre nei commenti, poi, si legge (ma tu leggi quello che c'è scritto nel programma che cerchi di usare/modificare??) che è codificato R5G6B5, chiamato anche "RGB565", e che il file si può creare con "UTFT ImageConverter 565" che converte bitmap in file .c con il corrispondente array.

Questo significa che non devi modificare a mano i valori, ma creare una icona 48x48 e codificarla RGB565 dentro ad un array C.

Per cui quale problema trovi nel cercare con Google l'indirizzo di un "UTFT ImageConverter 565", e trovare quindi ad esempio QUESTO sito, che ti converte una immagine (jpg, gif, o png, consiglio uno degli ultimi due) nel codice C, che ti basta poi incollare nel programma?

Generalmente vedo che si trovano convertitori da immagine ad un array C codificato RGB565 ma non ne ho trovati che facciano il contrario, per cui non avendo tu specificato quale sia il programma, non possiamo sapere quale sia l'icona in questione (ma puoi dirlo, o è un segreto?) ti posso per ora solo consigliare di vedere com'è fatta quell'icona (non so se qualche risorsa o pagina web di quel progetto la mostri): te la salvi in locale sul tuo PC, poi con un programmino (anche Paint può andare) la carichi, la modifichi (occhio che deve essere 48x48 pixel se vuoi mantenere quella dimensione) e la salvi in uno dei formati accettati dal converter (consiglio *.png).
Fatto questo, usi quel sito per convertirla in un array C e l'output lo incolli dentro al tuo programma.

Vedi ad esempio in allegato questo "sgorbio" che ho fatto al volo in quel modo, ma se hai una immagine "decente" di quell'icona scaricabile su computer, hai risolto. Altrimenti o la ridisegni tu (sempre con Paint o simili e sempre 48x48 pixel) oppure cerchi in rete se esiste un convertitore da array C a PNG o GIF, e quindi riparti da quello.

raw.c (22.1 KB)

PS: ma sarà mica questa l'immagine, per caso???

dji_logo.png

dji_logo.png

docdoc:
PS: ma sarà mica questa l'immagine, per caso???

dji_logo.png

alla fine c'ero riuscito da solo e adesso ho letto la tua risposta ;D gentilissimo comunque mi hai fatto capire molto e non mi servirà andare a casaccio seguendo le tue istruzioni..guarda ne vorrei approfittare per chiederti un altro paio di scemenze visto che sei ferrato nell'argomento e molto disponibile, ho notato che guardando il display una volta acceso, ai bordi in basso a destra si intravedono i pixel sottostanti..come se l'immagine nera di background non copre tutti gli angoli..non so se mi hai capito se vuoi te la allego. La seconda cosa è che ho aperto un'altra discussione dove chiedevo info in merito per dare l'impulso alla presa mini usb di arduino nano in modo che lentamente mi scaricava la batteria al litio collegata, vedendo che non mi hanno dato risposte tipo come la tua, gradirei un tuo parere. Poi prometto che non rompo piu le scatole :stuck_out_tongue:

Ogni argomento diverso, un diverso thread ... non mischiamoli.
Inoltre non è vero che in quel thread non ti sono state date risposte; ti son stati chiesti chiarmenti su ciò che vuoi fare e ti stanno rispondendo. - gpb01

luciano9:
ho notato che guardando il display una volta acceso, ai bordi in basso a destra si intravedono i pixel sottostanti..come se l'immagine nera di background non copre tutti gli angoli..non so se mi hai capito se vuoi te la allego.

Direi di si, sarebbe meglio.
Se è una PNG o GIF potrebbe avere una trasparenza: hai fatto una PNG nuova o l'hai convertita?