Inicio Artículos Un camino inteligente hacia una interfaz de usuario contemporánea

Un camino inteligente hacia una interfaz de usuario contemporánea

rutronik rk
Figura 1. Los módulos de display inteligentes se encuentran disponibles en varias configuraciones. Fuente: 4D Systems.

Hoy en día, prácticamente cualquier diseño embebido requiere un display. No obstante, los procesos de selección e integración plantean desafíos a los desarrolladores y alargan la fase de desarrollo. Los módulos de display inteligentes fabricados en serie suelen ser una alternativa asequible.

Artículo escrito por Nikolai Schnarz, Corporate Product Sales Manager Displays, y  Gintaras Drukteinis, Technical Support Engineer, ambos de Rutronik

Cuando se compara un diseño discreto con un módulo de display, el enfoque modular no parece particularmente atractivo al principio, cuando se considera el coste total de los materiales. Sin embargo, si se tiene en cuenta la velocidad a la que se puede completar el desarrollo y la facilidad de uso, el módulo sale victorioso. Por ejemplo, una aplicación existente que se ejecuta en un microcontrolador (MCU) de 8 bits ahora debe contar con una pantalla gráfica a todo color con interfaz táctil. A pesar de que muchos MCU son capaces de conectarse a un display LC mediante un controlador integrado o discreto, el tamaño y la resolución actuales se podrían ver limitados por los recursos del MCU. Así pues, un MCU de 8 bits puede controlar un display de matriz de puntos de dos líneas, pero los recursos de procesamiento no suelen ser suficientes para pantallas de mayores dimensiones. Además, el diseñador tiene que añadir software embebido, como bibliotecas y archivos de imagen. Incorporar funcionalidad táctil requiere todavía más esfuerzo de desarrollo. Durante la fase de producción, se debe llevar a cabo una inspección estricta de la nueva pantalla, ya que siempre existe la posibilidad de que se haya cambiado algo sin previo aviso, lo que requiere una optimización o un nuevo desarrollo de los controladores de display.

Qué aportan los módulos

Los displays modulares inteligentes suelen disponer de una interfaz estándar, como I²C, SPI o UART, para tareas de comunicación con el anfitrión (host). Algunos también incluyen un microcontrolador embebido que no sólo es el responsable de todos los elementos gráficos, sino que también tiene una amplia variedad de E/S y otros periféricos, garantizando así que el módulo puede ejecutar toda la aplicación de destino.

Muchos módulos son soportados por una biblioteca de funciones, lo que asegura que se puedan controlar de una forma relativamente fácil por el MCU anfitrión. Algunos de ellos también poseen un entorno de desarrollo integrado (IDE) con prestaciones avanzadas que incluyen el diseño y la creación de una interfaz gráfica de usuario (GUI) como parte del proceso de diseño embebido. Para respaldar el prototipado y el desarrollo de aplicaciones con gran rapidez sin tener que escribir ni una línea de código, algunos de estos IDE ofrecen flujos de trabajo WYSIWYG (what you see is what you get – lo que ves es lo que obtienes) con función «arrastrar y soltar» (draganddrop).

Entonces, lo atractivo del enfoque modular es que todos los controladores y las funciones primarias y de GUI ya se han desarrollado y probado. Por lo tanto, los ingenieros se pueden centrar completamente en el diseño de la GUI actual. El MCU anfitrión puede descargar de todas las tareas de display al módulo, lo que significa que todos sus recursos están disponibles para la aplicación principal.

herramientas workshop

Figura 2: La herramienta Workshop4 IDE ofrece a los desarrolladores numerosas opciones de diseño de GUI. Fuente: 4D Systems

Soporte de diseño de interfaz de usuario

Para poder soportar también el diseño de la GUI, el fabricante de displays 4D Systems ha desarrollado una herramienta para crear interfaces gráficas de usuario inteligentes de la manera más rápida y fácil posible. Workshop4 IDE ofrece varios entornos de desarrollo de programación, desde el basado en texto al visual (Fig. 2). Su función «arrastrar y soltar» también tiene un uso intuitivo, eliminando la necesidad de codificación tradicional.

Módulo de display para el Kit de Desarrollo RDK2 de Rutronik

Gracias a estas ventajas, Rutronik también usa un módulo de display inteligente en su Kit de Desarrollo RDK2 (Fig. 3). Soporta principalmente el desarrollo de una prueba de concepto para diversas áreas de aplicación, como IoT e IIoT, dispositivos wearables inteligentes y hogares inteligentes (domótica).

La tarjeta se basa en el microcontrolador de alto rendimiento y ultrabajo consumo CY8C6245AZI-S3D72 de Infineon. Además, el RDK2 se caracteriza por una memoria flash NOR Semper externa de 512 Mbits y una memoria PSRAM AP de 64 Mbits APS6404L-3SQR-ZR conectada a través de una interfaz QSPI. De esta manera, aumentan las capacidades del RDK2 cuando utiliza simultáneamente estas memorias en un modo proyectado en memoria (memorymapped).

kit de desarrollo rk2

Figura 3: El Kit de Desarrollo RDK2 de Rutronik con un módulo de display inteligente. Fuente: Rutronik

El display de 4.3” gen4-uLCD-43DCT-CLB con panel táctil capacitivo integrado se usa como pantalla y medio de entrada para un ejemplo de aplicación del RDK2, que determina la calidad del aire empleando el índice VOC (compuestos orgánicos volátiles). Se basa en el controlador gráfico DIABLO16 y se gestiona mediante la interfaz UART. Su velocidad de datos de 115.200 bit/s resulta suficiente para operar el panel táctil sin un retraso perceptible. No obstante la velocidad de datos de UART también se puede incrementar a 600 kbit/s, si fuera necesario.

Recomendamos el adaptador Arduino 4D-ARDUINO-ADAPTOR-SHIELD-II para garantizar una integración rápida con el RDK2. El ejemplo de firmware RutDevKit-PSoC62_GEN4_ULCD_43 se refiere por defecto a los datos del sensor VOC SPG40 de Sensirion, pero también se puede cambiar automáticamente al potenciómetro integrado POT1 si el sensor no es reconocido por el bus I2C. El potenciómetro se lee a través de la periferia del ADC. Posteriormente, los valores del ADC se muestran en el display. La tarjeta RAB1 – Sensorfusion con un sensor SGP40 también estará disponible por parte de Rutronik.

Para tareas de visualización, 4D Systems ofrece la biblioteca de códigos ViSi Genie. Se incluye en el proyecto de muestra RDK2 RutDevKit-PSoC62_GEN4_ULCD_43 para uso en el IDE ModusToolbox, una recopilación útil de software y herramientas para un desarrollo rápido con los MCU de Infineon. Para poder habilitar la biblioteca de códigos, se implementan las funciones de configuración de la API de usuario y los gestores de eventos. Permiten a los desarrolladores controlar lo que debería suceder en el programa cuando ocurre un evento específico, como una entrada.

Los prototipos de funciones que se deben implementar para garantizar que la pila de ViSi-Genie puede ejecutarse realmente se muestran en la caja de «funciones necesarias».

El display se controla enviando los mensajes a los objetos individuales en la pantalla o a los objetos de fondo que pueden no ser visibles. Por ejemplo, el comando que actualiza el medidor angular con el índice VOC podría parecerse a este:

/* Update the VOC Index gauge */genieWriteObject(GENIE_OBJ_ANGULAR_METER, 0, gaugeVal);

Los eventos, como el toque de las teclas, se reciben en intervalos regulares de 20 milisegundos o más rápido cuando se ejecuta esta función:

/* Check for events */genieDoEvents(true);

El IDE Workshop4 permite a los desarrolladores diseñar objetos gráficos y programarlos en la memoria del display. La aplicación de muestra prueba los conceptos básicos utilizando un medidor angular y un scope gadget para visualizar el índice VOC. El medidor angular se refresca cada 50 milisegundos, mientras que el scope lo hace cada 10 segundos, haciendo posible que los usuarios monitoricen simultáneamente los valores del índice VOC actuales y anteriores.

El ejemplo de firmware para el RDK2 y el proyecto de IDE Workshop4 IDE se encuentran disponibles para su descarga en la página web de Rutronik.