Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from gpiozero import OutputDevice
- from time import sleep
- class Motors:
- def __init__(self):
- self.DELAY = 0.001
- pin1 = OutputDevice(6)
- pin2 = OutputDevice(13)
- pin3 = OutputDevice(19)
- pin4 = OutputDevice(26)
- pin5 = OutputDevice(12)
- pin6 = OutputDevice(16)
- pin7 = OutputDevice(20)
- pin8 = OutputDevice(21)
- self.stepPins1 = [pin1, pin2, pin3, pin4]
- self.stepPins2 = [pin5, pin6, pin7, pin8]
- self.seq = [[1, 0, 0, 1],
- [1, 0, 0, 0],
- [1, 1, 0, 0],
- [0, 1, 0, 0],
- [0, 1, 1, 0],
- [0, 0, 1, 0],
- [0, 0, 1, 1],
- [0, 0, 0, 1]]
- def moveStep1(self, degrees):
- if degrees >= 0:
- for i in range(int(degrees * (13 / 9))):
- for sequence in self.seq:
- for pin in range(len(self.stepPins1)):
- if sequence[pin] == 1:
- self.stepPins1[pin].on()
- else:
- self.stepPins1[pin].off()
- sleep(self.DELAY)
- else:
- for i in range(int(abs(degrees) * (13 / 9))):
- for sequence in reversed(self.seq):
- for pin in range(len(self.stepPins1)):
- if sequence[pin] == 1:
- self.stepPins1[pin].on()
- else:
- self.stepPins1[pin].off()
- sleep(self.DELAY)
- def moveStep2(self, degrees):
- if degrees >= 0:
- for i in range(int(degrees * (13 / 9))):
- for sequence in self.seq:
- for pin in range(len(self.stepPins2)):
- if sequence[pin] == 1:
- self.stepPins2[pin].on()
- else:
- self.stepPins2[pin].off()
- sleep(self.DELAY)
- else:
- for i in range(int(abs(degrees) * (13 / 9))):
- for sequence in reversed(self.seq):
- for pin in range(len(self.stepPins2)):
- if sequence[pin] == 1:
- self.stepPins2[pin].on()
- else:
- self.stepPins2[pin].off()
- sleep(self.DELAY)
- if __name__ == '__main__':
- motor = Motors()
- motor.moveStep1(360)
- motor.moveStep1(-360)
- motor.moveStep2(360)
- motor.moveStep2(-360)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement