DC Servo Controller

Status
Not open for further replies.

jeff

Member
Hi all -

I'm looking for advice on the feasibility/sensibility of using the Teensy 3 for a general-purpose PID DC servo controller (not hobby/RC servo) for CNC and robotics applications. I have a collection of motors I'd like to work with, from a huge wheelchair motor to a box of 20 small printer motors with HEDS encoders. It should be able to read a high-speed optical quadrature encoder (eg., 500-1000cpr encoder, running at 3000 rpm), do speed and position control with a PID algorithm, and output PWM to a variety of H-bridge motor drivers. Ideally it would take step/direction inputs, as well as serial commands to produce its own trapezoidal acceleration/velocity/position motion profiles.

I've been searching for a long time for an open-source project that can run on a microcontroller like the Teensy's cortex - Arduino based or not. Surprisingly, I haven't been able to find anything. I would have thought there would be something really good out there already, given the chips now have things like built-in quadrature decoders, special motor-control PWM units, lots of application notes even for doing brushless motor control, and so on. I want something that's comparable in quality to a commercial product - basically I'm more interested in getting my motor projects working reliably, than experimenting and hacking. So for example, from what I can tell, neither the Arduino PID library nor the interrupt-driven encoder library would be suitable for robust control of high-speed servos.

I've found a few commercial products that are not unreasonably priced, and seem to be quite good quality. But they all have various problems or inflexibilities, and being closed-source, can't be fixed or modified to suit the project at hand. For example the Mesa 3C20 seems quite advanced, but has an integrated 2A motor driver, which is no good for my wheelchair motor, and at $80, not so feasible for 20 of my little printer motors. Also it has a quite obscure serial command language, so if I wanted to adapt it to use for example OSC or DMX or some other kind of protocol, I can't.

So I guess I'm looking for some advice about whether anyone knows of any existing open-source projects, as well as how much work it might be for an intermediate-level programmer to implement something like this from scratch, either on the Teensy or some other hardware, and, failing that, if anyone has recommendations for closed-source boards that would be flexible and low-cost enough.

Thanks!
 
Status
Not open for further replies.
Back
Top