I was just reading about Claude Shannon's famous maze-solving mouse, Theseus, which used a movable magnet under the maze to draw the mouse in a given direction. I'd like to play around with this idea.

I'm trying to decide the cheapest and simplest way to have a square board of, say, 40cm by 40cm, and programatically move a magnet on that board to a given coordinate with reasonable precision.

My first thought was to position a series of electromagnets at the edge of the board that, when activated in various combinations, could exert the correct force on the movable magnet.

This seems like a fairly crude solution that would be difficult to control with accuracy. I also thought of placing a matrix of electromagnets under the board and activating them in a timed sequence, but this seems like an unnecessarily complex solution requiring far more parts and pins than necessary.

I remember enough EM that I think I could work out the necessary field equations to get the magnet where it needs to go, but am unsure how to best create that field.

Or maybe I'm thinking about this all wrong??

  • 1
    \$\begingroup\$ You need an of X-Y table. 3D-printers have that type of motion control . Or maybe you can strip an old scanner for parts. \$\endgroup\$ – Oldfart May 11 '18 at 18:35
  • 1
    \$\begingroup\$ The simplest mechanism would be a T-bot configuration with two stepper motors. Simplicity with just an X-Y set of 3D printer bars: buildlog.net/blog/2017/10/the-midtbot-a-new-flavor-of-h-bot \$\endgroup\$ – Jack Creasey May 11 '18 at 18:51

Possibly the easiest way to do this with off-the-shelf or easily-made parts is to have a single permanent magnet moved in two dimensions using linear positioning mechanisms, which looks like what the original mouse did. 3D printers do exactly this in one form or another — you could just use parts from a 3D printer's X-Y or X-Z axis sets.

Applying a variable magnetic field field from individual coils around the edge is possible, but it is a very hard control problem because the "mouse" will have unpredictable friction and the force exerted depends strongly on the distance to the coil — you will need to have very good low-latency tracking of its position and a good bit of control theory knowledge, and very strong electromagnets (with serious power electronics for drivers) to work over that distance.

You could use a Helmholtz coil to simplify the problem by making the magnetic field approximately uniform within the volume of the maze, but they would still need to be very strong.

If you use multiple coils under the board, you can avoid having to wire up and control many individual coils by using a repeating pattern of "phases", like a stepper motor unrolled flat (e.g. see https://hackaday.com/2018/01/08/a-stepper-motor-for-two-dimensions/ ).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.