Balancing a Ball on Top of a Resistive Touch Surface

As seen in several short clips by Redditor “xmajor9x,” this ball-on-plate device can balance a ball on top of a flat surface using three…

Jeremy Cook
7 years ago

As seen in several short clips by Redditor “xmajor9x,” this ball-on-plate device can balance a ball on top of a flat surface using three servos, as well as make it roll around in a square or circular pattern. Actuation is handled by a three-servo setup, which uses a series of linkages to raise and lower the sides of this rectangular ball-rolling area.

An controls this machine using a PID loop, which factors in the ball’s position and speed for smooth ball movements. The device also implements a Python-based GUI written on top of the Kivy framework. This allows it to show interesting plots of servo responses, as well as adjust the P, I, and D values as needed.

All of this makes for an interesting setup mechanically and programming-wise. What really sticks out about the build, however, is that it employs a resistive touch panel to sense the ball’s movements, meaning a heavy ball must be used for the sensor to reliably determine position. Though its creator sees this interesting implementation as a disadvantage — and is considering using openCV computer vision control in a future iteration — perhaps this type of control scheme will inspire new hacks were computer vision isn’t quite the right solution.

For more info and code, be sure to check out the project’s GitHub page!

Jeremy Cook
Engineer, maker of random contraptions, love learning about tech. Write for various publications, including Hackster!
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles