Skip to content

My Homemade Nintendo Powerglove

October 30, 2011
My Homemade Powerglove

Remember the old Nintendo powerglove? Of course you do. Well, I’m here to bring it back. With just an arduino, a piezo transducer, flex sensors, 10k Ohm resistors, some wires, rubber bands, a glove, and some C programming knowledge, I am able to recreate the old school Nintendo powerglove…. except this time, I made it into an electronic musical instrument. I mean… do you ever have a melody stuck in your head and you can’t help but to play the imaginary piano keys with your fingers? Well, this is what inspired me to do this. LOL. Seriously.

Yeah I know… you’re probably thinking 1) this looks ugly and 2) I should use this for something cooler. You are absolutely correct, and this is just the beginning of my little powerglove project. Just wait until I finally receive my 3-axis accelerometer in the mail (I didn’t want to break apart a wii controller to do this)… I’m gonna do all sorts of things. What’s on my list?

– Use it to control a robotic arm
– Create an AIR keyboard or mouse (kind of like minority report… except you have to be wearing the glove.
– Use it to control the movement on video games
– The beginning of an ironman suit! (j/k… sort of)

Well… enjoy the pictures and the video and the source code.

Here’s the video of the powerglove in action

…. and HERE is my source code:


int potpin0 = 0;
int potpin1 = 1;
int potpin2 = 2;
int potpin3 = 3;
int potpin4 = 4;

int speakerPin = 7;
int val0, val1, val2, val3, val4;
int flexlow = 50;
int flexhigh = 300;
int flexminimum = 230;

void setup()
{
  pinMode(speakerPin, OUTPUT);
  
}

void loop()
{
  val0 = analogRead(potpin0);
  val1 = analogRead(potpin1);
  val2 = analogRead(potpin2);
  val3 = analogRead(potpin3);
  val4 = analogRead(potpin4);
  if(val0 < flexminimum){
    playTone(1915);
  }
  else if(val1 < flexminimum){
    playTone(1700);
  }
  else if(val2 < flexminimum){
    playTone(1519);
  }
  else if(val3 < flexminimum){
    playTone(1432);
  }
  if(val4 < flexminimum){
    playTone(1275);
  }
}

void playTone(int note)
{
  for (int i=0; i<100; i++)
  {
    digitalWrite(speakerPin, HIGH);
    delayMicroseconds(note);
    digitalWrite(speakerPin, LOW);
    delayMicroseconds(note);
  }
}

From → Hacks

One Comment

Trackbacks & Pingbacks

  1. My Motion-Controlled Miniature Turret « cranklin.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: