Introduction: Motion Controlled Robotic Arm

Picture of Motion Controlled Robotic Arm
*This instructable is not complete, I will post code soon

The Arm:

This instructable shows the process of building a robotic arm using servos, Arduino microprocessor, a gyroscope and multiple bend sensors.

The user wears a glove containing the gyroscope and bend sensors which translate the movement of the users hand into motion of the  servos , in turn rotating the wrist and hand of the robotic arm. 

The forearm has full motion of a human wrist namely: rotation, radial deviation (movement towards the thumb) ,ulnar deviation (movement towards the little finger) ,flexion (tilting towards the palm) and extension (tilting towards the back of the hand).

The Hand also has movement of the fingers, this is limited as a result of the brittle material used.

All movement is provided by the Servos attached to an extension wire or piano wire. Each having different torque depending on its position.

The fingers contain touch sensitive resistors which provide haptic feedback and allow the user to know when the fingers have grasped an object.

Step 1: Design

Picture of Design
Attached are pictures of the design using 'google sketchup'.

I found this design of the finger on the net which allows a single servo to provide full motion of curl of a human finger.The design works best when Aluminium is used for the cut outs of the fingers, but as I had perspex available I went with the weaker option which resulted in brittle fingers. 

All the fingers are the same design but a variation of measurements, except for the thumb.  they can be found below:

The designs below are the ones I sent through to a laser cutter here in Johannesburg for about R350 for all cuts and material.
they required the files to be sent in 2d DXF format, so if you alter the design in sketchup, make sure you export it in the correct format.

The rest of the cut outs are made up of wrist and palm sections.
index finger, middle finger, ring finger is roughly the same size.

pinky is slightly smaller than other fingers.

Thumb has different dimentions

Step 2: Materials

Picture of Materials

- Arduino Mega (or an Arduino with enough Analogue input pins to support all the sensors)

- 20kg-cm torque Servos for wrist movement x3

- 2kg-cm torque Servos for fingers x5

- Atleast 40kg-cm torque servo for elbow and shoulder x1 or x3 

- 3 axis gyro breakout board (I used a L3G4200D, any will do).

- Force/Touch sensors x5

- Gloves x2

- Bend sensors/Resistors x5 (or 6 if you wish to build an elbow).

- Some small aluminium Plates.

- Length of flat pc wire.

- Connector pins.

- BreadBoard.

- Piano Wire 30cm pieces x4


- Glue Gun

- saw to cut aluminium/Perspex

- Wire cutters

- nuts and bolts

Step 3: Hand

Picture of Hand

The best way to attach the finger joint together is with grommets, this allows for movement of the joints.
I used small bolts and a glue gun which provided too much friction and the joints wouldn't work as intended. Any pressure applied resulted in the perspex fracturing. I decided to remove the joints and have the finger move as one unit.

- Attach the fingers into the slots of the palm cut out. Img[2]
- Attach the servo arm to the smallest disk and bolt  the arm to the servo.
- Glue the palm onto the smallest disk to provide the wrist section, add supports for strength.
- Glue the servo to the larger disk with the rectangle cut out , this separates the hand from the lower wrist and allows for 180 degree rotation. Img[3]

Step 4: Wrist Joint

Picture of Wrist Joint

The wrist joint needs to act as a ball joint, with radial and ulnar deviation ,flexion and extension. This requires 2 Servo brackets which I made from aluminium. One within the other, rotating about a bolt , providing 2 degrees of freedom. Attaching the rotation servo to the upper bracket with a plastic bracket mimics the movement of a human wrist.

I used Rod bolts as the forearm structure to act as the radius and ulnar. Attach these rods to the wrist joint by drilling two holes in the lower aluminium bracket and tightening them with nuts on either side.

cable tie the leads of the servo to one of the rods.

Step 5: Lower Forearm

Picture of Lower Forearm

Attach the larger perspex disk to a side panel as in Img[2] and bolt the two rods of the forearm to this disk. Make sure you use washers so that you do not crack the perspex when tightening the nuts.

See pictures below to get an idea of the final product:

Step 6: Attaching the Servos

Picture of Attaching the Servos

The arm of the wrist servo needed to extend beyond the sides of the wrist. I attached 2 smaller arms to a central larger one which turned out to be quite rigid. The holes also provide a nice attachment area for the piano wire. Img[2]

The other side of the piano wire attaches to the sides of the wrist disk so that when the servo twists, it tilts the wrist in that direction.

- Solder Pin connectors to the ends of the flat cable wires, each servo has 3 leads, and there are 3 servos in the wrist and 5 in the hand, that's a total of  24 individual wires. if you are using the touch sensors, its an additional 10 wires that need to reach the hand, so strap the wire up neatly so that its easy to troubleshoot.

Step 7: The Hand

Picture of The Hand

-Slot the micro servos into the rectangle cutouts of the palm, they will provide the push pull for the fingers (either by piano wire or a flexible wire , the finger is then pulled closed by elastic.) make sure the arm of the servos is facing outwards, except for the thumb servo, this one faces inwards.

- I glued the reverse side of the pressure sensors to the tips of the fingers, then soldered extended wires to their leads.(this is for the feedback. Img[7-11]

-Connect the finger servos the the extension leads that you soldered pins onto earlier.

Step 8: The Glove

Picture of The Glove

I bought a pair of cloth gloves for this part:

- On the outer side of the fingers of the glove , glue a bend sensor with the glue gun.
- connect extended leads to the 3 axis gyro pins and label each wire.
- Glue the gyro to the centre of the back of the hand.
- Extend all the bend resistor wires.
- put the glove on, and slip the other glove over , this helps keep everything in place and also looks a lot neater.
- Glue the rim of the gloves together.

This completes the control glove.

On the other side of the extension wire, about 1.5 of a metre down, strip the wires and attach connector pins.

Step 9: The Stand

Picture of The Stand

I wasn't sure how to mount the arm as I initially wanted to build an elbow joint and shoulder joint, but as the servos for this weren't in stock at the time,I decided to stick with the forearm on its own.

- I found an old stand from a Samsung screen and glued the arm to the slot in the base. this worked better than expected.

- Glue a breadboard power strip to the base or lower arm. this will be plugged into the power supply, and provide power to all servos and Arduino.

Step 10: Resources

Code below:

- Wrist code  Rotation, side to side, up and down using the gyro.

- Finger Control

- Complete Code with filtering


ctwal12 (author)2013-02-13

Did you make the hand on your own or did you buy it from somewhere? And if possible, can you send us a link to a cheap arm which will be good for this project?

bluebean (author)ctwal122013-02-13

The project took about 1 and a half months. Arduino has its own software , you can download from the website. From my instructable you can see i designed and built the hand completely from scratch, i didnt buy any ready made parts. This is not a simple project so if it is your first i suggest you start with a simpler one.

Ive seen people remove the controls and interface with this one quite easily, and its relatively cheap:

Linpaws (author)bluebean2017-03-07

Hello bluebean!!
It is great project but i have a question.
How you print the hand parts means i have the dimensions & but in my city 3d printer is not available so can i order them from any where???
Please reply
Thank you

bluebean (author)Linpaws2017-03-08

Hi, thanks. I got the hand parts laser cut in perspex, not 3d printed. They were quite brittle because they were so small. 3d printing would work better. I know was selling a hand at one stage but they not cheap. Good luck with your project.

jakobsonleon (author)2016-12-14

Can I use this with an Bluetooth-Modul ?

chathurangakila (author)2016-07-22

Please can i get the full code for this robot hand project?? is my e will be very helpful if i get the code.If need i can pay for you.

chathurangakila (author)2016-07-22

Please can i get the full code for this robot hand project??

Throne85 made it! (author)2016-07-07

gesture controlled car

Lunatick Cultist (author)2016-05-24


HassanT5 (author)2015-09-23

Instead of using a gyro sensor, can I use a sheild and control it via my smart phone using bluetooth :D

Ulquiorra Cifer (author)2015-08-04

It is amazing that the robot arm can be controlled by gesture so senstively.But is it would be more possible to be damaged by using the britttle materials?

JackL9 (author)Ulquiorra Cifer2015-08-05

As we all know, acrylic is a very brittle material. Are you looking for a more stable robot arm? Here is a multi-control robot arm made by 6061 which I happen to find few days before in case you want to get one:

PhanA2 (author)2015-07-30

hi.quite complex mechanical parts, I can buy one?

jensara (author)2015-07-09

Hi, this is great project and i want to do it also...Do you think that it is possible to modified it that the arm could stretch?what would be the possible materials?thanks...

garciadelfin (author)2015-04-27

Hi, I really loved your project and i wanna do it. I have a question,
I supose that your foce/torque sensors are to measure the force applied in the finger tips, am I right? So what is the benefit of this in your project?????

Riyn1 (author)2014-10-02

great project...

Hi.. bluebean, which bend sensor you are using 1k-20k or 20k-50k? thanks

bluebean (author)Riyn12014-10-02


I seem to recall 1-10k (I could be wrong its been a while since I looked at this project), but it shouldn't make a difference, all that changes is your values for the pull down resistors like in the diagram in the last image of this instructable. Or you can alter you comparator/shmidt trigger in the Arduino code.

tommychev (author)2014-06-10

Awesome instructable bluebean, a kid on one of my classes built something similar but with only finger control. Had he more time he would have added feed back to the fingers.

agomes6 (author)2013-08-27

Great Instructable!

By any chance can you post your wiring diagram of the gyro? I am a bit confused to see you using all pins with I2C and no interrupts.. I have been using similar gyros and I usually stick to:

VCC + SDO - 3V3
SCL - A4 (20 on mega)
SDA - A5 (21)

Thanks in advance

bluebean (author)agomes62014-02-26

Correct, It is connected as you stated above. I just soldered all the wires on for future use. heres a link to how its done.

theres also code there to test it out

2014DoySamE (author)2013-09-24

what kind of connector pins did you use, i am finding types from d-sub connector pins to 5pin female gold pins and I am not sure on what to get.

aanurag (author)2013-08-14

hey why have you used pressur sensor..tere is no connection in in the arduino.. and is this program code is totally right ? can we use this code directly or we need some change?

bluebean (author)aanurag2013-08-14

Hi, at the time of posting the pressure sensors were not connected but they are used for feedback. They can be connected to the analogue pins in order to measure the change in voltage.

The code worked perfectly fine for my project, but each system is different and i would recommend tailoring your code to suit your project and if needed use mine as a reference.

keane.mariah (author)2013-03-06

Im a highschool student attemping this project with my teacher. will you send me the part numbers and the code? this is my back-up email account: Thank you!

bubble trouble (author)2013-03-04

hello this is my email:
please send me the microcontroller's code plus the circuit diagram if you drew it out
massive thanks

bubble trouble (author)2013-03-01

can you please post the circuit diagram of the project's circuit and the microcontroller's code?

bluebean (author)bubble trouble2013-03-04

Hi, I have posted the code at the end of the instructable as a '.ino' file, if you cant download it i can email it to you. Il have to get back to you on the circuit diagram as i didnt actualy draw one out.

bluebean (author)bluebean2013-03-04

Sorry its a '.txt',

ctwal12 (author)2013-02-26

Is the gyroscope necessary?

bluebean (author)ctwal122013-03-04

The gyroscope is what detects the users movement, without it the wrist would not move at all. Alternatives can be used, such as a variable resistor (pot) , on all 3 axis but the glove would be more of a solid structure. In the project the gyro is pretty much the whole point.

ctwal12 (author)2013-02-12

How long did this take you to make and is there a specific program for the codes for the arduino?

ctwal12 (author)2013-02-08

sorry for the messaging we really have to get our materials together, so if you could send us a link to the 20 and 2 kg torque servos. Please answer back soon we are in a hurry.

bluebean (author)ctwal122013-02-09

This is where the 45kg servo is:

go back a page and look at the other servos, as I said, theres no need for 20kg-torque , anything above 10kg is more than enough, for the fingers micro servos of 1.6kg is even ok.

This is where I got 20kg ones from for another project:

they are not the best quality or accuracy.

ctwal12 (author)2013-02-08

Is there any way to use the arm wirelessly via bluetooth modules?

bluebean (author)ctwal122013-02-09

there is, look at the bluetooth shield for arduino, also look at RF communication. I havnt used the bluetooth modules so I dont know much about it.

ctwal12 (author)2013-02-08

How long did this take you to make and is there a specific program for the codes for the arduino?

ctwal12 (author)2013-02-02

thanks again if we need anymore help will contact you

ctwal12 (author)2013-01-31

Hi again bluebean, we could not find some of the materials on your materials list, it would be a huge help if you could send us links or tell us where you bought some of your materials. Ill leave a list below if you can please tell us as many of the places where you bought these items :

1.) BreadBoard

2.) 20kg-cm torque Servos for wrist movement

3.) 2kg-cm torque Servos for fingers

4.) 40kg-cm torque servo for elbow and shoulder x1 or x3

5.) Force/Touch sensors

6.) Bend sensors/Resistors

7.) connector pins

Thanks in Advanced

bluebean (author)ctwal122013-01-31

Hi, i got most the materials from, touch sensors, force sensors, servos and gyroscopes. But most of it you can get off ebay for cheaper, as all of this was quite expensive, theres even an instructable on how to build your own bend sensors. A breadboard you can get from any hobby/circuit shop. The wrist servos dont need to be 20kg, they can be 10kg torque. I also didnt land up building the elbow (the servos were continuosly out of stock) so the 40kg-cm servo wasnt neccesary.

ctwal12 (author)2013-01-22

ok thank you ill keep in touch if you ant we can send it to your email if you give it to us. anyway thanks

ctwal12 (author)2013-01-15

Dear bluebean, what are the codes for and how do you use them for the glove. WE are trying to use this idea for a project and it would really help if you reply as soon as possible. Thanks for everything!

bluebean (author)ctwal122013-01-22

At the end of the instructable there is a .txt file containing some code for the Arduino, you can use it and edit it as you please. It contains the servo controls and the gyroscope and bend resistor feedback. Is your question directed at how do you set it up in the Arduino invironment? please send me your project updates as im interested in how it turns out.

Mateo_ (author)2012-11-15

This is amazing, I'd like to make one but I'm having trouble downloading the .dxf. Could you send it to me please at

bluebean (author)Mateo_2012-11-29

hey, sorry for the late response, will email it to you as soon as I get a chance. If you can I recommend downloading the sketchup file instead , and generating a 2d dxf from that, that way you can edit the shapes a bit since they were slightly off in measurement because the (3d) pieces wernt lying completely flat in sketchup.

bkiierstead (author)2012-10-15

Have you uploaded the finger control yet? By the way this is awesome, great job.

bluebean (author)bkiierstead2012-10-15

Thanks, I uploaded the finger code now just for you :p . The full code with filtering is there aswell (on the final step) . I had to uploaded it as a txt, just copy and paste in into an arduino sketch. Try improve the code if you can. Gud luck

bkiierstead (author)bluebean2012-10-15

Thanks a bunch, can the hand throw or crush things by any chance?

bluebean (author)bkiierstead2012-10-15

I guess in order to throw an object the arm would require an elbow as well. The wrist motion (depending on your servo torque and 0->180' speed) would probably send an object in the air, but not very far.

Crushing force would depend on torque/ strength of the servos in the fingers as well as the material of the structure in which the hand is built . The small servos I purchased are cheap and the gears are made of plastic. The fingers themselves are cut from perspex which is quite brittle. Therefore the hand itself could not crush much more then a piece of cardboard, but if the hand were to be made out of aluminium; the servos to be high torque with metal gears, I rate the crushing power can easily crush a can.

Im not sure exactly what force crushes a can, but remember, in the hand you have 5 servos, so if a high torque servo is used for each finger such as 20kg-nm, that would be 5x the torque.(neglecting the length of the fingers)

hope this helps.

09153026 (author)2012-10-10

hey how are i made something similar but my flex sensor got broken because to connect them you would had to solder them the cables so my question is where did you bought your? i see that they have the cables already. if you could reply to my email it would good of you. :
thank you .
also if you could share some detail for the legs.
thank you once again.

bluebean (author)091530262012-10-10


I got the bend sensors from They wernt cheap, like $10 each , so if you worried about messing them you can try and make your own. Theres an instructable on it, basicaly its just a voltage divider.

If you are interested in the legs, go to my profile and look at the instructable on them, its called "Arduino Biped".


About This Instructable




More by bluebean:City Skyline Pallet ArtAmerican Flag PalletUPPER LIMB EXOSKELETON (IRON MAN EXO-ARM)
Add instructable to: