multiple motor position

by ingre_dients on Fri Feb 15, 2013 8:22 am

Hi, do you know what motors/shield I could use to have multiple motors have accurate position control? Is this called closed loop? Could I use steppers or maybe preferably dc gear motors with an encoder? Any suggestions on what motors are available would help. I would like to have about 6 or 9 motors be able to continuously rotate for a while, but from the same position. So a pretty simple: start in one direction, run, and then stop - but all synced. Then to have that action repeat. Any suggestions as to how to do this with the least amount of wiring would be a great help, thank you!
User avatar
ingre_dients
 
Posts: 69
Joined: Sun Sep 27, 2009 11:17 pm
Location: Brooklyn, NY

Re: multiple motor position

by adafruit_support_bill on Fri Feb 15, 2013 8:54 am

Stepper motors without encoders are "open loop". But if there is no extreme load that would cause them to miss a step, they are very precise and repeatable. You can get some additional reliability without a full encoder using a simple "home" indicator - usually an optical sensor to detect the 'home' position. This will let you recover from any lost steps whenever you pass that position.

Encoders can add closed-loop position feedback to any motor. The most common type are simple quadrature encoders. These are 'relative' position encoders and are subject to error if you miss a pulse. Absolute position encoders are also available, but they tend to be expensive.

I would like to have about 6 or 9 motors be able to continuously rotate for a while,

Do you need direction control? Or will these motors always be rotating in the same direction?
User avatar
adafruit_support_bill
 
Posts: 28873
Joined: Sat Feb 07, 2009 9:11 am

Re: multiple motor position

by ingre_dients on Fri Feb 15, 2013 9:51 am

Hi, thanks for your reply. I don't need direction control. I only need to go in one direction slowly at about 8-10rpm and once in say 10 rev have the motors be synced. But this is something that needs to be self sufficient after it's finished - turning on and syncing time after time. Do you have any further recommendations as to which path I should go down, steppers, or dc with encoder, etc? Or if you could point me in the direction of a motor with absolute positioning. Also, what level of coding would be involved? Thanks again.
User avatar
ingre_dients
 
Posts: 69
Joined: Sun Sep 27, 2009 11:17 pm
Location: Brooklyn, NY

Re: multiple motor position

by adafruit_support_bill on Fri Feb 15, 2013 10:06 am

You didn't mention a budget. But with 6-9 motors, a stepper solution would be fairly expensive. Our Motor Shield will only control 2 steppers. Your best bet would probably be to use some of the serial stepper controller modules from Pololu.

Since you do not need direction control, DC motor control could be very simple. One of these with a kickback protection diode on a PWM pin for each motor is all you would need: http://www.adafruit.com/products/355
An Arduino UNO has 6 PWM pins. The Mega has 12. Another option would be our 16 channel PWM breakout. http://www.adafruit.com/products/815

The problem then is how to handle real-time position feedback from 6-9 motors. With that many high-resolution encoders going at once, you run the risk of missing pulses.
I only need to go in one direction slowly at about 8-10rpm and once in say 10 rev have the motors be synced.

What kind of position resolution do you need?
Do the motors always need to sync in the same position?
Would it be sufficient to have a single "home" sensor on each motor?
User avatar
adafruit_support_bill
 
Posts: 28873
Joined: Sat Feb 07, 2009 9:11 am

Re: multiple motor position

by ingre_dients on Fri Feb 15, 2013 10:22 am

Hi, budget isn't a problem at this stage, only the best solution really. If I could get two syncing to start that would be great, even if it costs more. Are you talking about the kinds of closed loop steppers used for CNC mills etc? I don't need high resolution. I have about 70 positions but I don't need them to land super exact. For instance, if they stopped and landed +/- 3 positions or so that would be ok, but I'd just need to have them obviously not go out of sync over time. I think a single home sensor on each motor would be great, would that be the simplest solution?
User avatar
ingre_dients
 
Posts: 69
Joined: Sun Sep 27, 2009 11:17 pm
Location: Brooklyn, NY

Re: multiple motor position

by adafruit_support_bill on Fri Feb 15, 2013 10:50 am

If budget is not a problem, then the simplest solution would be steppers. Unless you are expecting some unusual loads that would cause missed steps, you don't need closed-loop control, steppers with a 'home' sensor would be ideal. If you home them once at startup, they should stay in sync from there.

Our motor-shield will handle 2 steppers, but it won't scale up to the 6 or 9 you need. I'd suggest taking a look at the Pololu stepper modules or the EasyDriver module. You will probably need to go with a Mega for enough control pins for 9 motors.
User avatar
adafruit_support_bill
 
Posts: 28873
Joined: Sat Feb 07, 2009 9:11 am

Re: multiple motor position

by ingre_dients on Sat Feb 16, 2013 10:44 am

Hey, after thinking about this for a while, I'm leaning toward an optical sensor to 'home' my dc motors. I already have dc gearmotors that I'd like to use with this. There is a load that varies btw, which seems to rule out the straight stepper option. Now my question then is, where are how do I get this set up? I saw a "Groove Opto Coupler Optical Sensor Module for Arduino Speed Counting" - would this work? Can you point me in the right direction for the parts to make an optical home sensor? For some reason I'm not coming up with much from googling and searching.
User avatar
ingre_dients
 
Posts: 69
Joined: Sun Sep 27, 2009 11:17 pm
Location: Brooklyn, NY

Re: multiple motor position

by adafruit_support_bill on Sat Feb 16, 2013 10:59 am

I usually use an optical slot sensor similar to the one on the groove module. You just need to attach a slotted wheel to the motor shaft to interrupt the beam. The number of slots determines the resolution of your control. Just remember that with a lot of slots you will need to handle a lot of pulses from multiple motors to maintain an accurate position.
User avatar
adafruit_support_bill
 
Posts: 28873
Joined: Sat Feb 07, 2009 9:11 am

Re: multiple motor position

by ingre_dients on Sun Feb 17, 2013 9:37 am

I'm thinking now that a reed switch may be the most simple solution. I'm looking to keep the wiring down to as few wires as possible. I ordered some as well as a couple hall effect sensors, and will see if this will do the job. Thanks a lot for your advice, it's been very helpful.
User avatar
ingre_dients
 
Posts: 69
Joined: Sun Sep 27, 2009 11:17 pm
Location: Brooklyn, NY