I was a Computer Science student at Boise State University until 2001. Currently, I run my own contract software company.Joe Coffland
For many years I had thought about building the CPM or chess playing machine, but it wasn't until Fall of 2000 when I mentioned the idea to a professor of mine Dr. Amit Jain that the idea began to become a reality. I put together a proposal for an independent study in conjunction with Dr. Jain. The proposal was accepted and I began in the Spring semester. The basic idea was to build a machine which could play chess on a physical board against a human opponent. Now months later the CPM is not yet finished but much closer to actualization. In this document I will describe the CPM in more detail, show what has been completed, and what remains.
I have split the CPM into three major parts. These parts include Movement, Detection, and the Software Interface. Movement refers all requirements related to the movement of chess pieces by the CPM. Detection consists of the requirements for detection of the human players moves on the chess board. The Software Interface includes all of the software required to interface the hardware of the CPM to the GNU Chess program.
If you have any questions about this project, are interested in building a CPM, or would like to contribute to this project (machining, money, web advice, etc.) please contact me at email@example.com. I hope you find this sight informative and interesting
Movement of the pieces is accomplished via magnetic chess pieces, an electromagnet, and a chess board mounted above an XY positioning table. Building the XY-table was very difficult. Dr. Jain's and my first attempts were quite laughable in hindsight. Eventually I realized that this kind of job required a machine shop. After many months of searching for parts and working with BSU's excellent machine shop I had the XY-table you now see in the pictures. For those interested in building a CPM this will be the biggest hurdle.
Powering the table are two stepper motors. Stepper motors allow precise and repeatable movement of the XY-table. The card in the corner of the table attached to the motors is the stepper motor driver board.
Stepper Motor Driver Card Version 1 (Redesigned for more power) Schematic Parts List
Stepper Motor Driver Card Version 0 PCB Postscript top Postscript bottom Eagle CadSoft (Postscript viewer CadSoft)
See Making Circuit boards for more info.
The magnet in the bottom of each chess piece serves a dual purpose. Hal-effect sensors will be embedded in the plexi-glass chess board under each square. Wires run down the columns and rows of the chess board. Using a 4 to 16 demultiplexer the Microcontroller scans through 14 columns of the chess board. 14 = 8 columns + 4 columns, two on each side of the board for captured pieces. When a column is selected or powered the presence of chess pieces can be detected by reading the 8 lines running down the rows. Scanning occurs many times a second. This to the human user seems like automatic move detection. When the Microcontroller detects a change in the chess board it relays that change to the PC. The wires, Hal-effect sensors, and some capacitors will all fit in grooves cut into the plexi-glass. I have created a 3D-model of this board which will be used to create the cuts using a CNC milling machine. I am currently seeking a machinist and CNC willing to cut me a deal or donate some time to this part of the project.
Here is a list of the current port mappings of both the AT90S2313 and the 82C55.
Power Supply PCB Postscript Eagle CadSoft (Postscript viewer CadSoft)
See Making Circuit boards for more info.
|10/22/2000||Dual Stepper Motor Card Redesign|
|MM74HC154||4 to 16 Line Decoder|
|HAL114||Hal Effect Sensor|
|UCN5804B||Stepper Motor Translator/Driver|
|AT90S2313||Atmel AVR 8-bit risk Microcontroller|
|SN75C189A||Quadruple Low-Power Line Receiver|
|DM74LS05||Hex Inverter with Open-Collector Outputs|
|74LS07||Hex Open Collector Buffers|
|IRL540N||Hight Current MOSFET|
|74F541||Octal Tri-State Buffer|
|DM74LS169||4 Bit Up/Down Counter|
|74HTC139||Dual 2-4 Bit DEMUX|
|7407||Hex Open Collector Buffer|
Comments, suggestions, or questions mail to: firstname.lastname@example.org