Reading multi channel RC controller data

How to interface a multi channel Radio Control unit to a PC to read channel data (servo motor positions)?

Reply to
<Phil>
Loading thread data ...

I have done a project to measure RC receiver output pulses. Roughly, each channel outputs a pulse whose duration varies from 1 ms to 2 ms. The 1 ms variation in pulse duration commands the servo position. One channel follows the other in time. The pulses are repeated every 20 ms. I used a PIC microcontroller to measure the pulse durations. The PIC can then be interfaced to a PC via RS-232 to transmit the data.

Now there are some folks who think you can measure these pulse widths directly on the PC's parallel port channels. They are correct, but the measurements will vary from time to time due to the non-real time OS characteristics of Windows or DOS. A friend of mine did the opposite. He drove hobby servos directly out of the parallel port, but they jittered due to the variation in timing.

BRW

Reply to
Bennet Williams

formatting link
useful link

Reply to
Blueeyedpop

Did you use C or assembler langugae to program the PIC? Would you share the your source code with us?

Reply to
<Phil>

This is wonderfull link. Thank you.

Reply to
<Phil>

What about using a soundcard mic/line input for realtime pulse width measurements. You'll have attenuate the signal for input, but sampling a 1-2ms square pulse at 2.5ms rate should be possible at 44Ksps. You could use the line out with a comparator to generate pulse trains as well.

You should be able to OR RC servo outputs together on many RC RXs, since they time multiplexed with missing pulses that are used as index/start. Also, a long time ago I had a RX module that brought out the non-demux pulse train on the signal pin on the power supply connection, since it wasn't used. I suspect it was used for testing. I don't know if current RX modules do that or what brand/model the RX was that I used.

See ya, ->I have done a project to measure RC receiver output pulses. Roughly,

Reply to
Ingo Cyliax

another possibility would be my microcontroller of choice, the IsoPod from NewMicros Inc.

formatting link

Compiler on board. 12 timer channels accessable in high level code.

read the r/c via timers, output to computer via rs232.

Mike

Reply to
Blueeyedpop

I used assembly language. I used the RC data to convert to a dual PWM for a differential DC motor drive system. I displayed the data on an LCD display, but did not interface to the PC via the serial port.

A friend of mine just did a PC to PIC RS232 interface with the CCS C compiler. It is VERY easy to do with CCS. The only additional component you need is an RS232 level converter like the MAX232.

BRW

Reply to
Bennet Williams

In DOS this can be done but you have to reprogram the timer chip correctly; there is shareware software out there if you search, for most languages, 'C', PASCAL etc.

Reply to
Terry King

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.