Introduction: Glove Controlled Robotic Hand - Cheap and Simple Version
This project is based off of the DIY Robotic Hand instructable located here. Being a poor college student however, I could not afford dishing out ~$500 for a 3D printed hand and another $50 for the servos. I set out to revise a cheaper alternative design for people like myself. Starting with absolutely nothing this project should cost at most $140. I have the links and prices of the exact parts I used laid out in the next step. Anyways, the main idea of the project is that there are five flex sensors wired into an Arduino and sewed into each finger of a glove. The Arduino interprets the change in these flex sensors and moves a corresponding servo motor accordingly. The five servo motors are attached to the five fingers of a plastic toy hand with fishing line, and when a motor moves the finger it is attached to moves as well. A video of the project is located above (https://www.youtube.com/watch?v=CeeiNC_oQpc).
Step 1: Buying the Parts
Here's the list of the exact parts and links I used for this project:
- 1 x Arduino Uno - $24.95
- 1 x Plastic Toy Hand - $10.99
- 5 x Small Servo Motors - $15.70
- 5 x Flex Sensors - $64.75
- 1 x Glove - $4.00, any glove that doesn't change shape when putting on/taking off will work. Probably cheaper to visit a local store and try other ones on.
- 1 x PCB Board - $4.95, any small PCB with holes in it will work here. Again, might be cheaper to just pick one up at your local hobby store.
- 1 x Breadboard - $5.95, same as above.
- 5 x 22k Ohm Resistors - $1.49, same as above.
- 1 x Fishing Line - $3.36, same as above.
This tutorial assumes you already have access to some basic tools for building projects including:
- Soldering Iron and Solder
- Hookup Wire
- Heat Shrink
- Electrical Tape
- Power Drill
Step 2: Making the Glove and Circuit
I'm going to redirect most of the tutorial on creating the circuit to the other instructable here. It is a pretty simple circuit, the sensors run on 5V from the Arduino with 22k resistors going to ground. Just make sure the ground, analog, and resistor leads are all soldered together underneath the board. I color coordinated and wrapped all my wiring with electrical tape as you will have quite a few wires flying around.
You will need to learn how to sew in order to attach the circuit to the glove. I sewed in the four corners of the board to the top of the wrist. You will also need to drill a small hole at the top of each flex sensor so you can sew it into the fingertip. I also sewed across the sensor in three other spots down the finger. The more you secure the sensor, the cleaner the values you will get back through the Arduino, however sewing into the glove is very tedious and time consuming. My advice would be to just sew along the three knuckles in the finger and call it good.
Step 3: Assembling the Hand
This is by far the most tedious and time consuming step of the project. Make sure you have plenty of fishing line, superglue, and zipties before proceeding. Start by supergluing the grey fingertips to each black finger. Then superglue and ziptie each motor in the exact arrangement pictured above. The top right and middle motors both turn counterclockwise, while the rest turn clockwise. Feel free to test your own arrangements but if you follow my layout you shouldn't run into any problems.
Once all of the superglue has hardened you can move onto threading the fishing line. First you will want to tie the line to the last hole in the motor attachment. You will want to make sure the knot you tie can withstand a lot of tension before threading it through the finger. If the knot comes undone after threading through the finger you will have to start over. Once you have a strong knot and plenty of extra slack line, thread the line through the motor's corresponding finger. In my picture, the motors are connected so that the top left goes through the second finger, bottom left through the first finger, middle through the fourth finger, bottom right through the third finger, and top right through the fifth finger. Once threaded, I was unable to create a knot that could slide down the line into the tip of the finger. If you know how to do that, go for it. However, another solution is to bring the line down and wrap it around the top knuckle multiple times before tying it. You will want to make sure there is some tension between the finger and motor when you tie it, so it may take a couple tries to get it right. Once you have all five lines threaded and tied, congrats! You completed the hardest part of the project.
Finally you will want to insert some wire into the female headers of the servo motor wires. Red should be connected to 5V, brown to ground, and orange to a digital output pin. I soldered and heat shrinked all my 5V wire together as well as my ground wire in order to only have one wire for power and ground connected to the breadboard.
Step 4: Completing the Circuit
Run a wire from the 5V and ground on the Arduino to the breadboard. Connect the power and ground from the servo and sensor circuits to their corresponding locations on the breadboard. Now you will want to connect the five analog wires from the sensors to analog pins A0 through A4 on the Arduino. I did this making sure that they were in order (A0 - thumb, A1 - index...and so on). Finally connect the servo signal wires to digital pins 8 through 12 on the Arduino. Again I did this making sure they were in order (8 - thumb, 9 - index...and so on). This should complete the wiring of your circuit.
Finally, write the code for your Arduino. The code is super simple, you should have little trouble following my logic in the attached file. My code is about the bare minimum to get the circuit running, feel free to play around on your own with it to optimize your circuit.
Step 5: Wrapping Up
I hope this tutorial was helpful to you, please leave suggestions down in the comments. This is a fun, relatively easy way to learn more about robotics and I hope you give it a try!
Thanks and good luck!
We have a be nice policy.
Please be positive and constructive.