User Tools

Site Tools


pub:arduino:fonts_lcd

Specifiche ipotetico sistema di Font

In attesa che mi arrivi il mio Arduino, sto smanettando con quello di un mio amico che ha montato ad esso un piccolo schermo LCD che ha alcune pecche visto che in input si aspetta un dato che identifichi i quadratini da riempire.

Questa mancanza mi ha portato a definire un ipotetico sistema di Font (http://it.wikipedia.org/wiki/Tipo_di_carattere), codice per l'Arduino non è presente, la presente vuole essere solo una specifica per l'implementazione di un sistema di Font, mi auguro vivamente che non ne dovremmo avere bisogno e spero che si prenda un monitor LCD al quale è possibile dargli input la stringa direttamente e che ci pensi lui.

L'idea

L'idea è che ogni carattere è espresso da una matrice 8×5, da una sequenza di 5 Byte dove ognuno di essi rappresenta una colonna che è a sua volta formata 8 quadratini, vedere l'immagine di sotto.

Un quadratino di colore nero vuol dire che è vuoto, mentre se è bianco vuol dire che è pieno.

Nell'immagine di sopra i quadratini da essere riempiti sono il quarto e il sesto, il valore in byte della colonna è 00010100, in esadecimale 0x14.

Immaginate che ogni carattere è una sequenza di 5 byte, dove ciascuno di essi rappresenta una colonna.

Disegno dei caratteri

Ho scritto un programma in Visual Basic .NET (che può essere girato su Linux tramite Mono) che mi genera il carattere.

Stesura del file che contiene tutti i caratteri

Immaginate un file di dimensione 255 * 5.

Immaginatelo come un Array di 255 “entries”, dove ogni entry è formata da 5 Bytes.

Se io do in pasto 'A' (valore in decimale 61), per ottenere la sua rappresentazione devo andare a prelevare i 5 bytes a partire dall'offset 61 * 5 = 325 (decimale).

Migliorie che si possono apportare

Questi sono degli schizzi di una specifica di cui forse potremmo aver bisogno (spero di no) in quanto significherebbe che il monitor LCD che abbiamo preso non offre u

Ovviamente essa può essere soggetta a migliorie.

  1. I caratteri dal 32 al 126 sono i soli caratteri stampabili, quindi si può ridurre la dimensione del file che si deve stampare e per ogni carattere inserire un check che controlla se è stampabile.

Per stilare questa specifica mi sono ispirato al sistema di Font che era presente nel bootloader del Motorola V3x del periodo in cui mi dilettavo a modificarlo.

pub/arduino/fonts_lcd.txt · Last modified: 2011/04/06 23:20 by piso