kopia lustrzana https://github.com/jamesgao/kiln_controller
Still fixing small bugs in stepper, now tested
rodzic
2a216d4477
commit
0d30eb02f4
|
@ -1,6 +1,7 @@
|
||||||
import time
|
import time
|
||||||
import atexit
|
import atexit
|
||||||
import threading
|
import threading
|
||||||
|
import warnings
|
||||||
import Queue
|
import Queue
|
||||||
|
|
||||||
from RPi import GPIO
|
from RPi import GPIO
|
||||||
|
@ -78,7 +79,7 @@ class Stepper(threading.Thread):
|
||||||
target = self.phase + step
|
target = self.phase + step
|
||||||
while self.phase != target:
|
while self.phase != target:
|
||||||
now = time.time()
|
now = time.time()
|
||||||
self.phase += 1 if target > self.phase else 1
|
self.phase += 1 if target > self.phase else -1
|
||||||
output = self.pattern[self.phase%len(self.pattern)]
|
output = self.pattern[self.phase%len(self.pattern)]
|
||||||
for pin, out in zip(self.pins, output):
|
for pin, out in zip(self.pins, output):
|
||||||
GPIO.output(pin, out)
|
GPIO.output(pin, out)
|
||||||
|
@ -89,6 +90,7 @@ class Stepper(threading.Thread):
|
||||||
target += step
|
target += step
|
||||||
if block:
|
if block:
|
||||||
self._step(target - self.phase, speed)
|
self._step(target - self.phase, speed)
|
||||||
|
self.finished.set()
|
||||||
|
|
||||||
diff = ispeed - (time.time() - now)
|
diff = ispeed - (time.time() - now)
|
||||||
if (diff) > 0:
|
if (diff) > 0:
|
||||||
|
@ -117,7 +119,7 @@ class Stepper(threading.Thread):
|
||||||
|
|
||||||
|
|
||||||
class Regulator(object):
|
class Regulator(object):
|
||||||
def __init__(self, maxsteps=4500, minsteps=2500, speed=200, ignite_pin=26):
|
def __init__(self, maxsteps=4500, minsteps=2500, speed=150, ignite_pin=26):
|
||||||
"""Set up a stepper-controlled regulator. Implement some safety measures
|
"""Set up a stepper-controlled regulator. Implement some safety measures
|
||||||
to make sure everything gets shut off at the end
|
to make sure everything gets shut off at the end
|
||||||
|
|
||||||
|
@ -163,7 +165,7 @@ class Regulator(object):
|
||||||
self.current = 0
|
self.current = 0
|
||||||
|
|
||||||
def set(self, value, block=False):
|
def set(self, value, block=False):
|
||||||
if not 0 < value < 1:
|
if not 0 <= value <= 1:
|
||||||
raise ValueError("Must give fraction between 0 and 1")
|
raise ValueError("Must give fraction between 0 and 1")
|
||||||
target = int(value * (self.max - self.min) + self.min)
|
target = int(value * (self.max - self.min) + self.min)
|
||||||
nsteps = target - self.current
|
nsteps = target - self.current
|
||||||
|
|
|
@ -2,7 +2,7 @@ import time
|
||||||
import stepper
|
import stepper
|
||||||
|
|
||||||
def test_noblock():
|
def test_noblock():
|
||||||
reg = Regulator(ignite_pin=None)
|
reg = stepper.Regulator(ignite_pin=None)
|
||||||
|
|
||||||
reg.ignite()
|
reg.ignite()
|
||||||
reg.set(.5)
|
reg.set(.5)
|
||||||
|
|
Ładowanie…
Reference in New Issue