The Chessboard system consists of an x-y Cartesian coordinate system, implemented with 20x40 extrusions.
To move the extrusions, we use slider assemblies with wheels attached, allowing for minimal friction during movement.
Using these extrusions, we can move an electromagnet to any point within the physical limits of the extrusions. This
electromagnet is almost directly in contact with the underside of the chessboard, which allows moving the chess pieces
from one position to another. We will control the electromagnet's position using two stepper motors, each of which drives
one of the two axes.
Regarding the utilization of the accessible coordinate system, we have segmented the area into a 12x12 grid.
This will allow for an 8x8 grid in the center where the game will be played and a border of two spaces surrounding it.
The 8x8 grid will be colored using unique colors, which will allow the aforementioned camera to easily distinguish different
groups of pixels. This will allow the computer vision to detect player moves easily. The border contains the "graveyard",
which is used to store captured pieces and spare pieces for promotions.
View a 3D model of the Chessboard Assembly

CAD Mockup of Actuation Assembly (Slider Extrusion)
Sheets of wood and acrylic will be connected with fasteners to create the physical chessboard. Two chess sets
will be used, one as the main set and one to facilitate piece promotion. We will attach a small rare-earth magnet to each chess
piece so that it can be moved by an electromagnet that is beneath the surface of the chessboard. Current flow to the electromagnet
will be enabled and disabled through a MOSFET. The electromagnet will be connected to a slider that will be 3D printed using the
filament, which rides on a 20x40 extrusion using the POM pulley wheels. The 20x40 extrusion will itself ride on two additional 3D
printed sliders that are connected to two additional 20x40 extrusions and extrusion fasteners. The position of the sliders will be
controlled by the two stepper motors, connected with the timing belt kit. The stepper motors will be controlled using the two
Easydriver motor controllers, which take input signals from the ESP-32 microcontroller. The endstop switches are used to find the
bounds of the coordinate system, which helps to calibrate the microcontroller. The ESP-32, Raspberry Pi, and motor drivers use
heatsinks to ensure that they don't overheat. The ESP-32 controls its outputs based on commands received from the Raspberry Pi.
The communication between the Raspberry Pi and ESP-32 is facilitated using wires that are connected through the female headers.
The Raspberry Pi determines the required movements using a camera (used to analyze the board with computer vision) and an arcade
button (used to indicate the end of a player's turn). This will all be powered using a 12V power supply.

Chessboard Electrical Schematic v0
The Raspberry Pi is responsible for managing the game state, handling updates (e.g. processing and validating new moves),
processing images of the board to compute the new board state, and communicating with the web app. The ESP32 communicates directly with
the hardware, actuating the motors/slide rails. The red button shown is pressed at the end of the human player's turn to indicate that
the board state should be computed and the AI move should be generated. Not pictured in this schematic are the camera (which plugs directly
into the Raspberry Pi via USB) and the power hookup for the Raspberry Pi.

Printed Circuit Board (PCB)
This PCB will function as a way to connect all of the main components in a robust way. This allows us to reduce the
number of exposed wires and greatly increase organization. The circuit connects the motor controllers, MOSFETs, voltage regulator, and
microcontroller together so they can work properly.