Servo ile PID Yapmak


Servo motor kontrolü, genellikle PID (Proportional, Integral, Derivative) kontrol algoritmaları kullanılarak gerçekleştirilir. PID kontrol algoritması, bir sistemin çıkışını istenen referans değerine getirmek için kullanılır. Bu, servo motorun istenen konuma doğru hareket etmesini sağlar.


PID Kontrol Algoritması:

PID kontrol algoritması üç terimden oluşur:

    P (Proportional): Hata terimi (istenen değer - gerçek değer) ile orantılıdır.
    I (Integral): Hata teriminin zamanla entegrasyonudur.
    D (Derivative): Hata teriminin zamanla türevidir.

Servo Motor ve Sürücü ile PID Kontrol Adımları:

    Referans Değer Belirleme: Servo motorun ulaşmasını istediğiniz konumu belirleyin.
    Hata Hesaplama: İstenen değer ile gerçek değer arasındaki farkı hesaplayın.
    PID Değerlerini Ayarlama: P, I ve D katsayılarını ayarlayın.
    Kontrol Sinyali Oluşturma: PID kontrol algoritması kullanarak kontrol sinyalini hesaplayın.
    Sürücüye Sinyal Gönderme: Kontrol sinyalini servo sürücüye gönderin.
    Monitör ve Ayar: Sistemi izleyin ve gerekirse PID katsayılarını ayarlayın.

Örnek Python Kodu:

Aşağıda, basit bir PID kontrolörünün Python kodu verilmiştir. Bu kod, bir servo motoru kontrol etmek için kullanılabilir.

python

class PID:
    def __init__(self, kp, ki, kd):
        self.kp = kp
        self.ki = ki
        self.kd = kd
        self.previous_error = 0
        self.integral = 0

    def compute(self, setpoint, value):
        error = setpoint - value
        self.integral += error
        derivative = error - self.previous_error
        output = self.kp * error + self.ki * self.integral + self.kd * derivative
        self.previous_error = error
        return output

# PID katsayıları
kp = 1.0
ki = 0.1
kd = 0.01

# PID kontrolörünü oluştur
pid = PID(kp, ki, kd)

# İstenen konum
setpoint = 100

# Mevcut konum
value = 0

# Kontrol sinyalini hesapla
control_signal = pid.compute(setpoint, value)

# Kontrol sinyalini servo sürücüye gönder (Örnek olarak yazıldı, gerçek uygulamada sürücüye uygun şekilde gönderilmelidir)
print("Control Signal: ", control_signal)


Bu kod, bir servo motoru kontrol etmek için kullanılabilir, ancak gerçek bir uygulamada, kontrol sinyalini uygun bir şekilde servo motor sürücüsüne göndermek için (Pals/yön Puls/direction) sinyali nedir?) ek kod yazmanız gerekecektir. Ayrıca, PID katsayıları (kp, ki, kd) sisteminize göre ayarlanmalıdır.



Sepete Henüz Ürün eklemediniz!