Ball Balance Plate


Goal

The purpose of this personal project was to introduce myself to mechatronics and programming via Arduino. I set out with the intention of designing a platform that was able to balance a metal ball without letting it fall, even when disturbed by a push. In order to do this, I wanted the system to be able to dynamically alter the pitch and roll of the platform in response to the position of the ball.

Design

The sensors and actuators of the system that were selected include a resistive touch screen in order to detect the location of the ball and two servo motors that are able to dynamically change the angle of the plate on the x axis and y axis. The overall design of the system was modeled in SolidWorks, and the final design was reached after several prototypes. The majority of the parts were designed to be 3D printed.

Programming/Control

The system is controlled via an Arduino Uno that continuously reads information from the touch screen and computes the target orientation of the plate using a tuned PID control algorithm. This was programmed in C++.

Final Product

The finalized system was able to successfully balance the metal ball without allowing it to fall off of the plate, even when disturbed by a small push in any direction.