cyclone-pcb-factory/Software/PythonScripts/Replath/pyRepRap/scripts/reprapcontrol

170 lines
4.3 KiB
Plaintext
Raw Normal View History

2013-09-26 06:42:44 +07:00
#!/usr/bin/python
import serial, reprap, time, sys
reprap.openSerial( 0, 19200, 60 )
# these devices are present in network
reprap.cartesian.x.active = True
reprap.cartesian.y.active = True
reprap.cartesian.z.active = True
reprap.extruder.active = True
reprap.cartesian.x.setNotify()
reprap.cartesian.y.setNotify()
reprap.cartesian.z.setNotify()
reprap.cartesian.x.limit = 2700
reprap.cartesian.y.limit = 2500
reprap.cartesian.y.limit = 2000
def printHelp():
print "\nreprapcontrol command [args]"
print " Commands:"
print " stop Stop all axies"
print " reset Send all axies to home"
print " pos Print current position"
print " goto [x] [y] [z] Go to specified position"
print " power [0 to 63] Set power level"
print " speed [0 to 255] Set steper speed"
print " go Test routine"
print " free Power off steper motors"
print " run [x/y] [speed] Spin motor forwards"
print " runb [x/y] [speed] Spin motor backwards"
print " step [x/y/z] Step motor forward"
print " stepb [x/y/z] Step motor backwards"
def printPos():
x, y, z = reprap.cartesian.getPos()
print "Location [" + str(x) + ", " + str(y) + ", " + str(z) + "]"
print "================================================================"
if len(sys.argv) < 2:
printHelp()
########### Cartesian control commands #########
# Stop all steppers
if sys.argv[1] == "stop":
reprap.cartesian.stop()
# Reset all axies
elif sys.argv[1] == "reset":
reprap.cartesian.homeReset( waitArrival = True, speed = 220 )
# Print current positon
elif sys.argv[1] == "pos":
printPos()
# Goto a specific location
elif sys.argv[1] == "goto":
reprap.cartesian.seek( ( int(sys.argv[2]), int(sys.argv[3]), int(sys.argv[4]) ), speed = 200, waitArrival = True)
# Set stepper power (%)
elif sys.argv[1] == "power":
reprap.cartesian.setPower( int( sys.argv[2] ) ) # This is a value from 0 to 63 (6 bits)
# Free motors (switch off all coils)
elif sys.argv[1] == "free":
reprap.cartesian.free()
# Test routine
elif sys.argv[1] == "go":
reprap.cartesian.seek( (1000, 1000, 0), 200, True )
time.sleep(2)
reprap.cartesian.seek( (500, 1000, 0), 200, True )
time.sleep(2)
reprap.cartesian.seek( (500, 500, 0), 200, True )
time.sleep(2)
reprap.cartesian.seek( (10, 10, 0), 200, True )
############## control of individual steppers #############
# Spin stepper forwards
elif sys.argv[1] == "run": # run axis
if sys.argv[2] == "x":
reprap.cartesian.x.forward( int(sys.argv[3]) )
elif sys.argv[2] == "y":
reprap.cartesian.y.forward( int(sys.argv[3]) )
elif sys.argv[2] == "z":
reprap.cartesian.z.forward( int(sys.argv[3]) )
# Spin stepper backwards
elif sys.argv[1] == "runb": #runb axis
if sys.argv[2] == "x":
reprap.cartesian.x.backward( int(sys.argv[3]) )
elif sys.argv[2] == "y":
reprap.cartesian.y.backward( int(sys.argv[3]) )
elif sys.argv[2] == "z":
reprap.cartesian.z.backward( int(sys.argv[3]) )
# Step motor forwards
elif sys.argv[1] == "step":
if sys.argv[2] == "x":
reprap.cartesian.x.forward1()
elif sys.argv[2] == "y":
reprap.cartesian.y.forward1()
elif sys.argv[2] == "z":
reprap.cartesian.z.forward1()
# Step motor backwards
elif sys.argv[1] == "stepb":
if sys.argv[2] == "x":
reprap.cartesian.x.backward1()
elif sys.argv[2] == "y":
reprap.cartesian.y.backward1()
elif sys.argv[2] == "z":
reprap.cartesian.z.backward1()
################# control of extruder #####################
# Test extrder motor
elif sys.argv[1] == "motor":
nn = 0
while 1:
if nn > 0:
nn = 0
else:
nn = 150
reprap.extruder.setMotor(reprap.CMD_REVERSE, nn)
time.sleep(1)
elif sys.argv[1] == "getinfo":
mtype = reprap.extruder.getModuleType()
version = reprap.extruder.getVersion()
print "module", mtype, "version", version
elif sys.argv[1] == "heat":
reprap.extruder.setHeat(255, 255, 255, 255)
#setHeat(self, lowHeat, highHeat, tempTarget, tempMax
elif sys.argv[1] == "temp":
print "Temp is ", reprap.extruder.getTemp()
############### scan network for devices ###################
# Scan snap network
elif sys.argv[1] == "scan":
reprap.scanNetwork()
# Test comms
elif sys.argv[1] == "test":
reprap.testComms()
else:
printHelp()
reprap.closeSerial()