wiki:Wiimote

LA WIIMOTE


Photo de la Wiimote et du Nunchuk


Prérequis

Pour faire l'installation, nous avons besoin d'une clé bluetooth pour que la Wiimote soit détectée et d'une sensorbar sous tension pour pouvoir utiliser le pointeur infrarouge. Il faut aussi avoir récupéré le package libbluetooth-dev et libbluetooth2.

Deux bibliothèques sont disponible pour la wiimote : libwiimote et libcwiid.

Fonctionnement avec libcwiid

Téléchargement et compilation de CWiid

 http://www.wiili.org/index.php/CWiid Page officielle de CWiid

 http://abstrakraft.org/cwiid/ Projet Trac hébergeant CWiid

CWiid est disponible dans les dépots officiels d'Ubuntu (libcwiid0-dev), ainsi qu'une interface de test et un drivers pour utiliser Pour installer la bibliothèque (avec les fichiers sources) :

sudo apt-get install libcwiid0-dev

Pour installer l'IHM (GTK) :

sudo apt-get install wmgui

Pour installer le driver :

sudo apt-get install wminput

Test de la wiimote

Vous pouvez lancer "wmgui" et vérifier que votre wiimote est bien reconnue. (File->connect). Pour pouvoir utiliser le drivers, il faut autoriser l'accès à "uinput". (cf.  http://abstrakraft.org/cwiid/wiki/wminput cette page) Puis, s'assurer que le module "uinput" est lancé.

sudo modprobe uinput

Fonctionnement avec libwiimote

Compilation de la bibliothèque

Nous allons utiliser la librairie libwiimote-0.4 pour faire marcher notre Wiimote.
Pour utiliser cette librairie il faut dans celle-ci lancer le fichier configure:

./configure

C'est à ce moment là que vous allez savoir si votre bluetooth est détecté.
Après ça il faut lancer le Makefile, qui va permettre de compiler la librairie.

make

Tests de l'installation

Pour tester si votre installation marche, vous pouvez aller dans le répertoire bin dans la librairie et lancer les tests :
Le test1 permet de tester sous la console l'utilisation des boutons, de l'accéléromètre, de l'infrarouge, du vibreur et du Nunchuk si celui-ci est connecté à la Wiimote.
Le test2 permet d'utiliser le son de la Wiimote.
Le test3 permet l'utilisation du vibreur et des boutons.


Fonctionnement

La Wiimote n'est pas un périphérique à évènements, c'est à dire que c'est à la simulation d'aller lire dans le périphérique lui-même les valeurs de ces axes et boutons. Il faut donc faire une boucle allant lire tout les 'n' temps (avec n défini avant) dans la Wiimote pour mettre à jour les valeurs des axes et des boutons voulu.
Mais avant de faire notre mise à jour, il faut que le périphérique fasse lui même sa mise à jour :

wiimote_update(&wiimote)

wiimote est du type wiimote_t et représente le périphérique.
Pour obtenir la valeur d'un axe, c'est dans wiimote qu'il faut aller chercher :

fprintf(stderr,"axis x = %0.3d \n", wiimote.axis.x);


Pour un bouton :

fprintf(stderr,"button one = %d \n", wiimote.keys.data.one);

Retour au Wiki

Attachments