Nintendo Wii balance board

This article or section is a stub. It does not yet contain enough information to be considered a real article. In other words, it is a short or insufficient piece of information and requires additions.

Draft

<pageby/>

## Contents

* 1 Definition
* 2 Surfing the Internet
* 2.1 Wiimote hookup
* 2.2 GlovePIE Scripts
* 2.3 Balance board hookup
* 2.4 Balance board script
* 2.5 Greasemonkey script
* 2.6 The result

## Definition[edit | edit source]

The Wii balance board is a controller for the Nintendo Wii gaming console.

* balance board (Wikipedia)

It is possible to hook it up with a PC. You then can use it as an input device, e.g. like a joystick.

## Surfing the Internet[edit | edit source]

The idea: Surf on the Web with your feet only. This is a first attempt ...

Material:

* A DELL XPS II Laptop with a bluetooth card
* Adapter is Toshiba
* Driver is "Bluetooth Personal Area Network from Toshiba" - Version 5.0.2129.0 of 27.11.2002
* Bluetooth HID port from Toshiba
* Nintendo wiimote + nunchuk and a wii balance board

### Wiimote hookup[edit | edit source]

To set up the bluetooth connection for the wiimote

* Hook up the nunchuk ! ... else (I think) it won't be calibrated right and you will have to delete bluetooth connect
* Launch the Bluetooth program (Menu Programs->Bluetooth->Bluetooth settings)
* Click on "new connections", express mode
* Press on the wiimote at the same time button 1 and button 2 (or alternatively the red button inside the battery trap)
* Create a blue moon shortcut on the desktop

... and it should work, basically it's like connecting a cell phone or any other bluetooth device, i.e. straight forward with this laptop at least.

The Nintendo Wiimote seen by the Bluetooth tool (sorry my Windows speaks french)

* Nom du périphérique: Nintendo RVL-CNT-01
* Addresse du périphérique: 0:1E:35:5E:38:22
* Classe du périphérique: Périphériques(Manette de jeu)
* Classe de service: Périphérique d'interface humaine
* Nom du service: Nintendo RVL-CNT-01

### GlovePIE Scripts[edit | edit source]

The Wii balance board is supported by Carl Kenner's GlovePIE v. 0.3 + on the PC.

* Donwload and install this software
* Then get some PIE scripts that emulate mouse behavior (update: the site I got my scripts from is dead / Daniel K. Schneider 12:58, 20 July 2010 (UTC))

I based my trials on WiiMouse Version 0.4 by Sam Braidley (just appended what's below to it)

### Balance board hookup[edit | edit source]

To set up the bluetooth connection for the wii balance board

* In the bluetooth program, click on "new connections"
* Open the battery case of the board and press the red button

What I get is:

* Nintendo RVL-WBC-01
* 00:1E:35:FD:7D:B5
* Périphériques(Manette de jeu)
* Nintendo RVL-CNT-01

The documentation for the GlovePIE v 0.3 balance board support is on page 70. It works :) ... there is only some weird calibration to do (e.g. I find the X and Y axis of the Joystick interface mixed up.

### Balance board script[edit | edit source]

I added this (in several variants) to an existing PIE script

// Put the LED on
Wiimote2.BalanceBoard.LED = true

// This may look really weird. What is X and Y is a question of opinion ;)
// (1) For me, X should be handled by left/right when board is in normal position in front of TV. Glove PIE X is front/back.
//               on/off LED
//    +

--+
//    | FL                    FR |
//    |     left        right    |
//    | BL                    BR |
//    +

--+

// (2) on/off button is IN FRONT, i.e. close to computer, else multiply by -1
// Calibration (x and y offsets) are a bit strange. Seems to change over time also.
// Finally, there is some Interaction with the Wiimote I don't understand.

// Ajust values here - you may have to change them each time
// When you don't stand on the board, data for FL and BR are weird.
// Below a formula that leaves the cursor more or less idle when NOT on the board
var.deltaX = (Wiimote2.BalanceBoard.JoyY - 0.00) / 25
var.deltaY = (Wiimote2.BalanceBoard.JoyX + 0.05) / 25

// When you stand on the board (in neutral position) things may be wrong. So you may to compensenate once you are on the board...
// var.deltaX = (Wiimote2.BalanceBoard.JoyY - 0.20) / 25
// var.deltaY = (Wiimote2.BalanceBoard.JoyX + 0.15) / 25

mouse.x = mouse.x + var.deltaX
mouse.y = mouse.y + var.deltaY

debug = "BB= " + Wiimote2.HasBalanceBoard + " JoyX =" + Wiimote2.BalanceBoard.JoyX + " JoyY =" + Wiimote2.BalanceBoard.JoyY + " FL=" + Wiimote2.BalanceBoard.FrontLeft + " FR=" + Wiimote2.BalanceBoard.FrontRight + " BL=" + Wiimote2.BalanceBoard.BackLeft + " BR=" + Wiimote2.BalanceBoard.BackRight

// debug = ('WiiBalance by Daniel K. Schneider tecfa.unige.ch, based on Sam Braidley www.wiiscript.co.uk')

### Greasemonkey script[edit | edit source]

When you surf on the Internet you don't want to click, but just ride. To do so you have to write a Greasemonkey script like this.

Greasemonkey is a quite spectacular FireFox extension that allows you to customize the way a webpage displays using small bits of JavaScript. Hundreds of scripts, for a wide variety of popular sites, are already available at UserScripts.org. Something similar exists for Opera. IE 7 we don't know. Below is the script I wrote, you can copy/paste or get it from here

// ==UserScript==
// @name           Mouseover surfing
// @namespace      DKS
// @description    Adds a mouseover event handler to internal each link of a MediaWiki that will redirect to a new page. This is for surfing a Mediawiki
// @include        http://tecfa.unige.ch/guides/js/ex/greasmonkey/
// ==/UserScript==

var n=document.links.length;
// Change the cursor into something that is bigger
document.body.style.cursor = "url(http://tecfa.unige.ch/guides/js/ex/greasemonkey/cursor.png) 25 25, auto";

for (var i = 0; i < n; i++) {
l = document.links[i];
l.addEventListener(
'mouseover',
function(event) {
var link = event.target;
// link.style.cursor = "crosshair";
link.style.cursor = "url(http://tecfa.unige.ch/guides/js/ex/greasemonkey/cursor-link.png) 25 25, auto";
// Uncomment to constrain to mediawiki internal links
// if (link.className!="external text")
if (link.href) document.location.href = link.href;

true);

This little script should be improved, e.g. by waiting a second before loading a new page. I'll do this once I have time, based on the code of NoClick 1.00.A.

### The result[edit | edit source]

Result is not perfect, but it does ok for a let's ride the Internet demo. I put it on YouTube (sorry I am not a filmmaker ...): http://www.youtube.com/watch?v=bqTB5AUDZzo

<object width="425" height="350"> <param name="movie" value="http://www.youtube.com/v/bqTB5AUDZzo"> </param> <embed src="http://www.youtube.com/v/bqTB5AUDZzo" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object>