Project Name: Cornhole Scoreboard
Project Functional Description:
The Cornhole Scoreboard project is the creation of a system that automatically calculates, tracks and displays points and scores of a game on a standard cornhole board. Sensors in the bags along with a birds-eye-view camera will register each bag tossed and update the connected digital scoreboard. Buttons on the board will be used to lock in the round score, for optional manual scoring and adjustment, as well as controls for cycling the game mode, resetting the board and turning it off. The “Standard” scoring scheme counts the points each team currently has (3 points per bag in the hole, 1 point per bag on the board), and the round score for the higher point team is the difference between the teams’ points. Round scores are added for the total score, and the game ends when one team reaches 21 total. In the “21 Exact” mode, a team much reach exactly 21 total at the end of a round to win, or be reset to 11 if they reach over 21. In “Cornhole Only” only bags in the hole are counted for points, and in “Board Only” only bags on the board are counted.There will be two microcontrollers used in our project. One will be used to control the LED matrix, and as such will be called the matrix microcontroller, and one will be used to detect the RFID for bags sent through the hole, and as such will be called the RFID microcontroller. The raspberry pi will determine the current score based on bags in play (in the hole or on the board). Bags on the board will be recognized by the camera, while bags in the hole will be sensed by an RFID reader as they slide down a chute. Each bag will have 8 tags sewed to the bag to be scanned properly. The camera will be secured on a tripod that is sufficiently far from play to ensure it is not hit by bags during a round. The raspberry pi will use an image processing program to detect the number of bags from each team on the board, and will take in the information on bags in the hole from the RFID microcontroller using UART. The round points will be calculated based on the location of the bags and the current scoring system (and manual changes if made), then added to team’s total score. This information with be displayed using the matrix microcontroller onto an LED matrix display, where the current game state can be determined. Once the round is finished, the advance round button will be pressed by a player, locking in the current total and allowing the bags to be collected. Due to the lower voltage requirements of the project, a power bank will be used to power our project. This will provide the necessary power to the LED matrix, two microcontrollers, and raspberry pi. We will need to use a buck converter to step the voltage down for the 2 microcontrollers, as they are 3.3 V.
Stretch functionality:
For our stretch functionality, we would like to have a remote that has the buttons as described above (increasing/decreasing points, advancing round). This remote will communicate using RF and will be handheld. Users will be able to hold this remote from where they throw the bag, from up to 30 feet away. Another stretch functionality we will add is more advanced graphics. For example, if someone gets a bag in the hole, there will be a graphic that plays as a celebration. There will also be a graphic for when the game ends, displaying which team won.
Project Specific Design Requirements (PSDRs):
- PSDR #1 (Hardware): An ability to communicate between the RFID and RFID microcontroller using SPI.
- PSDR #2 (Hardware): An ability to communicate between the raspberry pi and microcontrollers (matrix and RFID) using UART.
- PSDR #3 (Hardware): An ability to communicate between the matrix microcontroller and LED matrix display using HUB75E.
- PSDR #4 (Software): An ability to display the score graphic on an LED matrix from the matrix microcontroller.
- PSDR #5 (Software): An ability to detect color using a camera on the raspberry pi.
- Stretch PSDR #1 (Software): An ability to display animation graphics during game moments.
- Stretch PSDR #2 (Hardware): An ability to use a handheld remote to communicate using bluetooth from a microcontroller in the remote to the raspberry pi to allow players to make adjustments to the game from far away from the board.