summaryrefslogtreecommitdiff
path: root/content/Informatique/wiimote.rst
diff options
context:
space:
mode:
Diffstat (limited to 'content/Informatique/wiimote.rst')
-rw-r--r--content/Informatique/wiimote.rst123
1 files changed, 0 insertions, 123 deletions
diff --git a/content/Informatique/wiimote.rst b/content/Informatique/wiimote.rst
deleted file mode 100644
index eb6641d..0000000
--- a/content/Informatique/wiimote.rst
+++ /dev/null
@@ -1,123 +0,0 @@
-.. -*- mode: rst -*-
-.. -*- coding: utf-8 -*-
-
-Controling the wiimote (I)
-##########################
-
-
-:date: 2009-03-11
-:tags: Programmation, Wiimote, Python
-:slug: controling-the-wiimote-i
-:lang: en
-
-
-Creating the plugin for wminput
--------------------------------
-
-There are a lot of tutorials about how to configure cwiid. I let you follow
-them for getting a functionnal system for your wiimote. You can read the links
-at the end of this article. Be sure your system works well before continuing.
-
-This is a code that we'll use as template for the creation of our driver. Used
-as main, it use pygame for displaying the infrared sources the wiimote can
-detect, but it is also compatible as plugin for wminput ( even if it does
-anything for now ).
-
-You can get it here :
-`wm\_control.py <http://www.chimrod.com/downloads/wiimote/ir_control_0.py>`_
-( This code is licenced under GPL 3+ )
-
-About the code :
-
-.. code-block:: python
-
- import wmplugin
-
-This import does not exist, but is created by wminput when executed. It provide
-the connexion with the wminput core. Just put ( or link ) the script in the
-wminput plugin path ( on my debian this is the /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)],
- []
-
-We instanciate the wiimote object here and configure it in the IR mode. The
-name is choosen by wminput if we want to use it as plugin. We define that the
-plugin return the coordonates X and Y in a relative system (
-you can get the signification of all the parameters here : `actions list
-<http://abstrakraft.org/cwiid/browser/trunk/wminput/action_enum.txt>`_)
-
-If we want to define new butons, we just have to name them in the first list,
-the'll be accessible in the configuration file as 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)
-
-Here is the core of our driver. The name is choosen by wminput too, as the
-format value we return. We have in parameter the list of the messages the
-wiimote has sent.
-
-If we have defined buton we need to return their state here. It is a boolean
-saying if the buton is pressed ( True ) or not ( False ).
-
-This method doesn't send any others parameters, and this is a problem when we
-need to store data between two calls ( ie for saving the cursor position ). One
-way for passing throught is to use global variables. But it is unelegant and
-can cause problems if we want to use our code in imports. So we'ill use a list
-as default parameter and let python save it as you can see here :
-
-.. code-block:: python
-
- >>> def meth(a=[]):
- ... a.append(1)
- ... print a
- ...
- >>> meth()
- [1]
- >>> meth()
- [1, 1]
- >>> meth()
- [1, 1, 1]
-
-So the ir\_sensor.get\_movement method is defined with each parameter we
-want to save as an optional list
-
-.. code-block:: python
-
- def get_movement(msg, _old_points=[], _old_position = [0, 0]):
- return 0, 0
-
-The get\_movement method need to return the difference between the old position
-of the cursor and the new one in tuple : (0, 0) mean that the cursor didn't
-move, (-10, 0) mean a deplacement to the left.
-
-For now, the plugin doesn't move the cursor, and doesn't read what the wiimote
-has sent. But you know everything for creating your own plugin for controlling
-your wiimote. You can use all the cwiid method for setting the led, activating
-the differents modes of your wiimote ( IR, Acc, rumble ... ), and define here
-your own actions.
-
-I'll explain the core of the movement analysis in IR mode in the next article.
-
-Links :
- `The cwiid project <http://abstrakraft.org/cwiid/>`_
-
-`Install Cwiid ( Ubuntu Documentation
-) <https://help.ubuntu.com/community/CWiiD>`_