Last week, YouTuber Mark Rober released a wild video in which he demonstrates a seemingly-magical bowling ball that is capable of landing a strike every time it’s thrown. In reality, of course, that isn’t a regulation bowling ball at all. Inside of the ball is a weighted electronic mechanism that allows the bowler to steer it using simple body movements. Rober normally builds projects himself, but for this project he enlisted the help of fellow YouTube maker James Bruton. Today, Bruton uploaded a new video explaining in more detail how the steerable bowling ball actually works.
Rober sought out Bruton’s help because he has constructed a number of BB-8-style robots (from Star Wars). If you’re familiar with BB-8, then you can already see how steering it is similar to steering a bowling ball. If you imagine the bowling ball rolling straight down the bowling lane, then it is rotating on its X axis. Inside of the ball, there is an assembly with bearings along that same axis. As the ball rolls, that assembly remains relatively stable. A weighted pendulum hangs from that assembly, and can be pivoted clockwise or counterclockwise (relative to the direction of travel). When it pivots, the mass of the pendulum causes the ball to change course.
That internal pendulum is actuated by a small servo motor. The servo motor is controlled by a Teensy 3.2 board, which also monitors an IMU (Inertial Measurement Unit) to keep track of how far the ball is currently tilted. That data can be used to keep the ball stable as it rolls. A small radio module is used to connect the ball’s Teensy 3.2 to an Arduino Nano worn by the bowler. That Arduino is connected to a second IMU, which measures which direction the bowler is leaning. If the bowler leans right, a right steer command is sent from the Arduino to the Teensy. The Teensy then actuates the pendulum, which causes the bowling ball to move in the desired direction. It does seem to work best at fairly slow speeds, but this bowling ball might finally make it possible to get that elusive 300 score.