Table of Contents
Let’s take a look at how we are controlling the six motors in the rover chassis.
Motor Arrangement
My 6-wheeled outdoor robot rover is driven by six brushed DC motors. These motors are wired in parallel, three on each side of the robot.
This arrangement is known as skid-steering, whereas the rover is steered by changing the velocity of the motors on each side. So to turn left, you speed up the right wheels and slow down the left ones. Those cheap robot car chassis that we always build robots around use the same method of steering.
From the previous post regarding the robot chassis, you can see our motors have the following specifications:
- Rated voltage: 6V DC (Min. 2V Max. 7.5V)
- Stall current: maximum 5.5A
- Maximum Locked current of 5.5A
- No load current per motor: 350mA
- Motor RPM: 10000 + / – 5%
- Output shaft speed: 295rpm + / – 5%
- Stall torque is 4Kg/cm
- Locked-rotor torque: 4Kg/cm
So if we can expect a maximum of 5.5 amps on each motor, we get a maximum current draw of 16.5 amperes for each side.
Wiring the Motors
When I received the Wild Thumper it was prewired, incorrectly, to a terminal strip. I removed the terminal strip and, as I described in an earlier article, I rerouted the motor wires through some rubber grommets.
Each of the motor wires was terminated with a 2-pin Molex connector so that rewiring and motor replacement would be simplified.
I then mounted a terminal strip inside a plastic project box, after drilling a couple of holes in the box and putting rubber grommets in them.
Then I wired all the motor connections up inside the box. I also wired two XT60 connectors for the inputs from the ESCs.
For the motor wiring, I used 18 gauge silicone coated wire. The ESC inputs used 14 gauge silicone coated wire. I use a lot of silicone wire in this rover design, it is more flexible and is a real joy to work with.
Electronic Speed Controls (ESCs)
With just about every robot I’ve designed, the motors were driven using an H-Bridge controller. And while this is a fine method of controlling a brushed DC motor, it’s not the only one.
An Electronic Speed Control, or ESC, is pretty well exactly what it sounds like – an electronic controller that controls motor speed. We often associate ESCs with brushless motors, such as the ones in good quality quadcopters, but you can also buy ESCs for brushed motors. And that is exactly what I did.
The ESCs that I purchased (I bought them at Mouser) were the DFRobot DRI0048 controllers. As luck would have it, they have been discontinued since I bought them a few months ago, so they may be hard to find. But you can use similar ESCs for your design.
Here are the specifications of the DRI0048 ESCs:
- Type: bidirectional brushed ESC
- Continuous current: 40A
- Voltage range: 7V-24V (lithium battery 2S)
- Peak current: 340A forward, 340A backward
- Output line: power line and motor line 16AWG-100mm
- Control signal type: PWM
- Power connector: XT60 plug
- Motor connector: XT60 plug
- Dimensions: L47mm, W37.5mm, H18.5mm (including heat sink)
- Weight: 30g
Essentially these are just a heat sink with a few wires protruding, each unit has three connectors:
- An XT60 connector for the battery power.
- An XT60 connector for the motor output.
- A 3-pin Dupont connector for the ESC control input.
Now, these ESCs are rated at 40 Amps maximum, which is much more than the 16.5 amps I expect to pull if all the motors stall at the same time. And DFRobot does make a 20amp version of the same ESC, which as of this writing is not yet discontinued. And 20 amps is still a lot, especially as the ESC is rated at a peak of 320 amps!
Control Connections
The control cable on each ESC looks a lot like the control cable on a servo motor, and that isn’t just a coincidence.
The wiring of the cable does indeed match that of a standard hobby servo motor, and the ESC is controlled using a similar PPM (pulse position modulation) signal. If you have ever used a continuous rotation servo motor, then you are familiar with what the control signals for this ESC consist of.
Unlike a servo motor connection, however, the VCC lead on the control cable is not an input, it’s an output! The ESC is powered by the motor power supply, so the red lead on the control cable is a low-voltage output.
Because of this, you can connect a low-cost servo tester to the ESC and test it out, which is a good thing to do once you have all the motors wired up. The ESC will power the servo tester, and you can run both ESCs simultaneously.
Note that instead of controlling motor position, as you would when testing a servo, you are controlling the motor speed. At the mid-point, the motors will stop; this is the zero mark. Go in one direction, and they will spin forward; the opposite side of the zero mark will have them spinning backward. In all cases, you can control the speed of the motors as well.
Motor Power
The motors are both powered by a 7.4-volt, 2-cell LiPo battery. This battery is only used for the motors and ESCs, the rest of the robot will use another LiPo (an 11.4-volt 3-cell unit).
The LiPo is mounted in one of the spaces provided on the Wild Thumper chassis, I added some foam padding to secure and protect it.
I also added a fuse in series with the battery connector. This isn’t completely necessary, as the ESCs have a thermal shutdown that should kick in if something goes wrong. But I like being on the safe side, so I always include a fuse in my designs.
I couldn’t find a premade XT60 fuse connector anywhere, meaning that perhaps I’m the only person on earth who would fuse the output of their LiPo. So I made my own using an inline fuse sold for automotive use. This beauty has 10 gauge silicone wire, so I purchased a piece of 10 gauge black wire to match and soldered it to some XT60 connectors. It was a bit of a challenge to solder, I used a soldering gun and a lot of heat-shrink tubing. The results were great, and I now have a 40 amp fuse in line with my ESCs and motors, just in case!
Here is how I wired it all up:
Note that the control inputs to the ESC’s are not shown in this diagram.
I’m currently acquiring the components for a very similar build, albeit it, on a smaller scale. I will be using 6 n20 gear motors rated at 6 volts with a 1.5 amp stall current. I have some tb6612fng drivers I wanted to use where I’d have one driver for each each left and right motor. So 3 drivers in total (eg. 1 driver for Front left and right, another driver middle left and right and so on). My concern is the number of pins on an arduino I’d need to use. Bidirectional with speed. So thats 6 * 3 =18… Read more »