Go Down

Topic: [TOOL] [UPDATE] HD44780 Custom Characters Editor v1.2 (Read 3322 times) previous topic - next topic

dancol90

Apr 04, 2012, 08:01 pm Last Edit: May 23, 2012, 01:06 pm by dancol90 Reason: 1
Salve a tutti! :)

UPDATE: v1.2.5, aggiunto Index Layer (vedi sotto). Altri aggiustamenti.
UPDATE: v1.2, aggiunte più pagine di preview. Vari aggiustamenti ed ottimizzazioni.
UPDATE: v1.1, aggiunti Open\Save. Ora è possibile salvare la sessione di lavoro e riprenderla in un secondo momento!


Qualche giorno fa stavo lavorando con un lcd a caratteri e avevo bisogno di creare dei caratteri speciali.
Cercando per la rete non ho trovato nessun tool che mi permettesse di avere un'"anteprima" globale,
cioè di poter provare a posizionare i caratteri creati come li avrei stampati sull'lcd fisico,
nell'ordine che (e quante volte) io volevo.

Per questo mi sono messo di buona lena, e dopo qualche ora ne è uscito questo tool: HD44780 Custom Characters Editor.
L'ho scritto in processing, ed è veramente scarno graficamente, ma fa il suo lavoro. Qui sotto uno screenshot:



Come si può vedere, il tool permette di disegnare fino ad otto caratteri 5x8, e posizionarli all'interno di un ipotetico display 20x4.
A lavoro completato, è possibile esportare in formato LiquidCrystal-compatibile i caratteri,
richiamabili nel proprio sketch con la funzione createChar().

Istruzioni veloci:

  • Cliccando su uno degli otto caratteri sotto "Custom characters" questo sarà riportato nella sezione "Edit character", dove potrà essere modificato
    cliccando ed eventualmente trascinando il mouse per illuminare/spegnere i vari pixel della matrice 5x8.

  • Trascinando uno di questi otto caratteri nella sezione "LCD preview" sarà possibile posizionarlo nello schermo, in una posizione a scelta.
    Ogni carattere può comparire più volte nello schermo, ovviamente. Questa operazione corrisponde, per intenderci, ad un write() del carattere nell'lcd fisico.

  • Cliccando con il pulsante destro in una casella della sezione "LCD Preview" questa verrà liberata dal carattere che la occupa, se presente.

  • Cliccando con il pulsante destro in una casella della sezione "LCD Preview" questa verrà liberata dal carattere che la occupa, se presente.

  • Usando i tasti "<" e ">" posti a lato della sezione "LCD Preview" si potrà cambiare pagina (avendo così fino a 5 preview diverse).

  • Usando il tasto "i" posto a lato della sezione "LCD Preview" si potrà mostrare\nascondere l'"Index Layer" (secondo screenshot). Questo mostrerà l'indice del carattere utilizzato (se presente) nella cella sottostante.



L'eseguibile compilato per windows lo trovate qui:
http://dl.dropbox.com/u/18825149/projects/HD44780-Editor/v1.2.5/HD44780-Editor-1.2.5-win.zip

Qui il set di caratteri che ho usato nello screenshot (da aprire tramite comando Open, ovvio ;) ) :
http://dl.dropbox.com/u/18825149/projects/HD44780-Editor/v1.2/happyFace.set

Potete trovare i sorgenti, rilasciati secondo licenza GPL, qui:
https://github.com/dancol90/HD44780-Editor

Il tool dovrebbe essere compatibile anche con sistemi Linux e MacOs X (ma non l'ho testato di persona).

Se avete qualche idea/dubbio/proposta/consiglio/critica sono qua apposta :P

Spero che possa essere utile anche a voi! :D

nikone

Non possiamo pretendere che le cose cambino, se continuiamo a fare le stesse cose(albert Einstein )

stefanolavori

Ti ringrazio veramente di cuore. Non sapevo proprio come fare un carattere custom per il mio lcd.

E' per questo che mi sono innamorato di Arduino: per la gente che lo usa e che ne condivide le conoscenze.

Grazie.

ratto93

E' tutt'altro che scarno, è perfetto :)
Grazie :)
Se corri veloce come un fulmine, ti schianterai come un tuono.

dancol90


Ti ringrazio veramente di cuore. Non sapevo proprio come fare un carattere custom per il mio lcd.

E' per questo che mi sono innamorato di Arduino: per la gente che lo usa e che ne condivide le conoscenze.

Grazie.


Lieto di esserti d'aiuto, ma bada bene che una volta esportati i dati dal tool,
bisogna darli in pasto alla lib LiquidCrystal richiamando createChar(), passandogli
uno degli otto array creati, una volta per ogni carattere. Magari l'avevi capito già, ma specificare non fa mai male ;)

Nel caso avessi bisogno, potrei preparare uno sketch Arduino di esempio :)

stefanolavori

Figurati...Hai fatto già molto. Non serve tranquillo...Anche perchè c'è già l'esempio sulla libreria liquid crystal direttamente sull'ide di Arduino.

Grazie mille  :D

dancol90

Aggiornato alla v1.1, aggiunti Open\Save! Date un'occhiata al primo post ;)

GS88

Un grande grazie!

Bellissimo e molto comodo :)

DanielaES

Bellissimo programmino :)
Grazie di averlo fatto e condiviso con il forum.
In rete ce ne sono altri, li ho usati per creare qualche carattere speciale, ma non sono minimamente paragonabili per funzioni ed estetica al tuo.


dancol90

Ringrazio tutti per l'apprezzamento!  :D

Ho aggiornato il programma. Dateci un'occhiata.

Piccola info:
Sto lavorando per implementare anche tutta la tabella caratteri "standard" del HD44780,
così da poter avere nella preview anche caratteri ASCII oltre a quelli personalizzati, ma a quanto pare
stravolgerebbe completamente il formato dei file salvati, rendendo incompatibili quelli usati fin'ora.
Sto valutando se ne valga la pena o meno...

DevonMiles

Mi unisco in ritardo ai complimenti. Gran bel lavoro!! Grazie per la condivisione.

Subia75

Ciao
Ho buttato giù uno sketch per trovare i simboli da visualizzare in un lcd classico HD44780 perchè i datasheet che ho trovato in rete non sono completi oppure non coincidono nella conversione.

Il funzionamento è semplice, incremento in automatico un numero decimale alla volta e ricavo il suo simbolo.

Mi funziona il tutto però bisogna trascriverlo a mano uno per uno.

Volevo trovare un modo per poter leggere in parallelo su pc quello che scrivo su lcd in modo da automatizzare il salvataggio.

qualcuno ha qualche idea

Testato

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

dancol90


Ciao
Ho buttato giù uno sketch per trovare i simboli da visualizzare in un lcd classico HD44780 perchè i datasheet che ho trovato in rete non sono completi oppure non coincidono nella conversione.

Il funzionamento è semplice, incremento in automatico un numero decimale alla volta e ricavo il suo simbolo.

Mi funziona il tutto però bisogna trascriverlo a mano uno per uno.

Volevo trovare un modo per poter leggere in parallelo su pc quello che scrivo su lcd in modo da automatizzare il salvataggio.

qualcuno ha qualche idea


Non mi pare ci sia un modo di estrarre i dati "grafici" di un carattere...i vari caratteri sono salvati in una rom nel chip del display, non accessibile dall'esterno credo.

Prova ad aprire un nuovo topic esponendo il problema, così sarà più facile che altri lo notino ;)

Approfitto dell'up del topic per rilasciare la versione 1.2.5 (ho aggiornato il primo post)!

Go Up