From a066b13d20c2d53e8f04c90cd2be9763470269c6 Mon Sep 17 00:00:00 2001 From: marisa Date: Sun, 29 Oct 2023 20:56:03 -0300 Subject: [PATCH] Fix gpio setmode --- motor_passo/__main__.py | 5 +++-- motor_passo/motor.py | 13 +++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/motor_passo/__main__.py b/motor_passo/__main__.py index 0e552e6..1ec6b40 100644 --- a/motor_passo/__main__.py +++ b/motor_passo/__main__.py @@ -2,9 +2,10 @@ from motor_passo.motor import Motor def main(): - motor = Motor([5, 6, 13]) + motor = Motor([13, 19, 26]) motor.setup() - motor.step(24 * 2) + motor.set_speed(90) + motor.step(24 * 100) if __name__ == "__main__": diff --git a/motor_passo/motor.py b/motor_passo/motor.py index b6b6ec8..2e6ca07 100644 --- a/motor_passo/motor.py +++ b/motor_passo/motor.py @@ -10,13 +10,19 @@ class Motor: rev_steps: int = 24 _delay: int = 0 + _step_configs: list[list[int]] = field(default_factory=lambda: [ + [[1, 0, 0], [0, 1, 0], [0, 0, 1]], + ]) def __post_init__(self) -> None: self.set_speed(4) def setup(self) -> None: + gpio.setmode(gpio.BCM) + for pin in self.pins: - gpio.setmode(pin, gpio.OUT) + gpio.setup(pin, gpio.OUT) + gpio.output(pin, gpio.LOW) def step(self, steps: int) -> None: direction = int(steps / abs(steps)) @@ -32,13 +38,12 @@ class Motor: sleep(self._delay) def set_speed(self, rpm: int) -> None: - self._delay = 60 * 1000 / self.rev_steps / rpm + self._delay = 60 / self.rev_steps / rpm def _step(self, step_num: int): assert (step_num >= 0 and step_num < 3) - confs = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] - conf = confs[step_num] + conf = self._step_configs[0][step_num] for p, c in zip(self.pins, conf): gpio.output(p, c)