Arm
Your Atari - Part 1 of 2 by Ted Wilmot ANALOG Computing,
July 1986, p. 109-114
Robotics is an exciting new field. Along with
Artificial Intelligence, it's bound to create a new Industrial Revolution.
Unfortunately, most people are fascinated by robots, but few get hands-on
experience, due to the high cost and industrial nature of the
mechanisms. Unless you're rich or are a mechanical wizard, the robotics
scene has probably drifted from your thoughts. But take heed, Atari fans,
there's a new kid in town. His name is Armatron, and he wants to meet your
computer. Who is this Armatron anyway? I first learned of him some time
ago, browsing through a Radio Shack catalog. Off the page jumped the ad
for their Armatron robot arm. Intrigued, I read the blurb. Before I could
finish, the little kid inside me was shouting, "Get it!" Soon I was on
my way to check one out. My initial impression was so positive that, even
before I'd purchased one, visions of interfacing it to my computer were
percolating through my mind. For about $30, you can be the proud owner
of an Armatron. For an additional $30 and three evenings' work, you can
convert the "toy" into a precision computer-controlled servo-system. The
process requires a basic knowledge of electronics and simple hand tools.
Here's the procedure.
The mechanics.
First,
remove the arm's plastic housing. Take out the seven Phillips head screws
on the bottom of the housing. Be sure to remove the housing with the arm
in normal operating position (i.e. the arm on top). Remove the joysticks,
along with the top of the housing and set those parts aside. You'll now
notice the complex mechanical transmission to distribute power from the
single permanent magnet motor to the rest of the arm. Figure 1 shows the
internal arrangement of the various assemblies within the
transmission. Now, remove the three largest ring gears on top of the
gear housing (see Figure 1). With the gears in a safe place, take out the
eight Phillips head screws holding down the gear and joystick housings.
Note: one screw is somehwat hidden inside the ring gear
pit.
Figure 1. Chassis Top View. (click
image to enlarge)
|
| At this point, the "energy level" mechanism
should be removed. Disconnect both wires at the energy level switch (two
pieces of copper over the energy level indicator) and splice them
together, eliminating the switch. Now, remove the energy level switch and
the energy level indicator (the orange tube with some gears at one
end). With the energy level switch bypassed, remove the gear housing,
then the joystick housing. Now, remove the two remaining gears, those that
powered the energy level indicator (both are worm gears with regular gear
ends just above the motor shaft). Now that all the preliminary work is
done, we'll begin interfacing the arm's transmission to the
computer. The arm's joysticks control a series of six plates, which
connect with cams on a rotating series of planetary gears. The motor
continuously rotates the planetary gear system, and when a joystick is
moved, one of three plates connects with a corresponding cam on the gear
system to transmit power from the motor to the arm. To interface our
electrical computer to the arm's mechanical transmission requires some
sort of electrical to mechanical converter. Of course, a motor comes to
mind, but it would be very tricky to install a separate motor to run each
of the arm's joints. Therefore, I chose to use solenoids to simulate the
action of the joysticks, instead. This way, solenoids can be mounted
outside the arm's housing and connected mechanically to the joystick
plates via nylon fishing line. A total of twenty holes must be drilled
in the bottom portion of the arm's housing. Twelve holes give the fishing
line a direct route from the solenoids to their corresponding plates. The
remainder are to fasten the solenoids' Plexiglas supports and
legs. Figure 2 shows the location of holes to be drilled to accommodate
the fishing line. The holes have numbers next to them, indicating the
distance from the bottom of the chassis at which they should be drilled.
For best results, use a #60 printed circuit board drill to make the
holes.
NOTE
|
Part 1 of this article will work with any 8-bit Atari.
However, Part 2 requires three joystick ports, so it's not
compatible with the XL and XE series computers.
|
Figure 2. Plate Assembly View/Drill
Guide. (click image to enlarge)
|
| Figure 3 shows the location of the remaining
eight holes. With all the chassis holes completed, the plates are now
ready to be drilled. For best results, use a 1/8" drill. Each joystick
has its own plate assembly, composed of five parts: three plates and two
levers. Also, each plate assembly is a mirror image of the other. Figure 2
shows a view of the plate assembly and where the holes should be drilled
in the various parts. The letters B, T and S indicate
where the nylon fishing line should exit the part. For example, the
rightmost lever in the plate assembly has a T, indicating that the
line should exit through the top of the hole. The second to the right
plate has an S, indicating that the line should exit from the
side. Again, a #60 PCB drill should be used to make all holes. Once all
the plate holes are completely cut (twelve 20-inch pieces of 12-pound test
nylon fishing line), the line should be tied in a knot about four times,
before being drawn through the part (a good-sized knot, so the line won't
slip through the hole). Refer to Figure 2 to see which hole each line
passes through. Now, let's make the legs and solenoid supports. Theres
a lot of flexibility in the leg design. The only real requirement is that
they raise the arm at least 1 inch. Why? Well, later on, we'll be mounting
a potentiometer under the arm's chassis for directional feedback. I
found scrap 2x4s cut into 1-inch square blocks worked well, but anything
will do-as long as it raises the arm 1 inch. Oh, by the way, you'll need
four legs for this critter. The solenoid supports will be a bit more
complicated. You'll need three pieces of 4 1/2 x 5 1/2 x 1/8 -inch
Plexiglas (or similar material). Figure 3 shows the shapes necessary
and their location on the chassis. Now, mount the legs and solenoid
supports as per Figure 3. Check the fishing lines to be sure they won't
catch on anything (like the planetary gears or plates) during normal
operation, then reinstall the gear and joystick housings. Next, install
the solenoids in their motinting holes (slots), as close to the arm as
possible. Hand tighten them.
Figure 3. Leg/Solenoid Mount
View. (click image to enlarge)
|
| Note: the solenoids I used (listed in the parts
list) had their ends bent perpendicular to the plunger axis. If you use
these too, bend them so each end is parallel with the plunger
axis. Now, install the joysticks in their sockets (on top of the
joystick housing). Starting at one corner, pull a piece of fishing line
snug, until it just starts to move the joystick. With the solenoid plunger
fully retracted, tie the line firmly to the solenoid in three to four
knots. Repeat this procedure until all solenoids have been connected to
their corresponding lines. At this point, the three ring gears should
be replaced in the top of the gear housing and the top or chassis of the
arm reassembled.
Making it work.
Congratulations! Most of the mechanical work is finished. Now for some
electronics. Our first task will be to construct a power supply for the
solenoids. Why a separate power supply? Well, solenoids are generally high
power devices requiring substantial current to operate, far more than our
computer is capable of supplying. For that reason, we'll use a separate
source to drive the solenoids, having the computer control them. Figure 4
shows the schematic diagram of the raw DC solenoid power supply. This
gives the solenoids 12 volts DC.
Figure 4. Power Supply
Schematic. (click image to enlarge)
|
| If you're using solenoids other than those
mentioned in the parts list, check their voltage requirements. Use an
appropriate transformer, to avoid overloading the power source or the
solenoids. Your power supply may be constructed using any common
circuit-building technique (wire wrap, PC board, and the like). I used
wire wrap construction; it's fast and inexpensive. Note: the transformer's
primary leads must be well insulated, to avoid the inevitable shock
hazard! With the power source ready, turn on the arm and solenoid power
source. Start at one corner and energize a solenoid. Then loosen the
solenoid screw and slowly pull the solenoid away from the chassis until
the corresponding joint is activated. Tighten the solenoid screw and
repeat the procedure until all solenoids have been aligned. Now we're
ready to interface the formerly mechanical arm to our electronic computer.
joystick port 0 will be used to output data to the arm. The port has a
4-bit output, capable of sixteen unique data patterns. To make life easy,
we'll use a 74154 four- to sixteen-line decoder to change the computer's
binary output into a form usable by the arm. Basically, the decoder has
four input and sixteen output lines. The output lines are normally at
logic 1 (5 volts). When binary data is sent to the input lines, the
corresponding output will go to a logic 0, or ground. For example,
suppose we sent a 5 (or 0101) to the decoder. Output line 5 would go low,
while all the others remained high. At this point, we've only decoded
the computer's binary output. We still have to drive the solenoids. Like
the computer, the 74154 has a limited current carrying capability.
Therefore, we must buffer the decoder's output, so it can supply enough
current to drive the solenoids. I used reed relays to accomplish the
buffering, simply because there were quite a few in my "junk box."
However, if you have an affinity for transistors, they may also be used.
Figure 5 shows the decoder/buffer board schematic, and the joystick plug
wiring. Note: the relay and transistor schemes are both shown,
to allow for greater flexibility. Again, the decoder board may be
constructed using any of the common circuitbuilding techniques. I elected
to go with the wire wrap method on this board, too. Ta-da! You've now
modified the arm for computer control. Now for some software to control
it... Listing 1 is a simple BASIC demo program in BASIC to get you
started. Essentially, it sets up joystick port 0 for output, then outputs
data using a for... next loop and data statements. If you wired and
modified the arm according to instructions, the values listed in Table 1
will move the corresponding joints. I'm sure you'll become very skilled
at maneuvering the arm by using timing loops or repeated data values.
However, no matter how good you get at guessing the arm's position, you
can never really be sure of its location. That's why directional feedback
is required. In the second part of this article, I'll explain how to
add directional feedback to the arm, using potentiometers (Atari paddle
controllers) and some new software. Until then, have fun building!
The two-letter checksum code preceeding the
line numbers here is not a part of the BASIC program. For
further information, see the BASIC Editor,
page 17. |
Listing 1. BASIC listing.
|
ZT 16 P=PEEK(54018):POKE 54018,P-4:POKE 5
4016,127:POKE 54018,P
EN 20 FOR A=1 TO 12
MY 30 READ D
FA 40 POKE 54016,D+64:POKE 54016,D
FS 50 FOR W=1 TO 450:NEXT W
GA 60 NEXT A
GL 70 POKE 54016,64:POKE 54016,0
AG 80 DATA 1,2,3,4.5,6.7,8,9,10,11,12
YX 90 END
| |
Table 1.
|
OUTPUT DATA RESPONSE
1 .....................Close Jaw
2 .....................Elbow Left
3 .....................Elbow Right
4 .....................Wrist CCW Rotation
5 .....................Wrist CW Rotation
6 .....................Wrist Up
7 .....................Wrist Down
8 .....................Shoulder CW Rotation
9 .....................Shoulder CCW Rotation
10 ....................Shoulder Up Rotation
11 ....................Shoulder Down Rotation
12 ....................Open Jaw
| |
Parts List.
|
QTY. DESCRIPTION Vendor/Part #
(12) 12V Solenoids All electronics
SOL-12D, $1.50 ea.
(1) 74 LS 154 4- to 16-bit decoder R/S, Jameco, etc.
(12) Transistors/buffers ECG 159
or
(12) Reed Relays, any type with 1/2-amp contacts
(1) 12V Transformer, 1/2-amp and line cord
(1) Bridge rectifier or 4-inch 4001 diodes
(1) 2500 MFID filter capacitor
(3) 9-pin female connectors
(4) 1 Meg-Ohm linear potentiometers
(2) Micro switches
Miscellaneous wire, metal for mounting brackets, fishing line, etc.
| |
Figure 5. Decoder Schematic/Joystick
Wiring Diagram. (click image to enlarge)
|
|
|