3D Drucker Quadrate

from time import sleep
import RPi.GPIO as GPIO

# Einstellen, dass die GPIO-Zuweisung so ist wie auf dem Bord
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)

# Variablen erstellen
# Anschluesse auf dem Board

# x-Achse
A=12
B=16
C=18
D=22
# y-Achse
E=11
F=13
G=15
H=29
# z-Achse
I=35
J=36
K=37
L=38

# Pausenzeit
delay = 0.0055
# Umdrehungen
steps = 48
stift = 10
# Aussenschleife ( Anzahl der Quadrate )
loop = 4

# GPIO Pins vorbereiten
GPIO.setup(A,GPIO.OUT)
GPIO.setup(B,GPIO.OUT)
GPIO.setup(C,GPIO.OUT)
GPIO.setup(D,GPIO.OUT)
GPIO.setup(E,GPIO.OUT)
GPIO.setup(F,GPIO.OUT)
GPIO.setup(G,GPIO.OUT)
GPIO.setup(H,GPIO.OUT)
GPIO.setup(I,GPIO.OUT)
GPIO.setup(J,GPIO.OUT)
GPIO.setup(K,GPIO.OUT)
GPIO.setup(L,GPIO.OUT)
GPIO.output(A, False)
GPIO.output(B, False)
GPIO.output(C, False)
GPIO.output(D, False)
GPIO.output(E, False)
GPIO.output(F, False)
GPIO.output(G, False)
GPIO.output(H, False)
GPIO.output(I, False)
GPIO.output(J, False)
GPIO.output(K, False)
GPIO.output(L, False)

# Proceduren mit vier zu uebergebenden Werten
def setStepx(w1, w2, w3, w4):
GPIO.output(A, w1)
GPIO.output(B, w2)
GPIO.output(C, w3)
GPIO.output(D, w4)

def setStepy(w1, w2, w3, w4):
GPIO.output(E, w1)
GPIO.output(F, w2)
GPIO.output(G, w3)
GPIO.output(H, w4)

def setStepz(w1, w2, w3, w4):
GPIO.output(I, w1)
GPIO.output(J, w2)
GPIO.output(K, w3)
GPIO.output(L, w4)

# Aeussere Schleife (Anzahl der Quadtrate )

for x in range(0, loop):

# stift senken

for i in range(0, stift):
setStepz(0,1,0,0)
sleep(delay)
setStepz(0,1,0,1)
sleep(delay)
setStepz(0,0,0,1)
sleep(delay)
setStepz(1,0,0,1)
sleep(delay)
setStepz(1,0,0,0)
sleep(delay)
setStepz(1,0,1,0)
sleep(delay)
setStepz(0,0,1,0)
sleep(delay)
setStepz(0,1,1,0)
sleep(delay)
print i

# X vorwaerts

for i in range(0, steps):
setStepx(0,1,1,0)
sleep(delay)
setStepx(0,0,1,0)
sleep(delay)
setStepx(1,0,1,0)
sleep(delay)
setStepx(1,0,0,0)
sleep(delay)
setStepx(1,0,0,1)
sleep(delay)
setStepx(0,0,0,1)
sleep(delay)
setStepx(0,1,0,1)
sleep(delay)
setStepx(0,1,0,0)
sleep(delay)
print i

# Y vorwaerts

for i in range(0, steps):
setStepy(0,1,1,0)
sleep(delay)
setStepy(0,0,1,0)
sleep(delay)
setStepy(1,0,1,0)
sleep(delay)
setStepy(1,0,0,0)
sleep(delay)
setStepy(1,0,0,1)
sleep(delay)
setStepy(0,0,0,1)
sleep(delay)
setStepy(0,1,0,1)
sleep(delay)
setStepy(0,1,0,0)
sleep(delay)
print i
# X rueckwaerts
for i in range(0, steps):
setStepx(0,1,0,0)
sleep(delay)
setStepx(0,1,0,1)
sleep(delay)
setStepx(0,0,0,1)
sleep(delay)
setStepx(1,0,0,1)
sleep(delay)
setStepx(1,0,0,0)
sleep(delay)
setStepx(1,0,1,0)
sleep(delay)
setStepx(0,0,1,0)
sleep(delay)
setStepx(0,1,1,0)
sleep(delay)
print i

# Y rueckwaerts

for i in range(0, steps):
setStepy(0,1,0,0)
sleep(delay)
setStepy(0,1,0,1)
sleep(delay)
setStepy(0,0,0,1)
sleep(delay)
setStepy(1,0,0,1)
sleep(delay)
setStepy(1,0,0,0)
sleep(delay)
setStepy(1,0,1,0)
sleep(delay)
setStepy(0,0,1,0)
sleep(delay)
setStepy(0,1,1,0)
sleep(delay)
print i

# Stift heben
for i in range(0, stift):
setStepz(0,1,1,0)
sleep(delay)
setStepz(0,0,1,0)
sleep(delay)
setStepz(1,0,1,0)
sleep(delay)
setStepz(1,0,0,0)
sleep(delay)
setStepz(1,0,0,1)
sleep(delay)
setStepz(0,0,0,1)
sleep(delay)
setStepz(0,1,0,1)
print i

# 4 vor X
for i in range(0, 4):
setStepx(0,1,1,0)
sleep(delay)
setStepx(0,0,1,0)
sleep(delay)
setStepx(1,0,1,0)
sleep(delay)
setStepx(1,0,0,0)
sleep(delay)
setStepx(1,0,0,1)
sleep(delay)
setStepx(0,0,0,1)
sleep(delay)
setStepx(0,1,0,1)
sleep(delay)
setStepx(0,1,0,0)
sleep(delay)
print i

# 4 vor Y
for i in range(0, 4):
setStepy(0,1,1,0)
sleep(delay)
setStepy(0,0,1,0)
sleep(delay)
setStepy(1,0,1,0)
sleep(delay)
setStepy(1,0,0,0)
sleep(delay)
setStepy(1,0,0,1)
sleep(delay)
setStepy(0,0,0,1)
sleep(delay)
setStepy(0,1,0,1)
sleep(delay)
setStepy(0,1,0,0)
sleep(delay)
print i

# Quadrat um 8 Umdrehungen verkleinern
steps = steps-8

# GPIO Pins aufraeumen
GPIO.cleanup()