[Color Computer] [coco] Learning MW C
keeper63 at cox.net
Mon Aug 14 11:41:04 EDT 2006
I think Joel has it spot-on with his "step 4" - if you aren't able to
get the speed out the CoCo, you might have to drive everything with
custom hardware. However, depending on what you are planning to do, a
full Linux box may be overkill.
If this were my project (and yes, I do have a far back-burner CNC
project in mind, but with everything else I am doing, I probably won't
get to play with it for a while), and I was going to use a CoCo, I would
interface it with either the bit-banger serial port or the RS-232 pak.
If I wanted to hit the widest audience (if I were to release the code
and such), I would go with the bit-banger port. I would interface this
to a Basic Stamp or similare microcontroller (actually, the new Parallax
Propeller might be perfect - one core per stepper). The uC would run the
steppers and such, so that I could send simple positioning commands in a
serial fashion. The uC would buffer the commands as fast as they came
in, and then feed the output to the steppers via driver circuitry just
as Joel suggested.
On the software side, I would either stick with OS-9/BASIC-09, or just
use regular DECB. Regardless, the code to do this would just send the
output down the bit-banger port, using the regular methods for either OS.
The tricky part, and the far more interesting and useful part in my
opinion (from a community perspective), is in the ability of the CoCo to
read GCODE from a text file and output the proper positioning commands.
I am sure there are some simple DOS or Linux code (or you could crib
from the EMC code if it is open source) to read and translate the GCODE.
In this case, it might be simpler to stick with MW C to translate the
code needed. Once you got that working (using whatever GCODE test cases
there are for testing), then you could start on building a simple CAD
program for the CoCo (I would stick with a CoCo 3 using the 640x200
mode) that could save to DXF and GCODE. For the CAD code, I would either
"roll my own" or base it off of Lee Adams' CADD-1.BAS program presented
in his book "Supercharged Graphics" (ISBN 0-8306-2959-9) - which is a
simple CAD program done in BASIC for the IBM-PC (he also shows a simple
3D CAD program in the same book). The book, though, is likely out of
print, unfortunately. I translated a few of his 3D graphics programs
from a different book in the same "series", from the IBM-PC BASIC he
uses (I think it is GWBASIC) to DECB (long time ago, not recently - I
was in high school at the time), and they worked well. In fact,
somewhere I still have the code. Lee Adams also had a similar series
where all the code is C as well.
I don't know if the CoCo could drive a CNC machine directly at a fast
enough rate to be useful (doing everything in software). I know it can
drive the hardware in some manner (hence the old CoCo ROS project), but
speed is the issue when doing everything in software. If you were
doing a custom interface via the cartridge slot and optimized the driver
in assembly, it might be possible (I say this from seeing a very old CNC
machine in storage at a surplus place here in Phoenix that was driven by
an old 5120 IBM-PC - so in theory, it should be possible). I just don't
think it would be worth it unless this was only going to be something
for you and you alone to use. If you planned on giving this to the
community, it would be far more useful to have a GCODE interpreter than
a custom hardware interface, IMHO...
-- Andrew L. Ayers
Glendale (Phoenix), Arizona
More information about the Coco