Stuffination

Building a stepper motor driver.

Stepper Motor Driver

I’ve been working on trying to learn more about stepper motors.  In the past month or so I’ve learned that there are two varieties of stepper motor:  Unipolar and bipolar (and sometimes both!).  In all of the research I’ve been doing I came across a lot of great resources.  They are listed at the end of this post.

All of my interest in stepper motors comes from the fact that the Robotics Club recently received a large supply of nice stepper motors and because the original spray painting graffiti bot, Hektor, as well as some other recent Hektor-esque bots, used stepper motors for its control.  The particular motors that the Robotics Club obtained are 6-wire stepper motors.  This means they can be used as either unipolar or bipolar steppers.  This is very useful because it gives me a larger range of control options.  However, the motors run at an odd voltage (3.68 volts) which limits the range of available drivers ( I’ve only found 2 capable of driving these motors).  Due to the lack of available motor drivers for all these stepper motors we now have, I decided to build my own.

After doing some looking, I decided to control the motors in unipolar mode because the control circuit is simpler.  The circuit I build, which is based on this one, is basically 4 Darlington transistors which are used to toggle the coils on and off and some diodes for protection.  The stepper motor driver turns each one of the four half coils in the stepper motor on and off sequentially to drive it.  The original circuit uses a L297 stepper motor driver to handle sending signals to the Darlingtons, but, I didn’t have any on hand, so I just sent the signals sequentially from and Arduino.

To test the circuit, I didn’t want to potentially harm one of the nice stepper motors we have, so I was using an old stepper motor out of an IBM floppy drive.  I couldn’t find documentation so I couldn’t figure out what order to toggle the coils to properly step the motor.  I was able to get it to step some, but never rotate continuously.  It would step a bit one way, and then step back.  I believe my control circuit was ok, because the motor was able to step some.  The issue at this point may be the motor itself (just having it hooked up incorrectly) or my code.

I’m going to keep working with this circuit, maybe get an L297 to try out, or I’ve know some people who have used shift registers to accomplish the stepping.  I’m also going to try this out on some other motors as well.  Hopefully I will soon have a nice inexpensive stepper motor driver that other people in the club will be able to use for these nice motors we have.

List of stepper motor resources:

  • HobbyCNC
    • http://www.hobbycnc.com/
    • Has some nice information, and points at more
  • Wikipedia Labs/Books
    • http://en.wikibooks.org/wiki/Practical_Electronics/Stepper_Motors
    • Some good general information on steppers, and some control circuits
  • Northwestern University LIMS wiki
    • http://hades.mech.northwestern.edu/index.php/Unipolar_Stepper_Motor_Driver_Circuit
    • Great control circuit for unipolar steppers.  Mine is based on this one
  • Iowa University Stepper Motor Tutorial
    • http://www.cs.uiowa.edu/~jones/step/
    • Lots of info about steppers

Stairbot: 1 Leg complete

Friday afternoon we were able to complete the first of four legs of Stairbot.  We were hoping to complete more than that, but, we currently only have enough servos for one leg and we’re waiting on the rest to arrive.  However, in the meantime, we will work on being able to control this one leg so when we add more, it will be easy to develop gaits.    To control Stairbot, we’re going to be tethering an Arduino to a computer for extra computational power,  to allow us to perform inverse kinematic calculations.

More updates to follow as more parts come in.

Stairbot

Earlier this evening the Stairbot Team (a CMU Robotics Club project I head) began construction of our robot.  Thus far we have only done initial part sizing (machining stock down to the size we will need for the part).  Below are pictures of the machined parts and the schematic for them.  The schematic was created by Mike Ornstein who has done all of the CAD work for Stairbot thus far.  Our grant submission can be found on his site: here.

I’ll follow up with more details about Stairbot later this week.

[nggallery id=7]

The expense of building robots

Building robots is expensive.  Motors $20, controller $20, motor driver $20, sensors $10, battery $10.  Just the basic components and you’re already up to $80.  The costs add up fast and it’s hard to pour a lot of money into building a lot of robots.  That’s one reason why it’s great to have a resource like the Robotics Club.  If I wanted, I could walk in and build a complete robot with parts that are already there.  All I would have to invest is time, no money (well, a $25 membership fee, but that’s beside point).

Because building robots is expensive, for now I’m going to be focusing on projects that don’t require funding or that I have funding for already.  I’m going to focus on Mobot (which I have almost all of the parts for), Micro-Colony (which I’m getting funded through the Build18 project), StairBot (a robotics club project I’m the head of, I’ll keep updated on its status as I work on it), and some other projects that I have in mind.

Unfortunately, I’m pushing Desk Rover to the side for the time being.  Mainly because my robot fund is a little short of the price tag of desk rover, and I have plenty of other robots to work on in the meantime.  I will build the first stage (chassis, sensors, motors, etc. no LCD or wireless) once I have enough money.

I will continue to work on the FWR3 Jasper.  Most of the work in it is design work as of now, and that  doesn’t cost anything but time (which, I now have a lot of as I’m on break).