Yocto Linux- Build Your Own Embedded Linux Distribution
Regular readers of our blog, know that we try to write posts on various topics related to programming in Qt […]
Welcome to our exploration of Human-Machine Interface (HMI) – a key player in today’s tech landscape. HMI stands at the intersection of humans and technology, shaping how we interact with machines.
This guide aims to demystify HMI, covering its essentials, diverse screens, software components, and emerging trends. Whether you’re a tech professional or new to this domain, our insights will deepen your understanding of HMI and its pivotal role in modern technology.
Disclaimer: This article was shaped as the result of my experience in serving customers who needed HMI development services. At Scythe Studio we got a unique opportunity to work on various HMI projects for customers focused on different industries (▀̿Ĺ̯▀̿ ̿).
The most popular expansion of the HMI acronym is the Human-Machine Interface. However, I strongly believe that Human-Machine Interaction is the most to-the-point abbreviation. The essential point is that it doesn’t matter what the interface is. It can be a touchscreen display, but it can be also a set of physical controls, switches, knobs, levers, and other controls.
In some HMI systems, the way of interaction between humans and machines may be sending data over some sensors that scan the space. As, for example, at self-service checkouts in Decathlon (at least in my place). So there is really no visible interface there, but still, there is an interaction with a machine level 🤖.
The essence of HMI lies in creating a user-friendly and intuitive medium for this interaction, ensuring that machines are easily controllable and their feedback to users is clear and actionable.
Human-machine interfaces are used across various industries, revolutionizing how professionals interact with technology. At Scythe Studio, we have specialized in tailoring HMI solutions to meet the unique needs of several key sectors.
Medical: In the medical field, our HMI solutions are pivotal. We enhance healthcare technology from advanced medical imaging software to surgical robotics. This sector is one of the purest examples of what HMI actually is. There is usually a machine doing the actual job (whatever it is, depending on the branch of the medicine), but the control system is supervised by experienced medical staff.
In the case of the medical sector, a modern and simple user interface for the need for visual representation is a must. That’s why medical systems often get touch screens. If you are from this industry, you can check out our medical software development offer.
Industrial Automation: The heart of industry thrives on automatic control operations and here HMI solutions are the driving force. With a need to control process, prevent human error, and visualize data, heavy industrial machines deserve a proper HMI system.
A typical production line consists of multiple machines controlled by humans. Thanks to introducing HMI in this sector, it’s possible to monitor production and increase productivity. For this sector we integrate SCADA, PLC, and CAD systems to streamline production and process management, paving the way for a more efficient production line.
Automotive: Are you familiar with these touch screens with fancy graphical user interfaces that are placed in new cars? It’s an excellent example of an HMI screen. Such systems are complex and often are built on more than just one screen. They play the role of a control system allowing the driver to get the data and control car’s settings simultaneously 🚗.
There are a lot of tools behind HMI technology in this sector and you wouldn’t believe how large systems are placed under the dashboards of cars. Modern HMI for cars offers visual representations of on-road happenings, remote data acquisition, and first of all, high performance.
Electronics and IoT: In the realm of electronics and IoT, HMI solutions bring a new level of interaction. Features like remote access, Bluetooth integrations, and MCU optimizations are key in bridging the gap between users and their smart devices, elevating the overall user experience.
The introduction of Human-Machine Interface (HMI) systems brings many benefits across various industries. At Scythe Studio, we’ve seen first-hand how effectively implemented HMI solutions can transform operations, enhance user experiences, and drive innovation. Here are some of the key advantages:
Increased Efficiency: HMIs streamline interactions between humans and machines, leading to more efficient processes. This efficiency is especially critical in industries like manufacturing and automotive, where time and precision are of the essence.
Enhanced User Experience: By making machines more intuitive and easier to operate, advanced HMI significantly improves the user experience. This is vital in sectors such as medical and consumer electronics, where ease of use can directly impact effectiveness and satisfaction.
Improved Safety: In environments like industrial automation, HMIs contribute to safety by providing clear, concise controls and feedback. This minimizes the risk of human error, which is crucial in high-stakes settings.
Real-Time Data and Feedback: With HMIs, operators receive real-time data and feedback from remote monitoring, which is necessary for making informed decisions quickly. This aspect is especially beneficial in IoT and automotive applications.
Customization and Scalability: HMI systems can be customized to meet specific needs and scaled as requirements evolve. This adaptability ensures that HMI solutions remain relevant and effective over time.
By integrating HMI into their systems, industries can reap these benefits, leading to more productive, user-friendly, and safe environments.
To illustrate the versatility and application of HMI systems, let’s explore some practical examples. The goal of this section is to help you visualize what HMI can be.
If you take a look at the visualization below you will see the robot supplemented with an advanced HMI which was one of the projects we had to deliver. In this case, HMI provides surgical staff with a user-friendly interface. The application blends typically medical solutions like DICOM or PACS with hardware integration, so users can perform the surgery much safer and with a greater chance of success.
Do you recognize those big touch screens that are so commonly placed on the dashboards of new cars? Big players like Mercedes-Benz invest a lot of resources to offer their customers the most modern HMI on the market. Automotive is therefore one of the main sectors employing HMI technology.
In-vehicle systems are more complex than you may think at first glance. They not only consist of numerous underlying components but there is often a case that there is more than one screen. For example, there may be one right behind the steering wheel and another one on the dashboard. If you want to read more about our Qt Automotive Cockpit case study and how we delivered this project, take a look at this page.
In the context of Industry 4.0 and the Industrial Internet of Things (IIoT), HMIs have become a cornerstone in modern industrial machinery management. They enable operators to efficiently manage and monitor machinery woven into the IIoT network.
Heavy machines are not the only possible example here. If you think about a coffee machine or a vending machine. Such constructions are also machines of some type, so they require HMI to let humans play with them. As an interesting example, I can mention that in the past, we developed a project for a small, home-appliance machine used to cut cheese and meat 😄.
You should already have a feeling that HMI is quite a broad topic and such a system can be used to control a factory floor with an entire manufacturing line, but also it can be a single specific device with a single HMI screen. Let’s now explain what builds HMI.
This part may be obvious to some of you, but people often forget that there would be no HMI without an actual machine, so physical devices are steered by human operators. First of all, there has to be an actual device, and then we may think about the way to control it.
So, how is this part built? Under the hood, there are a lot of electronics and robotics programmed with low-level technologies. You may also not notice that, but inside the device enclosure, there may be multiple microcontrollers, microcomputers, and other stuff connected with numerous wires over different ethernet ports and other interfaces.
The machine is usually as complex as the actual industrial process, so it’s impossible to list exactly all the elements that create the HMI system as it’s also a very custom process.
If you want to learn more about embedded programming, check out this blog post.
The actual trend is to replace physical controls with HMI screens with proper user interfaces that allow the display information or operate the machine’s control system. Such screens are often touchable.
There are several reasons why introducing touch screens is so popular nowadays. First of all, fewer operations and sequences are done manually by human operators. Things are processed automatically and the role of the man is reduced to supervisory control, so there is even no need for more physical controls.
Another reason is the fact that when you have a product that is almost ready to be published or it’s already in the market, then you can’t make a change in its physical controls. All the buttons and levers are already there and doing a last-minute upgrade could be at least cumbersome. With more software solutions you can introduce those late changes any time or after product release with Over-the-air (OTA) updates.
Moreover, it’s usually cheaper to put another feature in the software application rather than to design a physical element to control the same thing.
HMI and PLC integration is an important part of many machine systems. Let’s break down how they work together:
What is PLC?: PLC stands for Programmable Logic Controllers. Think of it as the brain of a machine. It controls what the machine does and how it responds to different commands.
How HMI and PLC Work Together: The HMI (which is like a screen or control panel) lets people give commands to the machine and allows data acquisition. When someone uses the HMI, they might press a button or adjust a setting. The PLC then receives these instructions from the HMI.
Communication Between HMI and PLC: After getting instructions from the HMI, the PLC makes the machine do what it’s supposed to do. At the same time, the PLC sends information back to the HMI. This lets people see what the machine is doing right now and if everything is working properly.
The flexibility of PLCs: PLCs are very adaptable. They can work with many different types of machines and systems. This is because they can use various ways of sending and receiving information, known as communication protocols.
HMI software forms the core of any human-machine interface, and choosing the right components is crucial for a successful implementation. At Scythe Studio, we bring a wealth of experience and expertise to this selection process, ensuring that each HMI ecosystem is perfectly tailored to its specific application.
System Layer Choices: The foundation of HMI software lies in its system layer, and here, the choices are diverse. We work with various operating systems to best suit our clients’ needs, ranging from Windows and Windows Embedded to desktop and embedded Linux systems. Our expertise particularly shines in high-performance embedded Linux environments, like those using Yocto, as well as in more streamlined setups on bare metal or MCU (Microcontroller Unit) where an operating system might not be necessary.
Software Development Language: The choice of programming language is pivotal. While there are several options like C++, C#, Python, and Rust, we at Scythe Studio advocate for C++. Our extensive experience in C++ enables us to leverage its capabilities to the fullest, ensuring robust and high-performance software development.
Software Development Framework: When it comes to developing the user interface and other software components of HMI, selecting the right framework is key. While there are several frameworks available, our discussion on the best software technologies for HMI will delve deeper into this topic, particularly focusing on the Qt framework – our area of special expertise.
In conclusion, crafting the perfect software for the HMI project is about balancing the right system layer, choosing the most suitable programming language, and selecting an appropriate development framework.
SCADA, or Supervisory Control and Data Acquisition, is a system used for monitoring and controlling industrial processes. Integrating HMI into the SCADA system significantly improves the management of every industrial process. This integration offers a user-friendly approach to data acquisition, allowing operators to effortlessly interpret and use the information collected.
In addition, the HMI provides an intuitive interface with the control system, enabling efficient monitoring and adjustment of operations. Operators can easily modify control settings through the HMI, effectively responding to the changing demands of the industrial environment. SCADA system not only improves operational efficiency (in more than one location) but also contributes to greater accuracy and safety.
Initiating HMI development is a structured process that ensures the final product effectively meets the needs of controlling machinery and managing control processes. Here’s a streamlined overview:
Stakeholder Interviews: The journey begins with engaging stakeholders in detailed interviews. These discussions are crucial for gathering data and insights that shape the project’s direction, ensuring the system aligns with specific needs and goals.
Defining Project Strategy: Next, we define the development strategy, considering options like Proof of Concept (PoC) or Minimum Viable Product (MVP). This stage includes setting timelines, making estimations, and planning resources, all based on the initial data gathered.
Designing UX/UI and Architecture: The design phase focuses on crafting user-friendly design elements and planning the architecture of both software and hardware components. This phase is pivotal in determining how users will interact with the HMI and ensuring seamless integration with SCADA systems.
Agile Development: Development proceeds in an Agile manner, allowing for flexibility and continuous improvement based on ongoing data analysis and feedback. This approach ensures that the HMI solution is adaptable and meets evolving requirements.
Certification: Depending on the industry, the final step involves certifying the system. This is essential to ensure compliance with industry standards and regulations, particularly when the HMI is used to control processes and machinery.
This process outlines a comprehensive approach to HMI development, balancing technical precision with user-centric design.
In the world of HMI development, a key decision is choosing between custom solutions and ready-to-use WYSIWYG (What You See Is What You Get) systems. WYSIWYG solutions offer a quicker, often more budget-friendly route, allowing users to create HMI screens using pre-existing visual components. These are ideal for straightforward applications, particularly in industrial settings where aesthetics are less critical. However, they can have limitations in flexibility and may not suit all needs, especially in complex scenarios.
Custom HMI development, conversely, involves a comprehensive process to tailor the solution precisely to specific requirements. This approach offers greater flexibility and ensures that the final product can handle unique challenges without any unforeseen limitations. While typically more expensive and time-consuming, custom solutions provide a higher level of optimization and integration, particularly beneficial for complex systems or unique operational needs. With custom solutions, you also have more influence on how effective the system is which leads to high performance.
At Scythe Studio we choose between both approaches individually in each case while providing our HMI development services. Usually automotive and medical sectors are the ones that require custom solutions every time.
At Scythe Studio, we choose the Qt framework for HMI development, recognizing its excellence in creating dynamic and visually appealing graphical user interfaces. Utilizing Qt Quick and its QML language, we craft modern, touch-enabled HMI displays that stand out 🙂.
Qt’s cross-platform capabilities make it ideal for a wide range of applications, including those with limited hardware resources. To delve deeper into why Qt is our preferred choice and to learn more about its capabilities, we invite you to read our detailed blog post: “What is Qt Framework and How to Create GUI with It?”.
In today’s age of digital advancements, it’s really important to make sure that the design of the HMI gives users a great experience. The UX/UI design proces is something that you can’t neglect. It doesn’t matter whether you are into industrial HMIs or advanced medical screens. The user must have everything at hand and finish operating the system with satisfaction.
That’s why we recorded a video talk on YouTube on Best Practices for UX/UI Design for HMI displays
with Martina – our designer. I recommend adding this video to your “Watch Later” list as it’s one of the ways to get more insights on what work on HMI technology looks like 😛! Below are the main points we talked about.
A user-centric approach is fundamental in UX/UI design for HMIs. Understanding the operator’s background and physical context is crucial. For instance, in industrial settings like factories or construction sites, operators may be wearing gloves, suggesting the need for larger buttons and more tactile interfaces. This approach ensures that the design is tailored not just to the task, but also to the user’s physical attributes and working conditions, enhancing usability and reducing errors.
The operation environment significantly impacts HMI design. For outdoor use, factors like natural light demand careful consideration of screen brightness, color contrasts, and glare reduction. In medical environments, where screens might be covered with sanitary foils, sensitivity to touch and clarity under such covers become crucial. These environmental considerations ensure that the HMI remains functional and effective in varying conditions, maintaining user efficiency and satisfaction.
Simplicity and accessibility are key in HMI UX/UI design. The goal is to make interfaces intuitive and easy to navigate, minimizing complexity and cognitive load for the user. This involves clear labeling, consistent layout, and prioritizing essential functions. Simplified interfaces not only enhance the user experience but also ensure that the system is accessible to a wider range of users, regardless of their technical expertise.
Uff, if we take a look at the headlines of this blog post, we could take them all and craft a separate blog post for each. That’s how broad the HMI technology topic is 🧐! Saying that HMI is used only to control machinery is a simplification. HMIs lead to significant advancements in how the business operates.
If you feel convinced, contact us, and let’s talk about making your ideas real.
Let's face it? It is a challenge to get top Qt QML developers on board. Help yourself and start the collaboration with Scythe Studio - real experts in Qt C++ framework.Discover our capabilities
Regular readers of our blog, know that we try to write posts on various topics related to programming in Qt […]
On our blog, we have repeatedly covered various ‘branches’ of Qt-a such as 3D, Android, DBus, etc (the latter topic […]
We cover Qt-related issues on our blog, but only recently realized that many of our readers may not even know […]