What is a Continuous Rotation Servo?

From ROBOTC API Guide
< Tutorials‎ | Arduino Projects/Mobile Robotics/BoeBot
Revision as of 13:34, 11 October 2012 by Jwatson (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

What is a Servo?

Before understanding what a continuous rotation servo is, it is important to know what a servo is.

Standard hobby servo

At the most basic level, a servo is just a controllable motor. There are various types of servos. The Standard Servo is a geared down motor that has a limited range of rotation. These servos use internal electronics to identify the current angle of the motor, and using an input signal, are told what position is desired. The electronics then perform calculations and will make the motor spin one way or the other to move to the desired position.

Most servos utilize a form of PWM to receive the desired position from a controller. This is done by having a PWM signal with a period of 20ms. It would be very easy for another device to measure the duty-cycle or pulse time and use that to receive data simply by adjusting the duty-cycle of the signal. In this case the servo receives the PWM signal and measures the time that the signal is high. There are some variations for maximum and minimum pulse durations among the servos. However, all servos should position the servo arm (or 'horn') at the mid-point of its range of motion when the pulse received is 1.5ms. Most servos have a maximum input of 2.0ms, and a minimum input of 1.0ms. So if you were to send a pulse for 1.0ms, the servo would go to one end of travel, and it would go to the other end if you sent a pulse for 2.0ms.

PWM signal samples for controlling a servo

So What is a Continuous Rotation Servo?

A continuous rotation servo is a servo that does not have a limit on its range of motion. Instead of having the input signal determine which position the servo should rotate to, the continuous rotation servo relates the input to the speed of the output and direction. For example, an input PWM signal of 1.5 ms relates to the center position, so the servo will not move. A PWM signal of 1.0 will turn the servo full-speed in the clockwise direction and a PWM signal of 2.0 will turn it full speed in the counter-clockwise direction. Values in between 1.0 ms and 2.0 ms will turn the servo at corresponding speeds and directions.

Input Pulse (ms) Rotation Speed (%) Direction of rotation
1.0 100 Clockwise
1.1 80 Clockwise
1.2 60 Clockwise
1.3 40 Clockwise
1.4 20 Clockwise
1.5 0 N/A
1.6 20 Counter-Clockwise
1.7 40 Counter-Clockwise
1.8 60 Counter-Clockwise
1.9 80 Counter-Clockwise
2.0 100 Counter-Clockwise