Alon Borenshtein's Arduino-Powered BotGammon Robot Plays a Mean Game of Backgammon
Recognizing physical dice rolls and carrying out moves on a real board, BotGammon leans on GNU Backgammon for a challenging partner.
Developer Alon Borenshtein has built a robot that plays a mean game of backgammon — taking GNU Backgammon into the real world with a little computer vision and an XY gantry.
"The [robot] includes the following," Borenshtein writes of the project. "Board detection to detect checkers on the board; dice detection, [a neural network] that recognizes the dice; interface with the GNUbg [GNU Backgammon] CLI [Command-Line Interface] for the auto player; board management [to] create movements on the board, [and] some Arduino sketches."
The robot itself, a Superb Tech XY gantry system, is driven using three Arduino microcontroller boards: a main Arduino UNO R4 WiFi acts as the central control system, a second Arduino runs the Grbl firmware to control the robot's movement, an Arduino Mega handles a graphical user interface, and an Arduino Micro serves as an I2C to serial bridge.
The actual gameplay comes from GNU Backgammon, a free software tool that can analyze games and suggest moves. The software's command-line interface receives information about the board state, including moves made by the human player, and works out the optimal next move — information which is then sent to the robot arm to make the play on the physical board.
"There might be [other backgammon robots]," Borenshtein says of the build, "but I really tried to find one that is really working but couldn't find such. There are several checkers robots and many chess ones, but I didn't find Backgammon."
Source code for the project has been published to GitHub under an unspecified license, along with 3D print files for various components.