Cheater's Pinball

GOALS: Create a pinball game that utilizes machine learning to give the player an advantage
SKILLS: Machine Learning, Python, Laser Cutting, 3D Printing

This week's design prompt for my Intro to Robotics course was to create a game that incorporates a "smart motor" - basically a motor that can be trained with a machine learning algorithm & accelerometer. We ended up using a K-means algorithm to train the motor to tilt the playing field left or right when the user points the accelerometer at certain trained positions.


Code


When you boot up the game, you first have to train the machine learning algorithm by telling it where you want the tilt left, center, and right commands to be. To do this, we used a K-means algorithm. Once these data points were collected, the player could in real time control the tilting of the board just by turning the accelerometer.



see the code!

Hardware



My primary contribution was in the hardware of the project. We created the frame out of laser cut wood, and 3D printed the flippers and its gears.


Challenges & Future Improvements

  • We had a really hard time with 3D printed gears. I would just save the effort and laser cut bigger gears in the future.
  • In the future, I would change the servo mount to be directly attatched to the board instead of attatched to the tilting mechanism. The current design leaves alot of room for error in the gears turning.