Chapter 1: The Servo Controller
Iris.4 Mobile Robot Manual
by Robert T. Arrigo and David L. Anderson
The Mind Project, Illinois State University

Background Information


A servo is a tiny electric motor that can be found in many hobby store toys, such as electric cars and airplanes. The robot arm you will be building has 5 servos. Most servos can rotate through a 180 degree angle.

Servos are controlled by electrical impulses. The kind of electrical pulses that are sent and the length of time they remain on, determines what direction the servo will rotate and how far it will rotate.

Wheel Motors

Iris has two drive wheels, each driven by matching 12 volt (V) electric motors. Unlike servo motors, however, the drive motors spin through a full 360 degrees, over and over again. Each motor is attached to a 5" rubber wheel equipped with treads to improve traction. The motor's top rotational speed is 12 revolutions per minute, which translates to about 0.5 feet per second (that is, Iris moves pretty slowly). The Servo Controller controls the drive motors with two auxiliary outputs (labeled AUX). When relays are enabled, power flows from the battery to the drive motors, which convert this electric power into energy to spin the robot's wheels.

The Servo Controller:
Converting Digital to Analog

The Servo Controller is an electronic device, about half the size of a CD case, that serves as an interface between the digital world of computers, and the analog world of servos and motors. You see, computers handle only data in a digital form (0's and 1's). Analog servos and motors, however, can move through virtually any value between 0 and 1. For instance, given an impulse of 2 ms, a servo will rotate to 90 degrees clockwise. You can reduce the impulse to 1.8 ms, 1.2948 ms, or 1.0000001 ms, and the servo will rotate to a new position that is proportional to the length of the new pulse. This is the nature of the analog servo motor: there is a sense of rotating "a little bit more" and "a little bit less". On the other hand, a servo motor with digital states would only be able to rotate to a predetermined set of positions; you couldn't rotate the servo a little bit more, or a little bit less - you are stuck moving the servo into one of several hundred predetermined positions.