Faire fonctionner la Wiimote

Tout d’abord, il faut installer CWiid, qui est une collection de composants nécessaires pour communiquer avec la Wiimote. Par chance, ils sont disponibles dans les dépôts, leurs installations est donc rapide:

Code:

sudo apt-get install libcwiid1 lswm wmgui wminput

Maintenant vous êtes prêts pour tester si la Wiimote est détectée et active, lancer:

Code:
wmgui

Appuyer sur File, Connect, puis appuyer sur les boutons 1 + 2 de la Wiimote en même temps, et cliquer sur OK. (Assurez-vous que vous n’êtes pas prêt d’une Wii allumée, auquel cas cela synchroniserai la Wiimote avec la console). wmgui devrait être désormais capable de reconnaitre les pressions sur les boutons et les mouvements (assurez vous que Réglages->Acc Data est coché) de la Wiimote.

Bon, c’était bien rigolo tout ça mais ça ne nous est pas très utile en l’état. Essayons de faire quelque chose de plus intéressante avec la Wiimote. Se servir de son gyroscope comme d’une souris.

Premièrement, il faut s’assurer que le module uinput est correctement chargé dans le noyau Linux:

Code:
sudo modprobe uinput

Notez bien que cela devrait être fait manuellement après chaque redémarrage, ce qui risque de devenir fatiguant à la longue, c’est pourquoi vous trouverez à la fin de ce tuto la manip pour l’activer de manière permanente.

Maintenant, appuyer sur 1 + 2 sur la Wiimote et lancer:

Code:
sudo wminput

Si tout s’est bien passé vous devriez pouvoir utiliser la Wiimote pour contrôler le pointeur de la souris et utiliser les boutons A et B en guise respectivement de clics gauche et droite. Après avoir bien fait mumuse, taper Ctrl-C pour arrêter.

Je recommande également de repérer l’adresse matérielle de votre Wiimote, pour pouvoir accélérer sa connexion. C’est assez facile en utilisant hcitool (qui configure les connexions Bluetooth), lancez:

Code:
hcitool scan

et pressez 1 + 2 sur votre Wiimote. Cela devrait vous retourner quelque chose comme:

Code:
Scanning …

00:21:47:E4:B4:EE Nintendo RVL-CNT-01

Vous pouvez maintenant lancer wminput ainsi (en remplacant bien sûr par l’adresse de votre Wiimote):

Code:
sudo wminput 00:21:47:E4:B4:EE

ce qui accélèrera quelque peu le processus de connexion (il vous faudra toutefois toujours appuyer sur les boutons 1 + 2 de la Wiimote!)


Configurer la Wiimote:

Etant donné que mon média-center est uniquement dédié à l’utilisation de XBMC en plein écran, j’ai mappé les boutons de la Wiimote pour qu’ils correspondent à ce besoin particulier. Comme le montre la section suivante, il est vraiment facile d’adapter ceci à l’usage que l’on veut faire de la Wiimote.

Commençons par créer notre propre fichier de configuration:

Code:
cd /etc/cwiid/wminput
sudo cp buttons xbmc

En utilisant les boutons comme base de configuration, la Wiimote ne contrôlera pas notre pointeur de souris. (Si c’est toutefois ce que vous vous voulez, jetez un coup d’oeil à la configuration par défaut).

Pour utiliser une configuration personnalisée, lancer wminput avec l’argument -c flag, de cette manière, (vous pouvez omettre l’adresse matérielle de la Wiimote, si vous ne la connaissez pas):

Code:
sudo wminput -c xbmc 00:21:47:E4:B4:EE

Changez la configuration selon vos désirs. Il y a un fichier .txt (cwiid/wminput/action_enum.txt) dans le code-source que vous pouvez consulter pour avoir le nom des touches si besoin.

Voici ma configuration:

Wiimote.A = KEY_KPENTER
Wiimote.B = KEY_ESC
Wiimote.Up = KEY_UP
Wiimote.Down = KEY_DOWN
Wiimote.Left = KEY_LEFT
Wiimote.Right = KEY_RIGHT
Wiimote.Minus = KEY_KPMINUS
Wiimote.Plus = KEY_KPPLUS
Wiimote.Home = KEY_M
Wiimote.1 = KEY_SPACE
Wiimote.2 = KEY_S

Ce qui fait fonctionner ma Wiimote dans XBMC comme suit:

* A pour OK/Avance, B for Annuler/Retour
* J’utilise le pad directionnel pour la navigation dans les menus et l’avance/retour rapide et sauter une piste ou un chapitre lors de la lecture d’un média.
* + / - pour augmenter et baisser le volume
* Home pour afficher le menu OSD où l’on peut mettre en pause, régler les sous-titres, changer la piste audio, etc… en regardant des videos
* 1 pour mettre en pause
* 2 pour afficher le menu de sortie de XBMC où l’on peut éteindre XBMC, redémarrer/mettre en veille la machine, etc…

Lancer tout cela au démarrage:

Maintenant que tout fonctionne correctement, si vous voulez que tout fonctionne automagiquement (^^) au démarrage, suivez ces dernières étapes.

Tout d’abord, wminput ne devrait pas être lancé avec le compte root. Maintenant que vous avez testé, vous devriez à la place utiliser un accès utilisateur à uinput. Si votre compte utilisateur est membre du groupe admin, vous pouvez donner au groupe admin les permissions pour uinput de cette manière:

Code:
sudo sh -c 'echo "KERNEL==\"uinput\", GROUP=\"admin\"" > /etc/udev/rules.d/50-cwiid-input.rules'
sudo /etc/init.d/udev restart

Etant donné que vous ne voulez pas charger uinput à chaque démarrage, éditons /etc/rc.local:

Code:
sudo vim /etc/rc.local

and add the modprobe command here:

sudo modprobe uinput

AVANT la ligne qui contient

exit 0

puis sauvez et quittez le fichier.

Pour finir, dans votre Ubuntu, allez dans Système->Préférences->Sessions et Ajouter. Donnez à ce nouveau programme au démarrage un nom bien propre, et indiquez comme commande:

Code:
wminput -dc xbmc 00:21:47:E4:B4:EE

Vous pouvez bien évidemment utiliser votre propre fichier de configuration et adresse matérielle plutôt que la mienne. L’argument -d permet wminput d’être lancé comme un daemon (processus d’arrière plan) et de se reconnecter quand nécessaire et empêcher la clôture de connexion quand aucune Wiimote est détectée.

Voilà!

Souce de l’article : Passion XBMC Merci à l’auter

Autre lien intéressant :http://doc.ubuntu-fr.org/wiimote