Tasked to create a machine with a repeatable user interaction, we built a robot that could play an entire game of blackjack against a user - shuffling & dealing cards, reading their values, and deciding to hit or stick while communicating with the user. A Keras neural network determines the values of both the playing cards - keeping track of both the users robots hand. An algorithm then decides what the robots next move should be; while the user inputs their moves through a PyQt powered Raspberry Pi and touchscreen. The mechatronics used to shuffle and deal regular playing cards - controlled by a Raspberry Pi and serially linked Arduino - were developed through several iterations to be accurate, smooth and reliable.
A battery-powered robot, coded through a web app, making Python programming engaging for kids