Professional Documents
Culture Documents
Teachers (/teachers/)
License:
8 114,933 views
748 favorites
Beaconsfield
(/member/Beaconsfield/)
Follow 293
(/member/Beaconsfield/)
Bio: After a fun time making projects for
the Instructables design team, I'm now
helping to start the robot uprising.
More by Beaconsfield:
(/id/Raspberry-(/id/Quick-
(https://cdn instructables com/F8A/3T4Y/HVR7TG04/F8A3T4YHVR7TG04 M Chocolate- and-dirty- (/id/Simple-
Blood- Phone- Chair-
Sauce/) Holder/) Pocket/)
This robot arm is made almost entirely of 3D printed parts that snap together. It
has three servo-controlled joints, plus a rotating base and gripper. The arm is
controlled by a series of buttons that connect to an Arduino Uno hidden in the
base. A simple circuit makes connecting the servos and buttons to the Arduino
easy and makes set-up and assembly very quick.
Materials:
Arduino Uno - RadioShack 276 128
(http://www.radioshack.com/product/index.jsp?productId=12268262)
Standard servos (4x) - RadioShack 273 766
(http://www.radioshack.com/product/index.jsp?productId=22472146)
Micro servos (2x) - RadioShack 273 765
(http://www.radioshack.com/product/index.jsp?productId=21757496)
Momentary push buttons (8x) – RadioShack 275 1566
(http://www.radioshack.com/product/index.jsp?productId=2062545)
On/off switch - RadioShack 55050508
(http://www.radioshack.com/product/index.jsp?productId=12688425) (web
only)
Potentiometer and knob (specific resistance doesn't matter) - RadioShack
271 215 (http://www.radioshack.com/product/index.jsp?
productId=2062298&filterName=Type&filterValue=Potentiometers) and
RadioShack 274 416 (http://www.radioshack.com/product/index.jsp?
productId=2102831)
Green LED - RadioShack 276 022
(http://www.radioshack.com/product/index.jsp?productId=2062551)
Printed circuit board - RadioShack 276 149
(http://www.radioshack.com/product/index.jsp?productId=2102844)
10K Ohm resistor (8x) - RadioShack 271 1335
(http://www.radioshack.com/product/index.jsp?productId=2062347)
220 Ohm resistor - RadioShack 271 1111
(http://www.radioshack.com/product/index.jsp?productId=2062317)
Various wires and connectors
Nuts and bolts (16x 8-32, 1/2” long)
Afinia 3D printer - RadioShack 277 181
(http://www.radioshack.com/product/index.jsp?productId=23160006)
1kg roll of PLA filament - RadioShack 277 163
(http://www.radioshack.com/product/index.jsp?productId=23147686)
power supply, capable of 2A (I used a standard bench supply for
prototyping, so something like RadioShack 550 57676
(http://www.radioshack.com/product/index.jsp?productId=21919036) (web
only) or RadioShack 22 507 (http://www.radioshack.com/product/index.jsp?
productId=2103959&umt_content=SG_powerSupplies&umt_campaign=CM
S&umt_source=Cat&umt_medium=RSCOM) should work although you will
need to regulate the voltage before sending it to the Arduino and servos)
The arm is about 20 inches long, so it takes a lot of time and material to print.
The parts are sized to fit on the bed of the Afinia H479 printer, and some can be
printed together on the same platform to save time. I used a resolution of
0.25mm and hollow fill for all the parts (other settings were set to the defaults).
In addition, I found that I needed to use a raft to both help the part adhere to
the print platform and help the printer compensate for my table, which was not
perfectly level.
The total estimated print time for the arm is about 32.5 hours, although as
mentioned earlier some parts can be printed together (the estimate was done
using the print preview function of Afinia's software - my actual print time was
difficult to calculate because I was still iterating through designs). Including the
raft material, it uses 842.8g of filament, which means it can be printed from one
1kg roll.
Most of the parts have "flat" sides that should face the platform (see images).
Many of them also have fairly delicate tabs for holding the cables, so take care
when you remove the raft and support material. Study the stl file first to get an
idea of where the most delicate areas are.
final
Download stls.zip
(https://cdn.instructables.com/ORIG/FVS/CAMP/HVDU449T/FVSCAMPHVDU449T.zip)
(https://cdn.instructables.com/ORIG/FVS/CAMP/HVDU449T/FVSCAMPHVDU449T.zip)
mid_curveLpin.zip
Download (https://cdn.instructables.com/ORIG/FPZ/EFQ1/I1FQ5QG2/FPZEFQ1I1FQ5QG2.zip)
(https://cdn.instructables.com/ORIG/FPZ/EFQ1/I1FQ5QG2/FPZEFQ1I1FQ5QG2.zip)
3dArm_Inventor.zip
Download (https://cdn.instructables.com/ORIG/F02/NVAV/IA8NC0IQ/F02NVAVIA8NC0IQ.zip)
(https://cdn.instructables.com/ORIG/F02/NVAV/IA8NC0IQ/F02NVAVIA8NC0IQ.zip)
While you wait for parts to print, work on uploading the code and soldering the
electronics.
The Arduino code for controlling the servos is very straightforward. The joints
and gripper servos are controlled by a pair of buttons that increase or decrease
the servos' positions by one step. The base is connected to a potentiometer
that is mapped to its rotation. Depending on the order in which you wire your
buttons, you may need to adjust the pin numbers in the code
I recommend testing the code with your servos to make sure that their limits are
consistent with those defined in the code. Testing them after the arm is
assembled could damage or break it.
The same physical setup can be used with different code if you wish to have
your arm do simple automated tasks. (note that there is no positioning
feedback, so the accuracy of the arm is limited by the accuracy of the servos)
Download arm_full.zip
(https://cdn.instructables.com/ORIG/FWO/GHGP/HVDU2H78/FWOGHGPHVDU2H78.zip)
(https://cdn.instructables.com/ORIG/FWO/GHGP/HVDU2H78/FWOGHGPHVDU2H78.zip)
Since the servos will be positioned at various points along the arm, the cables
need to be extended. Simply cut the cable and solder in an extension between
the servo and the connector.
Next, make two sets of cables for connecting the circuit board to the Arduino.
The servo signal cable has male headers at both ends, each with 6 pins (one
per servo). The button signal cable also has male headers at both ends, but
they have 8 pins each (one per button). In addition, at one end separate two of
the pins from the other six, as they will be plugged in on the opposite side of
the Arduino.
The circuit board for the arm is mostly a method for efficiently routing the
various wires and signals, rather than a way of adding more components. Start
with the resistors, then the various connectors (note that some of them are
female and some male). Finally, solder in the connections.
Once you have your parts, you can start assembly. Begin by pushing the
microservo (with the longest extension cable) into the gripper base and route
the cable through the channel. Attach the 4-prong horn to the microservo and
rotate it to where you want the most "open" position for the gripper to be. Push
on the claws, making sure the gears mesh. Push the other microservo into the
side of the gripper and assemble the rest of the gripper. The top of the gripper
has pins that help hold the claws in place, and may require a small amount of
sanding to fit easily (try not to force them, as they may break off).
Set aside the assembled gripper.
Assemble the long sides of the middle segment in the same way as the lower
segment, including the servo horns. On the gripper, rotate the upper joint's
microservo to one of its limits and push it into the microservo horn, keeping the
parts at approximately 90 degree angles. Do the same with the middle joint
servo. This will align the servos so that their limits are symmetrical and the
joints have a good range of motion. Attach the braces to one side of the middle
segment for stability.
Starting on the still-open side of the middle segment, gently push the cables
into their channels and under the tabs. To make sure that there is enough slack
for the moving joints, rotate the part so the cable is as far from the channel as it
can be and loosely clip in the cable. Continue to route the cables, carefully
removing (and then replacing) braces if necessary to reach the clips. If you use
a tool to help clip in the cables be careful not to pinch or accidentally cut the
wires.
Attach one standard servo to a servo mount and place both mounts in the
rotating base. Place the top two bolts for the second servo in the mount, but do
not add the servo. Rotate the mounted servo so it is at one of its limits and
gently slide in the arm and press on the servo horn. Push the second servo
(rotate it to its limit first) into the other horn and secure it using the remaining
bolts. Thread the servo cables through the holes in the rotating base.
Push the final servo horn into the bottom of the rotating base (in my case, the
black circular part). Sandwich the top of the base (the part with the circular
hole) between the two halves of the rotating base and snap the two halves
together. The arm should now be able to rotate while being constrained by the
base.
Mount the last servo (this one should have no extension cables) to the bottom
of the base. Make sure it is facing the correct direction. Rotate it to one of its
limits and rotate the arm to match, keeping an eye on the cables. Push the top
of the base into the bottom, meshing the teeth and the servo/horn. If you rotate
the arm, you should hear the base servo rotating with it.
The control panel has 8 buttons, a potentiometer, an LED, and an on/off switch.
It's easiest to solder leads to all the parts before attaching them to the base
(color code the wires: red = power, black = GND, anything else = signal). In
addition, add a 220 Ohm resistor to the end of the LED's positive lead.
The buttons and potentiometer I used were threaded and I was able to bolt
them around the base. The LED and on/off switch both press-fit into the base.
Feed one of the switch's wires out the hole in the side and twist a black wire
around it (this black wire will supply ground for the circuit). Once the parts are
inserted, attach the knob to the potentiometer.
Next, bundle some of the wires together. The 5V power lines from the buttons
will all be powered from one pin on the circuit board. The 8 signal lines should
be soldered to a male connector - use a logical order to keep track of which
button is which (see the photo for the order I used).
Using the cables you made earlier, plug in the Arduino. The buttons go to pins
2-7 and A3, A4. The servos signals go to pins 8-13. The power for the LED
goes to the 3.3V pin, and the wiper of the potentiometer goes to pin A0.
The plugs from the servos go to the male headers at the top of the circuit
board. (see photo)
Test the code at this point - be careful, the arm will "jump" awake and might hit
something (aka you). Check that the servos move in the right directions when
you push the buttons. If necessary, update the code to reflect how you
assembled the arm (some button/servo relationships may need to be reversed -
just swap the button numbers in the if statements).
Flatten the electronics as best you can, and push the control panel onto its
matching bottom part. Then close up the two halves.
Grab your power supply, and you're ready to go! Since there are six servos, the
arm pulls a lot of current (2A on start up and about 1.5A during operation).
Once you have the arm working, you can customize it by adding a different
gripper or changing the code to do autonomous tasks.
advertisement
Comments
A few years have passed since you made this instructable but just wanted to
say thanks for sharing all this. You made a great instructable and are very
talented. I a making a 3d printer so would like to try this eventually. Wish you
all the best and lots of success for the future.
can someone please help me with the cables and where to plug Them in. Plz
(https://cdn.instructables.com/FFI/5CW8/J2GF8OEV/FFI5CW8J2GF8OEV.LARGE.jpg)
What is the weight of the arm? And how much weight can it raise ?
Thank you.
this is an amazing project, you deserve all the respect for that *claps*
I just have one question, can I use another servo motors ? not the ones you
mentioned? or is it I'm going to face a problem with the fitting ?
Servomotors are not available on the website indicated by the author, where I
can buy similar servant? What model is it?
jindo12345 (/member/jindo12345/)
How far can this arm reach from the base? I need one that 2015-11-09 Reply
2016-03-10
Around 32 cm xD
Hi, I must say very nice project and a very well made robot arm. I am trying to
make a similar project but I'm kinda stuck on some issues, and I hope
someone in the forum can help me out. My problem is that, I have two exactly
the same servos to drive a single joint, but one servo has an offset angle of
about 5 degrees from the so they are practically misaligned. How do i align
them? Another problem is that, I can't seem to drive them simultaneously.
Lastly, how do I stop the arduino from making my servo jump to it's default
angle at a high rate of speed. Is there a way to initialize the servo speed before
it goes to its default angle, coz everytime I attached the servo to a pin, it jumps
to the default angle at very high speed and destroys my arm.
hello 3DP1:
Tim.
Hey Beaconsfield:
What technique did you employ to separate the larger pieces into smaller
ones? I know solidworks has a plugin that can break larger parts into smaller
bits with connecting features. Did you utilize a similar approach or did you
design from the start with a given size print bed in mind?
I am going to be attempting to make a few parts smaller to print off my
Printrbot Simple Maker's Kit (100mm x 100mm x 100mm) and will post if and
when successful.
Hey Tankyou Beaconsfield I'm learning a lot from you, very encouraging. I'm
studying the inventor. Listen, you have .ipt missing files, so I can not simulate.
You can share or indicate how resolved without them. Example try
downloading the instructables Inventor file and open an assembly, will ask
some .ipt files, you have them?
2015-06-07 Reply
reddadsteve (/member/reddadsteve/) made it!
I made it! As I've said in my previous comments, this instructable was written
extremely well. Having no background with electronics I wanted to start
implementing motors to my 3D printed projects and found this instructable
quite helpful.
Thank you,
Steve
P.S-Don't forget to update the bill of materials. The switch should be swapped
out with a much smaller one.
(https://cdn.instructables.com/FYQ/NV6Y/IALXFZPD/FYQNV6YIALXFZPD.LARGE.jpg)
2015-04-05
I also want the source files... I would like to make a bigger one
too (from 35 cm of radius to 45cm). Actually, I bought some stronger
servos already. I will extend the "curvehorns", but not only the
curvehorns, but also the stepper holes must be different, because the
new stronger servos are a different size.
So... what do you say?.. please? If I succeed I promise to share here the
new files.
2015-04-05
The .stl files are in the Instructable. Are you asking for the
Inventor files? I have to check that I still have them, but I'll upload them if
I do.
I ordered all the items listed using the links provided in this instructable (except
for the printer and power supply). The On/Off rocker switch arrived today from
Radio Shack and it is a six prong switch, whereas the one in the diagram is a
two prong switch. That didn't concern me as much as the fact that the switch
is much bigger than the hole provided in the STL file for the base.
Please review. I can change the STL file, but would like confirmation that there
is an issue with the switch and that to ensure the integrity of this instructable
that you will either update the STL file or change the part required. I've also
seen that the base that you printed for your diagrams seems to have a slot for
the Arduino board but the STL file supplied does not. Did you post your latest
file or decide to leave out the holder for the Arduino?
Overall, I still think this instructable is great and I'm just waiting for the parts to
arrive in the mail before I get my printer churning out pieces.
Thank you,
Steve
Hello,
How many degrees of freedom (DOF) are on this arm? Thanks!
Great instructable. Just one sanity question before I jump in and build this. Can
I use a 12V 3A power input on the VIN of the Arduino board? It seems that
most of the parts should be able to handle the 3A, but I'd appreciate if you can
confirm it.
3D printing and CAD designs are my strong areas and I'm looking forward to
start adding electronics to my projects.
Thank you,
Steve
Thanks again,
Steve
2015-04-14
Very cool arm. I modified your base to remove the buttons as
this will be driven by a Raspberry Pi or Arduino on a mobile platform. As
long as the current rating of your power supply meets or exceeds
(preferably exceeds) your circuit's requirement, and the voltage rating
does NOT exceed the specs, you are okay.
This is amazing! I am curious, what software did you use do actually design the
arm that you printed? I viewed the video in full-screen with the best resolution,
but I could not actually read the application name at the top of the window.
After I follow your tutorial I want to try designing some things of my own!
Beaconsfield (/member/Beaconsfield/) . AtrusM (/member/AtrusM/) Reply
2015-02-11
Thanks! I designed the arm using Inventor. If you are just
getting started with 3D design/CAD I would recommend Autodesk Fusion
360 - I think it's free for students and there are a ton of tutorials available.
Hi!
Great job on this. I am working on printing it out now. If the arm works well, I
am planning on using it for another project.
Any chance you would be willing to provide your original design files?
I am using a MakerGear Mendel Prusa to print. I would agree with the other
person here that created one of these, there is a lot of filing, sanding, and
trimming to do. The issue is that it looks like the fit is real tight on the different
tabs and slots. I run into this with my own designs.
With all of the variability in 3D printers out there, even with a fairly well tuned
one, I end up designing "slop" into most joints. The tabs and slots work to
align the parts for fasteners and/or glue. If possible I use screws/nuts/bolts
instead of tabs and slots as well. While the tabs/slots are more convenient in
terms of needed hardware on hand, It adds hours of sand-fit-sand-fit-trim-....
I am very impressed with the amount of design effort that must have gone into
this.
-Brooke
2015-02-11
Thank you! My goal for this project to use minimal/no fasteners
to make a "truly" 3D printed arm. I agree that in general I would use
nuts/bolts to make dealing with tolerances easier.
2015-01-20 Reply
JohnR26 (/member/JohnR26/) made it!
Thanks for the awesome design. I built one using my Printrbot (and it actually
works)! I will be using this as part of a 3D printing demo.
A few lessons learned: 1) make sure you calibrate your printer really well before
printing any parts. I spent a lot of time sanding and filing to get the parts to fit. I
don't think this was the fault of the design. 2) Most of the parts can be press-fit
together, but I found super glue (cyanoacrylate) works great to make sure
things stay put. 3) At first I thought I had built my parts too heavy, because the
stepper motors could not hold up the weight of the arm. The problem was that
my power supply didn't put out enough current to drive the steppers. Once I
used the 5v output from an old computer power supply, things started working
well.
(https://cdn.instructables.com/F76/QYYH/I55MRAJ6/F76QYYHI55MRAJ6.LARGE.jpg)
2015-02-11
That's awesome! I'm glad you were able to make it work (even with the
same colors!). I spent a long time getting the tolerances just right for my
printer, but unfortunately every printer is a little different. And the
steppers do take a ton of current. Great job!
Excellent work.
How much was the 3d printer? I love making stuff like this! Can the robot arm
screw in a light bulb? Keep up the great work!
2014-09-24
The printer is about $1400 from Radioshack
(http://www.radioshack.com/product/index.jsp?produc...
(http://www.radioshack.com/product/index.jsp?productId=34322646).)
The arm can't turn a full 360 degrees, although if you were really good at
operating it you could probably get it to re-grip and finish in a few turns.
Maybe that will be the goal if I make a version 2...
What software did you use that was shown on the video?
2014-07-28
I used the software that is included in step 2 - just direct
control of the servos using the buttons along the base.
Wow! If I had a 3D printer that would be the first thing that I would make.
Would it work to install Sugru on the tips of the claws to enhance grip on
objects?
I More Comments
Newsletter About Us
Let your inbox help you discover our best Who We Are (/about/)
projects, classes, and contests. Instructables Advertise (/advertise/)
will help you learn how to make anything! Contact (/about/contact.jsp)
Jobs (/community/Positions-available-at-Instructables/)
enter email I'm in!
Help (/id/how-to-write-a-great-instructable/)
Find Us Resources
Facebook (http://www.facebook.com/instructables) For Teachers (/teachers/)
Youtube (http://www.youtube.com/user/instructablestv) Residency Program (/pier9residency)
Twitter (http://www.twitter.com/instructables) Gift Premium Account (/account/give?sourcea=footer)
Forums (/community/?categoryGroup=all&category=all)
Pinterest (http://www.pinterest.com/instructables)
Answers (/tag/type-question/?sort=RECENT)
Google+ (https://plus.google.com/+instructables)
Sitemap (/sitemap/)