Pages: [1] 2 3   Go Down
Author Topic: funzioni varie per GLCD ST7565  (Read 2776 times)
0 Members and 1 Guest are viewing this topic.
Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

io ho questo GLCD 128x64: http://www.robot-italy.com/it/graphic-st7565-negative-lcd-128x64-with-rgb-backlight.html
l'ho provato e va tutto bene, anche se è un po' lento nell'aggiornare le immagini... ora io volevo fare in modo di creare un'immagine a tutto schermo con il mio logo e mi chiedevo se c'era qualche soluzione migliore del disegnarlo pixel per pixel, per esmpio convertendo un file immagine in bianco e nero... voi come fareste?
grazie mille a tutti in anticipo! smiley-wink
« Last Edit: October 13, 2012, 09:16:22 am by ƎR » Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Marche
Offline Offline
Edison Member
*
Karma: 32
Posts: 2263
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Crei l'immagine con il logo in bianco e nero con la stessa risoluzione del display.
Scrivi un'applicazioncina in processing dove importi l'immagine e analizzi i pixel: dove c'è bianco ti fai restituire 0, dove è nero 1.
Disponi i dati ottenuti manipolandoli come più ti aggrada (byte, bin, hex, ecc) su diversi array. Esporti i dati su serial monitor o su file,
copia/incolla e voilà, il display è sistemato.
C'est bon? Ca va bien?  smiley-wink
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

si avevo pensato anch'io qualcosa del genere riducendo la risoluzione dell'immagine a 128x64, anche se poi processing non l'ho mai usato e non saprei come fare...
sinceramente speravo che ci fosse qualche SW già fatto, mi piace trovare la pappa pronta smiley-razz
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Marche
Offline Offline
Edison Member
*
Karma: 32
Posts: 2263
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non preoccuparti, analizzare l'immagine è davvero facile, un annetto fa ho fatto questa cosa per un display lcd; funzionava alla grande ma immagina che schifezza di risoluzione su un lcd 16x2 (l'immagine era di soli 80x16 pixel!) smiley-eek-blue Ho accantonato il progetto  smiley
Comunque su processing devi usare poche funzioni, vedi loadImage, loadPixels e pixels[]. Se vedi le reference di processing hanno diversi esempi. La parte più rognosa secondo me consiste nell'elaborazione dei dati, alla fine devi codificarli come richiede la libreria che usa il tuo glcd. Se mi ritrovo quello che ho scritto te lo posto per prenderne l'idea.
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ok grazie mille, ma sto avendo problemi anche nella riduzione della risoluzione dell'immagine perchè vengono anche delle parti grige e se aumento il contrasto si mescola tutto e non si legge più niente smiley-cry
l'immagine sarebbe questa:
« Last Edit: September 28, 2012, 05:15:49 pm by ƎR » Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Offline Offline
Full Member
***
Karma: 3
Posts: 113
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bhe se è proprio indispensabile questa immagine e il problema è il grigio potresti modificare la scala di grigi con un programma a parte per poi caricarla ad esempio credo che addirittura paint lo faccia, se però ne hai più di una allora mi dispiace ma non ne ho idea..
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

no l'immagine è sono quella lì, però mi sto chiedendo come funziona la mappatura in esadecimale, perchè sugli esempi della libreria c'è un piccolo logo 16x16, un fiore dell'adafruit, ed è scritto così:
Code:
static unsigned char __attribute__ ((progmem)) logo16_glcd_bmp[]={
0x30, 0xf0, 0xf0, 0xf0, 0xf0, 0x30, 0xf8, 0xbe, 0x9f, 0xff, 0xf8, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
0x20, 0x3c, 0x3f, 0x3f, 0x1f, 0x19, 0x1f, 0x7b, 0xfb, 0xfe, 0xfe, 0x07, 0x07, 0x07, 0x03, 0x00, };
perchè è scritto in 32 byte? smiley-roll-sweat
volevo creare il carattere "Ǝ" visto che non c'è, sarebbe un 7x5, ma non so come scriverlo...
grazie a tutti per l'aiuto smiley-wink
« Last Edit: September 28, 2012, 05:22:41 pm by ƎR » Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Padova
Offline Offline
Jr. Member
**
Karma: 4
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no l'immagine è sono quella lì, però mi sto chiedendo come funziona la mappatura in esadecimale, perchè sugli esempi della libreria c'è un piccolo logo 16x16, un fiore dell'adafruit, ed è scritto così:
<cut>
perchè è scritto in 32 byte? smiley-roll-sweat

dovrebbe essere che per ad ogni bit di ogni byte corrisponde un pixel acceso/spento sullo schermo, quindi avendo ogni byte 8 bit ed essendo l'immagine 16x16pixel, una riga (o colonna, dipende come funziona la lib) prende due byte, che moltiplicati per il numero di colonne (o righe), fa 32!
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

no l'immagine è sono quella lì, però mi sto chiedendo come funziona la mappatura in esadecimale, perchè sugli esempi della libreria c'è un piccolo logo 16x16, un fiore dell'adafruit, ed è scritto così:
<cut>
perchè è scritto in 32 byte? smiley-roll-sweat

dovrebbe essere che per ad ogni bit di ogni byte corrisponde un pixel acceso/spento sullo schermo, quindi avendo ogni byte 8 bit ed essendo l'immagine 16x16pixel, una riga (o colonna, dipende come funziona la lib) prende due byte, che moltiplicati per il numero di colonne (o righe), fa 32!
non ne capisco molto il senso, mi sembra che ci siano più dati del necessario... però se è così, come devo fare per creare il carattere "Ǝ"?
grazie ancora smiley-wink
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Padova
Offline Offline
Jr. Member
**
Karma: 4
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non ne capisco molto il senso, mi sembra che ci siano più dati del necessario... però se è così, come devo fare per creare il carattere "Ǝ"?
grazie ancora smiley-wink

dati in più non ce ne sono: 16x16pixel fa 256pixel totali, 8bit*32byte totali fa ancora 256, essendo che 1bit=1pixel, i conti tornano  smiley

Per il carattere, devi trattarlo come una bitmap 5x7: disegnalo su paint in bianco e nero, salvalo in bmp 1bpp e dallo in pasto a questo programma
http://en.radzio.dxp.pl/bitmap_converter/
che ti sputerà fuori un'array di byte da usare come bitmap con la lib. Gioca un po' con le impostazioni per trovare quelle giuste per la tua lib!  smiley
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

non ne capisco molto il senso, mi sembra che ci siano più dati del necessario... però se è così, come devo fare per creare il carattere "Ǝ"?
grazie ancora smiley-wink
dati in più non ce ne sono: 16x16pixel fa 256pixel totali, 8bit*32byte totali fa ancora 256, essendo che 1bit=1pixel, i conti tornano  smiley
ahn si vero! avevo sbagliato i conti smiley-sweat

Per il carattere, devi trattarlo come una bitmap 5x7: disegnalo su paint in bianco e nero, salvalo in bmp 1bpp e dallo in pasto a questo programma
http://en.radzio.dxp.pl/bitmap_converter/
che ti sputerà fuori un'array di byte da usare come bitmap con la lib. Gioca un po' con le impostazioni per trovare quelle giuste per la tua lib!  smiley
più tardi provo, grazie mille smiley-wink
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

sembra funzionare! smiley anche se non ho sotto mano il display e quindi non posso provare...
grazie mille! smiley-wink
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

sto provando ora, sto provando tutte le combinazioni con il programma che mi hai dato, ma nessuna sembra andare bene smiley-sad
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Padova
Offline Offline
Jr. Member
**
Karma: 4
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sto provando ora, sto provando tutte le combinazioni con il programma che mi hai dato, ma nessuna sembra andare bene smiley-sad

Prova con:

Byte orientation: Vertical
Size: Width=5, Height=7
Include size: no
Size endianness: indifferente, visto che non usi "include size"
Pixel/byte: 7

Dovrebbe funzionare smiley
Logged

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

funziona!! smiley-grin grazie ancora! smiley-wink
ma perchè 7 pixel/byte?
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Pages: [1] 2 3   Go Up
Jump to: