Fusion multi-capteurs pour table tactile
Enseignants: Didier Donsez
Client: DIGITALE
Eleves RICM5: Maxence Raoux (Responsable Communication), Léopold Dauvergne
Objectif
L'objectif de ce projet est de mettre en place des méthodes permettant à la table tactile de Digitale d’interagir avec son environnement extérieur sans action physique des utilisateurs.
Projet
Pour arriver à remplir l'objectif, il faut recourir à l'utilisation de capteurs disposés autour de la table. L'application se devant d'être évolutive, une architecture modulaire sera à mettre en place.
Capteurs
Suite aux différentes recherches effectuées, nous avons choisit d'utiliser des capteurs à ultrasons. Ceux ci permettre d'avoir une bonne précision et possède le meilleur rapport qualité/prix existant sur le marché.
Le capteur choisi pour les expérimentations est le HC-SR04 que voici :
Ses caractéristiques sont :
- Power Supply :5V DC
- Quiescent Current : <2mA
- Effectual Angle: <15°
- Ranging Distance : 2cm – 500 cm/1" - 16ft
- Resolution : 0.3 cm
La datasheet est disponible ici.
Les capteurs seront idéalement placé sous l'écran de la table, le long des bordures, comme dans l'illustration ci dessous:
Software
Pour la partie software, nous avons utilisé le langage C# et avons développés plusieurs modules orientés autour d'un bus à messages dont voici un schéma:
Concernant le bus à messages, nous utilisons un produit développé par le CENA nommé Ivy. Le site internet du projet est disponible ici. Pour rendre l'utilisation de la bibliothèque Ivy plus agréable à utiliser, et l'adapter au projet, nous avons créer une bibliothèque qui est utilisée dans chaque module. Elle permet par exemple de faire une connexion automatique sur le port et adresse réseau de l'application, mais surtout d'améliorer la réception et envoi de messages sur le bus Ivy. En effet cette bibliothèque gère les messages sous forme d'objets et non de comme de simple chaînes de caractères. De plus cela rend l'application plus maintenable puisque toute la gestion des messages est écrire dans une unique bibliothèque.
Le module d'écoute des capteurs permet de récupérer l'information générée par les Arduinos connectés aux différents ports COM et d'envoyer ces informations "brutes" sur le bus Ivy. Pour récupérer les informations provenant des capteurs, nous avons modifié ce programme destiné à la plateforme Arduino. Ce module possède une interface graphique de configuration pour sélectionner les ports COM sur lesquels sont connectés les Arduinos. Actuellement un seul est sélectionnable dans l'interface et un seul thread d’écoute est lancé. Mais l'évolution du programme vers plusieurs se résume à une ligne de code si nécessaire.
Le module de traitement permet de récupérer les informations des capteurs envoyés sur le bus et de les traiter. Dans le cadre de notre projet il ne reçoit et traite seulement les messages envoyés par les capteurs ultra-sons. Une évolution vers différent type de capteurs se résumerai donc à l'abonnement sur le bus Ivy d'autre type de messages et à leurs traitements. Le traitement des informations consistes à générer des messages de plus haut niveau et ainsi abstraire les informations qui proviennes des capteurs, cela permet donc de proposer plusieurs services qui sont chacun basés sur un ou plusieurs types de capteurs. Ces informations sont ensuite à nouveau transférées sur le bus Ivy. Pour notre projet deux messages sont générés. Présence et position. Présence signale l'arrivé et le départ d'une personne, et position donne la position de la personne autour de la table ainsi que sa distance par rapport à elle.
L'application client est dans notre cas une application de démonstration technologique qui affiche des fenêtres suivant le mouvement des utilisateurs autour de la table. Elle est basée sur le sdk Microsoft Surface.