A smart chess board that displays information in augmented reality to communicate the next best move and previous move evaluations
This project was made as part of the 2020 HackCU Hackathon and won first place overall. The application utilizes a smart chess board that can detect the placement of all its pieces. It then uses a chess engine to determine the next best move as well as evaluations on previous moves (e.g. Best, Poor, Blunder). Evaluation information is then sent via web server to a HoloLens headset where it is displayed in augmented reality.
The board uses copper rails on each row and column to detect where pieces lie. Every piece has a resistor built into its base that makes contact with the copper rails. An Arduino Mega is uses to read in voltages from each rail. When a piece is moved, a Python algorithm detects the changes in resistance and calculates the new board configuration based on the previous and current voltage values. When the board configuration has been identified, it gets sent to a chess engine in Forsyth–Edwards Notation where the engine returns a new FEN string with the next best move. Additionally, the engine provides information like previous move evaluations and player evaluations.
This information gets sent to the application running on the HoloLens headset. The user will see a virtual pawn displaying which piece they should move and where to move it to. Users will also see an icon above their last moved piece indicating how good of a move it was. The application is built in the Unity game engine and it utilizes the Vuforia engine for image based AR tracking.