Our three person group built a machine which can play the game Connect- 4. We added several features to the device, including a system to read the current state of the game (which allows it to play against a human). The design focus was to built a machine which can execute moves as quickly as possible, which we achieved through robust mechanical design and careful electronics design. Our machine is capable of having a handful of loose chips dropped into its hopper, sorting the chips into a magazine, and then taking a chip, scanning the board, and dropping its chip. Each move takes from 532ms to 946ms, depending on which column the chip is dropped into. We use an artificial intelligence system developed by Keith Pomakis, running on an inexpensive Celeron- based system to compute possible moves, looking 10 moves ahead. While the human is taking its move, the computer is calculating where it will move for all 7 of the possibilities, so that as soon as the human is done moving, the machine can place a chip.
Figure 1: Overview of components
We divided the system into three main groups: the hopper and magazine system, the gantry frame and rider, and the electronics and software.
The hopper (Figure 2) consists of a square upper box and a lower four-sided funnel shape. The funnel ends in a slot outlet just big enough for a single chip to exit the hopper. The hopper is made of laser-cut acrylic, and is jigsaw-fit together and glued with both superglue and epoxy for durability. Around the hopper is a thicker square laser-cut acrylic support plate. The plate is supported by four solenoids, with one on each corner. As the solenoids are only capable of pulling, each solenoid is counteracted by an upward-pulling tension spring. To agitate the chips in the hopper, the solenoids pull down and release at a given frequency, causing the hopper to shake up and down. With only this agitation, there is a chance that the chips could stack horizontally perpendicular to the funnel outlet slot, blocking chips from exiting the hopper. To eliminate this failure mode, there is also a small agitator motor that hangs down into the hopper from above. This motor turns a pair of agitator sticks that will dislodge any jams of the sort mentioned above. The chips leave the bottom of the hopper and enter the inlet to the chip magazine.
Figure 2: Front view of hopper; (a) acrylic hopper, (b) support plate, (c) hopper solenoid, (d) counteracting spring, (e) agitator motor, (f) agitator sticks, (g) chip magazine inlet
The chips leave the hopper and enter the top of the ramp chip magazine (Figure 3), which is also laser-cut acrylic. The magazine holds exactly 21 chips, which is the maximum number of chips each player needs to fill the game board. At the inlet to the magazine are an IR emitter and sensor that will sense when a chip has stopped at the inlet, indicating that the magazine is full. Once the magazine is full, the chip loader solenoid is activated, dropping the first chip into the chip dropper that is attached to the rider on the gantry.
Figure 3: Front view of ramp chip magazine; (a) acrylic ramp,
(b) inlet IR sensor, (c) chip loader solenoid
The chip dropper (Figure 4) is attached to the rider on the gantry system. The rider moves the dropper over the desired column on the game board , and the dropper drops a chip into the column. It drops a chip using a solenoid (Figure 5, a), which pulls a pin (Figure 5, b) out from underneath the chip. The dropper is then returned to its home position underneath the chip loader in the magazine to receive its next chip and await a command.
Figure 4 Side view of chip loader with inactive solenoid; (a) solenoid, (b) plastic rocker, (c) counteracting spring, (d) loader pins, (e) chip dropper
(a) dropper solenoid, (b) dropper pin, (c) chip loader, (d) game board
The gantry consists of two main parts: the non-moving frame and the moving rider. The main function of the non-moving parts was to hold the belt in tension, and hold the rods parallel relative to each other.
In order to accomplish this, we needed to provide accurate positioning for the linear motion rails. A mounting block for the rods was machined out of .5” thick aluminum bar stock (Figure 6.) The holes for the linear motion rods were reamed to .002” over the diameter, and set screw was drilled and tapped, to hold the rods in place. The mounting blocks also included through holes for the belt to pass, as well as tapped holes to hold an idler pulley mount on one side, and a motor mount on the other. These mounting blocks are held to the aluminum angle bracket frame.
Figure 6: A machined mounting block, with rods, idler pulley assembly, and belt mounted
The moving rider assembly has to be able to hold a chip above the board, and drop it when required. It also has to ride on the linear motion rods, and hold the belt in tension. We constrained the motion by using bronze bushings, which we then press fit into an aluminum piece we machined. This piece was then screwed to a center block, which held the belt tensioning system (Figure 7). On either side of the game board, there were carbon fiber 'wings' which mounted the sensors which looked through the board, to check if a piece was in place.
Figure 7. Image of completed moving assembly, the rider plus the cantilevered chip dropper, and the carbon fiber game state sensing wings mounted.
Figure 9 shows the physical layout of the electronics systems, and the signal routing is pictured in Figure 10. In Figure 10, the label for each of the connection points indicates the number of signal wires. Green signifies GPIO lines, orange signifies 12V or 24V signals and blue signifies RS232 connections. More complete pin-outs can be found in the schematics.
Figure 9. Signal Flow Chart of the System
Michael Dawson-Haggerty: Mechanical Design (gantry, rider)
Curtis Layton: Electronics, Software
Sara Whitby: Mechanical Design (hopper, magazine)