Power eight 12V motors for robot project

Hello everyone,

I am part of a university mechanical engineering project team and we are assigned a task to make a robot. I will not go too far in details but at the moment we designed a robot which has eight driven wheels. All wheels are powered by single 12V motors.

We have the following requirements:

  • The motors are 12V each
  • We need to be able to reverse the rotation direction of one side of the robot (so all the four motors on the right side for example)
  • We already have an Arduino, but no one in our group has Arduino experience
  • The robot needs to have enough power/torque to drive on encountered obstacles.

We started to look online what the most efficient and easy way is to do this. We came to the conclusion to use two 10Amp 5V-30V DC Motor Driver (2 Channels), where each driver has 4 motors connected to it.

From this point we do not know what to do. Is this sufficient? Any help or suggestions is welcome!

Yours sincerely,

Freshmen Mechanical engineering team from the Netherlands

What feedback system do you have for each motor so you can know the actual speed of each motor and then control it? Part of your education should be to study moving systems that need come form of mechanical or electrical coordination. Your design ir relying on magic.

Paul

Paul_KD7HB:
What feedback system do you have for each motor so you can know the actual speed of each motor and then control it? Part of your education should be to study moving systems that need come form of mechanical or electrical coordination. Your design ir relying on magic.

Paul

Hey Paul,

We are planning to develop an Android application and connect the Arduino through bluetooth connection to control the actual speed of each motor.

mightygarhem7:
Hey Paul,

We are planning to develop an Android application and connect the Arduino through bluetooth connection to control the actual speed of each motor.

Then describe how you "know" the speed of each motor. That is the basis of any speed "control" system.

Paul

Paul_KD7HB:
Then describe how you "know" the speed of each motor. That is the basis of any speed "control" system.

Paul

Hi Paul,

We have calculated how much torque is needed for one wheel to get over our obstacle. Then we started to look online which motor delivers this stall torque. After researching which motor suited for us we decided to go for 12V 140RPM motors.

At this point we do not know what to do and where to start. All the mechanical and dynamic calculations are done but the programming and electronics is where we are confused.

mightygarhem7:
Hi Paul,

We have calculated how much torque is needed for one wheel to get over our obstacle. Then we started to look online which motor delivers this stall torque. After researching which motor suited for us we decided to go for 12V 140RPM motors.

At this point we do not know what to do and where to start. All the mechanical and dynamic calculations are done but the programming and electronics is where we are confused.

In other words, you have no clue about the "speed" or RPM of each motor. Just know the potential torque rating of a set of motors has no relationship to the actual rotation of the motor. Besides, each motor will have a different torque, you can't rely on a stated design torque from a motor manufacturer to apply to each and every one of the 12,000 motors they build each month.

You need to design in some method to actually know the rpm of each motor before you can attempt to have some control of that speed. FEEDBACK to your motor control is imperative.

Paul

Paul_KD7HB:
In other words, you have no clue about the "speed" or RPM of each motor. Just know the potential torque rating of a set of motors has no relationship to the actual rotation of the motor. Besides, each motor will have a different torque, you can't rely on a stated design torque from a motor manufacturer to apply to each and every one of the 12,000 motors they build each month.

You need to design in some method to actually know the rpm of each motor before you can attempt to have some control of that speed. FEEDBACK to your motor control is imperative.

Paul

Dear Paul,

Thank you for your reply.

Do you have any suggestions/references where we can obtain more information about motor feedback and control? How are we able to know the exact RPM of the motor?

The manufacturer did tell us the motors give 140 RPM but as you say, this is not accurate?

mightygarhem7:
Dear Paul,

Thank you for your reply.

Do you have any suggestions/references where we can obtain more information about motor feedback and control? How are we able to know the exact RPM of the motor?

The manufacturer did tell us the motors give 140 RPM but as you say, this is not accurate?

Google "rotary encoder" and look at the images. Look for ones that use a slotted wheel that breaks an IR beam.

May I suggest you set up a test stand with ONE motor and attach an encoder "chopper", slotted wheel to the motor and attach the break-beam sensor to the stand and begin to write pest programs that can detect and measure the number of times per second that the IR beam is broken. That will be your feedback of the motor speed.

Your motor will also need a controller to allow speed changes and reversal of direction of the motor. Have you picked ones that fit your motor requirements and power source and can be controlled by your Arduino?

Paul

Paul_KD7HB:
Google "rotary encoder" and look at the images. Look for ones that use a slotted wheel that breaks an IR beam.

May I suggest you set up a test stand with ONE motor and attach an encoder "chopper", slotted wheel to the motor and attach the break-beam sensor to the stand and begin to write pest programs that can detect and measure the number of times per second that the IR beam is broken. That will be your feedback of the motor speed.

Your motor will also need a controller to allow speed changes and reversal of direction of the motor. Have you picked ones that fit your motor requirements and power source and can be controlled by your Arduino?

Paul

Thank you for your reply. So the use of a rotary encoder is the determine the exact speed and RPM of the motors? Please correct me if I am wrong, I am an absolute beginner with Arduinos. So we would have to do such tests on each motor to get the same RPM on all motors so the robot goes straight?

We were not sure about the controller of our motors. We read that a l298n DC motor controller is best suitable for our robot. If we use a parallel circuit of four motors on each side of the robot, the required power source would be 12V per 4 robots.

Looking forward to your reply.

mightygarhem7:
Thank you for your reply. So the use of a rotary encoder is the determine the exact speed and RPM of the motors? Please correct me if I am wrong, I am an absolute beginner with Arduinos. So we would have to do such tests on each motor to get the same RPM on all motors so the robot goes straight?

We were not sure about the controller of our motors. We read that a l298n DC motor controller is best suitable for our robot. If we use a parallel circuit of four motors on each side of the robot, the required power source would be 12V per 4 robots.

Looking forward to your reply.

The whole purpose of setting up a test stand with your motor/wheel/rotary encoder is so you can learn to write the code to control the motor and use the rpm computed from the encoder to give your code the feedback it needs to control the motor speed. Then you will need to duplicate the logic for each motor, so each motor will have the speed and direction you need at the moment.

If your design makes the assumption that all wheels on one side will always turn the same direction and turn at the same speed, why did you not design all the wheels on one side to be connected by rubber belt and driven by a single motor? For that matter, why so many wheels?

Paul

mightygarhem7:
We read that a l298n DC motor controller is best suitable for our robot.

Certainly not. It's a very old technology which is wasteful of energy, dropping up to 5 of your precious volts when there's appreciable current. And all that goes out through the heatsink the size of a car radiator*.

So rather look for something more modern and efficient. This list at pololu (just as an example) is easily sortable by various columns; you will want to look for controllers that handle the voltage and current of your motors.

  • hyperbole there

"I will not go too far in details but at the moment we designed a robot which has eight driven wheels. All wheels are powered by single 12V motors."

Depending on the design requirements of your vehicle, you may not need to know the rotation speed of the individual wheels on it. If it is not part of the design requirement, then don't get sucked down a rabbit hole worrying about that. Maybe you should provide some details so you don't get caught up in expending time an energy on phantom issues. As to power for your robot, that probably depends on the size of the motors and the robot. Just saying.

mightygarhem7:
Do you have any suggestions/references where we can obtain more information about motor feedback and control? How are we able to know the exact RPM of the motor?

The manufacturer did tell us the motors give 140 RPM but as you say, this is not accurate?

You are at an educational institution, does it have an electrical/electronics department?
If so you have the reference material on hand, have you investigated the rest of the campus?
Tom... :slight_smile:

Paul_KD7HB:
The whole purpose of setting up a test stand with your motor/wheel/rotary encoder is so you can learn to write the code to control the motor and use the rpm computed from the encoder to give your code the feedback it needs to control the motor speed. Then you will need to duplicate the logic for each motor, so each motor will have the speed and direction you need at the moment.

If your design makes the assumption that all wheels on one side will always turn the same direction and turn at the same speed, why did you not design all the wheels on one side to be connected by rubber belt and driven by a single motor? For that matter, why so many wheels?

Paul

Hi Paul,

We decided to choose 4 wheels on each side because this was an advantage on the mechanical side and would perform better on the competition obstacle.

blomcrestlight:
Certainly not. It's a very old technology which is wasteful of energy, dropping up to 5 of your precious volts when there's appreciable current. And all that goes out through the heatsink the size of a car radiator*.

So rather look for something more modern and efficient. This list at pololu (just as an example) is easily sortable by various columns; you will want to look for controllers that handle the voltage and current of your motors.

  • hyperbole there

Hey,

Thanks for your reply. I looked at the website and only see motor drivers with one and two motor channels. Would this mean a max. of 2 motors can be connected to each motor driver?

mightygarhem7:
Would this mean a max. of 2 motors can be connected to each motor driver?

I wouldn't go against what a manufacturer says.

So use 4....

"We decided to choose 4 wheels on each side because this was an advantage on the mechanical side and would perform better on the competition obstacle."

The more wheels it has, the more difficult the skid steering will be and the more power it will probably take.

TomGeorge:
You are at an educational institution, does it have an electrical/electronics department?
If so you have the reference material on hand, have you investigated the rest of the campus?
Tom... :slight_smile:

Hey Tom,

We are part of the Mechanical Engineering team. Our faculty told us if we want to use an Arduino we need to find references our self. I have no clue where to find the correct information.. That is why I came to this forum for help.

mightygarhem7:
Our faculty told us if we want to use an Arduino we need to find references our self.

But there's a lot more to this than the Arduino questions. You're needing advice on the electrical side, eg which drivers to use for which motors, and would be needing that regardless of what controller platform you had chosen. An L298 has nothing to with Arduino: it has to do with driving motors, regardless of how the control gets to the L298. You can control a motor on an L298 just by attaching the correct L298 inputs to a 5V power supply.

Years ago I drove stepper motors with an L298 on the parallel port of a 286 PC.

So I'd use the resources of your Uni: buddy up with some folk from the EE side.

mightygarhem7:
Hey Tom,

We are part of the Mechanical Engineering team. Our faculty told us if we want to use an Arduino we need to find references our self. I have no clue where to find the correct information.. That is why I came to this forum for help.

Okay, but surely going to another faculty for references is allowed.
Especially motors and drive information.
Before the inet what would you do?
You are getting good info here but don't make it your only place.
Tom... :slight_smile: