Big Ball Maze Game using Arduino
This project was the result of an urge to contribute something to the Creative Games section of my kids’ elementary school fair. The kids loved it for it’s simple old-school game aesthetic mixed with Wii-style and Kinect-style video game control. It’s a spin-off project of an earlier Ball & Plate experiment mentioned here in the Instructables forums.
The machine is an over-sized (1200mm (48”) diameter) version of the traditionally hand-held game where the object is to tilt a circular disc to move one or more balls though to the center of a maze. The circular board is supported by a stand with a centrally mounted gimbal, and controlled by either a wired hand-held contoller, an Android phone, or by body movements.
An Arduino microcontroller is used to monitor the player’s actions and then adjust the tilt of the board to match. The wired controller uses an accelerometer module. The Android phone controller uses the in-built accelerometer and a custom app made with Processing to communicate via bluetooth with the Arduino. The body controller uses two sonar proximity sensors to detect how far the operator is from a central position to determine how much to tilt the board.
The board is tilted using two gearmotors pulling on strings attached to the underside of the board – one for front and back, and one for left and right. An accelerometer is attached to the underside of the board to provide the position feedback to the Arduino.
Step 1: The board
The outer maze wall is 57.15mm (2¼”) wide strips of 3.175mm (1/8”) thick clear acrylic. These are screwed at regular intervals around the edge of the board with wood screws and washers, and positioned so that the lower edge is flush with the underside of the board. The inner maze walls are 44.45mm (1¾”) wide strips of the same acrylic, so that once they are bedded into the 6.35mm (¼”) deep slots, they are the same height as the outer wall.
The inner two rings of walls have to be softened in an oven before they can be bent enough to fit the tighter radii of the slots. This can be a tricky operation. I placed the acrylic strips (one at a time) on a baking sheet and kept the oven at a low temperature and continually checked so that the acrylic didn’t get too soft. Make sure you’re wearing gloves when you get the acrylic out of the oven.
The walls need to be glued into their slots. Even if they are a snug fit, the banging of the ball eventually pops them out.
Step 2: The stand
Cut the main leg pieces out of a 1200mm x 1200mm (48” x 48”) sheet of 19mm (¾”) plywood using the attached design (legs.eps). If you have access to a CNC router, I’ve also attached the Vcarve file (legs.crv). Cut the rectangular pieces out of 6.35mm (¼”) MDF using the attached design (quarterInchBoard.eps, quarterInchBoard.crv).
Assemble each of the four pulley shafts by sliding the pulley onto the (108mm) 4¼” x (7.94mm) 5/16” shaft, and then the 38mm (1½”) long tubing onto each side of the pulley. Add a drop of light oil so the pulley spins nicely.
Assemble the parts according to the pictures.