Wednesday, November 4, 2009

Wiimote and MotionPlus

[english version]
Motion Plus and the wiimote
[WMP/WM+ - so called Wii Motion Plus]
The Wii MotionPlus accessory is based on IDG 600(Invensense) dual axis gyroscope sensor and X3500W (EPSON) single-axis gyroscope sensor.

Since the beginning, a 1:1 motion control was not possible with accelerometer sensors, only.
So, Nintendo thought to a combination between tri-axial accelerometer and multi-axis gyroscope for the wiimote in order to improve playability.
[Sensor Fusion algorithms combine accelerometer and gyroscope data to cover a wider signal frequency range of motions - source]

Indeed, sensor fusion is the preferred solution for increasing accuracy. Such a use of gyroscope and accelerometer sensors became obvious for Nintendo's engineers (especially inspired from other domains as dead reckoning techniques).

From wiimote's point of view, the wmp is not acting as other external controllers (nunchuck, classic controller...). By the way, the data from 3 gyro sensors took some times to be described and understood . So, some developers made their own inertial input device to act as an extension for the wii controller : VR inertial input device 28

From WM+ and Nunchuck hacks ...
Then, the MotionPlus were available during summer 2009 but it was easier to hack gyro and accel data from Nunchuck and WM+ (through I²C serial communication) better than Wiimote and WM+. The following links gives an overview of some works with WM+ :

- Just How Noisy are Accelerometers and Gyros from Nunchuck and Wii Motion Plus? from
VoidBot Blog (Lang. English). Here, the WM+ is used as an interface for a robot (see more explanations about raw data from sensors)

- An other web site about robot and WM+ : PoBot (Lang. : French)
Below, see the video for more information : Wiimote and WM+
Finally, some Wimote (open source) C++ libraries include WM+ now :
- WiiYourself v1.13 beta
- Wiimotelib v1.8 beta from Brian Peek <> (.NET library for Windows)
- CWiid for Linux
- Wiiuse (Here, temporary supported for Windows before official delivery and included in devkitpro toolkit, too )

Other links to browse
- SLiDA (System Logger with Intelligent Data Acquisition)
王様の耳はロバの耳 ( A blog and A Japanese book all about programming for the Wii Remote (MotionPlus, etc...)! (Lang. Japan)

- An other blog (Kako) dealing with Wiimote and WM+(Lang. Japan)
(-- update 2009/11/27 --)
- Integrating MEMS-based motion processing devices from InvenSense Inc. / Steve Nasiri, David Sachs, Michael Maia

No comments: