MIC

Se connecter au casque Emotiv en 5 minutes

Publié par admin le

L’auteur: François Bruynbroeck
Technologies utilisées: C#, Emotiv SDK
Niveau de difficulté: 200

Comme premier tutoriel, rien de mieux que de commencer par la connexion de notre device. Pour le moment, il est possible de développer en C++, C#/VB.NET et Java. Personnellement, j’ai choisi d’utiliser le C#.

Avant de rentrer dans le sujet, si vous vous posez la question : « qu’est-ce que Emotiv EPOC ? » ou « Que puis-je faire avec un casque neuronal ? »,  je vous invite à lire l’article suivant : Introduction au Emotiv EPOC

Pour commencer un nouveau projet, vous devez :

  • Télécharger le SDK Emotiv depuis le site officiel http://www.emotiv.com (à noter que plusieurs versions sont disponibles mais seule la version Lite est gratuite)
  • Ajouter une référence à la librairie suivante : DotNetEmotivSDK.dll (Vous pouvez le récupérer dans le dossier de votre SDK Emotiv).
  • Ajouter les librairies suivantes à la racine du dossier contenant votre projet compilé : edk.dll et edk_utils.dll (Vous pouvez aussi les récupérer dans le dossier de votre SDK Emotiv).

Dernier point important: dans ce premier tutoriel, j’utiliserai le control panel pour connecter le casque aux applications. Cela veut dire qu’il est nécessaire de l’avoir en tâche de fond pour pouvoir utiliser vos applications. Quand il y aura du changement, je vous le ferais savoir.

Voilà, nous pouvons enfin commencer !

Initialiser le casque

Tout d’abord, nous allons créer notre EmoEngine permettant de faire la connexion avec notre casque et d’en récupérer par la suite les informations.

EmoEngine engine;
engine = EmoEngine.Instance;
engine.EmoStateUpdated += new emoEngine.EmoStateUpdatedEventHandler(engine_EmoStateUpdated);
engine.RemoteConnect("127.0.0.1", 3008);

t = new Thread(new ThreadStart(readLoop));
t.Start();

Dans cet extrait de code, on effectue les actions suivantes :
On récupère une instance de la classe EmoEngine, qui représente un casque Emotiv. On s’abonne ensuite à l’event EmoStateUpdated. On connecte l’instance d’EmoEngine au casque en localhost avec le port 3008 (port utilisé pour le casque réel et non émulé). Et finalement on lance un thread dont nous parlerons plus bas.

Obtenir des informations

On va utiliser une boucle pour mettre à jour les informations du casque.

Bien entendu, libre à vous d’optimiser au mieux le code de façon à éviter les plantages… Il ne s’agit ici que de petites informations pour connecter au plus vite votre casque à votre application.

private void readLoop()
{
    while (true)
    {
        // Appuyer sur Escape pour terminer l’application
        if( Console.KeyAvailable && Console.ReadKey( true ).Key == ConsoleKey.Escape ) break
        try
        {
            Thread.Sleep(100);
            engine.ProcessEvents();
        }
        catch (EmoEngineException ex)
        {
            Console.WriteLine("{0}", ex.ToString());
        }
    }
   Console.WriteLine(«Fin de l’application. Appuyez sur n’importe quelle touche pour fermer l’application. ») ;
   Console.ReadKey() ;
   engine.Disconnect();
}

NB: Comme on peut le constater, Il faut absolument ajouter un thread à notre fonction permettant ainsi de faire une mise à jour en background. Sans cela, le programme restera figé étant donné que l’on utilise une boucle sans fin.

Traiter les informations reçues

On va ensuite implémenter l’eventhandler gérant les changements d’états du casque:

void engine_EmoStateUpdated(object sender, EmoStateUpdatedEventArgs e)
{
      EmoState es = e.emoState;
      bool left = es.ExpressivIsLeftWink();
      bool right = es.ExpressivIsRightWink();
      Console.WriteLine("LEFT: " + left + " RIGHT: " + right + "rn");
      //If you looking left, LEFT: true.
      //If you looking right, RIGHT: true.
}

Premièrement, nous récupérons un objet de type EmoState qui va permettre d’obtenir toutes les informations de l’utilisateur (émotives, expressives et cognitives). De là, on récupère les actions clin d’œil gauche et droit (si clin d’œil = true, si pas = false).

Bon amusement lors de votre première application EPOC !


À propos de l’auteur

Je m’appelle François Bruynbroeck. Je suis animateur dans un mouvement de jeunesse, DJ dans ma propre sonorisation et régisseur pour un théâtre. Mon premier ordinateur: ZX81 de Sinclair. Ma 1ère fois avec l’informatique: à 8 ans, devant un écran CRT de 15″, avec le bon vieux Windows 95. Depuis je n’ai plus décroché! Mon premier Hello World: A 15-16 ans, en lignes de commandes DOS (Batch). (Et oui, ça remonte…).
/FBruynbroeck@FBruynbroeck
Print Friendly, PDF & Email
Catégories : Développeurs

2 commentaires

Quelques articles publiés par nos stagiaires | Stage IT · 07/09/2012 à 1:58

[…] Se connecter au casque Emotiv avec une application .NET en 5 minutes […]

Les publications des stagiaires 2012 | Microsoft Innovation Center Belgique · 19/07/2013 à 4:27

[…] Se connecter au casque Emotiv avec une application .NET en 5 minutes […]

Les commentaires sont fermés.