Building the robot's motor drivers

The two designs that looked best for my situation were:

Again, I assembled the circuit on Veroboard. I really don't like Veroboard for high-power designs like this one, but empirically, I've never had a problem. My main concern was in the braking design, which routes the motor current through the ground tracks. The current is burnt off as heat somewhere, like in the tracks or MOSFETs, neither of which was particularly appealing to me. I hoped that this wouldn't be an issue in operation, where worst-case, I could be braking while getting pushed hard by another robot.

Another problem became apparent during the design phase: how would I control the H-bridge inputs? I wanted to use braking, which meant that I'd need to control all four inputs of the H-bridge. I decided to have a dedicated motor controller of some sort; it would translate between the commands from the main microcontroller and the H-bridge inputs. I'd need two of these, one for each wheel.

About this time, I was wondering how bad it would be to go with a simple 'forward only' motor design!

I was quite paranoid about the H-bridge simply exploding the first time I connected it up, so it was tested it carefully as I constructed it. I used a bench power supply with the current limiting set to 100mA to reduce the chance of anything overheating. Putting a resistor in series with the power rails (say, 22 ohms at 5W) will achieve roughly the same goal. I tested each quadrant of the circuit separately and verified that the outputs (drain pin of the MOSFET - conveniently located on the tab) had the correct voltage when I pulled the input pin high or low. It's a simple circuit, but very easy to destroy if built incorrectly!

Front of the H-bridge and controller boardFront of the H-bridge and controller board

Back of the H-bridge and controller boardBack of the H-bridge and controller board