I'm planning on building my first robot using an Arduino. It's going to be a small obstacle avoiding robot powered with a 9V battery. What should the voltage of the DC motor used in the robot be? Also, if you you've done this before please give some tips, or refer me to some link.Thanks.
Electronic – arduino – Suitable motor for robot
arduinomotorrobotics
Related Solutions
Too wide a question set, and some don't matter.
How fast?: 30 kph is getting fast for something small and unstable. Energy at 30 kph is \$(\dfrac{30}{20})^2\$ which is over double of that at 20 kph. Probability of pedestrian death in vehicle impact is \$\sim\sim\sim\sim\dfrac{V^2}{5000}\$ (V in kph). At 30 kph, the chance is \$\dfrac{30^2}{5000} = \sim 20%\$. That formula is for cars and pedestrians but gives you some indication. 20 kph is a safer target for playing an takes less than 1/3 of the windage power that 30 kph does ! - see below.
Battery is probably lead acid as available cheap per energy content or surplus. Low energy per mass and energy per size are tolerable.
Voltage probably 12V or 24V. One or two x 12V batteries. More is possible but gets bulky / annoying. 12V is good enough. 24V favoured by commercial designs as lower current so lower IR wiring losses.
12V or 24V DC motors in the hundreds of Watts range are available on the surplus market BUT are not usually cheap as they ar sought after by people who want to do similar to what you wish to do - vehicles, robots, ... .
Windage = power losses due to air drag.
- Empirical formula - power required to overcome windage for a compact one person vehicle is
$$ Windage \, power = \frac{V^3}{180} $$
Power in Watts. V in kilometres per hour. Examples:
- 160 kph gives 22,500 Watts
- 30 kph gives 150 Watts
- 20 kph gives 44 Watts.
This is simply a translation of the old motorcyclists adage
It takes 30 horsepower to ton for a well tucked in rider with leathers :-)
There are other ways of calculating this, but that is good enough in such an inexact area. For example:
$$Power = 0.5 \times air \, density \times frontal \, area \times drag \, coefficient \times velocity^2$$
The motorcycle formulae is as easy :-).
For something approximating a flat plate this gives
$$\sim\sim\sim\sim Power = A \times V^3 $$
A in \$m^2\$, V in \$m/s\$
Take off one V and you get Drag (Newtons) \$\sim\sim A \times V^2\$.
This works well enough for bowling balls, raindrops, skydivers, field mice and parachutes.
SO
ie you need a say 200 Watt motor at minimum to get something like your desired 30 km/h top speed on the flat. Using a 12V battery that's about 16 amps.
An eg 7Ah "brick" alarm system battery would wilt very quickly under that current. Notionally 7/16 hour = 26 minutes but really quite a bit less.
A say 30 Ah car battery will notionally give you approaching two hours at top speed. Somewhat less in practice.
Look at the many small electric scooters/bikes/xxx around and see what they use and what ranges and speeds they claim.
Uphill
$$Power = \dfrac{Newton \times metres}{second} \text{or} \sim \dfrac{kg \times m}{s} \times 10 $$
To ascent a slope at 100% efficiency you need
$$ \sim Power = \frac{Mass \times height \, change}{second} \times 10 Watts $$
Mass in kg, \$h\$ is increase in vertical height per second.
To lift you up the slope in addition to windage.
For example, at 30 kph ~= 8 m/s if you ascend a 1 in 20 slope (about 3 degrees) your vertical height change per second is ~= 8/20 = 0.4 ms.
If all up vehicle and rider weight is 100 kg, then
$$Power \, needed = M \times h/s \times 10 = 100 \times 0.4 \times 10 = 400 Watts$$
This dominates your windage losses on hills of this slope.
There are a few primary specifications you should look for in a motor:
The type of the motor. There are a variety of different electric motors out there. In my experience the cheapest ones are brushed DC motors. These are fairly simple to drive: you send the motor a PWM signal and it spins faster with a higher duty cycle. Reverse the polarity and they spin the other way. I'm guessing this will probably fit your project the best.
Electrical characteristics. This includes the nominal voltage the motor runs at, what the stall current is, and what the rated current is (note: the rated current doesn't necessarily have to be greater than the stall current). Most DC motors I've used which are capable of driving semi-small to medium sized robots (about what size you have, though probably heavier) run in the 12-24V range so you may have to plan your battery packs accordingly. The stall currents has varied anywhere from a 1-2 amps to over 30 amps.
Mechanical characteristics. This includes the no-load speed of the motor, the stall torque of the motor, and any other mechanical characteristics such a rated torque or any gear ratio present (if in a geared motor). DC motors have a linear torque to speed ratio, i.e. they develop the maximum torque when stalled which decreases until the motor is spinning at it's maximum speed. The speed-power curve increases until the motor reaches half the no-load speed and then decreases. Typical DC motors have a very high no-load speed. Most I've seen vary between ~5000 rpm up to ~20000 rpm, though much high rpm ranges are definitely available.
Here's how I would determine what kind of motor to look for:
First I would figure out what kind of speed I want my robot to achieve. Next I would determine roughly how much my robot weighs. I would do a quick survey of what motors are available keeping in mind the mechanical characteristics. A quick calculation of the max speed of a robot is:
$$speed_{robot} = diameter_{wheels} * \pi * speed_{motor} / gear~ratio $$
The required torque is a trickier quantity to calculate as you'd need to know what kind of friction/resistance your robot is going to encounter and know roughly how much your robot weighs. Assuming rotational inertia of the wheels is small compared to the mass of the robot (and if I did my math right), the ideal speed of the robot vs. time is given by:
$$ V(t) = w_d \cdot \pi \cdot \omega_{NL} \cdot ( 1 - e ^ {\large{- \tau_S / (2 \pi \cdot m \cdot \omega_{NL}) t}}) $$
Where:
$$V(t) = robot~speed$$ $$w_d = wheel~diameter$$ $$\omega_{NL} = no-load~motor~speed~(including~gear~ratio)$$ $$\tau_S = stall~torque~(including~gear~ratio)$$ $$m = mass~of~robot$$ $$t = time$$ $$\pi = 3.14...$$ $$e = 2.72...$$
You can add the torque of all the drive motors together.
I would then design the electrical systems to fit the required electrical characteristics of the motor. This includes the motor driver, battery packs, and any wiring.
Gear ratio is the ratio between the input speed divided by the output speed of a gear box. They are used to speed up or more often slow down the output drive shaft speed. As a consequence of the speed ratio change the output torque also changes. In an ideal gear box with 100% efficiency the gear ratio is equal to the output torque divided by the input torque. This is mostly true for real gear boxes, but in reality most gear boxes lose ~2%
between gear mesh (note that this relation is exponential as each gear mesh produces an input/output set, so for a gear box with 12 meshes the efficiency drops from 100%
to ~78.5%
).
Best Answer
You probably want to step up to a larger battery pack than a 9V. You'll find that the 9V doesn't really supply the current that you need, and will run out very quickly. You can probably find a small rechargeable pack online or at a local hobby store that will do the trick.
As far as the motor, if the robot is suitably small, I would use a modified hobby servo. They come in many sizes/speeds/torques, and you will probably be able to find one that meets your specifications. You can also interface with them using the Servo library on the Arduino. You can either buy a servo pre-modified, or you can modify it yourself using the instructions found on Acroname, for example.
For finding these parts and more, I have compiled a list for our undergraduate projects, you can check it out here: Auburn SPaRC Suppliers. This is a list of common suppliers that we use for many different robotics pieces and parts.