Gameduino, como agregar mas de 16 imagenes en un programa.

Necesito utilizar mas de 16 imagenes o archivos jps en un programa, pero GD.BitmapHandle(0) solo acepta 16.
Como se pueden utilizar mas?

Gracias!

¿Que tamaño en pixeles tienen las imágenes? Ayudaría mucho si las subes para poder identificarlas.

Recuerda que hay un límite de 256 kb, que restringe el espacio gráfico. Sin embargo es posible superar ese aparente inconveniente usando varios grupos de assets en cada pantalla que quieras usar

Gracias por la respuesta,
Te envio las imagenes en otro post pero si son mas de 254kb
Es un control para un motor, bsicamente son 4 pantallas, ON OFF, velocidad, Sentido de giro y fecha para encendido/apagado automatico.
son solo botones, y el logotipo de la pantalla de inicio.
Todos los botones los estoy cargando como una imagen por eso son mas de 16.

tendras algun ejemplo de como pudiera hacer algo similar?

Gracias!

Hay que ver las imágenes antes de darte una solución, es posible manejar mucho mas imágenes, aprovechando el lector SD, pero siempre con los 256 kb como límite por pantalla.

Se puede usar varios assets en un mismo programa, y llamarlos cuando los requieras. No es necesario subirlos todos a la GRAM del FT800 del gameduino.

Hola TFTLCDyg
Como puedo agregarte o subir o enviar las imagenes?

Saludos!

Podrías crear una cuenta en algún servidor de almacenamiento como MediaFire,

Guardas en un archivo comprimido (rar o zip) las imágenes en cuestión y lo subes a tu cuenta del servidor de almacenamiento.

Copias el link del archivo y lo posteas acá.

Que tal TFTLCDyg

TE envio el link de los arhivos con las imagenes. Tamien agregue unas imagenes de como deveria verse la pantalla de gameduino ya funcionando.
Cada boton lo tengo como un archivo para poder hacer el tag.

Gracias por los comentarios.

Uffff todas esas imágenes con 256kb, no se que pensar. Mejor una FT81x y siempre con lector obviamente.

He visto ejemplos en youtube con menus para controlar una casa, con timers con graficas etc todo en un solo programa. No ponen en codigo. Creo que 5 o 6 pantallas con unos botones lo debe soportar gameduino no?

Las imagenes las puedo bajar de rosolucion o recortar un poco, pero como puedo cargar mas de 16 imagenes suponiendo que sean menor de 256kb todas

Gracias!

En el ejemplo que planteas, te puedes ahorrar algunas imágenes, ya que puedes dibujar los botones mediante los widgets que se pueden manejar con la librería del gameduino 2.

Te sugiero que los grupos de imágenes los gestiones con la herramienta gd2asset.

Las 16 imágenes son un límite para cualquiera de las pantallas del proyecto, pero es posible que al pasar a la siguiente pantalla del menú, subas otras 16 imágenes distintas a las primer grupo de assets, sin ningún problema, con apenas un poco de carga de bytes por la gestión del nuevo grupo assets. Claro siempre y cuando te apoyes del lector SD de la pantalla.

Si tu proyecto considera un menú de 6 pantallas, puedes gestionar 1 grupo de assets diferente para cada pantalla; es decir, tu menú podría tener hasta 16x6=96 imágenes!!!.

Ejemplo

MCU: arduino Due
Pantalla: Gameduino 2
Libreria: Gameduino 2

PD: tienes en tus manos una de las mejores pantallas para arduino, lee el manual de la librería y verás que no es tan difícil crear los proyectos que quieres.

Gracias TFTLCDCyg

Después de varias pruebas, por fin puedo generar los archivo .h y .gd2 y puedo cargar las imagenes en la pantalla.
Pero ahora mi pregunta es, como puedo usar 2 archivos .h ?

Te comento: Cree 2 archivos .h y su respectivo .gd2. diferentes nombres diferentes imagenes. Pero al cargar mi pantalla se estan cargando las imagenes del segundo archivo en lugar del primero.
Partiendo del primer ejemplo en el cual solo teniamos 1 archivo y todo esta bien. Incluyo el segundo en el codigo y sin cambiar nada mas en el codigo se direcionan las imagenes del segundo archivo.

No se si me explique.

Saludos.

Debes cargar cada grupo de forma independiente, uno a la vez. No es necesario subir a GRAM todos al mismo tiempo ya que se acabará la memoria y solo dibujará el segundo grupo, en el peor escenario, la pantalla te mandará un mensaje de error, por falta de espacio de almacenamiento gráfico.

Sube el código que has trabajado y los assets que has creado (.h y .gd2), con eso podemos saber donde esta la falla.

Gracias TFTLCDyg
No se como se carga cada archivo independiente mente, o como cargo el primer .h y como lo cierro y cargo el segundo?
te envio el codigo en el cargo dos .h y es cuando las imagenes las toma del segundo solamente.
tambien esta un archivo all_assets.h en este estan los 2 archivos unidos pero sigo con el problema de maximo 16 imagenes.

Gracias, Slds

¿Tienes los archivos de las imágenes que quieres usar en los assets?

Sería oportuno que las subieras también al servidor de almacenamiento y postees el link de descarga, de esa forma podríamos ver si las imágenes funcionan al 100%. Con eso podría experimentar mejor con parte de tu proyecto.

hola TFTLCDyg

Te envio el link con todos los archivos y el programa como lo tengo, cargo los archivos en diferentes momentos pero eso me genera una pantalla negra cada vez que los cargo.

Agradezco tu ayuda.

Saludos

Te recomiendo que los botones rectangulares, los gestiones con los widgets de la librería; así podrás disponer de un mayor número de imágenes en los assets.

Al usar la librería gameduino 2, debes olvidarte de programar de la forma tradicional que todo mundo usa en sus arduinos.

El procesador de la pantalla puede mantener tasas de refresco de 60 Hz, de forma nativa y contínua, cosa que obliga a usar la pantalla de otra forma. Este comportamiento es bastante raro en arduino y tiene muchas ventajas, aún en placas pequeñas como el nano, pro, mini, UNO o STM32F103C8, que cuentan recursos limitados tanto en frecuencia en el MCU, como en RAM.

El proceso general incluye los siguientes aspectos:

Debes separar tu proyecto en pestañas: esto lo puedes hacer en el IDE de arduino, siguiendo estas imágenes:

En cada pestaña puedes colocar elementos del menú y funciones generales.

Elementos de menú en bucle independiente: cada sub-menú, debes enfocarlo para que tenga un bucle infinito, que no dependa del bucle del menú principal. Así, no es necesario que uses el void loop.

Esto lo consigues con la instrucción while o alguna otra combinación que genere un bucle infinito. La estructura general es:

void Menu5()
{
  //Instrucciones que solo se ejecutan una vez
  while(1)
  {
    //Instrucciones que se ejecutan en bucle independiente
  }
}

El menú principal lo llamas dentro del setup.

PD: lo dejo aquí por el momento, ando liado con el trabajo, en cuanto regrese seguimos con el instructivo.

Estoy usando una pantalla FT813 en una placa STM32F407ZGT6, por eso verás algunas instrucciones un tanto extrañas. Sin embargo uso de la librería gameduino 2 es el mismo para tu pantalla, con las reservas de memoria del procesador y de dimensiones.

Muchas gracias,
Quedo en la espera de la segunda parte.
Algun libro o tutorial que recomiendes para aprender este tipo de cosas, programacion avanzada con arduino o algo asi?

Saludos

He estado algo ocupado en estos días, carga de trabajo y mudanza.

No me he olvidado de la segunda parte. Además he estado poniendo a punto una F429ZI-DISCO como MCU para usarla en la segunda parte.

Saludos
FT81XMania