> i want to learn how to control, say, a motor, remotely over the
> internet. does anyone know a good resource for learning the basics of
> this? thanks.
A complete reference? Sorry; I don't have one. However, here's my $0.02US.
Unless your project is for other people who don't like installing
programs, don't try interfacing with a web browser. They really
restrict what you can do. Webpages tend to be static; browsers were not
meant for real-time applications, although things are improving in that
regard (e.g. Ajax). A custom application gives you a lot more freedom
with the types of commands you can send and receive.
A few years ago, I would have recommended using Java. Right now, my
personal bias is leaning towards Qt (C++). If you don't mind the GPL,
Qt is free for use; get it at
Cross-platform C++ goodness. In addition to their GUI libraries, they
have a few easy to use networking classes. For example, I've used these
to stream camera images across a local network.
There package comes with a whole host of example programs, including
example network programs; you can see what these are on their website:
Other than the difficulties with networking, the added time delays can
introduce interesting problems. Basically, you want the actual motor
controller near the motor and sensors. If you try sending the control
signals over the network, they can arrive to late; this can lead to
oscillation, just like an echo down a long hall. In short: the user
should send target positions to the robot; the robot has a local
controller that knows how to achieve these goals, and it sends frequent
status updates back to the user.
As long as you don't need force-feedback, people can easily adapt to
moderate delays. Less than a tenth of a second are not a problem.
Visual feedback delays over a second may become annoying, and result in
operator impatience. Finding effective ways of dealing with this is
actually a hot research topic right now (teleoperation). Aggressive
approaches use a local simulator to approximate what the remote system
is doing, and feedback is used to keep the simulator accurate. In order
to avoid oscillation caused by delays, such systems generally present a
"soft" or "squishy" feeling to the operator; this keeps the operator
from reacting too fast.