Name | NetID | Section |
---|---|---|
Hyrum Dickinson | hyrumsd2 | ECE 110 |
Jason Liu | jasonsl5 | ECE 110 |
Samuel Foley | safoley2 | ECE 120 |
Kashyap Ramachandrula | kramac3 | ECE 110 or ECE 120 |
Jevin Liu | jevinl2 | ECE 110 or ECE 120 |
Alex Yuan | ayuan20 | ECE 120 |
Statement of Purpose
Chess, an ancient board game, has been transformed into a largely on-screen experience. Online player-matching sites, artificial intelligence engines, and game-analysis programs are among the powerful tools that benefit the modern chess world. However, these developments come at a price. In a world where life is increasingly an on-screen experience, chess players need a way to enjoy the sophisticated functionalities modern technology have brought to their pastime without having to spend even more hours staring at a computer screen. Electronic developments have done much to keep the game relevant to the modern world, but they have also removed precious component of what makes chess be chess: the physical game board experience. Short of highly-expensive integration options, players must choose between either enjoying the physical chess set experience or benefitting from modern, high-powered analysis and connection tools. This project aims to bridge the gap between the physical game board experience and modern computer chess capabilities.
The end goal of our project is to create a physical chess set that will provide players with all the powerful functionality of an on-screen chess system. Our basic model consists of a physical board that sends information about gameplay to a computer. Ideally, that information could then be digitally inputted into an online chess engine. Actions taken by the engine would be reflected on the physical board, and actions on the physical board would be inputted into the chess engine, allowing for seamless functionality synchronizing the physical board's movements with the engine's capabilities. Unlike our end goal, this semester's prototype is basic, allowing only for the transfer of on-board action information to a computer. With the end goal in mind, however, our design choices have been selected such as to permit the adding of these more sophisticated capabilities in later semesters. The future is digital, but as life moves to being an increasingly on-screen experience, our project will allow chess players to enjoy the perks of computer software and internet connectivity without having to spend their entire life staring at a screen.
We believe that our project is important because even in its most basic form, it will make the connection between physical and online chess more seamless. Normally, physical chess and online chess are fairly disconnected, and if one wishes to, for example, transfer their moves on a physical board to a computer they have to manually input their notation or take the time to one by one replicate their moves on a computer. However, our hybrid chess board would allow one to have their moves be immediately online and notated. Even in its most simple, this-semester iteration, our board would allow for much more efficient transfer between physical and online chess.
What is our aim for this semester? We intend to design and construct a physical chess set that will transfer data about games being played on the board to a computer. The set will be equipped with capabilities such that game movement from the physical board will be observed and stored digitally in a nearby computer. Magnetic sensors on the 64 squares will sense movements made by magnetic pieces. Information from those sensors will be sent to a raspberry pi which will leverage custom code to transform inputs from the sensors into a human-readable record of each move in formal algebraic notation or a custom notation. Configuration of the sensors and raspberry pi, powered by a custom PCB connectable to a standard US outlet, will make up the bulk of the electrical design work for this project.
As previously noted, this semester's prototype has been designed to accommodate our future goals. These include the strengthening of our raspberry pi's interpretation system to ensure that outputted game information makes sense, including the implementation of a rule enforcement system to warn players when they have made an illegal move and then delete that move from the record when they take it back. We may look into the development of a built-in clock to enforce time controls, customizable at the start of each game. To make our system more user friendly, we could bridge the difference between physical and online chess even more by adding a GUI to make it easier for users to view and save their game data. We would also look into integrating that game data with an online chess engine, enabling solo play against a CPU or other online players. Hyrum is separately working on a computer science project that involves building a chess AI with Python using Apache Spark; the result of which could potentially be integrated into the future of the system. A full integration of AI or remote opponents would require a motor system integrated with magnets to allow the digitally-connected opponents' moves to be reflected on the physical board. However, these and other potential add-ons are not the goal of this honor's lab project. They are only important for this semester's project because their potential future implementation has affected the design choices of this team in preparing our initial prototype.
Background Research
One comparable product we came across during our initial research was Square Off's $399 Kingdom Set. The Kingdom Set (and its $449 counterpart Grand Kingdom Set) is a fully automated physical chess board capable of making its own moves. It pits users against both online remote opponents and twenty levels of its own built-in AI. The Square Off set represents a sophisticated iteration of our computer-physical integration concept. For many amateur players, however, the cost of The Kingdom Set may be prohibitive. Since our project intends to stay within its $150 budget, it will present a far more affordable alternative. To ensure that we remain within our budget, we will make our software open-source, potentially reaching out to computer science groups such as Open Source @ Illinois to add functionality and enable more complicated features.
Private projects like James Stanley's "Autopatzer" serve as a major inspiration for us. While we intend our project to be unique in both design and functionality, it is by standing on the shoulders of giants that we are able to see. Our chess system, we hope, will truly revolutionize the electronic board game industry. By paving the way for others to integrate online capabilities into their physical game sets, we hope to inspire a reduction in unnecessary on-screen time - a realistic reduction, which does not carry with it a corresponding reduction in on-screen capability. By doing so, our project hopes to be one step in the direction of re-diversifying the experience of living; moving it away from the homogeneous, overwhelmingly screen-dominated affair that gaming has become.
Block Diagram / Flow Chart
System Overview
Each piece in our chess set will have a magnet built into it. Physical board movements - the human-made movements of the chess pieces on the board - will force movements in the built-in magnets, which will be noticed by our sensors. These sensors will send information to a raspberry pi which will leverage custom code to interpret sensor inputs and output a record of each piece movement in formal algebraic notation. The sensors and raspberry pi will receive appropriate amounts of electrical power from a custom PCB, powered by an external power source such as an outlet or battery. Output from the raspberry pi will then be displayed on a connected laptop, from which users will be able to view and save records of moves made on the board.
The PCB serves as the bridge between the 64 Hall effect sensors and the Raspberry Pi. Since the Raspberry Pi has limited IO, the PCB needs to condense the number of output bits, which in our case was 8 bits, one for each row of the chess board. This design takes 8 clock pulses to output the location of all chess pieces as each row of the chess board is parallel loaded into an 8 bit shift register, which then shifts and outputs one bit per clock cycle. After 8 clock cycles, the positions of pieces on the entire board have been output one column at a time. Our PCB also has three inputs: one for clock signal, one for parallel load, and one for power.
Above is the circuit schematic for one row of Hall effect sensors and the 8 bit shift register for one of the PCB’s output pins. Each of the Hall effect sensors is connected to one of the inputs of the shift register. Whenever the position pieces need to be updated, the shift register parallel loads each of the sensor’s outputs into the register. And then the shift register shifts out one value at a time, from the rightmost Hall effect sensor and eventually ending at the leftmost sensor after 8 clock cycles.
Above is the entire circuit schematic, and is simply 8 of the schematics for one row put together, each leading to a different output pin. Additionally, there are two input pins that lead to the clock input and parallel load input of each shift register, since each row will load and shift simultaneously.
Parts
- Raspberry Pi - is microcontroller enough or do we need Linux computer?
- Microcontroller: the 4$ Raspberry Pi Pico: https://www.raspberrypi.org/products/raspberry-pi-pico/
- Linux computer: the 5$ Raspberry Pi Zero: https://www.raspberrypi.org/products/raspberry-pi-zero/
- Wood and stain for board & 32 Chess pieces → would this be easier to buy instead of make? We should have a good fifty dollars left over even after the PCB, so we might be able to get a good wooden or plastic set to embed the sensors in, rather than building it all from scratch.
- 32 Small magnets
- 64 Magnetic sensors
- Custom printed circuit board - est. $20-50
Parts that we will use with the project but do not need to purchase:
- Outlet and charging cable
- Computer or monitor
Possible Challenges
- Going over the price limit
- Sensors not properly detecting gameplay; for example sloppy moves in which pieces are not placed safely in the center of their destination square
- Detecting special moves
- Castling
- En passant
- Promotion
- Programming
- Troubleshooting
References
- Stanley, J., 2021. James Stanley - Autopatzer: my automatic chess board. [online] Incoherency.co.uk. Available at: <https://incoherency.co.uk/blog/stories/autopatzer.html> [Accessed 17 February 2021].
- Bartholomew, J., 2016. My First Chess Opponent!. [video] Available at: <https://www.youtube.com/watch?v=b59-NaWOmtg> [Accessed 17 February 2021].
- Square Off. 2021. Chess Board, Chess Games, Electronic Board Games Chess Set. [online] Available at: <https://squareoffnow.com/> [Accessed 18 February 2021].
Attachments:
Untitled Diagram.svg (image/svg+xml)
Screenshot (1).png (image/png)
Screenshot (1).png (image/png)
image2021-5-6_23-21-3.png (image/png)