from __future__ import division import serial, struct, time #def move(servo,value): # if value > 254: value=254 # ser.write(struct.pack("BBB",255,servo,value)) def move(servo,value): pos=value*5000/256 +500 ser.write(struct.pack("BBBBBB",128,1,4,servo,pos//128,pos%128)) def flat(): move(0,128) move(1,128) move(2,128) def bridge(): move(0,60) move(1,128) move(2,60) def curl(): move(0,255) move(1,0) move(2,255) def rear(): move(2,128) move(1,0) move(0,0) ser=serial.Serial("COM3") try: curl() for i in range(256,0,-1): move(0,i) move(0,i) for i in range(0,256): move(0,i) move(0,i) for i in range(5): bridge() time.sleep(0.5) flat() time.sleep(0.5) rear() time.sleep(5) finally: ser.close()