Let's Make Robots!

Six(6) DC motors, Six(6) Std. Servos, and Two(2) Stepper motors -- HOW?

As the title suggests, HOW do I run all of this hardware? I've been trying to research a low-cost, effective (and simple) method of controlling six dc motors (6V-ish), six standard servos, and (possibly) two steppers.

I will be running an R-Pi + Arduino UNO for the Brains. 

Any suggestions?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Thanks everyone. I'm thinking here getting three of these L298N motor driver boards for the six DC motors, and this Pololu 16-channel serial servo controller for the various servos. These will be powered by an individual, 5800mAh 7.2v Lipo regulated down to 5v for drive power, with an Arduino as the secondary data controller for the motor encoders / PWM, and low level sensors, and the R-Pi as the primary controller for high level sensors. The R-Pi+Arduino combo will have its own separate, regulated LiPo (probably 2800mAh 3.7 LiPo boosted to 5v).

What do you all think?

It would help a lot if you specified what the stall current of the motors is. Without these figures you might as well say you want to drive 6 golf buggies. More information about the stepper motors would be helpful as well as a dual motor driver can also drive 1 stepper motor.

Without more information I would suggest 2 or 3 of these: http://www.adafruit.com/products/81

the stall current I believe is 0.55 amps @ 6V for each motor.

I have used the motor boards on many an occasion ..... 550ma is a breeze for them. If not then you can upgrade them direct by piggybacking on extra L293D chips.... personaly i use the "SN75441one" chips.

ButButBut :- why not consider Propeller chip....... as it looks like your Uno timers will start bending with that workload....... and you will not need any extra servo boards.

I think that might be pushing it.  Remember where your RAM tops out!  If you're going to use ALL of those sensors at once (instead of a swap-out system like Gareth's Propellor) then I think the Pi might get a little overloaded.  Actually I think my workstation would be a little overloaded with that much I/O.  Is the color sensor redundant when you have a webcam?  My imagination is having trouble reconciling all of these things into one project-what are you making (or is it classiified? ;-)

I need to clarify something from my earlier comment too-you'll need at least two ATTiny 44's for 6 motors and two steppers-each Tiny only has 4 PWM channels.  If your stepper configuration requires two PWMs for each stepper, that's 3 Tinies.

Well, definitely one usb cam. Maybe two. Also I forgot to mention the accelerometer.

I can't reveal TOO much about the project atm, but it's definitely my most ambitious robot yet. 

The reason I thought an Arduino UNO is for the low level sensors and such, and the R-Pi for the heavy lifting of webcam(s). bluetooth, and processing.

The problem resides in: how to get the PWM from R-Pi/Arduino to the myriad of servos and motors without overloading everything AND without investing in a bunch of different motor controller boards OR shields (I REALL don't want to use a shield). It would be awesome if there was a board out there already that could control 6 motors and 6 servos at once, and offload that from the R-Pi/Arduino.

I will say do this: modularity. Break down the functions of your project into separate functional modules. For instance, driving, sensing, arm, head, etc. Each module can have it's own Uno or Tiny and they can get commands from the R-Pi through I2C. This way each module can do simple tasks independently and the R-Pi can do the vision thing without being interrupted by the other modules. Connect directly to the R-Pi only those sensors that you need fast access and the webcam. Use apropriate drivers for the motors on each module and be careful that the Servo library uses a 16bit Timer so you can't use that Timer's PWM pins to drive motors on that module. I tried to put everything on the same Arduino like you want to, but I ran into timing problems, the servos being the most affected (jerky movements). Oh, and if you make a mistake and burn something, you'll be glad it's only a small module instead a big board that runs everything.


Ro-Bot-X is serious about the 16-Bit timer for servos.  (Gabriel-did you ever get the servo8bit.h library functioning?  I've had no luck yet.)  The Tinies are great for their ADCs and straightforward PWM, but on a servo forget about it (unless you want to bit-bang two or three positions on a very luckily obtained servo.)

Sorry Max, never had time to fiddle with the servo8bit lib. I had an idea to make a Tiny board like CtC's board for Picaxe 8M and use it for 3 servo hexapods, but then I got other ideas that were more interesting and went for them instead. This year I had lots of work to do for the honey-bees and my daughter came back from Romania and she started school (stupid Canadian schools expect kids to know leters and numbers and to read and write in the first grade, in Romania we learn all that in the first grade; on the other hand, we learn stuff in grade seven that here they learn in high school), so my time available for robotics decreased. Now we are expecting another baby this month so even less time will be available. I am not sure what projects I will be able to do over the winter (if any) so you guys will mostly only see comments from me in the forums. I even ran out of parts for my online store and I am thinking if I should get more or just freeze it until I'll have more time. Unfortunately they already charged me for another year of hosting... So, yeah, tough times.

Congratulations on the new baby and I'm sure it's nice having your daughter with you. I know what you mean though-never enough time for the electronic friends.