The Kinect-A-Fan is an installation involving 10 equality spaced miniature fans one right beside another. Along with a Kinect 3-D camera, this installation in controlled using only your hands or another multitouch device such as an iPhone or iPad. There are three difference modes that can be chosen by the user; Free Mode, Single Player, and Multiplayer. In free mode users can turn the fans on and off by moving their hands along the Y axis. Their position is then mapped to one of the fans in the row. When I user moves from left to right his movement is simulated by the fans turning on and off. When the fans are stationary the red LED is on and when the fans are moving the green LED turns on. This creates visual feedback as well as sensory feedback as you can feel the fans turning on and off. The single player game mode is similar to the game “Wack-A-Mole”. A random fan turns on and then a user must get to it to turn it off within a designated interrupt. Interrupts vary from 500 milliseconds (Hard), to 1.5 seconds(Easy). The game ends after 50 fans have been turned on and the user gets to see his score. The multiplayer mode is similar to single player, the only difference between the two are that the “Mole” is selected by the second player trying to trick the first player. When the first player misses a fan then second player is rewarded a point. Again this game is up to 50. In this game mode users can play from any TUIO client such as an iPhone, iPad, Kinect, Mac etc. This installation is aimed to bring the Kinect’s natural gestures, sensory stimulation, and the aspect of play into one experience.
The Kinect-A-Fan bar is made of 10 miniature 3V fans from portable hand fans. The fans, along with the LED’s are all powered externally by a 3.4V ac adapter. The fans are all connected on a long 3″ X 2″ piece of wood with standard copper plumping brackets about 15 cm apart.
The body of the bar is made up of an acrylic eves-trove with circles cut for the fan blades.
For controlling these fans I used standard (SPDT) 5V relay with a 2n2222 transistor to ensure there is enough current to energize the relays.
As my IC I used an Arduino Uno with its power supply coming through the USB port from the computer.
Using serial communication from the Arduino it was really easy to integrate this project with processing. The arduino was listing for numbers from 1-10 and turning the appropriate fan on and off. To capture the Kinect data I opted to use TUIOKinect and TUIOPad integrating their own UDP protocol to processing. This made collecting and parsing data much easier. To distinguish between the two devices I simply just changed the port number. Kinect is running on port 3333 and the iOS is running on port 3334. The application is written in processing and the menu can only be controlled by the Kinect.
Integrating an home made physical component with more home made code really proved to be a challenge. Although I did do extensive research of the options of capturing Kinect data, building the physical bar was extremely difficult, time consuming and aggravating. It took a great deal of time to figure out first how to turn on and off the fan with an arduino, and then how to actually build it to a finished product. I ran through many challenges durning this part of the project. Building 10 separate boards took a great deal of time and trying to troubleshoot a few broken ones took even longer. There were some boards with “rushed” solder points and some LED’s that no matter what you did would always burn out. Since there were also a great deal of mechanical and moving parts, even after everything was working perfectly something would happen and something would break again. Although the freedom of building something from scratch was useful, trying to integrate this project with standard physical components would have made it a lot easier. The software for this project was thankfully much easier. Using the TUIO protocol and their prebuilt clients it was extremely easy to get started and after some threading in processing I was able to get two clients working almost as well as one. Looking back now I really would have liked to spend some more time coding and creating a simple interface for my project rather then wasting so much time re-soldering burnt LED’s.