Personal Robotics
even BASIC Stamp user, the different
communications methods, combined
with its full set of hardware features
offered on the IsoPod make it the
ideal universal peripheral. You could
easily use it as an R/C servo engine,
quadrature reader, sensor reader, and
spoon-feed the data to and from your
microcontroller or microcomputer of
choice. There are many users who
have gone this route, then find themselves handing more and more processing power to the IsoPod.
The IsoMax programming language supplied with the IsoPod is
really quite unique as well. IsoMax is
actually a superset of FORTH, an
arcane and venerable language often
associated with users who have
almost a religious reverence for it.
While covering FORTH is beyond the
scope of this article, IsoMax incorporates enough sufficiently novel concepts that it is worth mentioning.
The lack of FORTH's popularity,
in my opinion, is that it is really a language construction set. When you
define a function, you actually end up
factoring it into common elements,
and re-using them over and over
again. In doing this, you are writing
what I call MYFORTH, and every-body's MYFORTH is different. Back
when everyone was trying to classify
and sort the different languages out
there, FORTH was left looking a bit
chaotic. This has lead to finding documentation difficult. You will not drive
to your local mall, grab a coffee, and
decide which FORTH text you are
going to buy. Fortunately, there is
enough documentation on New
Micros' website to get you going.
To begin, the most novel thing
about IsoMax is the fact that it actually lives in the IsoPod itself. All you
need is a serial port, terminal software, and a power supply. I often start
a project by simulating the hardware
on my desktop, and getting the bulk
of my program code going before it
even sees the real hardware it will be
working with.
The other truly unique thing
about IsoMax is that it is multitasking,
and even the multitasker is implemented in a unique way. The multitasker is actually time-synchronous.
What this means is that you establish
a frequency at which all of your
processes — called virtual machines
— get run, and the multitasker runs
them one by one, in the order you
want them to be run. In essence, you
break the flow of time into granules.
In every granule of time, everything
gets done.
Another neat thing about the
multitasker is that while your programs are running, you can actually
still communicate with the processor
during the foreground task slice. You
can set or read registers, change the
contents of variables, even write new
words that get compiled.
F
o
r
E
l
e
c
t
r
o
n
i
c
s
NUTS & VOLTS
E
v
e
r
y
t
h
i
n
g
18
FEBRUARY 2004