sperren, wenn in Bewegung
This commit is contained in:
		@@ -1,5 +1,4 @@
 | 
				
			|||||||
from src.einstellungen import *
 | 
					from src.einstellungen import *
 | 
				
			||||||
#import RPi.GPIO as GPIO
 | 
					 | 
				
			||||||
import time
 | 
					import time
 | 
				
			||||||
import pigpio
 | 
					import pigpio
 | 
				
			||||||
import threading
 | 
					import threading
 | 
				
			||||||
@@ -7,9 +6,6 @@ import math
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
pi = pigpio.pi()
 | 
					pi = pigpio.pi()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#GPIO.setmode(GPIO.BCM)
 | 
					 | 
				
			||||||
#GPIO.setwarnings(False)
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
class motor():
 | 
					class motor():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, name, sp1, sp2, sp3, sp4, t1, t2, te, es, halten, schritte):
 | 
					    def __init__(self, name, sp1, sp2, sp3, sp4, t1, t2, te, es, halten, schritte):
 | 
				
			||||||
@@ -28,20 +24,12 @@ class motor():
 | 
				
			|||||||
        self.freq = freq
 | 
					        self.freq = freq
 | 
				
			||||||
        self.freq_halten = freq_halten
 | 
					        self.freq_halten = freq_halten
 | 
				
			||||||
        self.cyc_halten = cyc_halten
 | 
					        self.cyc_halten = cyc_halten
 | 
				
			||||||
        self.pwm1 = 0
 | 
					        self.aktiv = 0
 | 
				
			||||||
        self.pwm2 = 0
 | 
					 | 
				
			||||||
        self.pwm3 = 0
 | 
					 | 
				
			||||||
        self.pwm4 = 0
 | 
					 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    def start(self):
 | 
					 | 
				
			||||||
        pi.set_mode(self.sp1, pigpio.OUTPUT)
 | 
					        pi.set_mode(self.sp1, pigpio.OUTPUT)
 | 
				
			||||||
        pi.set_mode(self.sp2, pigpio.OUTPUT)
 | 
					        pi.set_mode(self.sp2, pigpio.OUTPUT)
 | 
				
			||||||
        pi.set_mode(self.sp3, pigpio.OUTPUT)
 | 
					        pi.set_mode(self.sp3, pigpio.OUTPUT)
 | 
				
			||||||
        pi.set_mode(self.sp4, pigpio.OUTPUT)
 | 
					        pi.set_mode(self.sp4, pigpio.OUTPUT)
 | 
				
			||||||
        #GPIO.setup(self.sp1, GPIO.OUT)
 | 
					 | 
				
			||||||
        #GPIO.setup(self.sp2, GPIO.OUT)
 | 
					 | 
				
			||||||
        #GPIO.setup(self.sp3, GPIO.OUT)
 | 
					 | 
				
			||||||
        #GPIO.setup(self.sp4, GPIO.OUT)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        pi.set_PWM_range(self.sp1, 100)
 | 
					        pi.set_PWM_range(self.sp1, 100)
 | 
				
			||||||
        pi.set_PWM_range(self.sp2, 100)
 | 
					        pi.set_PWM_range(self.sp2, 100)
 | 
				
			||||||
@@ -51,33 +39,21 @@ class motor():
 | 
				
			|||||||
        pi.set_PWM_frequency(self.sp1, self.freq)
 | 
					        pi.set_PWM_frequency(self.sp1, self.freq)
 | 
				
			||||||
        pi.set_PWM_dutycycle(self.sp1, 0)
 | 
					        pi.set_PWM_dutycycle(self.sp1, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #self.pwm1 = GPIO.PWM(self.sp1, self.freq)
 | 
					 | 
				
			||||||
        #self.pwm1.start(0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        pi.set_PWM_frequency(self.sp2, self.freq)
 | 
					        pi.set_PWM_frequency(self.sp2, self.freq)
 | 
				
			||||||
        pi.set_PWM_dutycycle(self.sp2, 0)
 | 
					        pi.set_PWM_dutycycle(self.sp2, 0)
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        #self.pwm2 = GPIO.PWM(self.sp2, self.freq)
 | 
					 | 
				
			||||||
        #self.pwm2.start(0)
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        pi.set_PWM_frequency(self.sp3, self.freq)
 | 
					        pi.set_PWM_frequency(self.sp3, self.freq)
 | 
				
			||||||
        pi.set_PWM_dutycycle(self.sp3, 0)
 | 
					        pi.set_PWM_dutycycle(self.sp3, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #self.pwm3 = GPIO.PWM(self.sp3, self.freq)
 | 
					 | 
				
			||||||
        #self.pwm3.start(0)
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        if self.halten == 1:
 | 
					        if self.halten == 1:
 | 
				
			||||||
            pi.set_PWM_frequency(self.sp4, self.freq_halten)
 | 
					            pi.set_PWM_frequency(self.sp4, self.freq_halten)
 | 
				
			||||||
            pi.set_PWM_dutycycle(self.sp4, cyc_halten)
 | 
					            pi.set_PWM_dutycycle(self.sp4, cyc_halten)
 | 
				
			||||||
            #self.pwm4 = GPIO.PWM(self.sp4, self.freq_halten)
 | 
					 | 
				
			||||||
            #self.pwm4.start(cyc_halten)
 | 
					 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            pi.set_PWM_frequency(self.sp4, self.freq)
 | 
					            pi.set_PWM_frequency(self.sp4, self.freq)
 | 
				
			||||||
            pi.set_PWM_dutycycle(self.sp4, 0)
 | 
					            pi.set_PWM_dutycycle(self.sp4, 0)
 | 
				
			||||||
            #self.pwm4 = GPIO.PWM(self.sp4, self.freq)
 | 
					 | 
				
			||||||
            #self.pwm4.start(0)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def vorwaerts(self, schritte, eichen=0):
 | 
					    def __vorwaerts(self, schritte, eichen=0):
 | 
				
			||||||
 | 
					        self.aktiv = 1
 | 
				
			||||||
        ges_schritte = schritte * 8
 | 
					        ges_schritte = schritte * 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if eichen == 1:
 | 
					        if eichen == 1:
 | 
				
			||||||
@@ -89,10 +65,10 @@ class motor():
 | 
				
			|||||||
       
 | 
					       
 | 
				
			||||||
        if self.halten == 1:
 | 
					        if self.halten == 1:
 | 
				
			||||||
            pi.set_PWM_frequency(self.sp4, self.freq)
 | 
					            pi.set_PWM_frequency(self.sp4, self.freq)
 | 
				
			||||||
            #self.pwm4.ChangeFrequency(self.freq)
 | 
					 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
        for i in range(int(schritte)):
 | 
					        for i in range(int(schritte)):
 | 
				
			||||||
            if self.pos >= self.schritte_max:
 | 
					            if self.pos >= self.schritte_max:
 | 
				
			||||||
 | 
					                self.aktiv = 0
 | 
				
			||||||
                break
 | 
					                break
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                self.pos += 1
 | 
					                self.pos += 1
 | 
				
			||||||
@@ -107,18 +83,16 @@ class motor():
 | 
				
			|||||||
            einzelschritt(self.sp4, 1, ges_schritte, temp_pos + 6, temp_t1, temp_t2)
 | 
					            einzelschritt(self.sp4, 1, ges_schritte, temp_pos + 6, temp_t1, temp_t2)
 | 
				
			||||||
            einzelschritt(self.sp3, 0, ges_schritte, temp_pos + 7, temp_t1, temp_t2)
 | 
					            einzelschritt(self.sp3, 0, ges_schritte, temp_pos + 7, temp_t1, temp_t2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            #print(str(self.pos))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if self.halten == 1:
 | 
					        if self.halten == 1:
 | 
				
			||||||
            pi.set_PWM_frequency(self.sp4, self.freq_halten)
 | 
					            pi.set_PWM_frequency(self.sp4, self.freq_halten)
 | 
				
			||||||
            pi.set_PWM_dutycycle(self.sp4, cyc_halten)
 | 
					            pi.set_PWM_dutycycle(self.sp4, cyc_halten)
 | 
				
			||||||
            #self.pwm4.ChangeFrequency(self.freq_halten)
 | 
					 | 
				
			||||||
            #self.pwm4.ChangeDutyCycle(self.cyc_halten)
 | 
					 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            pi.set_PWM_dutycycle(self.sp4, 0)
 | 
					            pi.set_PWM_dutycycle(self.sp4, 0)
 | 
				
			||||||
            #self.pwm4.ChangeDutyCycle(0)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def rueckwaerts(self, schritte, eichen=0):
 | 
					        self.aktiv = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __rueckwaerts(self, schritte, eichen=0):
 | 
				
			||||||
 | 
					        self.aktiv = 1
 | 
				
			||||||
        ges_schritte = schritte * 8
 | 
					        ges_schritte = schritte * 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if eichen == 1:
 | 
					        if eichen == 1:
 | 
				
			||||||
@@ -130,13 +104,12 @@ class motor():
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        if self.halten == 1:
 | 
					        if self.halten == 1:
 | 
				
			||||||
            pi.set_PWM_frequency(self.sp4, self.freq)
 | 
					            pi.set_PWM_frequency(self.sp4, self.freq)
 | 
				
			||||||
            #self.pwm4.ChangeFrequency(self.freq)
 | 
					 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
        for i in range(int(schritte)):
 | 
					        for i in range(int(schritte)):
 | 
				
			||||||
            #if GPIO.input(self.endschalter) == GPIO.LOW:
 | 
					 | 
				
			||||||
            if pi.read(self.endschalter) == 0:
 | 
					            if pi.read(self.endschalter) == 0:
 | 
				
			||||||
                print('Endschalter ' + self.name)
 | 
					                print('Endschalter ' + self.name)
 | 
				
			||||||
                self.pos = 0
 | 
					                self.pos = 0
 | 
				
			||||||
 | 
					                self.aktiv = 0
 | 
				
			||||||
                break
 | 
					                break
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                self.pos -= 1
 | 
					                self.pos -= 1
 | 
				
			||||||
@@ -151,33 +124,30 @@ class motor():
 | 
				
			|||||||
            einzelschritt(self.sp4, 1, ges_schritte, temp_pos + 6, temp_t1, temp_t2)
 | 
					            einzelschritt(self.sp4, 1, ges_schritte, temp_pos + 6, temp_t1, temp_t2)
 | 
				
			||||||
            einzelschritt(self.sp1, 0, ges_schritte, temp_pos + 7, temp_t1, temp_t2)
 | 
					            einzelschritt(self.sp1, 0, ges_schritte, temp_pos + 7, temp_t1, temp_t2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            #print(str(self.pos))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if self.halten == 1:
 | 
					        if self.halten == 1:
 | 
				
			||||||
            pi.set_PWM_frequency(self.sp4, self.freq_halten)
 | 
					            pi.set_PWM_frequency(self.sp4, self.freq_halten)
 | 
				
			||||||
            pi.set_PWM_dutycycle(self.sp4, cyc_halten)
 | 
					            pi.set_PWM_dutycycle(self.sp4, cyc_halten)
 | 
				
			||||||
            #self.pwm4.ChangeFrequency(self.freq_halten)
 | 
					 | 
				
			||||||
            #self.pwm4.ChangeDutyCycle(self.cyc_halten)
 | 
					 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            pi.set_PWM_dutycycle(self.sp4, 0)
 | 
					            pi.set_PWM_dutycycle(self.sp4, 0)
 | 
				
			||||||
            #self.pwm4.ChangeDutyCycle(0)
 | 
					            
 | 
				
			||||||
 | 
					        self.aktiv = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def eichen(self):
 | 
					    def eichen(self):
 | 
				
			||||||
        #if GPIO.input(self.endschalter) == GPIO.LOW:
 | 
					        if self.aktiv == 0:
 | 
				
			||||||
        if pi.read(self.endschalter) == 0:
 | 
					            if pi.read(self.endschalter) == 0:
 | 
				
			||||||
            self.vorwaerts(10, 1)
 | 
					                self.vorwaerts(10, 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self.rueckwaerts(self.schritte_max, 1)
 | 
					            self.rueckwaerts(self.schritte_max, 1)
 | 
				
			||||||
        self.pos = 0
 | 
					            self.pos = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def gehe_zu(self, position):
 | 
					    def gehe_zu(self, position):
 | 
				
			||||||
        temp_schritte = int(position) - self.pos
 | 
					        if self.aktiv == 0:
 | 
				
			||||||
        print(str(temp_schritte))
 | 
					            temp_schritte = int(position) - self.pos
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
        if temp_schritte > 0:
 | 
					            if temp_schritte > 0:
 | 
				
			||||||
            self.vorwaerts(temp_schritte)
 | 
					                self.vorwaerts(temp_schritte)
 | 
				
			||||||
        else:
 | 
					            else:
 | 
				
			||||||
            self.rueckwaerts(abs(temp_schritte))
 | 
					                self.rueckwaerts(abs(temp_schritte))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class motor_bewegen(threading.Thread):
 | 
					class motor_bewegen(threading.Thread):
 | 
				
			||||||
  def __init__(self, motor, position):
 | 
					  def __init__(self, motor, position):
 | 
				
			||||||
@@ -198,11 +168,9 @@ def einzelschritt(spule, status, ges_schritte, schritt, t1, t2):
 | 
				
			|||||||
        for i in range(0, 91, 5):
 | 
					        for i in range(0, 91, 5):
 | 
				
			||||||
            dc = round(math.sin(math.radians(i)) * 100, 0)
 | 
					            dc = round(math.sin(math.radians(i)) * 100, 0)
 | 
				
			||||||
            pi.set_PWM_dutycycle(spule, dc)
 | 
					            pi.set_PWM_dutycycle(spule, dc)
 | 
				
			||||||
            #spule.ChangeDutyCycle(dc)
 | 
					 | 
				
			||||||
            time.sleep(t)
 | 
					            time.sleep(t)
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        for i in range(0, 91, 5):
 | 
					        for i in range(0, 91, 5):
 | 
				
			||||||
            dc = round(math.cos(math.radians(i)) * 100, 0)
 | 
					            dc = round(math.cos(math.radians(i)) * 100, 0)
 | 
				
			||||||
            pi.set_PWM_dutycycle(spule, dc)
 | 
					            pi.set_PWM_dutycycle(spule, dc)
 | 
				
			||||||
            #spule.ChangeDutyCycle(dc)
 | 
					 | 
				
			||||||
            time.sleep(t)
 | 
					            time.sleep(t)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user