Clemson Wiise - Wii Interfacing Software


Ninad Pradhan, Varun Prabhu, and Dr. Timothy Burg

June 2010

What is Wiise?

Wiise interface

The Wii Remote helps an user communicate with the Wii Gaming Console. Moreover, it is an affordable yet powerful sensor which relays acceleration, orientation and position data over a Bluetooth connection to any device capable of receiving Bluetooth signals. This makes the Wiimote an attractive device using which one could develop tools to teach middle to high school students concepts of robotics, engineering design and physics.

Clemson Wiise is a software which interfaces with the Wii remote, contains a data visualization interface and makes its data available in the form of the widely supported CSV spreadsheet (readable in MS Excel) for later analysis. In addition to Wiise, this webpage contains links to many other free, useful and mostly open-source software which can connect a Bluetooth-enabled computer to the Wii remote.

Please write to us at npradha AT clemson DOT edu with questions, feedback and suggestions for improving our software. The software is supplied as is, wtihout any guarantees on specific system performance. We have tested on Windows Vista and would like to hear how it does on other operating systems.

Download:

[Source Files and Demos][Sourceforge page]

Inside Wiise

how Wiise works

The source code for Wiise is free to download and use. All of the necessary files are packaged into the Wiise folder and nothing else needs to be downloaded. The following paragraphs serve to introduce you to the very useful work done by others on the foundations of which we built Wiise.

Wiise connects to the Wiimote using the popular Wiiuse C library. This library contains a well-documented, easy to use API which makes it easy to get data and other status updates from the Wiimote (whether a connection was successfully established to it, remaining battery life, etc.). Wiiuse is a great place to start for someone looking to independently developing their own Wii interface software.
[Wiiuse Documentation][Download Source]

Data from the Wii is visualized using OpenGL in combination with GLUT. We have two demo programs to demonstrate this capability: wiisePitch and wiisePosition, which visualize the pitch and X-Y coordinates of the Wiimote respectively. GLUT makes the OpenGL graphical programming environment relatively convenient to use, enabling a variety of shapes, textures and lighting in the graphical display of the Wii sensor data.
[GLUT Homepage]

While many other software will let you connect to the Wiimote, there are few (if any) which will let you store data for further analysis. This is often critical for educational purposes and indeed for all design projects. Data analysis contributes to revised algorithms and methods, which in turn improve the performance of the application which uses a sensor. Wiise writes data to a spreadsheet (in the common .CSV format) by integrating the libcsv library into the software.
[Download libcsv]

Wiise Demos

Wiise, in its current version, does not have a graphical user interface which could be used to alter program settings. However, we have created demo programs which are configured to give the user access to most features of the software.

Wiise Orientation Data

wiisePitch helps visualize the pitch of the Wiimote by rotating the bar in the graphical display in sync with the Wiimote held by the user. Orientation data along all three axes of rotation (roll, pitch, yaw) is written to the CSV file. Note that the Wiimote estimates yaw only when the Wii Sensor Bar is powered on, but pitch and roll are available regardless of the sensor bar location.

Wiise Sketching

wiiseSketch is a Wii based variant of Etch-A-Sketch. The crayon shown above is red when the button A is not pressed and turns yellow when the user indicates that he/she would like to record what's being 'drawn' with the Wii in hand. The Wiimote becomes a painting brush, the screen shown above becomes the canvas and the drawing data is recorded to a CSV file where it may be plotted to review the artwork! Since this program requires the position of the Wii to be sensed, the Sensor Bar is required for this demo to work.

Wiise Position Plotting

wiisePosition plots the position of the Wiimote with respect to a virtual screen defined by the Sensor Bar. This is a cool demo for demonstrating robot positions over time. Suspend the Sensor Bar near the ceiling, mount the Wiimote with its front (camera) side looking upwards, and watch the position being plotted on the computer screen as the object (in this example, a robot) moves! This data can be plotted in Excel by opening the CSV file.

If you have access to Visual Studio (VS2005 or later), it's pretty easy to change program settings and get the required specifications from your Wiimote system. Open the Solution, go to wiimote.h and see the function SetParameters(). Change the required settings, hit Ctrl+F5 to save, compile and run the modified program.

Other Wii Software

There are a number of other useful software which can used to visualize information being received from the Wiimote and create applications which use this information. The list given below is far from comprehensive. This is mainly because there are a lot of people spending a lot of time trying to find non-gaming uses for the Wii remote in particular and Wii console in general.

fWiine

fWiine is a MATLAB based application which uses wiiuse to interface with the Wii in MATLAB. If you have a MATLAB license, you can see Wiimote data being plotted in real time and use all of MATLAB's power to analyze and document that data, or integrate the Wii as a sensor into a sophisticated control system implemented in Simulink.
[Download fWiine]

wiinremote wiimote testing

WiinRemote (left) and Matthias Shapiro's Wii Data Visualizer (right) are both very good at collating all data from the Wii on to a single screen. They will tell you which button on the Wii is being pressed, where the Wiimote is located relative to the sensor bar, and the acceleration recorded along each axis. WiinRemote plots acceleration data and gives a better picture of short time acceleration trends, but the Data Visualizer's large screen area for the IR sensor gives a clearer representation of the position of the Wiimote.
[WiinRemote webpage]
[Wii Data Visualizer webpage]

'Wii Media in 15 minutes and $5' serves as a good introduction to GlovePIE, a versatile scripting environment which will allow you to interface with the Wii and try out cool demos such as converting the Wiimote into a computer mouse. GlovePIE is also a good place for programming novices, allowing you to explore the capabilities of the Wiimote without having to learn a programming language.
[GlovePIE webpage]

Dr. Johnny Lee has a webpage which demonstrates some creative technologies developed using the Wiimote. His Wiimote Whiteboard, the application which converts a regular whiteboard to a smartboard, is well known. This application is available for download on his website.
[Johnny Lee Wiimote webpage][TED Talks Lecture on Wiimote hacks]

Connecting to the Wiimote

To get data from the Wii remote, a Bluetooth connection needs to be set up. Unfortunately, this is easier said than done because the right driver needs to be found to talk to the Wiimote. We found BlueSoleil 6.4.x to be the most reliable Bluetooth driver for connecting the Wii to a Windows system. BlueSoleil can be downloaded on a one month trial basis, after which a license can be purchased for continued usage (for $27, at the time of writing). [BlueSoleil website]

To connect the Wiimote the first time using BlueSoleil, hold the '1' and '2' buttons together to make the Wiimote discoverable. The four lights at the bottom should start flashing. Keep these buttons pressed until you connect to ensure that the Wiimote stays in discovery mode. Double click on the yellow circle in the BlueSoleil console for it to find the Wiimote. The Wiimote should show up as a Nintendo RVL-CN... double click on the device at this stage to find Services associated with it. Let go of the Wiimote buttons. Right click on the Nintendo joystick icon and select 'Connect to Human Interface Device...'. If a connection is successfully established, part of the joystick turns green and you will see a dashed connecting line between the center icon and the joystick icon with a green circle moving between the icons.

You are now ready to try all the Wii software.

Presentation

We recently conducted a workshop at the annual Southeastern Consortium of Minorities in Engineering (SECME 2010) Summer Institute titled 'Robots in your Home'. This workshop explored the iRobot's Roomba search algorithm and the technology in the Wiimote. The slides and worksheet for this presentation may be downloaded here.

[Presentation]

 

E-Mail Burg Home Page