ESP32 obtiene programas avanzados usando esta biblioteca GUI VGA

Presentamos [Fabrizio Di Vittorio]la biblioteca FabGL para ESP32 en abril de este año. Esta biblioteca permite la salida VGA usando una resistencia simple basada en DAC (3 resistencias para 8 colores; 6 resistencias para 64 colores) e incluye funciones para entrada de teclado PS / 2 y mouse, una biblioteca de gráficos y muchas de las diversas funciones que necesita .puede necesitar. para desarrollar juegos en el ESP32. Ahora, se ha agregado una biblioteca de interfaz GUI para facilitar el desarrollo de aplicaciones.

La GUI, por supuesto, funciona con la salida VGA. La biblioteca incluye lo que esperaría de una GUI de ventana mínima, como compatibilidad con teclado y mouse, ventanas con los controles habituales de minimizar / maximizar / cerrar y cuadros de diálogo de modo y mensaje. Para los controles de entrada, hay etiquetas, cuadros de texto, botones, botones de radio, casillas de verificación, cuadros combinados y listados normales y editables; ya sabe, casi todo lo que necesita para desarrollar un programa GUI moderno. Todo el código es de código abierto (GPL 3.0) y en rap GitHub.

Si bien el FabGL original tenía una orientación al desarrollo de juegos, la incorporación de esta nueva función GUI abre una gama completamente nueva de aplicaciones. Si desea obtener más información sobre el uso de la biblioteca FabGL, puede consultar nuestra cobertura anterior de las funciones principalmente orientadas al juego.

Puede echar un vistazo a las nuevas funciones de la GUI en acción en el video, después de la pausa.

  • pborges475 dice:

    Esto es asombroso, me pregunto si funciona bien con este tipo.

    https://www.aliexpress.com/item/33014937190.html

    • pborges475 dice:

      editar: ¡realmente lo hace! https://github.com/fdivitto/FabGL/wiki/Boards

      • Mkichjr dice:

        Gracias por compartir, acabo de comprar esto. Creo que tiene un esp32 incorporado, pero me gustaría encontrar solo un sombrero para proyectos futuros.

    • sidra de pera dice:

      Parece el mismo programa de prueba.
      ¿Es este el mismo chico?
      Sea muy guay.

      • pborges475 dice:

        parece ser

        • Elliot Williams dice:

          Gracias por publicar ese enlace de Alex. Tenía curiosidad por el teclado / mouse.

          Esa es una tableta enferma por $ 12. ¿Dónde puse mi monitor VGA de respaldo …

    • tekkieneet dice:

      Para su información, para la URL de aliexpress, puede detener todo desde el ‘?’ El resto de esa basura debería rastrear tu sesión.

      • Elliot Williams dice:

        Lo tengo.

    • Fabrizio dice:

      Acabo de enumerar tableros coincidentes, ¡no tengo nada en común con ellos!

  • Doc dice:

    Sería interesante ver un puerto vnc para ese hardware vga. Solía ​​tener uno para las PDA Palm en blanco y negro de la vieja escuela, pero era inútil porque solo tenía la estación de acoplamiento y no tenía módem u otra forma de conexión remota.

    • Submuestreo dice:

      ¡O servidor X11!

      • Willem Hillier dice:

        A Cristo le duele pensar que esto es con un microcontrolador de $ 3 … El mundo en el que vivimos …

    • Rogan Dawes dice:

      ¿Tiene la intención de transferir la biblioteca de gráficos para exportar su pantalla a través de VNC en lugar de VGA? No imagino que sea MUY difícil, la única pregunta sería implementar los algoritmos de compresión en los recursos disponibles.

      Anteriormente implementé la parte de teclado / mouse de un servidor VNC en unos cientos de líneas de código. Sería interesante ver si esto sería factible.

      Sin embargo, sospecho que usar HTTP en lugar de VNC es más adecuado para algunas interfaces remotas, ya que descarga el procesamiento de la interfaz de usuario a un dispositivo más capaz, con una carga mínima en el microprocesador de recursos limitados.

      • Doc dice:

        En realidad, pensé al revés.
        Aunque mirando a mi alrededor encontré algo que olvidé, alguien escribió un servidor micro-vnc para microcontroladores de 8 bits. Aparentemente, incluso tenían un C64 que la gente podía insertar al mismo tiempo. http://dunkels.com/adam/uvnc/
        Entonces esa dirección es ciertamente posible.

        Pensé que sería interesante si pudieras tener un cliente vnc en la placa ttgo esp32 vga y usarlo para vnc en otra computadora. IIRC, puede configurar opciones en vnc para limitar la cantidad de colores que transmite, por lo que los 64 colores no deberían ser un gran problema. Sin embargo, no estoy seguro de si hay suficiente ariete para ello.

      • Dave dice:

        Estoy seguro de que esto lo hace algún famoso ESP (el nombre se escapa) que hizo kbd / mouse de forma remota a través de un USB suave.

  • Geek42 dice:

    Entonces, ¿un navegador en línea?

    • BastetFurry dice:

      Bueno, si 8088 XT con módem puede hacer eso con Arakne, entonces ESP32 WROOM podría continuar.

  • SlowBro dice:

    Pero, ¿funciona Crysis?

    • PQCraft Play dice:

      Pero, ¿funciona Doom?

  • Strunk y Turabian dice:

    Sería útil si pudiera explicar qué significan las cosas.

    Ejemplo: “simple basado en D, A-doing, C-thing (DAC)”

    Desafortunadamente, parece que el Hackady Style Book no lo permite. 🙁

    • Elliot Williams dice:

      DAC = Convertidor de digital a analógico. Frente a ADC.

      Tratamos de explicar las cosas cuando creemos que sería útil. Lamentablemente, no podemos corregir siempre ni para todos. A veces, un acrónimo común se deslizará debajo del RADAR.

      También depende del contexto. ¡Aquí finalmente hay un artículo sobre ESP32 VGA SDL GUI!

      • Lauren Buchholz dice:

        RADAR = detección y distancia automatizadas por radio … 😀

    • tekkieneet dice:

      Seguramente no importará mucho, porque las personas que no conocen DAC probablemente tampoco sabrán qué es el convertidor de digital a analógico. Google te dará mucho más.

      Es más importante especificar las unidades como megabytes versus megabytes porque la diferencia es un factor de 8 y la gente tiene la mala costumbre de no seguir los casos apropiados: algunos representan una primera letra mayúscula = convención de nomenclatura en inglés, algunos todo en minúsculas y otros en mayúsculas . Hágalo bien la primera vez y ahorre mucha confusión y corrección después. Esto es algo en lo que Google no ayudará.

  • halherta dice:

    Si bien esto es realmente genial, el ESP32 es un microcontrolador sin MMU de doble núcleo con RAM limitada y sin GPU, es la plataforma ideal para una GUI en mi mente. Preferiría usar una Raspberry Pi Zero / 3/4 con una biblioteca como Qt / GTL o incluso Nuclear.

    • jeffeb3 dice:

      Pi zero W tiene muchas ventajas sobre este tipo, pero esto al menos es genial. Además, podría haber aplicaciones muy específicas que podrían beneficiarse de una guía sencilla. ¿Quizás tiene un conmutador vga kvm en una sala de servidores y necesita un dispositivo específico para verificar cosas o restaurar máquinas no autorizadas? Debería ser lo suficientemente específico para justificar esto con pi. Quizás algún límite en tiempo real que sería difícil de lograr con pi.

      • halherta dice:

        Quizás … pero poco probable

    • Dave dice:

      ¿Y por qué no i7 NUC box y lanzar el juego py además de win10?
      Creo que te estás perdiendo el punto.

      • halherta dice:

        No, yo no … Es un software realmente genial. Limpio y geek. No es la forma más efectiva de hacer una GUI en 2019, pero es un verdadero aullido para jugar si está apuntando a tal cosa.

    • Zerg dice:

      Mucho antes de que nacieras, sistemas como Atari ST, Amiga y PC-AT con GEOS con 512k RAM eran el estándar para las máquinas de escritorio con Windows y nos fue bien con ellos.

      Recuerdo cuando Windows 3.1 era el estándar para los sistemas de escritorio basados ​​en 286 y 386 en las pruebas de vuelo de AF.

      No necesitábamos Pi ni gigabytes de RAM para escribir un programa simple de “hola mundo”.

      • halherta dice:

        Sí, los 80 fueron geniales hace treinta años. Entiendo. Pero vivimos en 2019. Tenemos la técnica y el hardware para hacer una mejor GUI. La RAM también es mucho más barata que en 1976.

        • Matt Ryan dice:

          las personas disfrutan del desafío de usar hardware de una manera para la que no es apropiado.

          • halherta dice:

            Entiendo, realmente lo entiendo. Es un truco aterrador y genial. Pero eso no cambia el hecho de que si tuviera que construir una GUI para ser utilizada por una persona promedio en 2019, tendría que usar una solución / enfoque más moderno. Eso es todo lo que digo.

            Además, una solución moderna probablemente sería más fácil de configurar y usar, pero menos satisfactoria que desarrollar una biblioteca GUI de la vieja escuela en hardware con poca potencia y hardware de producción de video más antiguo.

    • tambalearse dice:

      Idiota

      • tambalearse dice:

        @halherta

        • halherta dice:

          Wibble, vete a la cama contigo mismo

  • Conan dice:

    Bueno, Mac, Atari ST y Amiga ejecutaron un sistema basado en interfaz gráfica de usuario en los años 80, no se necesitaban gigabytes de RAM o CPU multinúcleo 🙂

  • Thomas Barth dice:

    Me encanta. No puedo esperar para intentarlo. En mi perspectiva, el tiempo de inicio y la durabilidad son las principales ventajas. (+ Todos pueden comprar Pi ;-))

  • Mike M. dice:

    De hecho, me gusta la biblioteca littlevgl como una interfaz gráfica de usuario para cosas de MCU (https://littlevgl.com/). Apuesto a que podría funcionar con esta biblioteca VGA.

Joel Carrasco
Joel Carrasco

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *