You are on page 1of 8

When I first started in the field of robotics, electronics and sensors I had always wanted

to make my own robotic arm. The idea of being able to make such an advanced idea
come to life out of simple parts found around the house was mind boggling to me. So
inspite of that, I set out to prove to myself it was possible.
I went through several initial designs before I set my heart on the one that you
see here. I feel this one is the simplest that I came up with and therefore the easiest to
build.
I still can't get over the It's made out of friggin' wood! factor of this design.
Purpose & Overview of this project
The goal of this project is to create a robotic arm that can move in most any
direction like a humanoid arm. It should have grippers on the end that can grip trivial
objects like a piece of paper or a penpencil.
! simple design with as few moving parts as possible is important for this design
because the arm will only be controlled by a "I# $%&'(). This potentially limits the
ability to control the arm with smooth movements.
The Wooden *enace robotic arm should be made out of generally cheap
household items +e,cept the servos-. The reason for this is to prove that such a design
can and will work.
Wooden *enace.
Wooden *enace with #ontroller.
Electrical Parts
/*0%1( (v 2oltage 3egulator
"I# $%&'() *icrocontroller
&emale 34'( #onnector
+(- 5i6Tec 7$$ Standard Servos
)1 *58 9scillator
S":T Switch
$;& #apacitor
71 pin SI"
('1 point <readboard
Solder
Wire )' !W=
Wire 71 !W= +aka Wirewrap-
Hardware Parts
5obby Wood
% small nails
( minute >6po,y
&ancy :oor 5inge
"lastic Sheet
Tools
Wirewrap Tool
Soldering Iron
/aptop #omputer
*"/!< I:> +installed on /aptop-
"I# "rogrammer
"ower :rill
5ammer
4igsaw
Sand "aper
Parts List etails
When it comes to looking at what parts were used in the project I always seem to
over ? under6do it at the same time. So if you ever have @uestions about something just
jump into the forums and ask. These are all pretty standard parts. Some of the
electrical parts you may have to order from a hobby store but they are all very easy to
obtain.
I won't describe each part in detail as I normally do because of the vast @uantity
of parts. If you're curious about one of the parts, take a look through any of the
tutorials I have.
!chematic Overview
The hardware schematic for the wooden menace +robotic arm- is fairly straight
forward. The "I# microcontroller has one control line feeding to each servo and it also
connects to the 34'( connecter. The 34'( connector is used for getting input from the
controller.
2iew &ull Schematic
!chematic !pecifics
A"ower #ircuit
The power circuit is just a Bv <attery hooked up to the /*0%1( with a $u&
capacitor hooked to output ? ground of the /*0%1( to keep a steady (v :#.
AServo #onnections
>ach servo has 7 wires coming out of it. "ower, =round ? Signal+"W*-. "ower ?
=round are tied directly to our Cv source. >ach signal pin from each servo is tied to a
uni@ue pin on the "I# as seen on the schematic.
A34'( #onnector
This project uses a DfakeE ps$ controller to remotely control the robotic arm. The
female 34'( connector is used ? mounted onto the robotic arm awaiting the male 34'(
connection from the controller.
A*#/3F2pp 6 "in $ on the "I#
This is tied high +logic $G H(v- once again using a pull6up resistor. "in $ is
effectively a reset pin. The "I# will restart6*emory #lear6when this pin is low +logic 1,
H1v-. &or this project I did not include a reset button so I just have the pin tied high
always, so the "I# will always be running as long as it is powered.
!ervo Theor"
The theory of how servos work is really @uite simple. I'll give a brief summary of it
now, even though there will be a tutorial on servos fairly soon.
The picture to the right shows a simple "W*. Pulse with Modulation wave.
Servos operate off of this principle.
T I )1mS
t I 1.BS 6J ).$S
If we put those values of t ? T into the graph we will get a standard analog servo
signal. It is important to note that t can vary while T is always the same. T which is )1
miliSeconds defines the period of the wave which also tells us that we are working at a
fre@uency of (158
$ 1.1)1 Seconds I (158.
The other portion of the wave that we want to understand is the t part. This is the
'up' part of the wave, meaning a positive H(v is being given out. The rest of the )1mS
period a 1v should be output. The variance of 1.BmS6J).$mS is what tells the servo to
move ? where. *ost servos can rotate B1K or $%1K and the ones I use can rotate $%1K.
So most simply put, we can tell the servos to move to a certain angle with great
precision. Some e,amples for $%1K seros....input. t, T and output. angle are seen below.
t = 0.9mS
T = 20mS
Angle = 0
t = 1.5mS
T = 20mS
Angle = 90
t = 2.1mS
T = 20mS
Angle = 180
The #ooden $enace% Hardware
The hardware design is just the cut out pieces of wood that form the base of the
robotic arm ? the arm itsself. It also includes the breadboarded circuit that allows the
"I# control of the servos. We'll take a 'top down' look at the Wooden *enace.
The &rippers
The grippers on the Wooden *enace robotic arm are attached using screws,
pieces of wood cut with a jigsaw and small screw ? nuts. This simple setup is
surprisingly stable. The 5i6Tec 7$$ standard servos that are used offer enough power to
grip a vast amount of objects.
The 'irst !ervo !tage
The first stage link down from the grippers has an '/' shape to it. This link type is
used twice in the gripper. The servo horn is screwed into the shorter, bottom portion of
the L/L and the ne,t servo will rest ontop +as we see the grippers do-.
The !econd !ervo !tage
The last link of the arm has the familiar L/L shape to it and the servo connected to
it is also firmly mounted to a circular platform. It is not visible but the circular platform
rests on a servo which can rotate the platform ? the robotic arm.
The (ase
The base of the arm is just a wooden bo, that houses the electronics that control
the robotic arm. 9n the right you can see the 34'( female connector ? on the left is the
breadboard with everything seen on the schematic hooked up. The wiring is a
combination or breadboard wire ? wirewrap. It would have been a true mess of wire if
wirewrap wasn't used, since no large currents were necessary wirewrap was a viable
alternative.
!oftware Overview
The software for this project is too comple, for me to e,plain well in one sitting.
So I'll go over two parts of the code which may not be as easy to understand because of
their relationship to the hardware.
/*Begin Controller Data Polling*/
PORTDbits.RD1 = 1; //Clock Up
PORTDbits.RD3 = 1; //Take Inpt
PORTDbits.RD1 = !; //Clock Do"n
PORTDbits.RD3 = !;
/*******************************/
//#lgorit$% &or captring inpt
&or'i=!;i(1);i**+
,
PORTDbits.RD1 = 1;
//Clock Up
PORTDbits.RD1 = !;
//Cloc Do"n
c-.al *= PORTDbits.RD/;
//#00 Inpt to or integer
i&'i1=12+
c-.al = c-.al (( 1;
3
/**4n0 Controller Data Polling**/
)ontroller Input Polling
The controller used in this project has two 5>&'1)$<T chips inside of it which
take input from buttons being pressed. The routine seen in the code is called a '<it
<anging' procedure. '<it <anging' is when you simulate the clock through your own
digital device to get the given input. ! standard S"I could have been used with much
more ease. I didn't figure this out until afterward.
/ooking at the code, 3:$ simulates the clock. 3:7 tells the controller to take
input of all the buttons at once, then the input taken is clocked out bit by bit into an
integer called cMval.
//I5T4RRUPT CO5TRO6
7prag%a co0e Interrpt8ector9ig$=!:!;
//interrpt pointer a00ress
.oi0 Interrpt8ector9ig$ '.oi0+
,
-as% //asse%bl< co0e starts
goto Interrpt9an0ler9ig$
//interrpt control
-en0as% //asse%bl< co0e en0s
3
7prag%a co0e
7prag%a interrpt Interrpt9an0ler9ig$
//en0 interrpt control
Interrupt Handling
The interrupt handler itsself is too complicated to describe well in this short little
html page. So I'll just look at the interrupt control. If you have @uestions about the
interrupt handler feel free to ask me about it in the forums.
The interrupt controller is set at high priority 1,1%. We then define a goto
statement in assembly for the function name of the interrupt handler, in our case.
Interrupt5andler5igh. 9nce the interrupt control is correctly implemented interrupts
will be sent to the interrupt handler where you can do whatever is necessary depending
on the type of interrupt.
!oftware% Parting #ords
There is much more to the software that I'd love to e,plain, however it's just not
possible in this simple ? short write up. I encourage you to look at the actual code
available for download as the comments within it should be enough to guide you
through the flow of the program.
Time 'or a )loser Loo*
Now that the Wooden *enace is completely built ? programmed, it's about time
to see if the thing works, and how well it works. The first video is an initial test of the
software combined with the hardware, so the electronics are all visible ? e,ternal. We
first test the Wooden *enace's ability to grip objects.
In the second video we'll get a look at the Wooden *eance in its final state of
design with all electronics inside as it was meant to be. This video tests the range of
movement the robotic arm has.
Conclusion
+ Loo* (ac* On The #ooden $enace, -o.otic +rm
The arm works and I must say the thing is pretty strong. Stronger than you'd
think from just watching the videos. The final robotic arm is pretty impressive when
you look at the components that were used, however there is definitely room for
improvement. 5ere are a few e,amples of why this project is good ? where it could be
improved.
Pros
Remote Control or Autonomous
Control.
Cons
Movements are too qui!.
"oo# #esign #oesn$t allo% &or
Arm strengt' an (e inrease
%it' a 9v )o%er soure.
Costs less t'an *+0 to ma!e.
me'anial sta(ilit,.
-ri))er . Servo strengt' is
a))e#.
$ovement Improvement
The @uick movements seen by the arm are attributed to the incrementor seen in
the code ? lack of true control software. ! revision of the software could improve the
movements seen greatly. The wooden design doesn't affect the mechanical movement
of the system as much as the software designed to control the servos.
&ripper & !ervo !trength
5obby servos are all capped at certain tor@ues. The 5i6Tec 7$$ Standard servos
that I used for this project is a very low tor@ue servo. There are servos available that
offer $116'11O more tor@ue, however they do cost more.
'urther -esearch
In a further project I hope to use all !<S machined steel parts for the robotic
arm. This takes away from the truly LhomemadeL design, look ? feel however it results
in an all around much better robotic arm.
)onclusion
So the project turned out about as e,pected. &or a first attempt at a cheap,
homemade robotic arm I feel the results were spot on. It is able to move objects back
and forth +in the video I was throwing "I# microcontrollers into a coffee cup-. It also
has a wide range of movement and rotation which is what is desired in a robotic arm.
That about ends this project.

You might also like