Une Wiimote sous Linux

Installation de la Wiimote, manette de la console Wii.



Présentation Présentation

Le principal intérêt de la Wii est son système de contrôle innovant et très intuitif, possible grâce à la Wiimote.
Utilisant la technologie BlueTooth pour communiquer avec la console, il est possible moyennant un peu de temps et d’argent d’utiliser la Wiimote sur son ordinateur.
Il est ainsi possible par exemple de remplacer la souris, pour jouer à des jeux de tirs.

Installation Installation

Un problème à l'installation ou à l'utilisation de ce logiciel ?
Consultez notre Faq !


Pour commencer, il vous faut le matériel adéquat, nous partons du principe que vous avez déjà une Wiimote, il vous manque un émetteur/récepteur BlueTooth et deux bougies (si, si).
Personnellement, j’utilise un dongle de la marque Connectland, compatible USB 1.1 et 2.0 et supportant les normes BlueTooth 1.1 et 1.2
Une liste des périphériques connus comme compatibles est disponible sur cette page :
http://wiibrew.org/index.php?title=List_of_Working_Bluetooth_Devices
(Attention, un matériel non listé n’est pas forcément incompatible).

Nous allons ici utiliser le logiciel CWiid pour utiliser la Wiimote en tant qu’alternative à la souris.

D’abord téléchargez la dernière version sur cette page (en Anglais) :
http://abstrakraft.org/cwiid/
Ensuite décompressez l’archive, puis compilez les sources : (Les dépendances requises sont listés sur le site officiel indiqué en bas de page)

./configure
make
Puis en root:
make install

Une fois le logiciel installé, il faut connaître l’adresse MAC de la Wiimote. Pour ce faire, exécutez la commande (en root) :
hidd --search
Dessuite après avoir tapé la commande, appuyez simultanément sur les boutons 1 et 2 de la Wiimote afin de la synchroniser avec l’ordinateur. Ne relâchez qu’une fois qu’il vous donne l’adresse MAC (qui doit ressembler à 00:19:1D:xx:xx:xx).
Retenez bien cette adresse, elle est unique à votre Wiimote et indispensable pour permettre la connection avec l’ordinateur.

Afin d’éviter les problème de compatibilité, il faut tuer hidd, donc en root, tapez :
hidd --kill 00:19:1D:xx:xx:xx (00:19:1D:xx:xx:xx étant l’adresse MAC complète).
Reste plus qu’a faire un "crash test".
Pour ce faire, utilisez le programme wmgui, inclut dans CWiid. Fournissez lui l’adresse MAC pour qu’il trouve la Wiimote (En utilisateur)
export WIIMOTE_BDADDR=00:19:1D:xx:xx:xx
Lancez ensuite le programme dans le même terminal, en utilisateur normal :
wmgui
Une fois dans le programme, il suffit de connecter la Wiimote, pour ce faire, cliquez sur "File/Connect" Ensuite, laissez à nouveau appuyé sur les boutons 1 et 2 et cliquez sur "Valider".
Si tout va bien, il doit vous afficher en bas de la fenêtre de wmgui "connected". Si c’est le cas, c’est gagné, appuyez sur les boutons de la Wiimote pour découvrir que tout fonctionne, le logiciel réagit.
Vous pouvez ouvrir les options dans "Controls" pour poussez un peu plus loin les tests.

Bon, c’est bien joli, le plus dur est fait, mais pour le moment ça ne sert pas à grand chose !
Pour utilisez la Wiimote comme remplacement à la souris, utilisez le programme wminput (en utilisateur) :
wminput WIIMOTE_BDADDR=00:19:1D:xx:xx:xx
Et encore une fois, laissez appuyé sur 1 et 2 jusqu’à ce qu’il vous affiche "ready" dans le terminal.
Ca marche ?
Si oui, bravo !

Si il vous affiche ce message d’erreur : "unable to open uinput". Pas de panique, il suffit de taper en root :
modprobe uinput
Il est peut être aussi nécessaire dans certains cas de lancer wminput en root.
Si c’est votre cas et que vous préférez lancer le programme en tant qu’utilisateur, pas de problème, modifiez le fichier "/etc/udev/rules.d/020_permissions.rules" (le nom peut changer d’une distribution à l’autre). Ajoutez ceci :
KERNEL=="uinput", MODE="0666"
Un redémarrage est nécessaire afin d’appliquer le changement de vos droits utilisateur.

Bon, même avec "ready" affiché, vous ne pouvez pas encore utiliser la Wiimote en tant que curseur, c’est normal, il lui faut une source à rayons infrarouge afin de pouvoir se repérer dans l’espace, c’est la fonction de la "sensor bar", fourni avec la console.
Et une flamme s’acquitte très bien de cette tache, voila pourquoi il faut deux bougies. Il faut normalement les espacer de 20 ou 25 centimètre, mais personnellement, une seule bougie placé au milieu au pied de mon écran a suffit.

Pour les geeks trouvant la méthode de la bougie trop primitive, il est possible de fabriquer sa propre barre, tout est expliqué sur cette page : http://wiipiicii.blogspot.com/2006/12/construire-une-sensor-bar.html

Reste plus qu’a vous habituer à la façon de diriger, ensuite apprenez à utiliser les touches de la Wiimote (les boutons A et B remplacent respectivement les boutons gauche et droit de la souris).

Ca reste très personnel, mais si je peux vous donner un conseil pour commencer, un jeu s’adapte très bien avec la façon de commander de la Wiimote, il s’agit d’AstroMenace, notre fiche du jeu peut vous indiquer comment l’installer rapidement.

Il est par ailleurs possible de configurer les touches, en modifiant le fichier "/home/utilisateur/.CWiid/wminput.conf" (Attention, si vous utilisez wminput en root, il sera dans le répertoire root).
Si le fichier n’existe pas, une copie est disponible dans les sources, dans le dossier "doc", sous ne nom "wminput.conf.sample" il suffit de la renommer est de l’installer dans le répertoire qui va bien.
Et ainsi le modifier si besoin.
Pour finir, il est possible de créer un script shell qui automatise les dernières étapes :

#!/bin/sh

modprobe uinput & #Inutile pour ceux qui n'ont pas eut de problèmes avec uinput.
#Dans ce cas, pas besoin de lancer le script en root.

/usr/local/bin/wminput WIIMOTE_BDADDR=00:19:1D:xx:xx:xx &

Il suffit de le rendre exécutable :
chmod +x ./nom_du_script.sh
Et ainsi, il suffit d’exécuter le script, appuyer sur 1 et 2, allumer la bougie et c’est parti en 5 secondes chrono !
Pour pousser le vice un peu plus loin, on peut ajouter une ligne à la fin du fichier "/etc/init.d/rc.local" pour exécuter le script au démarrage du système :
sh /usr/local/bin/wminput.sh
Maintenant une fois le serveur graphique lancé, vous aurez 20 secondes pour appuyer sur 1 et 2 et bien entendu allumer la bougie. Tout le reste est automatique.

Extentions

Wminput est doté d’extensions qui permettent de choisir son mode de fonctionnement.

Le premier, utilisé par défaut est "ir_ptr", qui permet le contrôle du curseur de la souris en utilisant l’infrarouge.
Le second est "acc", il permet d’utiliser l’accéléromètre de la Wiimote pour contrôler le curseur.
Et le dernier (pour le moment) est "nunchuk_acc", il est comme le second, il utilise l’accéléromètre, mais cette fois ci celui du Nunchuk.

L’utilisation des deux derniers rend l’infrarouge inutile, mais le mode de contrôle n’est pas du tout le même, il faudra roter la Wiimote (ou le Nunchuk) sur elle même, un temps d’adaptation est nécessaire. Le contrôle est bien moins intuitif comparé à l’infrarouge.

Pour utiliser ces extensions, rien de plus simple il suffit de légèrement modifier le fichier de configuration de l’utilisateur qui lance wminput (peut être le root).
Il doit se situer dans " /.CWiid/wminput"
(Créez le fichier si besoin)

Si vous comptez utiliser l’infrarouge, toute modification est inutile, puisque c’est l’extension utilisée par défaut.
Pour les autres, ajoutez ces lignes pour utiliser l’accéléromètre de la Wiimote :

Plugin.acc.X = REL_X
Plugin.acc.Y = REL_Y

Pour utiliser celui du Nunchuk, ajoutez ceci :

Plugin.nunchuk_acc.X = REL_X
Plugin.nunchuk_acc.Y = REL_Y

Vous devrez redémarrer wminput pour appliquer les changements (tuez le processus et relancez).

En bref En bref

- Développeur : wiili.org
- Licence : GPL V2

Liens

- Site officiel (en Anglais)




Article sous GNU Free Documentation licence - Jeuxlinux.fr