From 7451362d40ade0d7010ef9a2f5e41910252f36bd Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Fri, 25 Aug 2017 17:36:45 +0200 Subject: [PATCH] Now we have a working stepper driver with little delay and without large lists. Need to refine the evolution step count --- curtains/stepper_driver.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/curtains/stepper_driver.py b/curtains/stepper_driver.py index 07e4586..1c3b0a5 100644 --- a/curtains/stepper_driver.py +++ b/curtains/stepper_driver.py @@ -3,7 +3,7 @@ # @Author: KevinMidboe # @Date: 2017-08-25 16:04:49 # @Last Modified by: KevinMidboe -# @Last Modified time: 2017-08-25 16:51:30 +# @Last Modified time: 2017-08-25 17:34:07 from time import sleep import RPi.GPIO as gpio @@ -24,16 +24,17 @@ class Stepper: def cleanGPIO(self): gpio.cleanup() - def rotate(l, n=1): + def rotate(self, l, n=1): return l[n:] + l[:n] - def togglePin(pins, waitTime=0.001): - for pin in pins: - gpio.output(pin, True) - sleep(waitTime) + def togglePin(self, pins): + for pin in self.pins: + if pin in pins: + gpio.output(pin, True) + else: + gpio.output(pin, False) - for pin in pins: - gpio.ouput(pin, False) + sleep(0.001) def step(self, rotations, dir, speed=1, forever=False): for pin in self.pins: @@ -53,13 +54,15 @@ class Stepper: for i in range(2): self.togglePin([pinState[0]]) self.togglePin([pinState[0], pinState[1]]) - + pinState = self.rotate(pinState) + steps -=1 if __name__ == '__main__': pins = [17, 18, 27, 22] stepper = Stepper(pins) - stepper.step(2, 'left') \ No newline at end of file + stepper.step(10, 'left') + stepper.cleanGPIO()