[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: ATM steppers & microcontrollers



Hi Mel,

Thanks for the fast response.

Mel Bartels wrote:
> 
> >>> achieve microstepping by applying current to one winding at a time,
> first one winding, then immediately after the second winding, such that
> the inverse square of the ratio of applied current properly positions
> the rotor

I'm not sure what "inverse square" means in this context.
  1.  This seems to be saying that if the width of the pulse to coil B
is 4 times the width of the pulse to coil A, the equilibrium shaft
position is _not_ equal to 1/(1+4) = 0.2 of the distance between the
coil-A position and the coil-B position (which is one full step away). 
That makes sense, after some thought.
  2.  Does this mean that the desired pulse widths are proportional
respectively to the sin and cosine of the desired angle between two
adjacent full-step positions?  In the example of coil-B pulse 4 times as
long as the coil-A pulse, this would make the angle = arctan(1/4) =
14.04 degrees, or 14.04/90 = 0.156 (15.6%) of a full step between the
two positions.  I think this must be the case for pulses which are much
wider than their rise and fall times.
  3.  Is the average current through a winding proportional to the pulse
width, or does the coil inductance slow the current response down so
much that you're always working on the rising edge of the current
response to the pulse, and therefore the average current is
approximately proportional to the _square_ of the pulse width?  Taking
the above 1:4 pulse-width ratio, this would make the angle =
arctan(1^2/4^2) = arctan(1/16) = 3.58 degrees, or 3.58/90 --> 3.97% of a
full step.  (This cannot be true in general, but I can see that it might
be true for the short pulse widths which would be used for PWM.  The
"inverse square" statement would make more sense to me this way.)


> So, my code starts both windings at the same time, then turns off the
> windings when their proportion of current is finished.

I wondered about that.  OK, that's easy enough to do.



> >>> microcontrollers controlling the low level motor functions
> 
> You might want to get in contact with Jack Brindle and his group that is
> porting my computerized dob system to a Mac.

What is Jack Brindle's email address?



> The issue to watch out for is with altazimuth mounts: the drive rates
> must vary constantly in order that the scope proscribe an arc across the
        <snip>
> degree drift in 15 minutes of tracking, so this is bad news.  So, you
> are faced with either needing to communicate constantly with the
> microcontrollers so that you can correct for this, or give the
> microcontroller enough cpu power to do the altaz drive rate calculations
> itself, or screw the microcontroller and let the laptop or PC talk
> directly to the motors, the approach I chose.

At present I myself am just interested in controlling an equitorial
mount, which as you point out is a much simpler problem.  For altaz
mounts, the only 2 approaches which make sense to me are either having
the microcontroller(s) do the high level number crunching, or use your
approach of using _only_ the PC.


>   Probably best if you wish
> to pursue the microcontroller avenue is a controlling laptop or PC with
> a microcontroller that does higher level functions talking to a
> microcontroller for each motor that handles low level stuff.

That certainly sounds easiest from a developmental point of view,
although it might not be too difficult use a single microcontroller --
program all the low level stuff as an interrupt service routine which
the high-level stuff can deal with as a black box.  Don't Meade &
Celestron do something like this in their computerized SCT's?  


Again, thanks for the info!

        -- Gerry