Asked — Edited
Resolved Resolved by DJ Sures!

Multiple Motors

The robot that I am building is going to have DC motors for XY and Z movement as well as elbow bending, wrist turning, etc. I will probably wind up with eight DC motors when I'm done.
Now that I've learned how to drive a DC motor with an H-bridge which works for two motors how do I drive the remaining six motors ? One of the motors will require the use of a SyRen 50 controller. My plan is to use 10 turn potentiometers on the motors for position feedback.


ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

#1  

As I posted to you in another thread: You don't even more than one movement panel. One does come in handy if you're moving the wheels of a robot so you can roll it around the house or yard. I don't use a Movement Panel in my project and I'm moving 7 DC motors in my robot. All motors are moving arms, waist and radar sweep motors. He's not going to be moving around the house so I'm not going to be using a movement panel. The scripts I have move these motors to the positions and speeds I want. The scripts respond to voice recognition or personalty generation or sensor readings. I plan to add a joystick or tablet control soon to control the arms of the robot. Have a look at my project to see how I've done it. It's a bit unorganized but you should get the idea:

B9RobotControl(1).ezb

As far as the Kangaroo X2 and either the Sabertooth or SyRen; Yes, you'll need one Kangaroo per Sabertooth or SyRen unit. You can control 2 motors with one Sabertooth and a Kangaroo or one motor with one SyRen and a Kangaroo X2. LIke Jermie mentioned you'll also have to add a feedback device like an encoder or potentiometer. These are so the motor controller and EZB knows where the motor is when needed and how fact it's going.

#2  

Another method and much cheaper is to just use a regular H-Bridges (must be sized to your amp load like the Sabertooth would have to be). Attach a pot to the pivot joint and then to an ADC port of the EZB. When the pot turns with the joint the readings at the ADC port will change proportionately. You can use these changing readings in scripts using a loop and the GetADC command to see where your motor is. When the reading gets to a point you want have the script turn off the h-bridge.

An added warning about the Kangaroo; It's a bear set up sometimes. If you don't have your setup wired up exactly right you won't be able to get a successful tune. Also the self tune process sucks for heavy asymmetrical loads (like a load out on the end of a lever like a robot arm). Power can not be starved to any of the components and your feedback devices must be wired correctly. Even after I did get a successful tune on my robot arm elbow joint I had to spend a day manually retuning the setting s to get them the way I wanted. However after all that it's a rock solid controller and a simple one to command through the Uart ports on the EZB. One Uart port will command one Kangaroo X2 (that means you can control 2 motors through one EZB Uart port if you are using a Kangaroo X2 and a Sabertooth X2). So using that formula; One ezb can controll 6 dc motors through it's 3 uart ports if you use the Sabertooth/Kangaroo combo boards. ;)

#3  

Hi Dave! Very good information! So if I have more than 6 motors I will run out of UART ports / should I get a second EZ-B?

#4  

Without knowing your skill set, it is hard to provide options to you. I run 4 sabertooth devices on my robot, each controlling 2 motors. This is done differently than most because I have a programmer background and have handled this outside of the EZ-B.

Are you familiar with Arduino or PIC programming? Are the motors going to work in conjunction with each other? For example, do you want the arms to extend prior to moving around?

The short answer is that there are a lot of ways to complete a task and without knowing your design or skill set, it is hard to provide the best solution to you. If you want to just use EZ-B's in your project, adding a second EZ-B is definitely an option to you. If you have the ability to program PIC's or Arduino's, there are a lot of different options available to you.

Let us know so we can recommend the best path for your particular situation.

Thanks David Cochran

PRO
Synthiam
#5  

You can connect Sabertooth to the EZ-B as Servos. Which simply uses one EZ-B port per motor.

#6  

Can you do the same with kangaroos? Do you know which mode the sabortooth needs to be set to for connecting to the digital ports? I didn't realize this was an option. I may use that.

United Kingdom
#7  

Sabertooth uses simple serial on a digital port. It is only one way communications though.

#8  

Yea, hmm, I guess if you wanted to tie up the analog ports on the V4 for pots or include Kangaroos on all of these it would work. The issue is knowing where you are with the motor more than anything I guess. I am trying to leave all possible ports open for the user, so I think I will keep heading down the path that I am. Right now I am only using 1 I2C port by default with my project to leave the platform as expandable as possible. This is being used for the MPU9150 so I don't feel bad about taking one of them to leave everything else open I guess.

I will have to keep this in mind for other projects though.