By paul ~ January 14th, 2009. Filed under: Announcements, Systems Engr., Tips & Tricks.
I guess we’ve all encountered gadget user interfaces that were less than optimal, if not outright stupid. Huge numbers of embedded devices with touch screens are appearing on the market. Given this flood of tactile deprivation, I was thankful to see Niall Murphy’s recent article on Embedded.com with some very helpful UI “design tips”. If you’re designing an embedded system and considering the use of a touch screen, please, please read his article.
Something Niall does not mention in his article is the role that virtual prototyping can play in getting your user interface design right. If you’ve read the Digital Imaging With ARM and Voice Interactive Nav/Com case studies, you’ve seen some examples of how Foresight can be used to help. In the former, Altia Design is used to prototype a digital camera interface. In the latter the device is voice interactive and the UI behavior is entirely handled via audio.
The power of this approach comes from the fact that not only the placement and type of controls (or voice commands) can be visualized, but the behavior of the system can be accurately simulated. This enables Human In the Loop simulations where a user can interact with the system in real-time. Experiments with alternative interaction strategies, control placement, etc. can be rapidly performed in a virtual environment resulting in quick convergence on a graceful solution. Mechanical prototypes can be linked to the simulation in the same way in order to evaluate a UI with mechanical controls.
For very complex systems with training requirements, the resulting virtual prototype can be used in the development of training materials and training delivery. Foresight’s CoderC++ product makes it possible to compile simulations into stand-alone executables that can be easily (and freely) delivered for evaluation and training purposes.
Human-Machine Interface (HMI) design using virtual prototyping is really part of an overall model-based systems engineering flow and can be invaluable in flushing out all of those tiny little interaction requirements that are often overlooked. Creating a user interface that meets the basic IO requirements is easy. Creating a user interface that users coo over is an entirely different matter, and that’s what we really want to accomplish.