DC motors will almost certainly give you the best combination of power to weight ratio and top speed.

A DC motor is intended to work from a direct current supply. Voltage is applied to the motor terminals and the motor begins to rotate. As the armature picks up speed, a voltage is induced in the windings that tries to oppose the current flowing in them. Quite quickly, a speed is reached where a balance is established and the motor speed stabilises. The speed at which this occurs is a function of the applied voltage and the motor characteristics. The amount of turning force, torque, that the motor can produce is a function of the current through the windings. As a load is applied to the motor, the speed drops and the current increases. A load just sufficient to stop the motor is the stall torque and will correspond to some particular (and fairly high) current through the windings. You don’t want to do that to your motor, the energy can only appear as heat. Try to avoid letting the smoke out or it won’t want to run again.

Motors run most efficiently at some relatively high speed (thousands of RPM) where the available torque will be significantly less than the stall torque. Since you want your wheels to turn at, perhaps, 1000 RPM, you will need to use gears. The effect of gears is to step down the output speed while multiplying the available torque. For example, ignoring losses, a 10:1 gear ratio will increase torque by a factor of 10 while reducing drive speed by the same factor.

You can choose to make a gearbox or buy one. Motors with gearboxes are available in the required sizes but are expensive. Think carefully about motor layout. Consider putting the motors side by side with a spur gear driving the wheels. A suitable right angle drive could allow the motors to sit along the axis of the mouse. Don’t forget to include the ratio of the final drive gears in your calculations.

While these motors are expecting a direct current to drive them, it is much more efficient to use a supply that is switched on and off repeatedly. The width of the on pulses is varied so that the motor sees the average amount of energy flowing. Pulse width modulation (PWM) of the motors is not too complicated to achieve. The section of processors has more on this. You will need to select a pulse repetition rate that is quite high. A few hundred Hz is just not going to do it. However, a rate that is too high will be less efficient because of the inductance of the motor windings. Should you pick a frequency in the audible range, you will have to live with the motors whining at you (and everyone else) all the time. Somewhere in the range 20kHz – 40kHz will probably be fine. Try to ensure that the rate does not cause trouble by interfering or beating with other events. For example, I would expect trouble if the motor PWM repetition frequency was 20kHz and you had IR sensors modulated at 40kHz. Noise from the motors might find its way to the IR detectors. Change the frequency to, say, 23kHz where there are no simple common factors.

There will have to be some way to measure the speed of your motors. This may be the same as measuring the speed of the wheels but need not be. The wheel speed is really needed for working out position – absolute measures of speed are not really important except to tell if you can stop before some point. Slop in your gearbox may well mean that there is a pretty scruffy relationship between the motor speed/position and the wheel speed/position. Some motors are available with incremental encoders or other feedback devices built in. These tend to be more expensive. I did find some very nice Maxon motors with built in quadrature encoders at a ham radio rally for a few pounds but you rely a lot on luck in that sort of endeavour. They turn at about 9000RPM on a 9 volt supply and should be rather good geared down by about 6:1. Small incremental shaft encoders can be attached to the drive train – did I mention these were expensive? The Hewlett Packard HEDS9100 is a fairly compact encoder module. It requires a code wheel attached to the output shaft and give 1000 pulses per revolution. You can easily use this as a combined motor and wheel speed sensor. For a 35mm wheel, this will give you a positional accuracy in the order of a fraction of a millimetre.

While running, your motor speed will be controlled in a software feedback control loop. Regular measurements of wheel speed are taken and used to calculate a new value for the PWM pulse width. This is a classic control problem – solutions are available almost anywhere (except here – yet).

This Post Has 11 Comments

  1. Sal Garcia

    I was wondering on what exactly kind of maxon motor you used (ie. what type/class)

    Thank you!
    -Sal Garcia

  2. peteh

     Right now I am using Faulhaber 1717SR006 motors with 512 count encoders

  3. Azriel

    Whats the voltage for your Faulhaber 1717SR006 motors with 512 count encoders? 3V? 6V?

  4. peteh

    The part number, 1717SR006, tells you the voltage. It is the last couple of digits. In this case, 6V

  5. Matias

    Do you have Faulhaber reduction gears on those 1717 too?, is so which ones?
    Great website!

  6. Peter Harrison

    No – theyare just the motor. Gear reduction is done in one stage straight to the wheels.

  7. Shamil

    Did you use a H-bridge at all?

  8. Peter Harrison

    Yes, an H-Bridge of some kind is pretty well always used with DC motors.

  9. Chris

    what is a good gear ratio for a micromouse motor?

  10. Peter Harrison

    That depends entirely on the rest of the mechanics of the mouse. Things like motor power and speed, wheel diameter, mouse mass and desired performance. For a typical classic mouse using DC motors the gear ratio probably comes out at between 3.5:! and 4:1. Probably it ends up as a compromise to suit the available gears and physical sizes of the wheels an motors.

  11. Chris

    Ok. Well Ive already started with 150:1 motors for now (due to lack of research). In terms of micromouse, what are the downsides or benefits to having a very high gear ratio?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.