Sumo robots are pretty fun. Not to be confused with that robot show that was inexplicably on Comedy Central for some time. Sumo robots are small (generally) fully autonomous machines that have one simple goal. To push the opponent out of the arena. We also have a weight limit to deal with, for the small “Smart bots” like I’m building we have 1lb to play with while the larger ‘bots get a generous 4lbs. I’ve got a sumo competition coming up in 5 weeks time and wanted to start making my own. I could simply go the Arduino route and get a shield and be on my way, but I want to go a bit further. So I’ve made my own sumo board. Its essentially a AVR 328p (Brains for the arduino) in SMD form factor with an H-Bridge.
An H bridge is built with four switches (solid-state or mechanical). When the switches S1 and S4 are closed a positive voltage will be applied across the motor. By opening S1 and S4 switches and closing S2 and S3 switches, this voltage is reversed, allowing reverse operation of the motor.
|1||0||0||1||Motor moves right|
|0||1||1||0||Motor moves left|
|0||0||0||0||Motor free runs|
Enter the SN754410, the most common and familiar H bridge IC. 1A per channel, internal ESD protection and thermal shut down. Its a really nice chip and super easy since most of the circuitry is self contained. Just check out the pin outs. Pin 1 enables motors 1 and 2, and 9 enables 3,4. VCC2 down on pin 8 is where you apply the power for the motors, so VCC1 enables the chip while it uses VCC2 to drive the motors. Neat and tidy. However it didnt preform so well for me. It limited to one amp and when I measured the current draw with a different chip I was getting 3 amps. So the SN754410 worked for me but the motors were so slow.
I just so happened to have a L298 sitting around and tried that. The L298 is the big brother to the Sn754410. 4 amps per channel, 46 volt input supply. This thing is a beast with complexity to match. The Sn754410 has the advantage of ESD protection, and current sense built in. The L298 does not. So you have to add two diodes on each line (for a total of 8 ) to suppress current transients when switching directions.
If the contest wasn’t so close I would have explored other options. Today I received a TB6612FNG Dual Motor Driver from Pololu. The TB6612 uses MOSFETS for switching rather than BJT’s like in the L298 and SN754410. This means that the TB6612 is more efficient, letting more current pass to the motors and less being taken up by the logic circuitry. It also has the advantage of internal ESD protection like the SN754410. In the end I chose the L298 because it delivered more current to the motors, even from the 9v battery I was using, than the SN754410; but if I did it over again I’d use this new driver IC I got. Plus this new chip doesn’t need a heat sink which would help with weight.
I should note that the Delta Robot is on a temporary hiatus as I work on this. I need to rebuild the body and my Arduino wont work with the Motor Shield. The servos are on pins 30,31, and 32. I dont have 32 pins on the Arduino Duemilanove.