A servo controller that will accept 0-30hz input

Thread Starter

GtoRx7

Joined Jan 8, 2011
10
I need to find or build a servo controller that accepts a 0-30hz or 0-60hz, to control typical R/c servos. Such as Hitech, futaba ect. Using this on a race car, and the standalone computer can only provide 0-30hz or 0-60hz output with a full 3d map. Will need to control 4 servos all operating in tandem. Thanks for any help.
 

jpanhalt

Joined Jan 18, 2008
11,087
Are you looking for an analog or digital design? Can you program microcontrollers? How much experience have you got with analog circuits?

John
 

Thread Starter

GtoRx7

Joined Jan 8, 2011
10
Can be a analog design. I will be using analog hitec servos, not digital. Most of my experiance is with race cars, and computer control systems they use. I have a lot of experiance with high grade radio controlled cars too. Program a microcontroller.... I'm sure I could learn, never did it. The aux outputs from this race cars computer pulses a negative pull to ground. I can change the HZ output through the rpm band and vacuum range, so that is not a issue. The ranges are either 0-30hz or 0-60hz. I understand that a standard servo wants to see a 20ms pace with a 1-2ms 5v rise to determine location. So I need to put together a controller that can change my negative HZ pulse into a 5v millisecond pulse with the required 20ms constant pulse. Basically convert 1hz negative pulse to 1ms 5v pulse and 30hz negative pulse to 2ms 5v pulse. And linear between the two of course.
 

jpanhalt

Joined Jan 18, 2008
11,087
I think the easy way would be digital, but you would need to do most of the program writing. So let's stick to analog, which I gave some thought to last night.

I am assuming the pulse is from some sort of sensor. What do you know about its characteristics. For example, is it a sharp pulse with a pulse width that is unrelated to the frequency or is the pulse duty cycle (percentage of each cycle that pulse is low) constant? What is the pulse width, if unrelated to frequency, or duty cycle? Is the pulse height constant? Those questions are related to the type of buffer you will need before actually dealing with the conversion. My suspicion is that neither the height nor pulse width can be relied upon, so the conversion will need to begin with simply detecting the frequency using an edge trigger.

How fast do you need the servos to respond? Monitoring a 1 Hz pulse that changes to 1.5 Hz vs. a 20 Hz pulse that changes to 30 Hz pulse may take quite a bit of time. Just curious, why do you want the 1 Hz pulse to be converted to 1 mS and the 30 Hz to be 2 mS instead of the other way around? What do you mean by linear? That is, do you mean a change from 1 Hz to 2 Hz would produce the same servo signal change as a change from 29 Hz to 30 Hz? Or, do you mean a change from 1 Hz to 1.5 Hz would produce the same change as from 20 Hz to 30 Hz? Or, something else?

Are you willing to modify the servos? I suspect you want to be able to just plug an off the shelf servo into this device.

John
 
Last edited:

Thread Starter

GtoRx7

Joined Jan 8, 2011
10
The pulse is coming from the car computer directly. The plan is so I can control variable length intake trumpets to shorten up with rpm. 4 servos will be needed or just one large servo such as a 1/4 scale jumbo servo offered by hitec. On the instruction manual it only says this-

"Duty Cycle Table:
This GPO uses a 16 x 16 table of MAP reading vs. RPM to allow the input of a duty cycle at each MAP/RPM point. Numbers are interpolated between cells to create a smooth curve. The possibilities of this GPO are extensive.

All the GPO’s, regardless of their function, are pull-to-ground outputs when they are activated. That is, they create a connection to ground when turned on. "

GPO stands for general purpose output. On this computer system it has 4 outputs that can be used and programmed for various things. The output can be set to 30hz or 60hz. Then on the table we program, I can specify any duty cycle of that. 0-100% duty cycle. I was wrong about the 0-30hz. It supplies a 0-100% duty cycle of the 30hz or 60hz. The signal is a square wave. So, it is essentially a millisecond output, just a pull to ground millisecond square wave. I need the output to correspond to servo movement. So 0% duty will place the servo at beginning of travel, and 100% duty will place it 90 degrees over at the end of travel. And 50% duty will be center of travel etc etc. I know R/C servos need a 1-2ms input. 1 setting servo at begining travel, 1.5 in the center, and 2.0 end of travel. But the output needs to be a 5v square wave signal. So this is the issue, and why I need a converter to translate the signal. Sorry for mis-info in the first question
 

jpanhalt

Joined Jan 18, 2008
11,087
Basically, you have a 30 or 60 Hz pulse that varies in width from DC to zero. Dealing with the two extremes may create some problems. At center (i.e., 50% duty cycle) the pulse width is about 8 mS and at 60 Hz and would be about 17 mS (rounding) at 30 Hz. You want to convert that to a 1.5 mS pulse with a range form 1.0 to 2.0 mS. Polarity of the pulse is really not a hard issue to get around.

I actually found the earlier problem of converting frequency to servo control more interesting, but here are my thoughts on converting pulse width/duty cycle to servo control. Note: These thoughts apply strictly to pulse width, but if the frequency is constant, then they translate to duty cycle too. Also, as mentioned before, a digital solution is probably simplest, except for the element of programming. A microcontroler would simply measure the incoming pulse width then convert that using math or a table look-up to give a servo control signal.

For an analog approach, I would convert the pulse width to a voltage, then convert the voltage to a servo control pulse.

There are various ways to do the first step (pulse width to voltage). One is a simple RC filter, which would give you an average voltage proportional to the pulse width. That method has been criticized as being slow. We don't know how fast you need the response to be. I suspect since servos are involved, the RC filter approach may be just fine. In case not, here are two other methods:

1) Dave Johnson and Associates:

http://www.discovercircuits.com/C/co-period.htm
http://www.next.gr/converters/period-to-voltage/pulse-period-to-voltage-converter-l4927.html


2) Mahoney (Linear Technology)

http://www.edn.com/article/493446-Circuit_converts_pulse_width_to_voltage.php
http://www.edn.com/contents/images/102501di.pdf
http://www.next.gr/converters/period-to-voltage/circuit-converts-pulse-width-to-voltage-l4926.html

I had trouble opening some of the links, so I gave multiple links to the same information.

Once you have a voltage proportional to the pulse width, then a simple voltage to time converter can be used to generate the servo control. One way to do that is to set up a 555-based servo controller and use control voltage on pin5 to control threshold for the pulse. If I were doing that, I would use the more complicated controller that uses a 556 (or two 555) chip to generate the 50 Hz repeat rate independently of the pulse width. Pin 5 control would be to the pulse width part only. Another way to do it was presented here:

Jayapandian (IGCAR)

http://www.edn.com/article/501680-555_makes_handy_voltage_to_time_converter.php

Obviously, component values in all of these approaches will need to be adjusted to get voltages and pulse widths appropriate for your application. That will require some dedicated design and experimentation. The question now is whether you are up to it and have the equipment to do it. You will need an oscilloscope.

John
 

jpanhalt

Joined Jan 18, 2008
11,087
I was feeling good, so I made a proof of concept circuit. Used a simple RC low-pass filter with a TL082 dual op-amp for buffer. I did not like the way the 555 with control on pin2 worked (see: Jayapandian link), so I made a typical monostable and used voltage at pin5 to control the output. Output to the servo was buffered with the other half of the TL082.

The square wave was from a cheap signal generator, so a diode was used to peel off only the positive part. Duty cycle could be varied from 10% to 90%. P-P voltage was 7.5V, which produced 3.48V to the op-amp.

The trigger pulse was from a servo tester and was limited to a minimum of 1 mS. A little shorter would probably have been better, but the tester was a convenient source of 50 Hz. It was inverted with a 2N3904 in common emitter configuration.

Servo movement was smooth and reasonably quick. A lot of tinkering will be necessary to make it work in your application. This was just proof of concept.

Good luck. Digital will still be better.

John

Oops. I forgot to show the decoupling capacitor across pins 1 and 8 of the 555. I used a 100nF ceramic.
Edit#2: Of course, there are lots of voltage controlled PWM devices out there (e.g., LTC5992). I just didn't have one handy. A 50 Hz triangle wave wave generator and comparator would also work.
 
Last edited:

jpanhalt

Joined Jan 18, 2008
11,087
I don't know whether you are still interested in this project. Here is a revised circuit that converts duty cycle to the proper pulse widths to drive a model servo. The servo pulse widths are affected by the signal voltage. If that voltage is unstable, you could use one of the extra AND gates to give a voltage about equal to the supply voltage. That is probably a good idea to do anyway. You would then have to fine tune the ratio of duty cycle to pulse width. There are various ways with this circuit to do that.

The circuit with an F to V chip can convert frequency to servo control too.

Please give an update on your project when you can.

John

View attachment 26673
 

Thread Starter

GtoRx7

Joined Jan 8, 2011
10
I don't know whether you are still interested in this project. Here is a revised circuit that converts duty cycle to the proper pulse widths to drive a model servo. The servo pulse widths are affected by the signal voltage. If that voltage is unstable, you could use one of the extra AND gates to give a voltage about equal to the supply voltage. That is probably a good idea to do anyway. You would then have to fine tune the ratio of duty cycle to pulse width. There are various ways with this circuit to do that.

The circuit with an F to V chip can convert frequency to servo control too.

Please give an update on your project when you can.

John

View attachment 26673
Yes very still interested in the project. Thank you SO SO much for doing all this legwork :) I will have to review and digest this info and let you know how it turns out. I am building the prototype intake as we speak. Once the machine work is complete I will start on the telescoping trumpets with control. If this works out properly we should re-break the current world record lol.
 

Thread Starter

GtoRx7

Joined Jan 8, 2011
10
I reviewed the diagram, and have a question- The input signal goes from a ground at the specified Hz/ millisecond amount and then nothing. So example of what it can control directly-- If we have a injector coil, one end is constant to 12 volts. The other end would go to this output. The output will switch to ground and back to nothing.

I will post up a simple diagram soon
 

Simon0362

Joined Sep 17, 2011
4
Hi,
I am also interested in this circuit for a similar task (10-90% duty cycle from PC needs to be converted to 1-2ms servo pulse) but the attachments seem to have disappeared. Could someone please re-attach them?

Many thanks,
Simon
 
Top