Robotic Arm : Arduino

0
6166

[nextpage title=”Description” ]

Robotic Arm Arduino

Robotic Arm Arduino

 

 

 

 

 

 

I have constructed a basic Arduino robot arm using 3 servos to build and it’s very simple that I think anyone can replicate and build this. I already had the Arduino Duemilanove ATMEGA328, some foamboard, tools and glue. The robot arm has 3 joints and moves in the X and Y dimensions – not the Z (although I will build this in subsequent versions). I’ve included some very basic Arduino robot arm code along with robot arm design / blueprints and measurements for you to download and build (on any material).

So firstly, I had a look around for robot arm kits that could be brought rather than fabricating the parts myself – I found the prices to be extremely prohibitive. I then looked at getting a design fabricated but most of the designs I’ve seen rarely give you or decent assembly instructions. I also looked at servo brackets and constructor sets but again whilst the odd piece is OK trying to get the parts for a robot arm is too expensive.

Where does this leave me, apart from being too poor to afford a robot arm kit? Well I thought how hard can it be to design and build my own robot arm? Surely I can do it for less and if it works I can publish the results and schematics rather than just a video of it working. So follow my below steps.

[sam id=”6″ codes=”true”]

The first problem of designing your robot arm is how do you mount the servos? Most kits tend to use some kind of bracket that the servo is mounted into, the armature then mounted to this bracket. For a simpleton like me this seems like a lot of effort, my workshop skills not being that great and neither is my patience, I didn’t want to go down this route. After much thought I hit upon a simple idea, rather than build a bracket, how about altering the servo casing its self. They’re made from ABS plastic, they’re cheap and tough enough that drilling a hole to create a mounting peg should be easy, the drawing below shows where I added the bolt at the bottom, although measurements only show the nut the bolt is about 8mm in length – all depends on how thick your material is you’re using for the arm.

[sam id=”3″ codes=”true”]

 

[/nextpage]

[nextpage title=”Diagram ” ]

Robotic Arm : Arduino

As you can see from the photos below, I take the base of the servo off and drill a hole in about the same position as the servo shaft at the top, this then allows me to place the servo directly into the armature using a bolt through the base of the servo so that it can turn freely in the arm without needing a bracket.

 

[sam id=”5″ codes=”true”]

Robotic ARMlarry-arm-design-v01-e1279141965350 4790874525_5f34d4c00d 4790891727_ded84341b9 4790896489_2f2c08f35a__1420029224_182.74.176.146 4791531352_4d2f2e1d22

[sam id=”6″ codes=”true”]

Thats it. Now we just plug the servos into the Arduino board and control them with a simple sketch (below). For the circuit I used a breadboard to share the power supply to all the servos and the outside pin (normally white or orange) gets connected to a PWM pin on the Arduino board (9, 10 or 11 in this case)

With that loaded in I got the following result, it worked but there were a couple of bugs. Turns out the servos are using more power than my USB port to te Arduino board can provide, so I’ll have to run the servos on a separate power supply. Also turns out that you get what you pay for, I brought the cheapest servos and they struggle to accurately write their position. For anyone wondering what that is on top of the arm its just the heaviest thing I could find near by to counter weight the robot arm.

[sam id=”3″ codes=”true”]

[/nextpage]

[nextpage title=”Code” ]

Robotic Arm : Arduino

[sam id=”5″ codes=”true”]

[visitor]

For view code registration is required.. Click for registration.

Its Free..

[/visitor]

[sam id=”6″ codes=”true”]

[member]

[message_box title=”Code” color=”red”]

#include

Servo shoulder;
Servo elbow;
Servo wrist;
int pos = 0;
[sam id=”3″ codes=”true”]
void setup()
{
shoulder.attach(9);
elbow.attach(10);
wrist.attach(11);
}
[sam id=”3″ codes=”true”]
void loop()
{
for(pos = 0; pos < 180; pos += 1)     {                                       shoulder.write(pos);       elbow.write(pos);     wrist.write(pos);     delay(15);            }    for(pos = 180; pos>=1; pos-=1)
{
shoulder.write(pos);
elbow.write(pos);
wrist.write(pos);
delay(15);
}
}

[/message_box]

[/member]

[/nextpage]

[sam id=”3″ codes=”true”]

[youtube height=”HEIGHT” width=”WIDTH”]https://www.youtube.com/watch?v=lzYjin4O9FM[/youtube]
[sam id=”3″ codes=”true”]

Enjoy!

 

Source : Lucky