Projet IHM - Système HUD pour voiture

HUD

Objectif : programmer un prototype purement graphique d'un système d'information en vision "tête haute" pour voiture.

Compteurs, témoins, système audio, climatisation, GPS, ... Intégrer la lecture de tous ces éléments dans un tableau de bord devient un casse tête pour les ingénieurs et les utilisateurs. Pour satisfaire autant le besoin d'information, que la facilité de lecture et la sécurité, les constructeurs peuvent faire appel à la technologie de l'affichage tête haute. Ce procédé consiste à projeter sur le pare-brise les informations nécessaires en fonction du moment ou des souhaits du conducteur. Cette technologie est couramment utilisée dans l'aviation par exemple comme collimateur de chasse ou aide au positionnement pour l'atterrissage. Malgré sa récente apparition dans l'Hexagone, l'affichage tête haute (ou HUD, Head Up Display) n'est pas une invention. Le système, mis au point au début des années 1970, a d'abord été installé sur des avions de chasse puis s'est lentement diffusé dans l'aviation civile. General Motors fut le premier constructeur automobile à proposer dès 1988 le HUD sur une voiture de série avec la Pontiac Grand Prix. Mais cette nouvelle option n'a pas connu un franc succès car la technologie employée était rudimentaire et encombrante. Seule la vitesse était affichée sur le pare-brise et un volumineux projecteur à lentille devait être incrusté dans le tableau de bord. La nouvelle génération de HUD s'avère nettement plus convaincante. Mieux intégrée, elle se révèle bien plus utile, puisque les informations à délivrer au conducteur sont aujourd'hui plus nombreuses. Le choix des informations projetées sur le pare-brise est laissé à l'appréciation du constructeur automobile, qui reçoit d'une société tierce une interface programmable. Il est par exemple possible de faire apparaître la vitesse, le nombre de tours/mn, la vitesse de freinage, les indications de navigation ou encore des messages d'alerte, tels que la chute de pression d'huile. La taille et le volume des données représentées peuvent être sélectionnés à l'aide de l'interface.


Cahier des charges

Le prototype se veut une simulation d'un système HUD pour voiture. Au lancement du programme, celui doit donc afficher une vue fixe du pare-brise, afin d'afficher les différentes informations, et d'une partie du tableau de bord pour offrir une forme d'interaction avec l'affichage. La surface d'affichage doit être équivalente à une feuille A5, ramenée au dimension du prototype. Des informations par défaut doivent être visibles au lancement du programme, pour d'une part démontrer le bon fonctionnement du HUD et d'autre part mettre en évidence les préférences du conducteur (du constructeur lors de la première utilisation).

Les informations à afficher sur le pare-brise peuvent se diviser en trois catégories :

  • des informations standards : vitesse, kilométrage, niveau d'essence, consommation, régulateur de vitesse, ...
  • des informations de sécurité : pression d'huile, température du moteur, état des pneus, dysfonctionnement (air bag, ABS, ESP, injection, ...), alerte collision, vitesse conseillée en fonction de l'état de la route, ...
  • des informations de confort : heure, station de radio RDS ou piste de musique, climatisation, positionnement GPS, téléphonie GSM, ...

L'interface graphique utilisateur

Elle devra mettre à disposition des contrôles permettant au conducteur :

  • de sélectionner un sous-ensemble des informations qu'il souhaite afficher par défaut et d'enregistrer ses préférences,
  • de sélectionner une information particulière, soit de façon permanente soit de façon temporaire,
  • de revenir pendant un laps de temps aux informations par défaut, si l'information particulière est permanente,
  • d'interagir avec l'information courante, en adaptant les fonctions des contrôles.

De plus, elle offrira la possibilité de lancer une ou plusieurs pannes (explicitement par un contrôle ou au hasard durant la simulation) et de modifier l'affichage en conséquence. Sur ce point, il est important de noter qu'une hiérarchisation des alertes doit être faite (certaines sont prioritaires par rapport à d'autres si elles se produisent en même temps).

De nombreuses solutions innovantes sont possibles. Citons rapidement l'adaptation de l'affichage au condition de conduite (de jour ou de nuit par exemple), l'ajout d'une touche "secours" pour la téléphonie à bord, une assistance de navigation sous la forme d'une image de voiture factice qu'il suffit de suivre (cette idée a fait l'objet d'un brevet de la part de Microsoft), etc.


Programmation

L'ensemble du projet devra être écrit en TclTk exclusivement, mais avec l'aide de la bibliothèque tkpng qui permet d'afficher des images au format PNG et dont le principal intérêt dans le cadre de ce projet est de pouvoir gérer le canal alpha des couleurs. L'utilisation des namespace est recommandée. De même, il est indispensable de construire ce projet modulairement, seule approche succeptible de garantir au minimum les principes d'encapsulation, de protection et de réutilisabilité. Vous pouvez utiliser tout module disponible sur le net (écrit en TclTk) augmentant l'ergonomie et/ou la présentation de votre application (attention cependantà la surenchère, rarement synonyme de qualité).


Notation

La notation de ce projet prendra en compte le respect du cahier des charges, la qualité de la programmation (robustesse, lisibilité et modularité de votre code) ainsi que les aspects propres à une IHM que sont : cohérence, concision (limitation du nombre d'intervention de l'utilisateur), structuration des activités (décomposition d'une tâche complexe), flexibilité (application personnalisable), retour d'informations et gestion des erreurs, toutes choses qui garantissent une interface ergonomique et intuitive et qui n'apparaissent pas explicitement dans cette présentation.