The human-machine interface (HMI) is growing in consumer as well as industrial applications ranging from lighting to HVAC to digital signage. There are many HMI solutions, including the ones that use buttons, sliders, wheels, capacitive proximity sensing, and even human voice.
There are tools and kits available that simplify the fine-tuning of HMI designs. What’s critical is that the interfaces should be fast and accurate. And it all begins with responsive graphics, and subsequently, the processing that efficiently facilitates it on displays.
- Graphics development
As mentioned above, the HMI undertaking starts with implementing the graphics software on an embedded system and ensuring that the graphical user interface (GUI) matches the application requirements. Robust graphics is synonymous with sophisticated HMI, and here, developers have several venues for GUI development.
They can write the code themselves, or they can use a code generator by employing the GUI frameworks. Or, developers can use a secondary scripting language and process the script using a graphics engine that is usually built into MCUs or MPUs.
Finally, in the binary GUI approach, embedded system designers can take the hand-written code and create a pixel-perfect GUI while using GUI building tools, embedded graphics engine, and software APIs. The GUI and the associated APIs manipulate and display the graphical data stored in a binary data file.
- The memory question
Is there enough flash memory to store the graphics engine, as well as RAM needed to execute the code during the runtime? So, if HMI developers are using a microcontroller, they should make sure that there is sufficient memory to fulfill the graphics requirements.
First, make sure that there is sufficient flash to store the graphics code and graphics engine if there is one. Second, ensure there is enough RAM to store the graphics and then forward it to the display controller. Microcontrollers usually use two buffers: back buffer and front buffer.
- Power efficiency
The HMI applications demand MCUs with the lowest energy consumption in the active, sleep, and deep-sleep modes. A shorter wake time, for instance, minimizes energy consumption while transitioning from sleep to active mode. Likewise, the wake-on-touch current should be minimal to ensure faster sensing without sacrificing sensitivity performance. In other words, a tight power budget is a must for HMI designs, especially for battery-powered devices.
- GUI development kits
Microcontroller suppliers often provide HMI development boards and kits that enable designers to prototype GUIs. The development kits include display panels and external memory extensions on the hardware side and hardware abstraction layer (HAL) drivers and middleware on the software side.
Graphics libraries and tools include graphics interface and application examples that help designers display and demonstrate HMIs using MCUs. These GUI frameworks — which come equipped with pre-integrated middleware for communication, security, USB, GUI, and file system — allow designers to generate C code that is compatible with the GUI library and is ready to be compiled and run on MCUs.