İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu dersimizde servo motoru kontrol etmek için Verilog kodu yazacağız. Servo SG-90, Waveshare tarafından üretilmiştir. Servo motoru satın aldığınızda, çalışma voltajını, maksimum torku ve önerilen Darbe Genişliği Modülasyonunu (PWM)…vb. listeleyen bir veri sayfası alabilirsiniz. Ancak FPGA DuePrologic, servo SG-90'ın çalışma voltajının 5V - 7V olduğu durumlarda 3.3V giriş voltajı sağlar. Elektrik gücü olmadığında servo motoru başarılı bir şekilde döndürmek için kalibre edilmiş PWM'mi listeleyeceğim.
Görevimiz: Servo motor 5 saniye süre ile ileri geri döndürülür.
Tam menü:
Adım 1: Elektronik Devre Oluşturun
2. Adım: Pin Planlayıcı'yı Kurun
Pin planlayıcının doğru ayarlanıp ayarlanmadığını kontrol etmek için "G/Ç Atama Analizini Başlat"a tıklayın. Aksi takdirde, tüm bağlantı noktası adlarını kendiniz almanız gerekir.
Adım 3: Verilog Kodu
Bir zamanlayıcı "servo_count" oluşturuyoruz. "servo_A" YÜKSEK olduğunda, PWM 1.5ms'dir ve bu nedenle servo 120 derecede bulunur. Buna karşılık, "servo_A" DÜŞÜK olduğunda, PWM 0.15ms'dir ve bu nedenle servo 0 derecede kalır.
XIO_2[3] ata = servo_pulse; //V' için
reg [31:0] servo_count;
ilk başlangıç
servo_count <= 32'b0;
servo_A <= 1'b0;
son
her zaman @(posedge CLK_66)
başlamak
servo_count <= servo_count + 1'b1;
if(servo_count > 400000000) //Saat döngüsü 66MHz, 1/66M * 400000000 ~ 5 saniye
başlamak
servo_A <= !servo_A;
servo_count <= 32'b0;
son
son
reg [31:0] ex_auto;
ilk başlangıç
ex_auto <= 32'b0;
servo_auto <= 1'b0;
son
her zaman @(posedge CLK_66)
başlamak
if(servo_A==1'b1)
başlamak
ex_auto <= ex_auto + 1'b1;
if(ex_auto > 100000) //Saat döngüsü 66MHz, bu PWM ~1.5ms'dir, servo 120 dereceye döner
başlamak
servo_auto <= !servo_auto;
ex_auto <= 32'b0;
son
son
if(servo_A==1'b0)
başlamak
ex_auto <= ex_auto + 1'b1;
if(ex_auto > 10000) //Saat döngüsü 66MHz, bu PWM ~0.15ms'dir, servo 0 dereceye döner
başlamak
servo_auto <= !servo_auto;
ex_auto <= 32'b0;
son
son
son
4. Adım: Verilog Kodunu Yükleyin
"Derlemeyi Başlat" ı tıklayın. Herhangi bir hata mesajı görüntülenmezse, donanım kurulumunu tamamlamak için "Programcı"ya gidin. Gerekirse "Dosya değiştir" bölümünden pof dosyasını güncellemeyi unutmayın. Kodu yüklemek için "Başlat" düğmesini tıklayın.
Sonuçta servo motorun periyodik olarak döndüğünü görmelisiniz.