Bienvenido a los foros de FT81x Manía. Te invitamos a regístrate totalmente gratis. Disfruta de tu experiencia con un grandes amigos y Staff.

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Thread Contributor: TFTLCDCygSeleccionar imágenes de fondo mediante un teclado numérico

#1
1
Better response on post Seleccionar imágenes de fondo mediante un teclado numéricoAlgunas veces deseamos cambiar la imagen de fondo de nuestros proyectos. La forma mas simple consiste en cambiar el nombre del archivo en el código principal y cargar nuevamente el sketch.

Hacerlo en tiempo real no es tan complicado. Se puede realizar configurando la imagen de fondo como un botón que abarca la totalidad de la imagen. También se puede conseguir asignando un botón para avanzar o retroceder dentro de la base de imágenes en la tarjeta SD.

También podemos recurrir a un sistema extra: un teclado numérico. El ejemplo fué extraído de la app keyboard de FTDI y adaptado a las instrucciones de la librería para gameduino 2/3.

Apertura de archivos

Dado que la generación de un listado de archivos especificos en la librería SdFat está resultando dificil de conseguir en STM32, la base de archivos o el índice de archivos hay que crearlo manualmente. Para MCU como arduino y teensy, tenemos un generador de listado de archivos que funciona perfectamente para generar un listado de hasta 125 archivos.

La primer forma de conseguirlo es mediante un array de cadenas de texto con los nombres de los archivos:


char GrupoJPG0[7][15]={"6oBaa.jpg","6oBba.jpg","6oFb.jpg","6oGb.jpg","6oHaa.jpg","6oIaa.jpg","6oJa.jpg"};
//      0         1          2           3          4           5          6     


En este array tenemos una base de 7 archivos de imagen. Podemos agregar los archivos que deseemos. Hasta ahora he llegado a una base de 90 archivos. Se pueden usar archivos compatibles con el procesador FT81X: jpeg, jpg y png. El llamado del archivo se consigue usando la instrucción siguiente o una similar:


archivo = SD.open(GrupoJPG0[Identificador]); 
GD.cmd_loadimage(0, 0); 
GD.loadSdFat(archivo);

Donde identificador es el índice del array

Otra forma de obtener la base de archivos, consiste en asignar en el nombre de los archivos un prefijo y una secuencia de números, por ejemplo: IMG0001, éste formato nos permite aumentar sustancialmente el tamaño de base de archivos, sin tener que escribirlos manualmente en un array; con la capacidad de abarcar la totalidad de archivos contenidos en la tarjeta SD, claro siempre y cuando los nombremos con el formato asignado.

Para llamar a la imagen indizada, tenemos que usar una secuencia como esta:

snprintf(nombre, 30, "IMG%04d.jpg", identificador);
      String str(nombre);
      archivo = SD.open(str);      
      GD.cmd_loadimage(0, 0);
      GD.loadSdFat(archivo);

Donde identificador es el número de secuencia de la imagen

La variable global: identificador, es la clave para poder habilitar un teclado numérico que nos permita navegar en la base de archivos de imagen

Sigue: el teclado numérico 
Reply
#2
0
Muy interesante.

Seguiré tus nuevos mensajes.
Reply
#3
0
Por el momento tuve que desarmar el setup con teensy 3.6, para ahorrar espacio en la caja de electrónica que me acompañará a la mudanza. En cuanto me sea posible lo reconsturiré para concluir el ejemplo. Paciencia

Además me he entretenido bastante con la puesta a punto del setup para las pantallas de Newhaven display con la nucleo F767ZI que ha llegado a mis manos hace un par de semanas  Angry
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)