Re: servos
Posted by
Dean Franks
on 1999-09-27 12:24:13 UTC
Responses below.
Dean
Dean
----- Original Message -----
From: David Howland <dhowland@...>
To: <CAD_CAM_EDM_DRO@onelist.com>
Sent: Monday, September 27, 1999 11:48 AM
Subject: RE: [CAD_CAM_EDM_DRO] servos
> From: David Howland <dhowland@...>
>
>
> Dean;
> I believe low cost computer interface hardware is valuable , for example,
in reading quadature signals and interface digitally to a few of the
appropriate projects some are involved in. I believe the "opto issolation"
requirments might be met on another independent board or within the
different black boxs people are constructing.
>
> What do you mean by "Auxilliary ide controllers"? Something other than
the ide controller on the motherboard? Is it a card?
Yes, it is a card, they can be purchased for <$10 each.
>
> What might the system configuration look like through the eyes of an ide
controller port to receive quadature inputs and drive various digital
outputs (aside from any 8255 which may be used on the business end)? What
is the software interface like in terms of configuraing an application
program to find its way through the hardware associated with the ide port
and hardware used to expand its functionality (such as the 8255)?
>
For quadrature decoding, I think the best way is to go with either a US
Digital decoder, or a cheap microcontroller (Atmel, pic, analogue devices,
etc). The Atmel AVR series microcontrollers are self contained with PWM
drivers, a single encoder channel, 8 channel A/D and lots of other IO. They
also have flash, ram and serial onboard. I am leaning towards combining
both the US Digital 2 channel quadrature decoder and the Atmel
microcontroller. The pair is less than $40, and two sets could be used for
4 axis operation. Because the microcontroller is in circuit programmable,
the low level motion loop could be implemented on the microcontroller, and a
fast bus between the two controllers could sync the axes. This approach
would allow the development of a "universal" motion interface on the PC side
with all the differences between servo and stepper control abstracted by the
controller.
The tricky bit is interfacing the Atmel (or any other) microcontroller to
the IDE bus. They are designed to be a bus controller, not a periferal
device, so reacting to the ide signals quickly enough in software is not
possible. If the low level motion control is done on the card, a single
parallel interface should be enough to drive a 4 axis controller (their
would be master and slave microcontrollers).
> How much faster is an ide port than a printer port? I understand that 66
Megabits is possible. There are many programs developed around single,
dual, and three printer port computer interfaces. Most drive stepper motors
and because stepper motors are limited in speed, the printer ports that
drive them are sometimes not the limiting factor. In the case of servo motor
drivers, the limitations of slower printer ports may likely come up, so I
believe you are on track (for some of us playing in this area).
>
ISA ide ports are limited to the ISA bus speed. PCI/MB ide ports can run 66
MBytes/sec if you have an ultra/66 controller. I would avoid this, the high
speed makes the design that much more difficult (way way beyond 8255
speeds), and does not appear to be useful for motion control anyway.
> As you know, there are many really good efforts going on in various
directions, with completed developments which are useable as components for
various systems. One might want to hear that n number of people have
enough interest in <new concept number 625>, to justify etching copper on
fiberglass, but it is difficult to get a comitted group behind any one
concept because there are many directions depending on what each wants.
There are also an amazing number of options.
>
> Let's say, just for fun, we wanted to accomplish this:
>
> We want to utilize as much low cost computer board I/O within the (off the
shelf) computer as we can, to interface to 3 quadature inputs, and 3
bi-directional 8 bit parallel ports at high speed (faster than the printer
ports).
>
> If we wanted to do this, I take it that we might develop a board that fits
into an ide socket on our PC, (or if I understand you correctly, use an off
the shelf ide port card?) and connect to our external opto-issolated black
boxes next to our computers. If we developed such a card (or what it took to
interface to an off the shelf ide card if that exists), can we hope to
reduce the cost of interfacing the two kinds of digital data many of us need
(quadature and digital inputs, and digital outputs). If we did this, how
might one patch this high performance hardware interface into application
software? Can it appear as higher speed printer ports at those addresses?
>
> You know, the quadature input piece alone is probably of interest to many.
The I/O cards with quadature inputs are big bucks. I think a reasonable
card with quadature inputs and digital outputs might get some interest here.
Lets see....
>
If that is your goal, I would use US Digital quadrature decoders (and deal
with the glitches in software) and one or two 8255's on a board that would
only run from a 'slow' ide port (isa). Parts and a board would run around
$45-55 for a 2 axis system with 24 digital i/o's, $75-85 for 4 axis with 48
digital i/o's. Given the marginal cost savings of a 4 axis system, it might
make sense to use good old master/slave jumpers and use 2 2-axis boards.
The board could be layed out single sided without too many jumpers, it would
physically be the side of a 3.5" hard disk drive and maintain the ide
power/control connector arrangement at one end (for mounting in the drive
nests).
I would be happy to implement device drivers for linux and make them
available. I could also supply a support library (either linkable, or a TSR
that supports an API via interrupt calls) for DOS if anyone is interested [I
would use for for initial board testing anyway].
> Survey. Would you buy a blank ide card for under $50, if you could buy the
components for another $35 and put together 3 quadature inputs and 3 8 bit
ports whcih may be configured for inputs or outputs? Would you buy it,
mostly for the quadature inputs, or the higher speed digital data? Does
anyone know what 3 quadature inputs is priced like on any off the shelf PC
card?
>
> I for one will buy such a blank PC board, if I can understand how to
put it to use with medimum performance motion control software, and complete
the mid range motion performance objectives I am considering with DC motors.
Others seem to be building black boxes which might find need of this.
>
> On my block box front, I'm searching the web to discover how painful
the identification process can be concerning Surplus DC servo motors, and
what support can be had with application programs. Those programs suitable
for the printer ports, may be "remapped" elsewhere, if they support doing so
(or if the ide concept can be addressed as printer port addresses).
>
> The diamond in the pile of possibilities (on my front) may be open loop
stepper motor programs, driven through a higher speed interface into a black
box which turns a DC motor and encoder into a higher performance stepper
motor (a hybrid). This may be realized, if surplus DC servo motors offer
more bang for the buck and can be identified and used easily. Some surplus
servo motors are neither easy to identify, or appropriate for this use.
>
> Making a DC servo motor out of a regular DC motor and an encoder has a few
difficulties. Many DC motors have uneven torque as you rotate them 360
degrees. It becomes impossible to move the motor 1.8 degrees and hold it
there. I discovered that it can be done with a timing belt (gearing),
however this adds to the complexity. The driver and the DC motor can heat
excessively, trying to control too small and poor quality a motor.
>
> I solved this problem with an intelligent motor driver (then a better
motor). The major discovery was that the quality of the motor helps ten
times while the smart of the driver can work with poor motors, - one. If
somewhere there is huge quantities of high quality appropriate DC servo
motors for a low price, controlling both the motors and the total cost is
within reason.
>
I agree, I have already etched a board for the atmel/usdigital combination
to work with a parallel port interface (and a serial port for
reprogramming). The software, of course, is the hard part, but I have a
system working reasonably well in x86 assembler on the kludge x-y
development table. now that I have given up on software backlash
compensation (ballscrews assemblies are cheaper than the development time I
was burning with a probably poor outcome), the rest of the system is ready
to do. I am finishing up automatic PID tuning/parameter generation now, and
I am starting to think about dynamic PID retuning based on the closed loop
feedback while operating. The current system just retards the feed rate to
maintain an acceptable positioning error, but I think that better control is
possible.
> Hopefully the speed of the computer interface will not limit the potential
performance of my project, and the ide concept might offer something to
others as well.
>
>
> David Howland
>
<snip>
Discussion Thread
Jon Elson
1999-09-24 12:26:39 UTC
Re: servos
David Howland
1999-09-24 13:38:22 UTC
RE: servos
Jon Elson
1999-09-24 15:30:00 UTC
Re: servos
David Howland
1999-09-24 16:49:04 UTC
RE: servos
Dean Franks
1999-09-24 18:51:30 UTC
Re: servos
Ian Wright
1999-09-25 13:10:25 UTC
Re: servos
Dean Franks
1999-09-26 10:49:31 UTC
Re: servos
David Howland
1999-09-27 11:48:48 UTC
RE: servos
Dean Franks
1999-09-27 12:24:13 UTC
Re: servos
Paul Corner
1999-09-27 13:17:45 UTC
RE: servos
David Howland
1999-09-27 15:09:54 UTC
RE: servos
David Howland
1999-09-27 15:33:42 UTC
RE: servos