Dans un monde porté par une évolution technologique rapide, l'architecture MicroHMI peut véritablement changer la donne. Il y a quelque temps, un concept nouveau et révolutionnaire a occupé le devant de la scène dans le secteur des Interfaces Homme-Machine (HMI), à savoir le MicroHMI. Cette nouvelle approche s'inspire du modèle des microservices et repense la façon dont nous concevons les interfaces entre l'homme et la machine. Dans cet article, nous vous montrerons ce que sont les MicroHMI et pourquoi vous devriez vous y intéresser.

En général, les MicroHMI décomposent le système d'interface en composants plus petits et indépendants. Cette décomposition stratégique favorise une structure modulaire où chaque composant gère une tâche spécifique. Par conséquent, le développement devient plus efficace, la maintenance plus simple et l'adaptabilité accrue, faisant de MicroHMI un outil précieux pour tous les acteurs des secteurs de l'automobile, du médical et de l'électronique.

Mais commençons par le début.

Qu'est-ce que l'architecture MicroHMI ?

L'architecture MicroHMI constitue un moyen de créer une compréhension large HMI (Human Machine Interface) selon une approche similaire aux microservices bien connus. Avec les MicroHMI, l'équipe de développement peut séparer les couches et les parties individuelles de notre système, sur lesquelles elle peut ensuite travailler au sein d'équipes plus restreintes, ce qui permet de travailler en parallèle et de manière indépendante, en implémentant davantage de fonctionnalités du logiciel créé.

Où MicroHMI peut-il être utilisé ?

Dans cette approche, l'interface utilisateur d'un appareil ou d'un système est simplifiée et épurée pour ne conserver que les éléments et les interactions les plus essentiels. Cela étant dit, MicroHMI peut être utilisé avec succès dans les applications suivantes :

  • Systèmes IT industriels: MicroHMI s'avérera efficace pour le contrôle des machines et la surveillance des processus.
  • Dispositifs médicaux: Les équipements médicaux nécessitent souvent des interfaces simples et claires pour garantir que les utilisateurs (par exemple, les infirmières ou même les patients) puissent les utiliser seuls, sans risque d'erreur.
  • Électronique grand public– Retour vibrotactile – utilise de subtiles vibrations, couramment présentes dans les téléphones et les appareils portables.
  • Applications et systèmes automobilesEnfin, MicroHMI peut être utilisé dans les véhicules, en particulier dans les situations où le conducteur doit être le moins distrait possible ; MicroHMI peut être employé pour afficher des informations critiques et des commandes sans submerger le conducteur avec des fonctionnalités inutiles. C'est exactement ce que nous voulions accomplir avec notre modèle Wavey, que nous aborderons prochainement.

Architecture MicroHMI dans un projet commercial

L'architecture MicroHMI peut être utilisée dans un certain nombre de cas dans des projets commerciaux. Le choix est souvent dicté par la nature du travail et l'environnement de développement d'un grand projet difficile à maintenir en tant que monolithe.

L'un des utilisateurs commerciaux de la technologie MicroHMI est un constructeur automobile de premier plan. Leur système entier est divisé en dizaines d'applications et de services, gérés par des équipes distinctes disposant de leurs propres dépôts. Pour livrer les dépendances dans l'environnement de développement, ils utilisent Conan. Ainsi, les composants individuels sont livrés sous forme de packages prêts à l'emploi.

La construction du système final se présente différemment. L'ensemble de l'application est réalisé à l'aide de Yocto, et chaque équipe crée et maintient des recettes définissant les composants dont elle est responsable. La communication entre les applications et les services s'effectue via des interfaces standardisées et bien définies, générées à partir de fichiers IDL, tels que Thrift ou QFace.

L'architecture MicroHMI dans un projet aussi vaste comportant de nombreux composants, souvent indépendants les uns des autres, facilite la répartition des tâches et des responsabilités entre les équipes.

Quels sont les avantages de l'architecture MicroHMI ?

Diviser pour régner est une méthode courante pour résoudre un problème complexe en le décomposant en « sous-problèmes » plus petits. C'est ce que propose MicroHMI, et c'est de loin le plus grand avantage de cette solution. MicroHMI permet de diviser le système en « blocs » plus petits, ce qui rend le projet beaucoup plus facile à gérer, plus simple à étendre et moins compliqué. Il est également important de souligner qu'avec MicroHMI, il est plus facile de répartir le travail entre des équipes plus petites. Par conséquent, les conflits sont moins nombreux, plusieurs étapes du travail peuvent se dérouler simultanément et le travail se déroule sans heurts.

C'est encore une idée très récente, mais MicroHMI peut même être utilisé dans des projets de R&D. C'est ce que nous avons décidé de faire avec notre projet – Wavey. Mais là encore, commençons par le début.

Pourquoi utiliser une telle architecture dans un projet de R&D ?

Nous voulions essayer quelque chose de nouveau ici chez Spyrosoft. Parallèlement à l'architecture MicroHMI, nous avons également décidé d'utiliser la méthodologie Dual-Track Agile, qui, en termes simples, nous a permis de travailler en étroite collaboration avec l'équipe de développement et les designers. Cela nous a permis, à son tour, d'introduire rapidement des changements et des ajustements au stade du développement, et pas seulement lors du processus de vérification. De plus, cette approche a permis de combiner la phase de découverte avec la phase de mise en œuvre.

Ce que nous avons fait était également le résultat direct des besoins de notre client. Souvent, les méthodes plus anciennes et « éprouvées » nous empêchent de nous arrêter et de réfléchir réellement, dès la phase initiale de création, pour déterminer si ce que nous nous apprêtons à livrer est un élément approprié et adapté de notre système. Le plus souvent, nous nous précipitons au départ et tentons de livrer autant que possible, pour ensuite nous arrêter après un certain temps et réfléchir à la partie réellement utile et à ce que nous devrions écarter. Nous voulions tenter de mettre fin à ce « cercle vicieux ».

Guider la sélection des techniques des Annexes A et B pour atteindre la capacité systématique logicielle.

Wavey : un système IVI construit à partir de MicroHMI

Wavey est notre projet de R&D. En substance, il s'agit d'un IVI – système d'infodivertissement embarqué, basé sur Android Automotive et technologies Qt. Wavey est notre façon de créer un système IT innovant dans une voiture, pouvant être contrôlé via l'écran, reconnaissant les gestes et les interactions, placé au milieu de la console de la voiture. Il y a également un grand écran panoramique sur lequel l'ensemble du système peut être affiché.

microhmi wavey repository
Dépôts Wavey

L'essence de cette idée est de faire fonctionner l'ensemble du système sans quitter la route des yeux – l'écran gestuel permet d'effectuer toutes les actions dans le système, et l'écran panoramique lui-même sert uniquement à afficher le système et l'interaction utilisateur (il n'est pas tactile).

En fait, ce projet était très intéressant et prometteur sur le plan de l'architecture et de la phase de son développement. Nous avons divisé le dépôt de Wavey en dépôts plus petits, où chaque dépôt était responsable d'une partie unique et indépendante du système, à l'image de l'architecture microservices (par exemple, les applications, la base système, les composants partagés, etc.).

Nous avons décidé que chaque dépôt générerait des packages, qui étaient ensuite automatiquement téléchargés vers le dépôt principal (SystemUI). Pour cela, nous avons utilisé un outil populaire appelé Conan. Le projet a été déployé sur la carte Qualcomm SA8155P, qui était basée sur Android Automotive.

Le système de gestion des applications que nous avons utilisé est un module Qt appelé Qt Application Manager. Nous avons également utilisé AppMan, une solution qui nous a permis d'exécuter à la fois les applications que nous avons développées en Qt et les applications natives Android. Un module tout aussi important que nous avons utilisé est le Qt Interface Framework – un module utilisé pour créer et générer du code middleware en très peu de temps. Grâce à cette solution, nous avons pu connecter la logique métier à la couche visuelle.

microhmi conan package registry
Registre de paquets Conan

Quels ont été les défis liés à ce projet et à MicroHMI ?

La phase initiale du projet a été particulièrement délicate ; inventer l'ensemble du concept, préparer toute l'architecture du système et mettre en place le CI/CD, le raffinement itératif de la base de données a demandé du temps et du travail. Au début, nous avions l'impression que c'était excessif – notre approche exigeait plus de travail par rapport à une architecture monolithique classique.

Cependant, avec le temps, nous avons constaté les avantages de cette solution et acquis beaucoup d'expérience et de connaissances précieuses, que nous nous efforçons de transmettre et d'utiliser dans d'autres projets auxquels nous participons. De plus, la facilité et la rapidité d'intégration de nouvelles personnes à chaque nouveau projet ont prouvé qu'accomplir davantage de travail au début en valait vraiment la peine !

En conclusion

L'architecture MicroHMI offre de nombreux avantages remarquables, notamment la flexibilité, l'évolutivité et la facilité de modification. De plus, cette solution améliore l'ergonomie, en particulier pour les systèmes automobiles, les commandes industrielles et l'électronique grand public. Elle réduit les erreurs des utilisateurs, accélère les interactions et garantit une communication transparente et efficace entre l'humain et la machine. Le résultat ? Une ergonomie complète et une expérience utilisateur inégalée.

Pour ces raisons, les conceptions d'IHM les plus efficaces allient souvent le tactile au retour haptique. Contactez-nous ou consultez notre Services de développement HMI si vous souhaitez en savoir plus ; nous serons ravis de vous montrer la démonstration de notre système et de parcourir le concept et les idées qui le sous-tendent.