Introduction: Motor Control With DIY Tangible Interfaces

We have been using the MakeyMakey boards at the Children's Museum of Houston to teach kids the basic concepts behind circuits and micro-controllers. If you browse the MakeyMakey website, you will see how it can be used to easily convert any slightly conductive material into a keyboard button. This makes it great for physically interacting with computer programs. But what if you want to use the MakeyMakey interact with something more physical like a robot? This instructable will show you how.

Step 1: Materials

You will need:

  1. MakeyMakey micro-controller (or you can make your own)
  2. Arduino Uno or a compatible board
  3. Jumper wires
  4. Slightly conductive materials of your choice (play-dough, foil, graphite, etc..)
  5. Adafruit Motor Shield
  6. Motors (DC or Steppers work)
  7. USB cables (one micro and one USB-B cable)

Step 2: Build Your Controller

Click here for some detailed instructions on how to build a controller using the MakeyMakey. I have posted pictures that you can use for inspiration.

Step 3: Wire Your Motors

Now you will use the Adafruit motor shield to easily control your motors. The shield can run up to four DC motors or two stepper motors. Although the shield can also be used control servomotors, I haven't created code to support that capability yet.

To connect a DC motor, simply solder two wires to the terminals and then connect them to either the M1, M2, M3, or M4 ports. Stepper motors a little more involved so check out this guide to learn how to wire them.

Step 4: Code

I have created two different version of the code on Github. One version assumes that you have four DC motors hooked up to the motor shield, while the other assumes that you have two steppers hooked up. It should be pretty easy to combine the codes if you are trying to implement both DC and stepper motor control.

Download the code, open it in the arduino IDE, and upload it to your UNO board. If you are not familiar with Arduino, I recommend that you check out this guide.Then, open the processing code and run it in the processing environment.