Utiliser La Wiimote Sous Linux


Miles Prower
 Share

Messages recommandés

Hello,

je me contente de lancer l'affaire aujourd'hui. WiiLi étant down, il faudra s'aider de son cache Google :

http://209.85.129.104/search?q=cache:tnE7Q...lient=firefox-a

Autre lien utile :

http://spenceal-3.student.rose-hulman.edu/...x.php/Main_Page

Première étape : la synchro BlueTooth (BT) avec la Wiimote, normalement tout le monde sait que c'est faisable. Sous Linux, on le fait par l'intermédiaire de HIDD (pour les utilisateurs Ubuntu, chercher sur le site Ubuntu-fr dans la documentation pour tout problème éventuel sur le BlueTooth).

Le paquet du support BlueTooth est bluez-utils. Il peut parfaitement lire les informations en provenance de la Wiimote, mais il faudra le patcher pour pouvoir envoyer des messages du PC vers la Wiimote avec http://spenceal-3.student.rose-hulman.edu/linked/hidd.diff - pas nécessaire pour s'en servir comme de souris, juste pour par exemple pouvoir agir sur les LEDS en façade de la télécommande. Et encore, je en suis pas sûr. À retenir : c'est pas nécessaire.

HIDD = Human Interface Device(s) / Daemon.

Pour mettre la Wiimote en mode d'association, appuyez sur 1 et 2 en même temps. Sur le PC, lancer la commande "hidd --search". Il détectera tous les appareils BT en mode associatif à portée, et s'y connectera.

97c8d11f564ad112eb4db7df59ba.jpeg

Pairing ok. Ça serait confortable d'avoir une interface graphique pour le pairing Wiimote / BlueTooth, à l'avenir, pour éviter d'avoir à mettre les mains dans le cambouis.

Pour l'instant, je ne suis pas allé plus loin.

Modifié par Miles Prower
Lien vers le commentaire
Partager sur d'autres sites

Super lien. Je retiens notamment http://wiihacks.blogspot.com/2006/12/linux...ote-driver.html

Merci ! :P

En effet y'a de très bons liens là :

http://blog.davr.org/2006/12/06/control-xo...r-with-wiimote/

PyBluez = python-bluez dans les dépôts Ubuntu.

Modifié par Miles Prower
Lien vers le commentaire
Partager sur d'autres sites

python /home/miles/Desktop/wiimotulator.py

miles@foxbox:~$ python /home/miles/Desktop/wiimotulator.pyRegistering key BTN_RIGHT for button A with code 111Registering key BTN_LEFT for button B with code 110Registering key KEY_1 for button 1 with code 2[[1074025828, 2], [1074025830, 0], [1074025830, 1], [1074025828, 1], [1074025828, 0], [1074025829, 273], [1074025829, 272], [1074025829, 2]]Looking for Wiimote services at address 00:19:1D:7F:E3:17Victory! We have found that Wiimote!Traceback (most recent call last):  File "/home/miles/Desktop/wiimotulator.py", line 1642, in ?	bt_connect(addr)  File "/home/miles/Desktop/wiimotulator.py", line 1439, in bt_connect	socket['receive'].connect( ( addr, 19 ) )  File "<string>", line 5, in connectbluetooth.BluetoothError: (111, 'Connection refused')

Moins galère que ce que j'imaginais. Je refais quelques tests.

Modifié par Miles Prower
Lien vers le commentaire
Partager sur d'autres sites

Il n'y a que le site en anglais qui recense les drivers pour la wiimote?

En ce qui concerne le pointeur avec la sensorbar (ou led IR), ca ne marche que sous linux, ou les drivers windows sont tout autant capable d'en prendre compte.

Car la wiimote peut etre surtout interessant en jeux :s c'est pas impossible sous nunux mais avec wine et cedega c'est pas terrible.

En ce qui concerne la programation de drivers, ou de log capable d'interpreter les mouvement de la wii, le niveau est tres elevee, ou est qu'avec quelques bases en prog, je pourrair en 1 ou 2 mois trouver la doc necessair et faire quelquechose moi meme?

Merci d'avance pour vos reponses

Lien vers le commentaire
Partager sur d'autres sites

Je crois que c'est également possible sur les autres systèmes d'exploitation. Je n'ai pas testé, ils ne font qu'office de figurants sur mon système ("au cas où... autant rien mettre dessus pour le moment, il me sert pas").

WiiLi est un bon départ. Je ne pense pas qu'un vrai driver soit nécessaire, on peut parfaitement conserver le script. En ce cas, il suffirait simplement de créer une interface graphique de configuration éditant directement le fichier .py (ou en générant un), et éventuellement xorg.conf (avec backup).

Je ne suis pas programmeur et ce genre de boulot n'est pas de mon niveau, je ne sais pas créer de drivers comme ça. Ni d'interface mais quelques librairies existent sous Linux permettant de faire ce genre de travail aussi facilement qu'un menu Game Factory sous Windows :P

Lien vers le commentaire
Partager sur d'autres sites

http://www.forthewiin.org/

Le projet prend forme petit à petit. L'utilisation est certes moins mis en valeur que sous Windows, mais loin, très loin d'être inintéressante. Et c'est de là que sont parties les découvertes réutilisées sur les autres systèmes après tout ;)

Modifié par Miles Prower
Lien vers le commentaire
Partager sur d'autres sites

Et ouais. A pour initialiser la rotation du cube chez moi par exemple, puis mouvements de la souris. Il faut que je me penche + en détail sur la configuration du truc (j'espère qu'une interface arrivera bientôt, parce qu'éditer un fichier texte c'est rigolo 5 minutes), car ce n'est pas normalement ce que le script fait de base. :P

B me fait un clic gauche.

C'est sur écran géant et à suffisamment haute résolution qu'il faudrait pouvoir mettre en application ce genre de truc. J'imagine parfaitement débouler faire une présentation PowerPoint devant une classe, sortir une Wiimote de ma poche, allumer le PC, et jongler entre OOo Impress en plein écran sur une face (+ pointeur) et d'autres documents sur les autres faces du cube (tableurs, etc).

Modifié par Miles Prower
Lien vers le commentaire
Partager sur d'autres sites

  • 4 weeks later...

Tu tournes aussi sur Ubuntu ? En ce cas, j'avais fait au moins ces modifications :

## Next, I will choose which IO Modes I want to use## for sending keypresses, clicks, mouse movements and gestures## *ATTENTION YOU SHOULD NOT EXPECT ANYTHING TO WORK IF YOU CHANGE IO_MODES OR IO_CHANNELS SETTINGS IN ANY WAY'IO_MODES': {		  # SET TO TRUE IF YOU HAVE:  'UINPUT': True,	 ## the uinput kernel module loaded.  'XLIB': False,	   ## python-xlib with the buffer overflow patch.  'X_EVDEV': False,	## evdev_drv and a customized xorg.conf.  'PYOSD': False},

et

## If I'm using IO_MODES['UINPUT'] I'll need to## Set the path of my uinput device###'UINPUT_DEV': "/dev/misc/uinput",'UINPUT_DEV': "/dev/input/uinput",  ##ubuntu - you need to modprobe uinput first#UINPUT_DEV: "/dev/uinput",

Puis ne pas oublier : sudo modprobe uinput

et lancer le script en root : sudo python (wmd).py

Je crois que ces modifications sont incomplètes, je n'ai plus le script modifié avec moi (arg) et de toutes façons il existe des mises à jour, visiblement, sur ForTheWiin. Il me faudra restester - le plus galère est de mettre en place la souris, je ne suis pas sûr que les lignes précédentes suffisent.

Lien vers le commentaire
Partager sur d'autres sites

Merci à toi, j'ai téléchargé le dernier WMD mais il me retourne une erreur :

CONNECTING

Looking for Wiimote services at address 00:19:1D:89:34:79

Victory! We have found that Wiimote!

Traceback (most recent call last):

File "WMD.py", line 45, in ?

wmd = WMD()

File "WMD.py", line 40, in __init__

if wm.connect() and wm.setup():

File "/home/nic/wmd-0.1.2/wmd/Wiimote/WMManager.py", line 25, in connect

if addr and self.backend.connect( addr ):

File "/home/nic/wmd-0.1.2/wmd/Wiimote/Backends/PyBlueZ.py", line 21, in connect

self.receive_sock.connect( ( addr, recv_port ) )

File "<string>", line 5, in connect

bluetooth.BluetoothError: (111, 'Connection refused')

Lien vers le commentaire
Partager sur d'autres sites

Il faut couper toute connexion Bluetooth avec la télécommande déjà existante avant de lancer le script (sudo hidd --killall), puisque lui-même voudra à nouveau se connecter à la Wiimote... et échouera, car celle-ci est déjà occupée. Ensuite, as-tu lancé le programme en Root avec un sudo python *.py ? Sans les droits administrateurs, Linux refusera l'ajout par Bluetooth d'un nouveau matériel, pour des raisons de sécurité.

Au passage, une vidéo qui n'est pas de moi :

Modifié par Miles Prower
Lien vers le commentaire
Partager sur d'autres sites

  • 2 weeks later...

Double post : je viens de découvrir http://www.wiili.org/index.php/CWiid

Ça a l'air nettement plus intuitif. Je vous tiens au courant ;)

EDIT

Ouais, c'est carrément plus simple à mettre en oeuvre, du moins sous Ubuntu. Le truc, c'est que je sais pas si c'est propre ou pas, ce sont des packages Debian. L'avantage est qu'il suffit d'un clic pour installer.

http://www.rastageeks.org/~toots/cwiid/

Prendre "wminput" et "libwiimote" (pas besoin du -dev, je crois). J'aimerais pouvoir installer "wmgui", l'interface graphique de configuration, mais une dépendance n'est pas satisfaite (il paraît, pourtant le paquet correspondant, un certain libfontconfigtrucmachin, est bien présent sur mon système). Je ne sais pas où sont stockés les fichiers de configuration, probablement dans le dossier personnel en dossier caché ?J'le vois pas en tout cas.

Il suffit de lancer la commande "wminput" dans un terminal et tout marche avec la configuration par défaut. Il faudra peut-être les droits utilisateurs (sudo xxx) et un modprobe uinput avant. Je poursuis l'enquête.

EDIT 2

Touches :

A : Clic gauche

B : Clic droit

A+B : Clic milieu (si émulation par X activée, par défaut sous Ubuntu et probablement bien d'autres) => Sur le bureau, permet de saisir le Cube

Flèches : flèches directionnelles

1 : Non utilisé (?)

2 : Non utilisé (?)

+ : Non utilisé (?)

- : Non utilisé (?)

Déplacement de la souris : pointage de la Wiimote vers une "Sensor Bar" (un point infra-rouge suffit)

Modifié par Miles Prower
Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share