Week 16 - Applications & Implications

I have changed the final project to something that is more fun and  something that incorporates more of the skills I have learned in this course. It has become known simply as MagMaze.

What I did
I decided I wanted to do something fun.  I wanted to do a game.  In review of input and output possibilities, programming environments I am familiar with, and a desire to use as many new skills as possible, I landed on the Magnet Maze.  This fully functional prototype acts as a play and puzzle surface wher you navigate a user constructed maze with a steel ball pulled, pushed, and bounced.

What is the MagMaze?
The Magnet Maze allows the player to control the X/Y position of an electromagnet via joystick in a 300mmX 300mmX150mm enclosed box: Game Box.  The magnet moves with varying speed based on the joystick input under a plastic insect netting stretched over the box.  On the top of this netting rests a 1/2" polished steel ball suspended via the netting 1" above the  electro magnet.  Above the ball is a clear plexiglass 300mm X 300mm X 150mm partial box (Puzzle Grid) that rests on the Game Box.  This Puzzle Grid has holes 1/4" holes drilled every 15mm in X and Y to allow the user to insert puzzle pieces  suspended under the clear plexiglass top.  The player can create any maze by pulling the Puzzle Grid off the Game Box and inserting a variety of puzzle pieces to create many different kinds of mazes and obstacles that include walls, holes, jumps, poles, and magnet hazards.

The nature of the game lies in navigating the maze with the ball by using the magnet.  When the magnet is engaged it pulls the ball down causing an elastic effect with the insect netting.  When the magnet is switched off the ball jumps off the netting.  In this way the ball can be made to move through suspended hoops and bars in the maze.  

How this was developed
This game started out as an attempt at magnet levitation.  I peformed quite a few tests on various electromagnets to see if I could code something that corrected the repulsion of a magnet.  I quickly learned that toroidal magnetic field necessary was beyond my coding capability at the moment.  Aside from the challenges of coding an X/Y apparatus to respond to an analog joystick, the addition of the levitation was clearly not going to be attainable in the time frame necessary.  I dove into the electronics and programming to explore the possibilities and learned how to control the stepper motors with the joystick inputs.  Once I had the two two steppers and joystick conencted to the arduino I started work on the mechanical enclosure.  I was aiming low and needed parts.  I started scavenging various printers and other electronics and started the enclosure.  The enclosure is prototyped with old metal from various robots and an extruded aluminum square rod called Openbeam.  Openbeam allowed construction of the Game Box and it's X/Y control infrastructure.


  1. Game Box
    1. The Game Box is constructed out 15mmX15mmX1000mm extruded aluminum stock from a company called Openbeam.  The owner is great and helped me setup a classroom right after his kickstarter campaign.  The Openbeam stock is connected using his "T" and "L" fittings and standard 3mm hardware.  The box has VEX rails to serve as tracks for the steel rods which serve as the X and Y axises. The vex also uses the same connecting bolts.
  2. Puzzle Grid
    1. The puzzle grid is a five sided box made with Openbeam stock and hardware with Lexan.  The Lexan is mounted in the grooves of the Openbeam stock.  The Lexan has holes driled at 20mm intervals to form a grid that will accept the insertion of puzzle pieces which extend under the top of the Lexan going toward the plastic netting.  This allows the user to change the obstacles for a variety of challenges.
  3. Stepper control bar linkage boxes (qty 2)
    1. These boxes serve as the connector between the stepper motor drive shafts and drive shaft nut and the steel rods for both X and Y. These are custom designs and 3d printed in PLA.  The X and Y boxes are not identical due to spacing in tracks.
      1. Cube workflow:
        1. Design part and export as .STL file.
        2. Open Cubify design software and import file.
        3. jClick the "heal" button on the software.
        4. Under settings: set to PLA, set to medium density for Cube 2, set to no rafts or supports 
        5. Click on "Upload" button to export and save t thumb drive
    2. X and Y axis linkage boxes
      1. V0.2 X axis linkage box on Thingiverse here. 
      2. V0.2 Y axis linkage box on Thingiverse here. 
      3. [UPDATE] Due to the nature of the blocks and linkages interferring with chassis connecting hardware, the stepper control plate had slides instead of holes designed into the plate so the plate can slide up and down to tune the linkage blocks.

© m.t.pearson 2014