View unanswered posts | View active topics It is currently Wed Jun 19, 2019 1:26 am



Reply to topic  [ 3 posts ] 
 Use Utilite To Control RC Servos 
Author Message

Joined: Mon Jan 09, 2012 3:16 am
Posts: 351
Post Use Utilite To Control RC Servos
Overview

Utilite can easily control the movement/position of small analog servos. This project explores one way to do it.

Attachment:
TypicalServo.jpeg
TypicalServo.jpeg [ 2.53 KiB | Viewed 3823 times ]



Possible Applications


1. Remotely Controlled Vehicles
2. Autonomous Robotics
3. Directional Control of Sensors (Infrared, Microwave, Ultrasonic)
4. Etc.


Theory

Small analog servos such as those used in radio controlled equipment consist of a control board, motor, gearing, feedback/position potentiometer, housing, etc. The angular shaft position of such servos is controlled by sending the servo a repeating Pulse Width Modulated (PWM) signal. Minimum duration pulses cause the servo shaft to rotate to the 0 degrees position, and maximum length pulses produce a 180 degrees shaft position. Shaft positions between 0 and 180 degrees are produced by sending the servo PWM signals whose duration are proportionally between the minimum and maximum values.

Attachment:
ServoTheory.jpeg
ServoTheory.jpeg [ 64.09 KiB | Viewed 3823 times ]


While Utilite cannot directly issue multi-channel PWM signals to multiple servos, it can issue a single channel Pulse Position Modulated (PPM) Signal via its sound output which can be broken into multi-channel PWM signals by additional equipment.

Attachment:
PPM Theory.jpeg
PPM Theory.jpeg [ 110.54 KiB | Viewed 3822 times ]


In Pulse Position Modulation (PPM), various human inputs such as throttle position, rudder position, aileron position, and elevator position, are encoded by the remote controller into a serial string of varying width/position pulses which are transmited via rf to a radio control receiver. The typical PPM frame is around 20 mSec in length and repeats about 50 times per second. Each PPM frame consists of a series of pulses (1 per channel of data) followed by a blanking period. The value of each channel is propotional to the duration of the corresponding pulse (leading edge of present pulse to leading edge of next pulse).

At the receiver, the PPM signal received from the transmitter is broken into multiple PWM signals. These PWM signals are sent to and control the attached servos.


Last edited by hassellbear on Mon Aug 11, 2014 5:43 am, edited 5 times in total.



Mon Aug 11, 2014 4:36 am
Profile

Joined: Mon Jan 09, 2012 3:16 am
Posts: 351
Post Re: Use Utilite To Control RC Servos
Hardware

The hardware required is:

1. Utilite
2. Radio Control Transmitter which will accept PPM input.
3. Compatible multi-channel Radio Control Receiver with PWM outputs.
4. Analog Servos

Attachment:
UtiliteServoCtrlEquip.JPG
UtiliteServoCtrlEquip.JPG [ 224.43 KiB | Viewed 3822 times ]




The block diagram of the system is:

Attachment:
UtiliteServoCtrlBlock.png
UtiliteServoCtrlBlock.png [ 18.48 KiB | Viewed 3822 times ]



Software

The software required for Utilite to produce PPM control signals is a Python routine named ppm.py. It can be found here:

https://github.com/kangsterizer/Audio_PPM_Linux

The program ppm.py allows Utilite to generate PPM control signals via its analog sound output. The PPM data link is established by connecting Utilite's sound output to the RC Transmitter's PPM input. Below is an example of Utilite's PPM output.

Attachment:
Utilite_PPM_Loop.gif
Utilite_PPM_Loop.gif [ 245.37 KiB | Viewed 3822 times ]


Last edited by hassellbear on Sun Dec 21, 2014 2:40 am, edited 2 times in total.



Mon Aug 11, 2014 4:52 am
Profile

Joined: Mon Jan 09, 2012 3:16 am
Posts: 351
Post Re: Use Utilite To Control RC Servos
Results

The results of the Utilite Servo Control Project were good. The program ppm.py easily and accurately controls the positions of multiple servos. The one drawback is there is a bit of time lag between the control input and the servo response. This lag is likely due to ppm.py being an interpreted program as opposed to an efficient compiled version.

Below are actual Utilite control inputs and the resulting servo responses.

Attachment:
UtiliteServoInputSmall.gif
UtiliteServoInputSmall.gif [ 38.8 KiB | Viewed 3820 times ]


Attachment:
UtiliteServoResponse.gif
UtiliteServoResponse.gif [ 214.54 KiB | Viewed 3820 times ]



Conclusions

1. Fun project
2. Utilite again demonstrates its versatility


Mon Aug 11, 2014 5:15 am
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 3 posts ] 

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.