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. To give an analogy, it's almost like what QR code companies have to do when they generate QR codes that QR readers can decode. 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)

html-ized by Dan Vernon -- May 2001