Introduction: Haptic Glove With DIY Flex Sensors

Interacting with a computer through a mouse or a joystick can be rather mundane and sometimes (especially in video game play and robotics) its necessary to encode the movements of our fingers in to electrical signals that a microcontroller can read. Once we can interpret the flexing of our fingers, we can interact with virtual worlds inside a computer or control servo motors to mimic the movements of our fingers - electronic puppetry!!

Step 1: Flex Sensors Are Costly

First we need to be able to read the flexing of our fingers. The easiest way to do this is by using a flex sensor. Flex sensors like variable resistors....their resistance changes as they bend and flex. If we can read the resistance of a sensor, we can interpret how much it has been flexed and then we can use this data to do lots of interesting things! The problem is that commercially available flex sensors like the small 2.2" one shown here are incredibly expensive...A glove made from five of these can easily cost close to 100$.

Step 2: DIY Sensors : What We Need

To make our own cheap DIY flex sensors we will need...

1. A small PCB like the one shown.

2. Cable for each sensor. These add flexibility and strength to the sensor.

3. Two core wire for each sensor. So if we are doing a full five-fingered glove, we need 10 core wire. The length of the wire needs to extend from the glove to the microcontroller (like an Arduino).

4. Cellotape

5. One 10K resistor for each sensor

6. Conductive plastic bags. These are easily available from any electronics hobby store. In fact, you probably have a couple lying around the house since most delicate electronics goods are shipped inside these bags. To check if your plastic bag is conductive, just use a multimeter and touch its probes anywhere on the INNER surface of the bag...if you get a reading, thats good.

Step 3: Step 1: Strip the Wires

Strip one end of each wire. Twist the strands together and make a loop, twisting the end of the wire securely. When finished, each loop should be about 2cm or so in length

Step 4: Step 2: Preparing the Conductive Surface

Using a sharp blade, cut the conductive plastic bag as shown. The length of each strip should be just slightly shorter than the length of the sensor you are trying to make.

You will need two thin strips (each 1.1 cm wide) and one wide strip (2cm wide) for each sensor. The two thin strips will act like the outer layer of bread on a sandwich so If you use the side of the plastic bag, you will get a nice presealed end on one side.

Make sure you remember which surface of the plastic is conductive!

Step 5: Step 3: Inner Surface of Outer Layer

Place two thin (1.1 cm) strips on a work surface, conductive side facing upwards.

Using cellotape, attach two loops of wire to the upper (conductive) surface of the 1.1 cm wide strips.

Adjust the tail end of the loops so that when the two strips are placed on top of each other (like if you were closing a sandwich), the insulated wires sit adjacent to each other, firmly but not touching. Don't close the sandwich, just see that everything sits nicely when the sandwich is closed finally.

Step 6: Step 4: Completing the Sensor

Now that the inner surface of the outer layer of 'bread' is ready, take the wider (2 cm) strip of conductive plastic.

Fold it in half lengthwise (conductive side outwards) and crease it gently.

Now slip it between the the two wire loops as shown, remember conductive side is outward and should be placed against the wire loops on both sides.

Take care that the exposed part of wire loop does not extend outside from the conductive sandwich.

Now fold the sandwich securely and seal it off completely with cellotape on the outer surface.

Once the sensor is securely taped together, place a cable tie over the sensor and tape it in place to add flexibility and strength.

The tips of the sensor can be sealed with shrink tape or cellotape to keep them from opening up as they are put into use.

Step 7: Step 5: Electrical Connections

We now create a circuit so that the flex sensor will act like the 'upper' arm of a voltage divider.

You can see in the breadboard image that one terminal of the Flex sensor is connected to the +5VDC supply. The other terminal is connected to Ground via a 10K resistor. The output to the analog input pin of the Arduino is tapped at the junction of the Flex Sensor and the 10K resistor.

If you are making five full sensors in a glove configuration, you will need to create a bank of 5 such voltage dividers in parallel with each other. The output tapping of each voltage divider goes to a separate analog input pin on the Arduino.

If you want to make a more robust permanent sort of circuit, you can use the PCB to do so as shown in the photo.

Step 8: Step 6: Completing the Glove

Now that all the sensors and the circuit is ready, place the sensors on the glove and stitch the finger tip end of each sensor into place.

Next, put on the glove, flex your fingers gently and check for correct flexing. Once you are happy that everything is lined up, stitch the knuckle end of each sensor into place.

Your haptic glove is now complete!!!

Step 9: Step 7: Arduino Code

Now we need to write the Arduino code that reads each sensor and converts its resistance value into data that we can use... Here is a very simple Arudino program that accomplishes reads data from the glove and sends the value of each sensor over the serial interface. For better results, we could use noise reduction and filtering techniques to get a much more smooth output from each sensor.

int sensorPin[5] = {0,1,2,3,4};
int sensorVal[5] = {0,0,0,0,0};

void setup()




void loop()


for (int i = 0; i < 5; i ++)


int readVal = analogRead(sensorPin[i]);

sensorVal[i] = readVal;


for (int i = 0; i < 5; i++)








Step 10: Step 8: Putting the Glove to Use

The first video shows glove construction. Jump to 3:41 on the timeline to see data being read from the sensors and transmitted to the computer where it is interpreted and used to control slider bars in a GUI. You can easily see something like this being used as a virtual guitar or a virtual hand inside the computer!

In the second video I use my haptic glove to control the robotic hand I made. As you can see, there is plenty of noise in the system. but this is because (a) I did not employ any data smoothing to the raw sensor data nd (b) the fingers of the robotic hand themselves are made out of springs and they tend to vibrate when under stress.

Sensors Contest 2016

First Prize in the
Sensors Contest 2016

Robotics Contest 2016

Participated in the
Robotics Contest 2016