This is only a preview of the December 1997 issue of Silicon Chip. You can view 30 of the 96 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Articles in this series:
Items relevant to "Build A Speed Alarm For Your Car":
Articles in this series:
Items relevant to "Loudness Control For Car Hifi Systems":
Items relevant to "Stepper Motor Driver With Onboard Buffer":
Articles in this series:
Items relevant to "Power Supply For Stepper Motor Cards":
Purchase a printed copy of this issue for $10.00. |
Design by
GRAEME MATTHEWSON
A 2-axis robot
with gripper
Are you a control freak? Do you wish to exert
power over things animate and inanimate?
Well, here’s a way to indulge yourself. Build
this simple two-axis robot which has a
gripper to pick up and place objects.
This robot can be controlled from
your PC using a QBASIC program
via the serial port. Don’t worry – you
don’t have to know anything about
programming in BASIC to make it
work. Just go to the DOS prompt, type
QBASIC and run the program which
is called Ausbot.bas.
Apart from the simple method of
control, a major attraction of this robot
40 Silicon Chip
is the motive power. It is provided by
cheap and readily available servos, as
used in radio controlled model cars,
boats and aircraft. These can be purchased from model stores everywhere
or you might have some servos from
model cars lying around – these will
do just as well.
The servos provide the two axes of
operation for the robot arm; ie, up &
down or sideways motion and also
open and shut the gripper. So just
three servos are required.
As the title of this article suggests,
this is a 2-axis robot with a gripper.
It can rotate on its base through 90
degrees with extremely small movements: 254 steps of 0.354 degrees.
It can raise and lower its arm from
desktop level in 254 x 0.807mm steps
to a height of 205mm. Similarly, it can
open its gripper to 105mm wide or
fully close it in 254 steps of 0.413mm.
With this sort of resolution this
robot can pick up an egg without
breaking it! Its fingertips can be made
to pivot slightly so as to grasp irregular
shaped objects or they can be tightened to grasp small items at their tips.
The Ausbot software takes care of
speed control and only allows you to
set speeds within safe limits for the
robot. The required speed limits for
each servo are different as each one
controls items of different length and
weight.
If the speed ranges allowed by the
software are too fast or too slow, the
upper and lower limits may need to be
changed due to varying clock speeds
of different computers. The software
is easily understood and the user
should have no difficulty in identifying the delay lines for each servo.
As described in the “Radio Control”
column in last month’s issue, a servo
is basically a closed loop system, you
just tell it where to go and it goes
there; no argument. It will operate
from between 4V and 6V DC and
requires pulses of between 1ms and
2ms, at a rate of about 50Hz.
Also as described last month, 1.5ms
Fig.1: the robot has three servos controlled by a Mini SSC
(serial servo controller). The SSC is controlled with a
QBASIC program via the serial port on a PC.
wide pulses will rotate the servo shaft
to it its “neutral” or null position; ie,
more or less its central position. Furthermore, pulses 1ms wide will rotate
it to the fully anticlockwise position
Base Assembly
while 2ms pulses will rotate it fully
clockwise.
And since a servo is a closed loop
system, it has a very large number of
positions in between those extremes,
SHOULDER ASSEMBLY
DOUBLE SIDED ADHESIVE TAPE
CABLE-TIE
BASE PLATE
RUBBER FEET
Fig.2: the base assembly uses an aluminium extrusion measuring 3mm thick, 120mm long, 80mm
wide and 20mm high. A servo is centrally located against the vertical section and simply secured
with double sided adhesive tape and a Nylon cable tie.
December 1997 41
Shoulder Assembly
DOUBLE SIDED TAPE
CABLE-TIE
NYLOC NUT
ARM
M3 X 10 SCREW
WASHER
SHOULDER
M3 X 10 SCREW
SERVO DISC
NYLOC NUT
4mm x 1mm "O"RING
NYLOC NUT
Fig.3: the shoulder assembly diagram is made from a piece of T-section aluminium and is attached to the
arm, also made from T-section aluminium. The arm has two servos which are attached to one end using
double sided tape and a Nylon cable tie.
limited only by the resolution of its
internal feedback pot.
Servo drive
How are the servos driven? Normally, you would need three variable
width pulse generators, one for each
servo. And then the driving computer
would need to vary the pulse generators in response to the QBASIC
program.
That approach could have been
taken but in this case a Mini-SSC has
been used. Er, what’s a Mini-SSC? It
stands for Mini Serial Servo Controller. In turn, the Mini-SSC is based
on a PIC-series microcontroller. The
Mini-SSC comes fully programmed.
It accepts commands in ASCII on its
serial port and then provides pulse
signal outputs for up to eight servos.
Fig.1 summarises the robot concept.
You have a PC (well, you must have
one if you want to control this robot)
which feeds a serial port on the Mini-SSC and it is being used to control
three servos. It generates all the puls42 Silicon Chip
es to operate the servos so no other
circuitry is required. That’s another
bonus of this project – you don’t have
to build any electronics circuit boards;
the Mini-SSC can be purchased assembled and read to go. Or if you want,
you can buy it in kit form.
As it stands, the software supplied
with the Mini-SSC does not address
the problem of servo speed. Typical
servos are capable of rotating through
90 degrees in about 350 milliseconds
but that is much too fast for operating
this robot, whether we are concerned
with motion of the arm or the gripper.
This drawback is taken care of by
the QBASIC program written for this
project.
At startup the Ausbot software
prompts the user to enter the desired
speed for each servo, then which
servo to move and which position to
move to. The current position of each
servo is also printed at the bottom of
the screen, along with the speed.
The Mini SSC starts in position
#127, the servo neutral, on power-up,
so to avoid servo damage the Ausbot
software also provides a park function
which parks all servos at position
#127. The robot should be parked at
the end of each session.
If the robot is moved from this
position when not in operation it
should be gently moved into the park
position before power-up, otherwise
there is the possibility of damage to
the servos as they initially try to take
up the neutral position.
Parts availability
All of the components and materials used for this robot were chosen for
their availability. The arm and gripper
is based on a T-section aluminium
extrusion which is readily available
through aluminium suppliers such as
Capral or good hardware stores.
Most of the other hardware involves
pushrods and servo links which again
are readily available from most model
stores under the “Kwicklink” brand
name. The parts for the prototype
were purchased from Vaggs Radio
The two servos attached to the arm operate the gripper
and provide the vertical motion. The third servo at left
rotates the arm on its base.
This close-up view shows the underside of the arm at the
servo end. Note that one servo is mounted upside down
with respect to the other.
The gripper fingers are operated by a Y-pushrod assembly
linked to two bell cranks. The other end of the pushrod
assembly goes to one of the servos on the end of the arm.
Ausbot can open its gripper to 105mm wide in 254 steps
of 0.413mm. With this sort of resolution this robot can
pick up an egg (or a light bulb) without breaking it!
Models at Miranda NSW. Phone (02)
9525 5797.
You will be able to put the whole
project together with just a soldering
iron, a drill, a hacksaw and a file or
emery paper, a screwdriver and a
spanner.
Building it
There are three major assemblies in
the robot. These are the base assembly,
the shoulder assembly involving two
servos and the arm, and the gripper
assembly, the latter involving another
servo, a couple of pushrods and two
bell cranks.
Let’s start with the Base Assembly
– see Fig.2. This involves a length
of aluminium extrusion measuring
3mm thick, 120mm long, 80mm wide
and 20mm high. A servo is centrally
located against the vertical section
and simply secured with double sided
adhesive tape and a Nylon cable tie.
The software runs in QBASIC and is easy to drive. All you have to do is enter
data at the screen prompts.
The servo is fitted with a “servo
disc” and this attaches to the shoulder
piece. This is shown in detail in the
Shoulder Assembly diagram – see
Fig.3.
Made from a piece of T-section
December 1997 43
FINGER TIP
1/8 WASHER
M3 X 20 SCREW
RUBBER PAD
BRASS TUBE
1/8 WASHER
5/32 WASHER
M3 X 10 SCREW
FINGER
BELL CRANK
M3 X 6 SCREW
Gripper
Assembly
NYLOC NUT
ARM
Fig.4: the gripper assembly has two fingers, each operated by a standard bell crank linked to a Y-pushrod assembly
and one of the servos attached the arm.
aluminium, the shoulder piece dimensions are 40mm high and 40mm
wide. The other dimensions can be
estimated from Fig.3. Attached to the
shoulder is the arm, made from T-section aluminium, 20mm x 20mm and
270mm long. The arm has two servos
which are attached to one end, again
with double sided tape and a Nylon
cable tie.
Both of these servos are fitted with
standard servo arms, one at top to
operate the gripper and the other
below, to provide vertical motion.
This lower servo arm is linked to the
shoulder piece via a short pushrod
with Kwicklink attached.
Finally, there is the Gripper Assembly which is shown in Fig.4.
The Gripper Assembly has two
fingers, made from 10 x 3mm aluminium flat bar, 95mm long. Each finger
is operated by a standard bell crank
linked to a Y-pushrod assembly with
three Kwicklinks. Each finger has a
swivelling fingertip fitted with a rubber pad. These allow the fingers to grip
SC
smooth or irregular objects.
Kit Availability
The Mini Serial Servo Controller
(Mini-SSC) is based on a PIC-series
microcontroller and comes fully
programmed. It can be purchased
fully assembled and ready to go.
44 Silicon Chip
As already indicated, this project requires little more than a soldering iron and
a few other tools. It will be available as a full kit of parts and working drawings.
Most people should only take a few hours to put it together.
All the parts for this robot and the software are available from Oatley Electronics
who own the design copyright. Their address is PO Box 89, Oatley, NSW 2223.
Phone (02) 9584 3563; fax (02) 9584 3561. The prices are as follows:
Software disc plus copies of detailed plans ............................................$14.00
Mini SSC .................................................................................................$55.00
Kit of machined aluminium parts .............................................................$21.00
Servo kits........................................................................................$15.00 each
Please add $5 for postage and packing.
|