Qui ont toujours à mon côté pour me soutenir et me guider au long de ce projet.



Documents pareils
Tutorial Terminal Server sous

LES TABLETTES : GÉNÉRALITÉS

Sommaire. Leap motion Technologie Fonctionnement Langages utilisés Possibilités d utilisation... 4

Introduction à Windows 8

Bibliothèque numérique

Preliminary Spec Sheet

Chapitre 1 L interface de Windows 7 9

Manuel de l utilisateur. Soft-phone - Client VoIP 3CX Version 6.0

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

µrv : Realité Virtuelle

l'ordinateur les bases

Devenez un véritable développeur web en 3 mois!

Guide d'installation Application PVe sur poste fixe

Un ordinateur, c est quoi?

Composition d un ordinateur :

Point sur les solutions de développement d apps pour les périphériques mobiles

Optimiser pour les appareils mobiles

Installation & Mode d emploi WL400 Adaptateur/Antenne Wifi

Sélection du contrôleur

Environnement logiciel open source pour la création d œuvres artistiques interactives

ENTREPRISE SANTÉ ORGANISME PUBLIC

Lutter contre les virus et les attaques... 15

Sécurisation du réseau

avast! EP: Installer avast! Small Office Administration

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

ndv access point : Utilisation

Assistance à distance sous Windows

Organiser le disque dur Dossiers Fichiers

5 bonnes pratiques pour solution décisionnelle mobile

SQL Data Export for PS/PSS

Découvrez Windows NetMeeting

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

Architecture distribuée

Groupe Eyrolles, 2006, ISBN : X

Mettre en place un accès sécurisé à travers Internet

Les nouveautés d AppliDis Fusion 4 Service Pack 3

SQL Server Installation Center et SQL Server Management Studio

MANUEL DU SERVICE CENTER

Table des matières ENVIRONNEMENT

Installation.Net Framework 2.0 pour les postes utilisant Windows 8/8.1.

Alcatel OmniPCX Office

Installation et prise en main d UBUNTU

WINDOWS 8. Windows 8 se distingue par la présence de 2 interfaces complémentaires :

Mise à niveau de Windows XP vers Windows 7

LA RECONNAISSANCE VOCALE INTEGREE

UserLock Guide de Démarrage rapide. Version 8.5

Installation d'un serveur DHCP sous Windows 2000 Serveur

Copyright 2002 ACNielsen a VNU company. Découverte des solutions 3CX Aperçu des avantages produit

LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE. Bonne utilisation à toutes et tous! UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE

LE MICRO ORDINATEUR. Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables

13) Calibrage du tableau Interwrite Dualboard

Ocularis. NOVADIS 14 place Marie Jeanne Bassot Levallois Perret Tel : +(33) Fax : +(33)

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

ARTICLE ORGANISONS UNE FÊTE D ANNIVERSAIRE!

But de cette présentation. Bac à sable (Sandbox) Principes. Principes. Hainaut P

Linux embarqué: une alternative à Windows CE?

Groupes et utilisateurs locaux avec Windows XP

UTILISER LA MESSAGERIE

Virtualisation de Windows dans Ubuntu Linux

Ajouter de la mémoire à son ordinateur

KIELA CONSULTING. Microsoft Office Open Office Windows - Internet. Formation sur mesure

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

The Grid 2: Manuel d utilisation

MEGA ITSM Accelerator. Guide de démarrage

L ordinateur portable VAIO

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

CONTACT EXPRESS 2011 ASPIRATEUR D S

Présentation du PL/SQL

Manuel Utilisateur Version 1.6 Décembre 2001

On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (

Fonctionnement de Windows XP Mode avec Windows Virtual PC

Dispositif sur budget fédéral

Guide de l administrateur de mexi

Configuration requise Across v6 (Date de mise à jour : 3 novembre 2014)

Installation EPLAN platform 2.4

Pourquoi choisir les produits 3CX? Principales caractéristiques et avantages uniques. a VNU company

Environnements de développement (intégrés)

Comment enregistrer simplement toute musique restituée par votre PC

EIP 2012 Projet Livepad. Documentation technique 1.5

Il est courant de souhaiter conserver à

MANUEL D INSTALLATION

Initiation à l informatique. Module 7 : Le courrier électronique ( , mail)

Tutoriel déploiement Windows 7 via serveur Waik

NOTICE DE EOBD-Facile Pour Android

Prise en compte des ressources dans les composants logiciels parallèles

MEMENTO D'UTILISATION Du T.N.I. SmartBoard (Version )

Manuel du Desktop Sharing

Introduction à Microsoft InfoPath 2010

LA MOBILITE : ACTEURS, OUTILS,

Eliminer les zones d ombre et fournir une identité utilisateur sur le pare-feu dans un environnement client léger

et de la feuille de styles.

TAGREROUT Seyf Allah TMRIM

Scratch : programmation objet facile pour tous

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

Ceci est un Chromebook, ton ordinateur!

Transcription:

1/ 15 Remerciement Tous mes sincères remerciements à Monsieur GIOT, Rudi pour m avoir guidé, aidé, suivi et donné les conseils, les explications précieuses tout au long de ce bureau d étude. Et particulièrement à : Monsieur GARCIA ACEVEDO Salvador, Monsieur TICHON Jacques, Mademoiselle DEGEEST, et toutes les autres personnes, Qui ont toujours à mon côté pour me soutenir et me guider au long de ce projet.

2/ 15 Table des matières Remerciement...1 1. Introduction...3 1.1. Objectif...3 1.2. Résumé du parcours de la recherche...3 2. Présentation du projet...6 2.1. Outils de développement...6 2.2. Description du projet...8 2.3. Première application : Serveur TUIO Stantum TUIO Bridge...8 2.3.1. Fonctionnement...8 2.3.2. Codes sources... 10 2.4. Seconde application : Client TUIO Train Remote Control... 12 3. Conclusion... 14 4. Annexe... 15 Configuration du Codeblock pour la compilation de l application Stantum TUIO Bridge. 15 Code sources... 15 NGUYEN, Mai Quang Minh 1 ère Master en Informatique Institut Supérieur Industriel de Bruxelles Last Update: vendredi, 11 Juin 2010 Email : ing.nguyenminh@gmail.com

3/ 15 1. Introduction Slate PC est un périphérique graphique multitouch combinant les différents technologies tactiles et les capteurs pour permettre aux plusieurs utilisateurs effectuent simultanément les interactions sur l appareil. Multitouch est une des technologies la plus innovante, attrayant, inimaginable à l heure actuelle. Grâce à la Technologie Multitouch, plus besoin d'un clavier ou une souri. Multitouch est la perspective de l avenir, une nouvelle génération des ordinateurs. Afin d exploiter les expériences de Multitouch, dans le cadre du bureau d étude de l ISIB, on a acheté cette tablette Multitouch nommée Stantum Slate PC, le constructeur est en France. Et on m a demandé d écrire une application Multitouch sur cette tablette évolutive. 1.1. Objectif L objectif de mon projet est d écrire une application Multitouch sur la tablette Stantum Slate PC afin de contrôler le train à distance via les commandes envoyées par le protocole TUIO. 1.2. Résumé du parcours de la recherche Avant d avoir des idées claires pour pouvoir construire ce projet, j ai fait beaucoup de recherche et testé énormément les applications Multitouch ainsi les Framework permettant d implémenter le Multitouch sur la tablette Slate PC. Voici une liste non exhaustive de mon parcours : 1. TouchLib/ CCV & les applications de NUI Group Site Résultat http://www.nuigroup.com/touchlib/ http://code.google.com/p/touchlib/ http://www.whitenoiseaudio.com/touchlib/ Mauvaise communication entre le contrôleur Multitouch (PMatrix) et l applicaiton écrite pour TouchLib et celle de NUI Group, je m explique, à l exécution du programme, tout va bien, mais pour manipuler les objets dans un jeu par exemple, j ai essayé avec 2 doigts voire plus pour faire tourner, changer, déplacer objet mais non, il ne fonctionne pas de cette manière. C est en fait dû au contrôleur de SlatePC, quand on touche l écran avec plusieurs doigts, mais le contrôleur ne détecte un seule doigt ou une position, il la traduit en coordonnées et transmet au programme du client, et donc, je ne sais pas faire du Multitouch sur ces applications, seulement Monotouch.

4/ 15 2. Microsoft Surface SDK & Surface Applications Site Description http://www.microsoft.com/surface/en/us/pages/technical/learn.aspx http://www.microsoft.com/surface/en/us/pages/product/applications.aspx Toutes les ressources indispensables (API, Librairies, Exemples ) pour programmer une application Multitouch avec Visual Studio. Résultat Ce package de développement n est pas assuré d être 100% compatible avec tous les appareils Multitouch du marché, mais au début, je voulais travailler avec un environnement convivial avec les outils puissants, celui-ci me convient bien mais pas avec la tablette Slate PC. Après d avoir exécuté la procédure d installation, tout s est bien passé, mais quand j ai lancé mon programme de teste créé avec Surface SDK, une dizaine d erreurs incompatibilité s est affichée sur l écran de la tablette. Ensuite, j ai essayé les applications faites par Microsoft (Surface application), un plantage est survenu directement dès le premier démarrage de l application. J ai donc décidé de lâcher ce Framework. 3. Application TraceCursors & UDP Message Description J ai écrit cette petite application en C++ sous forme console basant sur l exemple du programme Multitouch fourni par Stantum. Elle permet de détecter les positions des doigts (donc Multitouch) et traduire en coordonnées x, y ensuite celles-ci sont envoyées à une adresse IP prédéfini, à un port prédéfini via le protocole UDP. Résultat L application fonctionne parfaitement, mais pour réécrire cette application en graphique, il faut passer énormément de temps pour apprendre à utiliser la librairie graphique : GLUT SDK. Deuxième inconvénient est les messages TUIO sont envoyées sur réseau, s il y a énormément coordonnées à envoyer, cela va générer un grand trafic à envoyer via le réseau, et dans la condition délicate, les coordonnées n arrivent pas en même temps au destinataire donc par conséquent l action 2 doit suivre immédiatement l action 1 mais en réalité cela est fait après 4, 5 secondes voire plus. La manipulation n est donc pas vraiment géniale et la rapidité est fortement influencée. J ai mis en attente cette application parce qu elle n est pas profitable et enrichissante.

4. Sparsh-UI : Simple Server de reconnaissance des gestes et les positions des doigts. Site Résultat http://code.google.com/p/sparsh-ui/ Après des testes, j ai laissé tomber ceci, il n est pas compatible avec SlatePC malgré des informations du site concernant la compatibilité avec des dispositifs de Stantum. 5/ 15 5. Flash Développement en AS3 Description Je voudrais écrire les applications Multitouch en Flash avec language AS3. J utilise Flash Develop EDI pour programmer. http://www.flashdevelop.org Résultat Après 3 semaines de travail sur AS3, j ai développé un petit test en Flash pour Multitouch, ça fonctionne à merveille mais je rencontre un autre problème, pour inclure les fonctions pour envoyer les messages TUIO en Flash c est un travail très sophistiqué. 6. Stantum TUIO Bridge Site Résultat http://github.com/zillode/stantum-tuio-bridge Dans cette période même, j ai trouvé un autre Multitouch Software s appelle Stantum TUIO Bridge qui intervient directement au niveau du contrôleur, écrit par Lode, étudiant de VUB dans son travail de Master. Cette version est destinée aux appareils Multitouch sous LINUX, et celle-ci ne fonctionne pas du tout sur Stantum Slate PC. Finalement, j ai décidé de suivre cette voie, en travaillant avec Lode par email, je lui ai envoyé ma version sous Windows développée à partir de sa version pour Linux, après des centaines fois d essaies et modifications du code, je suis parvenu de faire fonctionner correctement cette version sous Windows 7 sur Slate PC. La dernière version de notre travail est publiée sur le site de Lode le 25 mars 2010.

6/ 15 2. Présentation du projet 2.1. Outils de développement TUIO Protocol (Table-Top User Interfaces Objects) TUIO est un protocole réseau pour les interfaces Multitouch. Il est un Open Framework défini un protocole commun et simple avec son API contenant beaucoup de fonctions utiles permettant d encapsuler des événements de TOUCH et les états des objets éventuels viennent d une application Tracker sur l appareil tactile. Ces données sont traitées par TUIO qui les envoie aux applications clients TUIO via UDP Socket (OSC message), et ces derniers décodent ces informations TUIO et les traiter. La technologie TUIO est basée sur OpenSound Control (OSC). Autrement dit, TUIO est juste une standardisation du format des données de l OSC. Exemple du message TUIO Homepage : http://www.tuio.org/ OSC Protocole (Open Sound Control) OSC est un protocole de communication entre les ordinateurs, les sons synthétisés, les appareils multimédia optimisés pour la technologie des réseaux modernes. Surtout les avantages de cette technologie pour les instruments de musique électroniques. Les avantages de l OSC sont la précision, la flexibilité, la documentation, la portabilité. OSC est indispensable pour ce projet, il faut télécharger le code de OSC car il contient une bibliothèque de fonctions pour transformer les données en TUIO et les envoyer par la suite aux applications clients TUIO. OSC Pack http://opensoundcontrol.org/oscpack Package SMT Kit (Stantum Multi-Touch Kit) Ce package contient : les exemples des applications pour Stantum PC développées en C++ ; les libraires indispensables pour la compilation et l exécution ces applications ; la documentation en anglais. Cette version est compatible avec Windows 7. Librairie pour Rev 2/ 4/2009 (Version du Slate PC) http://www.stantum.com/share/isib/cd_0.5.29_composite.zip Code Blocks Un EDI gratuit et extrême puissant pour programmer C/C++. http://www.codeblocks.org/

7/ 15 FLOCS Gateway Mon application envoie les messages TUIO via UDP socket, c-à-d, ce sont les messages OSC envoyés via le protocole UDP, mais l application client, surtout celle en Flash doit capable de comprendre ces messages. Mais Flash ne sait pas lire UDP et uniquement TCP. Donc, FLOCS permet de convertir les trames UDP en TCP. FLOCS est nécessaire pour les clients TUIO qui ne supporte pas les trame UDP mais TCP. Max 5/MSP Max/MSP est un logiciel musical permettant de faire de la synthèse sonore, de l'analyse, de l'enregistrement, ainsi que du contrôle d'instrument MIDI. Il est l'un des logiciels musicaux parmi les plus utilisés par les musiciens professionnels tant que par les amateurs. Max est un logiciel qui permet de faire des calculs mathématiques et par extension de pouvoir contrôler en temps réel les instruments MIDI. MSP est une bibliothèque de fonctions, qui ajoutée à Max permet de travailler en temps-réel avec le signal audio (DSP) Max/MSP se présente en deux fenêtres blanches La première, Max, est une console permettant de connaître les erreurs contenues dans son patch, c'est finalement une boîte de dialogue entre le logiciel et l'utilisateur. La seconde fenêtre est un "patch", c'est dans celle-ci que l'on va concevoir et réaliser son projet musical. http://cycling74.com/products/ Max Multitouch Framework (MMF) MMF est une interface créé avec MAX/MSP, destinée aux applications Multitouch. Elle est en effet un Framework contenant un ensemble de patch MAX pour construire rapidement un programme Multitouch. Donc il suffit de mettre le code source dans votre projet Max/MSP, ajouter les composants à la présentation mode et donner les noms aux interfaces et objets que vous désirez commander. Voilà, vous avez multitouché votre application MMF, oui c est tout simple, MMF fera le reste. Elle support les messages TUIO. Donc c est une application client TUIO. http://www.mathieuchamagne.com/category/code/mmf/ http://code.google.com/p/mmf/

8/ 15 2.2. Description du projet Stantum TUIO Bridge est une application écrite en C++ interagit directement au niveau du contrôleur Multitouch de la tablette Slate PC. Elle se connecte au contrôleur, à chaque événement détecté par ce dernier, l application sera informée et s exécute les traitements en fonction de l événement reçu. Après son traitement, elle encapsule et envoie les données en TUIO Protocole à l application client écoutant une adresse IP prédéfini, à un port prédéfini. Il est en effet, un serveur TUIO envoie les données encapsulées en trame TUIO à une application client TUIO. Dans ce travail, j ai développé 2 applications La première : c est le serveur TUIO Stantum TUIO Bridge qui envoie les messages TUIO à l adresse localhost au port 3333 puisque l application Client TUIO s est installée sur la même machine que le serveur TUIO. (Généralement) La seconde : C est le client TUIO elle s appelle Train Remote Control développée à partir de MMF (c.f. 2.1) permet d envoyer les commandes (Messages TUIO) au serveur lié avec le train. Ce dernier ordonne son train en fonction de commande reçue de mon application. Ces commandes sont standardisées, donc mon programme et le serveur du train se communiquent parfaitement. 2.3. Première application : Serveur TUIO Stantum TUIO Bridge 2.3.1. Fonctionnement Tout d abord, il faut comprendre comment le mécanisme de fonctionnement du Stantum Slate PC Lorsque l utilisateur touche l écran tactile, le contrôleur Multitouch (PMatrix) détecte directement ces informations, il localise la zone touchée par l utilisateur et traduit les positions en coordonnées x,y (Cursor). Ces cursors sont préformés et envoyés aux applications/ Framework Multitouch.

9/ 15 Concernant mon application (TUIO Tracker Application), il se connecte au contrôleur PMatrix. Ce dernier l informe les événements il a reçu. Mon application s est lancé dans son traitement et envoie la trame TUIO au TUIO Client Application. 1. Via l interface graphique de l application Train Remote Control, l utilisateur manipule différents boutons aves ses doigts. 2. Chaque position détectée est traduite en coordonnées et elle correspond avec un type événement. 3. Stantum TUIO Bridge s est informé par le contrôleur, il fait son traitement en fonction de type d événement, puis, il envoie les données encapsulées dans la trame TUIO au TUIO client Application (Train Remote Control). 4. Train Remote Control reçoit la trame TUIO, elle décode et s affiche les résultats sur l écran tactile. Voici une autre représentation de fonctionnement du Stantum Slate PC

10/ 15 On constate qu il y a 2 niveaux différents dans l appareil Multitouch. Le premier est le module Multitouch constitué par le capteur Mulitouch (Touch Pannel Sensor) et le contrôleur Multitouch. La seconde est la partie software dans le système d exploitation, il comprend : Software/Framework Multitouch : Mon premier application Stantum TUIO Bridge se trouve à cet endroit. Il fait le pont entre le contrôleur Multitouch PMatrix et l application Train Remote Control. Elle est TUIO Server Application. Multi-touch Application : Mon seconde application se trouve à cet emplacement. Elle est un TUIO Client Application. 2.3.2. Codes sources Architecture de mon projet

11/ 15 Il y a différents types d événement de Multitouch représentés dans le fichier main.cpp SMT_SENSOR_CONNECT : lorqu on connecte au contrôleur Multitouch de Stantum avec la fonction SMT_Open. SMT_CURSOR_CREATE : Dès utilisateur touche l écran tactile, un nouveau curseur est crée. SMT_CURSOR_DOWN : quand un nouveau curseur est crée, cela entrain la création de celui-ci. SMT_CURSOR_MOVE : Quand on bouge notre doigt sur l écran tactile sans l enlever. SMT_CURSOR_UP : Quand on enlève notre doigt de l écran. Si on enlève et appuie de nouveau sur l écran dans un temps très court, cette action est reconnue comme un double click. SMT_CURSOR_DESTROY : Par contre, si on enlève le doigt de l écran après un délai très court, ce curseur est détruit de la mémoire et entraine ce type d événement. SMT_SENSOR_DISCONNECT : Quand on déconnecte du contrôleur PMatrix, cela entraine cet événement. La fonction mycallback regroupe tous ces événements, elle sera appelé à chaque fois le contrôleur détecte quelque chose. Et dans chaque callback, on y trouve les informations : Message Type (Create,Destroy,Down,Up,Move ) Sensor Object : La connection au contrôleur Cursor Object : identification unique contenant les coordonnées x, y, nombre de clicks. Les autres codes sources sont documentés. On y trouve toutes les explications nécessaires.

12/ 15 2.4. Seconde application : Client TUIO Train Remote Control Aperçu de la cartographie technique cible entre Train Remote Control et le Train J ai développé cette application à partir de Framework de MMF. J ai ajouté une nouvelle tabulation contenant les boutons et sliders permettant de contrôleur le train. À la base, MMF supporte TUIO, donc cette application comprend parfaitement les messages venant du Stantum TUIO Bridge. Voici l interface de l application en Présentation Mode.

13/ 15 En Patch Mode, on programme la logique de l application. C est très convivial à programmer sous Max/MSP. Je créé des textbuttons et chacun liait avec un numéro 0 (la condition) qui donne l état du bouton, s il est OFF -> 0, s il est ON -> 1, entraine ensuite un message. Ce message est affiché sur la fenêtre principale de MAX/MSP, et envoyé à une adresse ip prédéfinie sur un port prédéfini via le protocole UDP. Cela donne ce résultat :

14/ 15 3. Conclusion Premièrement, l aboutissement de ce travail m a permis d avoir une vision globale sur le travail de bureau d études. Pour réaliser ce travail, j ai pris beaucoup de temps pour faire la recherche et essayé les différentes applications qui font perdre beaucoup de temps. Je trouve qu il faut bien localiser le problème, déterminer la cible avant d aller plus loin. Deuxièmement, ce projet m a permis d améliorer la méthode de travail, de développer mon propre méthodologie d apprentissage, de découvrir plus en détails les différentes solutions pour ce projet afin d aboutir au résultat escompté. Ce projet m a permis non seulement d enrichir les connaissances théoriques, mais il m a également permis d acquérir plus d expérience au niveau de la pratique. Et enfin, ce travail a permis à l auteur de s organiser le temps, d enrichir ses expériences, ses connaissances. D ailleurs, il m a exigé d approfondir mes connaissances dans les 3 domaines distincts : Le Multitouch, la gestion des projets et la programmation.

15/ 15 4. Annexe Configuration important du Codeblock pour la compilation de l application Stantum TUIO Bridge Code sources