Newsgroups: comp.robotics
From: mikeb@mbcomp.demon.co.uk (Michael John Brooks)
Path: brunix!sgiblab!darwin.sura.net!math.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!doc.ic.ac.uk!warwick!qmw-dcs!qmw!demon!mbcomp.demon.co.uk!mikeb
Subject: Re: Can I use pulse-width modulation? 
Distribution: world
References: <2474d8INNe1r@golem.wcc.govt.nz>
Organization: MB Computing
X-Newsreader: Simple NEWS 1.90 (ka9q DIS 1.21)
Lines: 56
Date: Tue, 10 Aug 1993 20:45:01 +0000
Message-ID: <745015501snz@mbcomp.demon.co.uk>
Sender: usenet@demon.co.uk

In article <2474d8INNe1r@golem.wcc.govt.nz> ireland@golem.wcc.govt.nz writes:

:In several places recently, including comp.robotics and the 6.270
:Course Notes which I copied from MIT, I have seen mention of the term
:"pulse-width modulation". I gather that this amounts to motor speed
:control by very fast on/off switching of the motor power.

Evan,
  I have only tuned into this newsgroup, but my understanding of the
term "pulse-width modulation" is a derivative from the control mechanism
of servos from radio-control units. Originally, proportional radio
control worked by sending, for each servo, a short stream of on/off
pulses. The servo's electronics look at the wavelength/ pulse-width/
frequency of these pulses, and from this interprets the desired
position of the servo arm. The servo knows when it has reached the
desired position because as the arm moves, it moves a potentiometer
which is a feedback to the servo's electronics. By replacing the
movable potentiometer with one of fixed value, the servo becomes
a motor whose direction and speed are controlled by the width of
the binary pulse fed into it. This is certainly the system that
was used in the old micromice.

  (deleted)
:Initially, the robot will be controlled via a RS232 cable to a PC
:compatible, i.e. I am building a robot with a "remote brain". At some
:stage I will attempt to replace the RS232 cable with a wireless
:(radio) link.
  (Deleted)
:(4) I would welcome comments on the issue of "remote" versus "local"
:    robot control.
  (deleted)

My advice is:

Don't use a serial line to control a robot - the bandwidth is
limited, and the hardware time-division multiplexing which
would be necessary to control multiple motors would be an
unnecessary headache.

Instead, construct your robot with a simple built-in brain,
like an M6809 or similar - a cheap, 8 bit CPU for which
assemblers are cheap. Use servos for all your motors/ arms,
controlled by the on-board CPU. Beg/ borrow/ steal an EPROM 
blower, and blow a program whose sole purpose is to accept 
larger programs down the serial line from the PC. This then
gives you a standalone robot which is very easy to reprogram.
Even if you do want your robot to act on instructions from
the PC, this is by far the best way to approach it, as the
PC's instructions can be simple one-byte affairs which the
robot receives down the line, and its processor acts on.

Hope this is of some help.
-- 
Mike Brooks

mikeb@mbcomp.demon.co.uk
