コード例 #1
0
ファイル: pid_posicion.py プロジェクト: bojack5/smartbender
class PID_Posicion(object):
    """docstring for PID_Posicion"""
    def __init__(self, kp = 1.5 , ki =0.5, kd =0.0):
        self.pid  = PID(kp , ki , kd)
        #self.pid_velocidad = pidv()
        self.motor = Nema42(12,7)

    def SetPoint(self , setpoint):
        self.pid.setPoint(setpoint)	
        if setpoint > 0: direccion = 1
        elif setpoint <= 0: direccion = -1
        
        sp = 3000 - abs(setpoint)
        if sp < 1000 : sp = 1000
        sp = sp *direccion
        self.motor.avance(sp)
コード例 #2
0
ファイル: pid_posicion.py プロジェクト: bojack5/smartbender
class PID_Posicion(object):
    """docstring for PID_Posicion"""
    def __init__(self, kp=1.5, ki=0.5, kd=0.0):
        self.pid = PID(kp, ki, kd)
        #self.pid_velocidad = pidv()
        self.motor = Nema42(12, 7)

    def SetPoint(self, setpoint):
        self.pid.setPoint(setpoint)
        if setpoint > 0: direccion = 1
        elif setpoint <= 0: direccion = -1

        sp = 3000 - abs(setpoint)
        if sp < 1000: sp = 1000
        sp = sp * direccion
        self.motor.avance(sp)
コード例 #3
0
ファイル: pid_velocidad.py プロジェクト: bojack5/smartbender
class PID_Velocidad(object):
    """Clase que ejecuta un PID de velocidad en la maquina dobladora"""
    def __init__(self, kp=0.000000001, ki=0.0, kd=0.0):
        self.pid = PID(kp, ki, kd)
        self.motor = Nema42(conf2.pines['Nema42']['direccion'],
                            conf2.pines['Nema42']['pulso'])
        self.pi = pigpio.pi()
        self.funciones_Nema42 = funciones.Nema42()
        self.direccion_motor = 0

    def SetPoint(self, setpoint):
        if setpoint < 0: self.direccion_motor = 0
        else: self.direccion_motor = 1
        self.pid.setPoint(abs(setpoint))

        if not setpoint:
            self.motor.parar()
        else:
            ts = self.funciones_Nema42.ts_from_vel(abs(setpoint))
            self.motor.avance(ts, self.direccion_motor)

    def update(self, valor):
        self.pid.update(valor)
コード例 #4
0
ファイル: pid_velocidad.py プロジェクト: bojack5/smartbender
class PID_Velocidad(object):
    """Clase que ejecuta un PID de velocidad en la maquina dobladora"""
    def __init__(self , kp = 0.000000001, ki = 0.0 , kd = 0.0):
        self.pid = PID(kp , ki , kd)
        self.motor = Nema42(conf2.pines['Nema42']['direccion'] , conf2.pines['Nema42']['pulso'])
        self.pi = pigpio.pi()
        self.funciones_Nema42 = funciones.Nema42()
        self.direccion_motor  = 0

    
    def SetPoint(self , setpoint):
        if setpoint < 0: self.direccion_motor = 0
        else : self.direccion_motor = 1
        self.pid.setPoint(abs(setpoint))

        
        if not setpoint:
        	self.motor.parar()
        else:
            ts = self.funciones_Nema42.ts_from_vel(abs(setpoint))     	
            self.motor.avance(ts,self.direccion_motor)
    
    def update(self , valor):
        self.pid.update(valor)