Nintendo Wii balance board: Difference between revisions
m (Reverted edits by Francisco21 (talk) to last revision by Daniel K. Schneider) |
|
(One intermediate revision by one other user not shown) | |
(No difference)
|
Latest revision as of 14:29, 17 September 2010
<pageby/>
Definition
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
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
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
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
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
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
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
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>