[SOLUCIONADO]Como Crear fonts nuevas para librería GLCD V3 beta

Hola saludos.

Acabo de entrar al foro soy nuevo en esto de arduino, la verdad me es un poco difícil comprender la librería GLCD, y esto es por que he intentado crear mis propias Fonts sin éxito. Entiendo que para poder crear una font se debe crear una librería que contenga el código que dibuje las letras que uno quiere que muestre la pantalla, para esto se debe:

programar la memoria interna del micro con la font que se desea visualizar.
definir la librería
definir el tamaño de caracteres
definir el tamaño de la fuente en pixeles
definir el tamaño de la memoria usada

por lo poco que pude entender de las paginas que visite cree el siguiente código:

// Ubuntubold.c
// Font type : Full (95 characters)
// Font size : 24x32 pixels
// Memory usage : 9124 bytes

#include <inttypes.h>
#include <avr/pgmspace.h>

#ifndef UbuntuBold_H
#define UbuntuBold_H

#define UbuntuBold_WIDTH 24
#define UbuntuBold_HEIGHT 32

const uint8_t UbuntuBold[9124] PROGMEM={

0x18, //width
0x20, //height
0x20, //dirección de inicio
0x5F, //cuantos elementos hay en la libreria

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ...... MAS TODOS LOS ELEMENTOS QUE CONFORMAN LA LIBREIRA

}; #endif

considero que la librería esta completa y que por lo tanto debería de funcionar sin embargo no lo hace, el compilador no muestra error y lo descarga a arduino sin mas, pero al momento de la verdad solo no se muestra nada, aparece la pantalla en negro, no se si tal vez no he considerado algo al momento de copiar y pegar la fuente de donde la descargue, o si le falta algún parámetro para que funcione, obviamente la librería la declare en el archivo llamado allFonts.h:

/*

  • allFonts.h font header for GLCD library
  • The fonts listed below will be available in a sketch if this file is included
  • If you create your own fonts you can add the header to this file
  • Note that the build environment only holds a font in Flash if its selected
  • so there is no penalty to including a font file here if its not used
    */

#include "SystemFont5x7.h" // system font
#include "Arial14.h" // proportional font
#include "Arial_bold_14.h" // Bold proportional font

#include "Verdana_digits_24.h" // large proportional font - numerals only
#include "fixednums7x15.h" // fixed width font - numerals only
#include "fixednums8x16.h" // fixed width font - numerals only
#include "fixednums15x31.h" // fixed width font - numerals only

y pues en este momento me encuentro algo bloqueado debido a que he repasado el código pero no encuentro mi error es por eso que me encuentro aquí pidiendo algo de su orientación.

de este enlace descargue la librería:

http://playground.arduino.cc/Code/GLCDks0108

agradeceré sus comentarios y el apoyo que me puedan brindar me despido por el momento.

un saludo

Berni_Net

Para ayudarte empieza subiendo tu ejemplo de uso, y las librerias.
no hagas copiar y pegar, usa Attachments and other options. y sube los 3 archivos y todos en un zip o rar.

Gracias por tu comentario. siguiendo tu consejo he subido el archivo que estoy trabajando esta separado en dos carpetas una que es donde va el programa de arduino HolaMundo y glcd que es la carpeta de la libreria que descargue de las librerías de esta pagina.

la fuente que estoy tratando de configurar se llama nadianne.h que se encuentra dentro de la carpeta fonts, durante las ultimas horas he estado modificando mi código y he logrado que se muestre algo en la pantalla, aunque sean puntos, lo logre copiando parte del codigo de Arial14.h la parte que define el tamaño, también me di cuenta que hay una parte que define lo que al parecer es el ancho del carácter pero no entiendo bien como es que se obtienen esos datos.

según entiendo por lo que veo en los comentarios el tamaño de la fuente en bytes es 7788, cuando lo definen dentro de la función no lo expresan dentro de el espacio que definiría el tamaño de la matriz "así lo entiendo yo " en la parte de static unit8_t Arial_14[] PROGMEM=. en lugar de eso lo definen como 0x1E, 0x6C, // size lo cual me desconcierta entiendo que es una representación en hexadecimal pero no entiendo como lo construyeron, esa parte me tiene desconcertado.

y la parte en la cual hacen el dimensionamiento del ancho del carácter también no entiendo como se construye esa parte, me quiero imaginar que deben construir cuadros del tamaño de la letra en este caso seria de 16 x 16 para evitar que se distorsione la imagen pero no se como adaptarlo a mi código.

yo seguiré intentando por mi parte despejar mis dudas pero aprecio cualquier comentario que me puedan hacer llegar. de antemano gracias.

Berni_net

:slight_smile:

allFonts.h (851 Bytes)

Arial14.h (9.65 KB)

nadianne.h (17.1 KB)

HolaMundo.ino (810 Bytes)

DESPUÉS DE INVESTIGAR Y CON UN GOLPE DE SUERTE ENCONTRÉ UNA PAGINA EN LA CUAL EXISTE UN PROGRAMA LLAMADO GLCD FONT CREATOR, QUE FUNCIONA EXCELENTE PARA EL PROBLEMA CON EL QUE ME HABÍA TOPADO. EL CUAL CONSISTÍA EN AGREGAR FONTS ADICIONALES A MIS PROYECTOS EN ARDUINO CON LA AYUDA DE LA LIBRERÍA PARA KS0108, LAS DUDAS QUE TENIA SOBRE COMO ES QUE SE GENERA EL CÓDIGO AUN EXISTEN PERO HE LOGRADO EL OBJETIVO PRINCIPAL.

EN LA PAGINA Handling Text and Fonts in ProGFX

SE ENCONTRARA UN TUTORIAL CON EL QUE SE PODRÁN AGREGAR FONTS QUE EXISTEN EN NUESTRO SISTEMA PARA PODERLAS ANEXAR A NUESTRAS LIBRERÍAS Y DARLE UN TOQUE MAS LLAMATIVO A NUESTROS PROGRAMAS.

ESPERO A ALGUNA PERSONA LES PUEDA AYUDAR EN UN FUTURO.

UN SALUDO.

BERNI_NET.

1 Like