I thought I'd get the ball rolling by revealing what I've been working on over the last week. Speed controllers are essential if you want to have any level of control over the robot. Especially if you are using more powerful motors, you need to be able to operate them over a wider range of speeds than "OFF" and "WARP 8".
Obviously, the poor-man's solution to this problem would be to simply put a variable resistor in series with the motor which could be used to limit the amount of voltage that was dissipated across the motor. However, this has the negative aspect of continually draining maximum power from the battery, giving it a shorter operational life than a red-shirt.
Speed controllers work by creating a pulse-width-modulated signal. The actual process of generating a PWM wave with an appropriate duty-cycle is a little bit complicated, but at it's basic level PWM is just a square wave with a fixed period, but the on and off times vary depending on how much current you want to supply to the load. To further abuse the star-trek analogy, a 20% on - 80% off wave would merely stun, whereas setting your phaser to 90% on - 10% off would most certainly kill. This means that no power is wasted when the motors are operating at a low speed, but they are still capable of working at their full capacity when the tap is fully opened.
Anyway, I've put together a PWM speed controller that uses two transistors and two MOSFETS, which should be able to deliver up to 20A at a voltage range of 7-40V. Unlike pre-assembled speed controllers, which I've been unable to find for less than $100, this one cost a measly $20. Stay tuned for pictures.
A few considerations:
- One speed controller can control a single motor, so if we use a two motor drive system (independent left and right wheel control) I'll have to put together another one. Not that it's a problem - it will just cost another $20.
- Although the circuit is supposedly rated to 20A, operating at full capacity for an extended period of time is likely to burn out the MOSFETS. Phil, keep this in mind when you are buying the motors - less might be more when it comes to the power that they require.
- I would like to find a way to guarantee that both of the wheels turn at the same speed when we give them the same input signal (ie, full forwards on both will not list lazily to the left). It would be nice to have some way of dynamically adjusting the gain on each of the output channels so that the person driving doesn't have to be continually compensating. Any ideas?
Live long and prosper.