Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu təlimatda, servo motoru idarə etmək üçün Verilog kodunu yazacağıq. Servo SG-90 Waveshare tərəfindən istehsal olunur. Servo motoru satın aldığınızda, iş gərginliyini, maksimum fırlanma anını və təklif olunan Pulse Width Modulation (PWM) və s. Bununla birlikdə, FPGA DuePrologic, SG -90 servonun işləmə gərginliyi 5V - 7V olduğu yerdə 3.3V giriş gərginliyi təmin edir. Elektrik enerjisi olmadıqda, servo motoru uğurla döndərmək üçün kalibrlənmiş PWM -in siyahısını verəcəyəm.
Bizim vəzifəmiz: servo motor 5 saniyə müddətində irəli və irəli dönər
Tam menyu:
Addım 1: Elektron Dövrə qurun
Addım 2: Pin Planner qurun
Pin planlayıcısının düzgün qurulduğunu yoxlamaq üçün "G/Ç Təyin Analizinə Başla" düyməsini basın. Əks təqdirdə, bütün liman adlarını özünüz idxal etməlisiniz.
Addım 3: Verilog Kodu
Taymer "servo_count" yaradırıq. "Servo_A" YÜKSƏK olduqda, PWM 1.5ms -dir və buna görə də servo 120 dərəcədə yerləşir. Bunun əksinə olaraq, "servo_A" LOW olduqda, PWM 0.15ms -dir və buna görə də servo 0 dərəcə saxlanılır.
təyin XIO_2 [3] = servo_pulse; // V üçün
reg [31: 0] servo_count;
ilkin başlanğıc
servo_count <= 32'b0;
servo_A <= 1'b0;
bitmək
həmişə @(poza CLK_66)
başlamaq
servo_count <= servo_count + 1'b1;
əgər (servo_count> 400000000) // Saat dövrü 66MHz, 1/66M * 400000000 ~ 5 saniyə
başlamaq
servo_A <=! servo_A;
servo_count <= 32'b0;
bitmək
bitmək
reg [31: 0] ex_auto;
ilkin başlanğıc
ex_auto <= 32'b0;
servo_auto <= 1'b0;
bitmək
həmişə @(poza CLK_66)
başlamaq
əgər (servo_A == 1'b1)
başlamaq
ex_auto <= ex_auto + 1'b1;
əgər (ex_auto> 100000) // Saat dövrü 66MHz, bu PWM ~ 1.5ms, servo 120 dərəcəyə dönər
başlamaq
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
bitmək
bitmək
əgər (servo_A == 1'b0)
başlamaq
ex_auto <= ex_auto + 1'b1;
əgər (ex_auto> 10000) // Saat dövrü 66MHz, bu PWM ~ 0.15ms -dir, servo 0 dərəcəyə fırlanır
başlamaq
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
bitmək
bitmək
bitmək
Addım 4: Verilog Kodunu Yükləyin
"Kompilyasiyaya Başla" düyməsini basın. Heç bir səhv mesajı görünmürsə, hardware quraşdırmasını başa çatdırmaq üçün "Proqramçı" ya gedin. Lazım gələrsə "Dosyanı dəyişdir" bölməsində pof faylını yeniləməyi unutmayın. Kodu yükləmək üçün "Başla" düyməsini basın.
Axı, servo motorun vaxtaşırı döndüyünü görməlisiniz.