Most ball-on-plate projects tilt a single surface with two axes of motion. This one goes further: four articulated aluminum arms, each driven by its own stepper motor, move a clear plate, bouncing and balancing an orange ping pong ball in full 3D. Compared with the usual two-axis tilting approach, that feels like a different league of mechanics and control.
The hardware story is just as good. Electron Dust machined every aluminum part on a small desktop CNC mill, a Benbox CNC 1310, and picked geared steppers over linear actuators for cost and availability reasons. A Teensy 4.0 is on the parts list along with four StepperOnline DM442S drivers and Nema 17 motors wearing 5:1 planetary gearboxes, all fed by a 48V 8A supply. Vision comes from a See3CAM_CU135 camera under the plate, pushing 120 FPS into OpenCV on a Windows machine, with a custom Unity application handling a split-screen 3D simulation that mirrors the real robot's movements and ball trajectory.
Some details really stand out. The inverse kinematics were sorted out early, partly during commutes on public transport. The machine computes the ball's 3D position from the image data, a typical bounce move takes about 300 milliseconds, and no new command is accepted until the current one finishes. Circle detection finds the ball in the raw image, and an inset display breaks the pipeline into color channel separation and Hough transform stages. Unlike earlier versions that used sound, this iteration relies on vision alone.
One open question remains: with two balls in play, the second could hit the plate before the first bounce move finishes, and two balls would eventually collide given the centering behavior. Whether it could briefly juggle two balls under the right conditions is unconfirmed. Whether 3D printed parts could stand in for the aluminum is untested too, and the whole thing landed in the $1000 range despite efforts to keep spending down, after half a year of weekends.
Project by Electron Dust. Watch it on their YouTube channel: