Cyberware Rotary Documentation
Starting up and Turning off the scanner
make sure the SCSI box (on top of "montoya") and the power supply
box (on the table next to the rotary table) are turned on.
doubleclick "CyScan" icon on desktop, then two windows appear: "CyScan" app and "CyScan Tcl Prompt" shell.
in "CyScan" window, select "Scanner -> Select Device" and press "Accept" in "Choose a Scanner" dialog box (only one device shown).
in "CyScan" window, press "Setup" button (lower left corner) and
then press "Accept" in "Setup MX Scanner" dialog box.
now commands can be typed into the "CyScan Tcl Prompt" window, or
select "Scanner -> Home" in the "CyScan" app window to return the
table to its default position.
to restart the application, type "r" and press Enter into the
"CyScan Tcl Prompt" shell window, then follow the instructions
above to initialize.
to end the session, press the "Exit" button (lower right corner)
in the "CyScan" window.
turn off the SCSI box and power supply box.
Basic motion commands
mt off
Turn of power to the motor
mt abs <pos> [<vel> [<acc>]]
Move to an absolute (vs. relative) position.
is signed degrees. Normally in the range -380.0 to
380.0, but practically any value is accepted. The
controller treats the axis as if it was linear, that
is the values do not wrap at 360. A move from 360
to 0 is one turn. Acceleration cannot be set unless
axis is off. is unsigned velocity in degrees
per second. Reasonable values are 0 > vel < 60.
is acceleration in degrees/sec/sec. It's
default value is probably good enough. Typical
values are 0 > acc < 100. At some point the
system cannot supply the torque and you get a
positionError (see below).
After setting the velocity, it will persist at that value until being set again to another value.
mt rel <pos> [<vel> [<acc>]]
Move to relative position, e.g., 20 degrees beyond the current
position. See notes about absolute position above for more explanation
of arguments.
mt set status
Returns a list of status tokens. Noteworthy are
positionError which means the servo couldn't
keep up with the request, and commandError which
means you made a mistake. These flags are
reset with:
mt rsti <flag>
is positionError or commandError, etc.
Some flags cannot be reset.
mt set posReal
Returns the actual position, degrees.
dev unHome
dev home nullcmd
Performs a home cycle.
mt dialog
Posts a Tk dialog that is of some use. The
buttons at the bottom are broken. The slider
is functional. The position readout is good.
Synchroning
The ideal way to run the Kodak camera and motion table in
synchrony would be to have a single application that talked to
both of these pieces of hardware. Unfortunately, we don't have
such a program. Here are two possible methods for achieving
approximate synchronization:
1. Write tcl scripts for the camera and for the table with simple
timing commands and then run them as separate apps at the same
time (presumably by hitting CR at roughly the "same instant"). I
believe the "after" command would do the trick. I.e., one file
could say something resembling:
after 1000 rot_10_degrees
after 3000 rot_10_degrees
after 5000 rot_10_degrees
after 7000 rot_10_degrees
...
while the other would say:
after 2000 take_image
after 4000 take_image
after 6000 take_image
after 8000 take_image
...
and the rotations would happen every odd second, and the picure
would be shot every even second. Of course, you'd need to figure
out what timings are actually appropriate.
2. Have the apps communicate with each other by creating and
deleting (or perhaps just moving around) files that are
"watched-for" by the two apps; i.e., set up a simple handshake
mechanism based on the existence of a file or two. You might be
able to do this with just the "file" command, or you might also
want the "open" and maybe "puts" commands.