Newsgroups: comp.robotics
Path: brunix!cat.cis.Brown.EDU!agate!msuinfo!harbinger.cc.monash.edu.au!news.uwa.edu.au!DIALix!metapro!bernie
From: bernie@metapro.DIALix.oz.au (Bernd Felsche)
Subject: Re: STEPPER DRIVER INFO NEEDE
Message-ID: <CuCrzv.560@metapro.DIALix.oz.au>
Organization: MetaPro Systems, Perth, Western Australia
References: <9408070631.A6509wk@circellar.com> <328nsb$h6c@handler.Eng.Sun.COM>
Date: Thu, 11 Aug 1994 04:19:07 GMT
Lines: 34

In <328nsb$h6c@handler.Eng.Sun.COM> cmcmanis@Sun.COM (Chuck McManis) writes:

>stephen.griswold@circellar.com wrote:
>:  My main problem with the base, was being unable to calibrate the two drive
>: motors, to the same speed.  One, would always seem to spin faster than the
>: other, causing the base to turn on a wide arc, when I wanted it to go
>: straight.

Sorry I didn't catch the start of this....

The solution would appear to be feedback.  Many motors have feedback
sensor which will give you rotation pulses of the output shaft.

If it's not available, you can make some lo-res ones yourself by
salvaging a deceased opto-mechanical mouse, which hopefully still
has functioning diodes and opto-transistors. They have about 40
pulses per rev. A simple circuit can drive these (better make sure
they have the same resolution) and you can use the differential
pulse rate to modify the input to the corresponding drive motor.
(One could steal pulses from one motor and divert them to the other.)

It's a very simple electronic differential. You can, given enough
processor grunt, also input the pulses direct to the CPU and do
your "differential" logic in there - reduces the parts count if
you have spare inputs. A multi-threaded exec is handy to have to
handle this. One could go insane trying to get all the i/o right
in a single thread.

BTW: if you place your feedback sensor on un-driven components,
you can tell if the driving elements are just spinning in the air!
-- 
Bernd Felsche, MetaPro Systems Pty Ltd
328 Albany Highway, Victoria Park, Western Australia
Phone: +61 9 362 9355  Fax: +61 9 472 3337
