Wiimote

From OpenSimulator

Revision as of 08:36, 7 January 2009 by Phrearch (Talk | contribs)

Jump to: navigation, search

Overview

You can use the Wiimote and the nunchuck for controlling the viewer. Using a wiimote, one has a powerful freehand 3d-controller which has all the options to navigate freely when in a presentation situation. The software used is cwiid. Cwiid lets you control the accelerometer, the ir-camera, and every button on the wiimote and nunchuck through the use of config-files. The hardware used: 1 Wiimote(~40 euro), 1 nunchuck(~20 euro), 1 wireless wiibar(~15 euro), and a bluetooth dongle(~10 euro).

Procedure

  • Install the bluez libraries
  • Run the bluetooth daemon
  • Download and compile cwiid svn
svn co http://abstrakraft.org/cwiid/svn/trunk cwiid
cd /cwiid
autoreconf
./configure
make
make install
vi /usr/local/etc/cwiid/wminput/opensim #paste source beneath in, and save
modprobe uinput
wminput -c opensim
  • Make a new configuration file for wminput
  • Find out where the config-files are(one is called "ir_ptr"). Make a new file named "opensim" in the same directory. Fill with one of the config-options beneath:

suboptimal wiimote-only setup

#ir_ptr
include buttons
 
Plugin.ir_ptr.X	= ~ABS_X
Plugin.ir_ptr.Y	= ~ABS_Y
Wiimote.A	= BTN_LEFT
Wiimote.Plus	= BTN_RIGHT
Wiimote.B	= KEY_LEFTALT
Wiimote.Down	= KEY_LEFTCTRL

Execute:

wminput -c opensim

There are basically 4 essential keys that the viewer uses, but the wiimote interface is not really suited to control 4 buttons within the hand's normal reach. So - lets have a look at that configfile again - you can see that the right mouse-button is out of alignment with your normal handposition on the wiimote. You normally won't use that button(option menu) as often as the other onces. The buttons within reach are all configured to control the way you position the camera. A-Button is mouse leftclick(select object, select pivot-point), The B-Button is yaw, and digital-down is pitch.

With a nunchuck we can relieve the moving-controls to the analogue controller. Also, the down-button linked to left-ctrl is somewhat a hack. It works, but it's not the most natural approach possible. The wiimote-nunchuck configuration:

include buttons
 
Plugin.ir_ptr.X = ~ABS_X
Plugin.ir_ptr.Y = ~ABS_Y
Wiimote.A       = BTN_LEFT
Wiimote.B       = KEY_LEFTALT
Nunchuk.C       = KEY_LEFTSHIFT
Nunchuk.Z       = KEY_LEFTCTRL
 
Wiimote.Up      = KEY_PAGEUP
Wiimote.Down    = KEY_PAGEDOWN
Wiimote.Left    = KEY_LEFT
Wiimote.Right   = KEY_RIGHT
Wiimote.Plus    = BTN_RIGHT
Wiimote.Minus   = KEY_B
Wiimote.Home    =KEY_M
#Wiimote.1      = KEY_PROG1
#Wiimote.2      = KEY_PROG2
Plugin.nunchuk_stick2btn.Up     = KEY_UP
Plugin.nunchuk_stick2btn.Down   = KEY_DOWN
Plugin.nunchuk_stick2btn.Left   = KEY_LEFT
Plugin.nunchuk_stick2btn.Right  = KEY_RIGHT

Notice the Plugin.nunchuck_stick2btn, which is only in the svn-version of cwiid.

Personal tools
General
About This Wiki