AutoChess: Mimicking Online Chess in Real Life

Intro

AutoChess is a project that myself and two friends, Vedant Patwari and Jerry Chan, completed as a final project for the course 588 Mechatronics. The main goal of this project was to hit on the 4 main aspects of mechatronics: Sensing, Mechanical Design, Actuation, and Computation.

The automatic chess system is able to follow along any online game of chess being played on Chess.com, a popular online platform. The state of the online game is downloaded and compared to the local version. Any new moves are replicated using the electromagnet mounted on a CoreXY gantry. Captured pieces are moved to a holding area. 

Sensing

Endstop limit switches are needed to sense the home position of the gantry upon initial startup of the system to tell the beaglebone once the gantry has reached its home position

The Beaglebone is sensing which moves must be made by interfacing with the Chess.com API. The signals which correspond with live game moves or recorded game moves are sensed by the beaglebone, and then computation and actuation occur.

Mechanical Design

2'x2' acrylic chess board with 2"x2'x2' housing for gantry, motors & electronics

 Low friction acrylic surface for smooth movements and visible components for a cool aesthetic, with laser engraved chess board

Aluminum gantry with rollers for smooth precise linear motion

3D printed chess pieces with inset magnets in the base, and low friction tape applied for smooth movement

Actuation

A 12 Volt Electromagnet switches on and off to couple a piece with the gantry

Two NEMA17 stepper motors give sub millimeter precision in motion given their resolution of 3200 steps per rotation

Stepper motors drive CforeXY belt system to move the electromagnet precisely anywhere within the 24’’ x 16’’ frame, without having to move the mass of the motors themselves

Computation

The BeagleBone control board regularly downloads the state of the game from the Chess.com API

After downloading, it compares the state of the game with the previously stored data to determine if pieces must be moved

If a piece needs to move, the taken piece will be removed from the board, then the taking piece will complete its move.

In order to move a piece between two positions on the board, the beaglebone calculates the best path to move the piece

The calculated path must avoid other pieces currently on the board

Once a clear path from the start to the target position is calculated, it will be segmented into a series of linear motion commands, and then executed

Final Product