A Virtual dance floor

System Components

  • Custom-built Wii-Mote tracking system
    • 1 Nintendo Wii-Mote
    • 1 Bluetooth receiever
    • WiiMote C# runtime libraries
    • Custom feet-sensors
      • Velcro straps
      • 2 Infrafed LED lights
      • 2 watch batteries
  • Interactive "Dance Instructor" software
    • Developed in Microsoft C# using the Windows Presentation Foundation form libraries
    • Software creates the GUI display, connects and communicates with the WiiMote via bluetooth, interprets the user's feet input and draws visual feedback, as well as plays our various media files including sound and built-in images
    • GUI is displayed on two screens:
      • Floor projection - used in conjunction with an LCD projector to simulate a digital, reactive dance floor for users to step directly on
      • Visual Monitor - used to display relevant interface information such as score, current dance, as well as provide another layer of "foot" presence for users

Wii-Mote Systems Information

  • A lot of our work with the WiiMote was made possible through the groundbreaking work made by the HCI researcher Johnny Lee at Carnegie Mellon University. He was the first person to pioneer "Wii Hacking," and it is through his group and the efforts of all those around the world who supported him that we were able to leverage the extensive Wii Mote runtime libraries for C#.
  • Essentially, the WiiMote communicates via a bluetooth signal, which can be picked up by our adaptor on our laptop. The WiiMote sends and accepts a very simple series of binary packets that the WiiMote community has painstakingly decoded through trial and error. The library simply provides an abstraction for this encoding.
  • The entire system is actually relatively easy to set-up once you find a bluetooth adapter that works with the WiiMote (we had to go through two); however, the difficult part is really callibrating whatever software you write to work within the context of the sensor feedback on the wiimote. One of the most difficult elements for us has been calibrating the user's feet movements with the correct movements on-screen.

"Dance Instructor" Overview

  • The Dance Instructor is a simple learning tool that interfaces with the Wii Mote. Here's a quick breakdown of its core parts:
    • GUI - using just the forms functionality of the WPF, we create a simple yet practical interface for both the floor and main screen. The only downside to this method is the limited graphics and animation tools C# gives you for creating visuals on top of forms (it's really a language designed to be used with the much more powerful DirectX rendering environment, which we attempted but found to be too difficult for the scope of this project).
    • Song Loading and Rendering - we've created a simple "Song" format that we use to load up different types of dances and their associated steps. We feel this makes our system rather robust and will be quite helpful if future iterations are pursued.
    • Game System - we added some simple "hit-box" elements to the virtual dance floor as well as a scoring system to create the type of feedback system that we feel an interactive "toy" should have.
    • WiiMote Libraries and Interface - although the WiiMote libraries do most of the heavy lifting for us, we had to build an abstracted system to convert the two signals from the user's feet into representations in the GUI form. This system includes some pretty creative ways for keeping track of feet information to determine which foot a user is moving.