diff options
Diffstat (limited to 'content/Informatique/wiimote_fr.rst')
-rw-r--r-- | content/Informatique/wiimote_fr.rst | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/content/Informatique/wiimote_fr.rst b/content/Informatique/wiimote_fr.rst deleted file mode 100644 index ca6ca65..0000000 --- a/content/Informatique/wiimote_fr.rst +++ /dev/null @@ -1,115 +0,0 @@ -.. -*- mode: rst -*- -.. -*- coding: utf-8 -*- - -Controller la wiimote -##################### - - -:date: 2009-03-11 -:tags: Programmation, Wiimote, Python -:slug: controling-the-wiimote-i -:lang: fr -:logo: static/images/wiican.png -:summary: |abstract| - - -Création d'un plugin pour wminput ---------------------------------- - -Il existe de nombreux tutorials sur comment configurer cwiid, je voud laisse -les suivre pour obtenir un système fonctionnel pour la wiimote (vous pourrez -trouver des liens à la fin de cet article). Soyez sûr que la wiimote est -reconnue avant de continuer. - -|abstract| - -.. |abstract| replace:: - Voici un code que l'on peut utiliser comme base pour la création de notre - driver. Lancé en tant que main, il utilise pygame pour afficher les sources - infrarouges captées par la wiimote, mais il peut également être utilisé - comme plugin pour wminput (même s'il ne fait rien pour l'instant). - - -Vous pouvez le télécharger ici : -`wm\_control.py <http://www.chimrod.com/downloads/wiimote/ir_control_0.py>`_ -(Code disponible sous licence GPL 3+) - -Le code : - -.. code-block:: python - - import wmplugin - -Cet import n'existe pas, mais est créé par wminput lorsque celui-ci est lancé. -Il fourni la connexion avec le cœur wminput. Il vous suffit de placer le script -dans le répertoire de plugin de wminput (sur ma debian il se situe dans -`/usr/lib/cwiid/plugins/`) - -.. code-block:: python - - def wmplugin_init(id, wiimote_arg): - wmplugin.set_rpt_mode(id, cwiid.RPT_IR | cwiid.RPT_BTN) - return - - def wmplugin_info(): - return [], - [("X", wmplugin.REL | wmplugin.ABS, 1024, 0, 0, 0), - ("Y", wmplugin.REL | wmplugin.ABS, 768, 0, 0, 0)], - [] - -On instancie la wiimote ici et actions le mode InfraRouge. Le nom est choisi -par wminput si nous désirons pouvoir l'utiliser comme plugin. On déclare que le -plugin retourne les coordonées X et Y dans un système de coordonées relative -(l'ensemble des paramètres sont disponibles ici : `actions list -<http://abstrakraft.org/cwiid/browser/trunk/wminput/action_enum.txt>`_) - -Si nous voulons définir de nouvons boutons, nous avons juste à les nommer dans -la première list, ils seront accessibles dans le fichier de configuration sous -le nom `plugin.[buton\_name] = ACTION` - -.. code-block:: python - - def wmplugin_exec(messages): - '''Wiimote callback managing method - Recieves a message list, each element is different, see the libcwiid docs''' - x = y = 0 - - for msg in messages: - if msg[0] == cwiid.MESG_IR: - x, y = ir_sensor.get_movement(msg) - return [], (x, y) - -Voici le cœur de notre driver. Le nom de la méthode est également imposé par -wminput, de même que le format de retour. Nous recevons en paramètres la liste -des messages reçus par la wiimote. - -Si nous avons défini des boutons, il nous faut retourner leur état ici. Il -s'agit jute d'un booléen indiquant si le bouton est préssé (`True`) ou non -(`False`). - -Cette méthode ne retourne aucun autre parametres, et cela nous pose problème -car nous avons besoin de sauvegarder l'état du curseur entre deux appels. J'ai -contourné le problème en utilisant des arguments par défaut à la fonction -`get_movement` pour pouvoir stocker l'environnement d'un appel à un autre : - -.. code-block:: python - - def get_movement(msg, _old_points=[], _old_position = [0, 0]): - return 0, 0 - -Cette méthode retourne la difference entre la précédente position du curseur et -la nouvelle : `(0, 0)` signifie que le curseur n'a pas bougé, `(-10, 0)` -représente un déplacement vers la gauche. - -Pour l'instant, le plugin ne bouge pas le curseur, et ne lie pas les résultats -envoyés par la wiimote, mais vous avez assez d'information pour créer votre -propre plugin pour controller la wiimote. Vous pouvez accéder aux méthodes de -cwiid pour activer les leds, mettre en marche les differents modes (infrarouge, -accéléromètre, vibration, …) et définir vos propres actions. - -Links : - -`Le projet cwiid <http://abstrakraft.org/cwiid/>`_ - -`Installer Cwiid ( Ubuntu Documentation -) <https://help.ubuntu.com/community/CWiiD>`_ |