[TOOL] [UPDATE] HD44780 Custom Characters Editor v1.2

Salve a tutti! :slight_smile:

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 :wink: ) :
http://dl.dropbox.com/u/18825149/projects/HD44780-Editor/v1.2/happyFace.set

Potete trovare i sorgenti, rilasciati secondo licenza GPL, qui:

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 :stuck_out_tongue:

Spero che possa essere utile anche a voi! :smiley:

Molto utile , lo provo subito grazie

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.

E' tutt'altro che scarno, è perfetto :slight_smile:
Grazie :slight_smile:

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.

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 :wink:

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

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 :smiley:

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

Un grande grazie!

Bellissimo e molto comodo :slight_smile:

Bellissimo programmino :slight_smile:
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.

...Complimenti per il lavoro.... :slight_smile:

Ringrazio tutti per l'apprezzamento! :smiley:

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...

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

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

complimenti per il lavoro,
lo provo :slight_smile:

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

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 :wink:

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

Grazie per la risposta ma non volevo aprire un topic nuovo visto che facendo delle ricerche nel forum non ho trovato niente che riguardasse questo.

Trascrivo i simboli a mano tanto non sono molti e poi salvati una volta basta che cerco quello che mi serve e lo utilizzo tanto ci vorranno 10 minuti per fare la scansione e scriverli.

Subia75:
Grazie per la risposta ma non volevo aprire un topic nuovo visto che facendo delle ricerche nel forum non ho trovato niente che riguardasse questo.

Trascrivo i simboli a mano tanto non sono molti e poi salvati una volta basta che cerco quello che mi serve e lo utilizzo tanto ci vorranno 10 minuti per fare la scansione e scriverli.

Prima di fare tutto questo lavoraccio hai provato a dare un'occhiata alle tabelle dei caratteri dell'hd4478? Ce ne dovebbero essere solo due\tre (caratteri asiatici, europei, e forse qualcos'altro)...guarda qui http://www.sparkfun.com/datasheets/LCD/HD44780.pdf da pag 17. Cerca qualche carattere peculiare di solo uno dei due set e prova a vedere se coincidono col tuo :slight_smile:

Davvero figo! Qualcuno lo ha gia' provato su linux?

sono daccordo che ci sono le tabelle con i caratteri ma se nel programma inserisco una stringa come:
lcd.print((char)numero);
dove numero è il corrispondente decimale del simbolo che mi serve, mi sembra che sia più veloce e sono sicuro che non sbaglio nel scriverlo rispetto ad una serie di bit.
penso che sia una questione pratica.

Federico:
Davvero figo! Qualcuno lo ha gia' provato su linux?

Essendo processing non dovrebbero esserci problemi di sorta...prova a scaricarti lo sketch da github ed aprirlo :slight_smile: