Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
U ovom ćemo vodiču napisati Verilog kod za upravljanje servo motorom. Servo SG-90 proizvodi Waveshare. Kada kupite servo motor, možda ćete primiti podatkovni list s popisom radnog napona, maksimalnog zakretnog momenta i predložene Pulse Width Modulation (PWM)… itd. Međutim, FPGA DuePrologic daje ulazni napon od 3,3 V gdje je radni napon servo SG -90 5V - 7V. U nedostatku električne energije navest ću svoj kalibrirani PWM kako bih uspješno rotirao servo motor.
Naš zadatak: Servo motor se okreće naprijed -natrag u razdoblju od 5 sekundi
Cijeli izbornik:
Korak 1: Izgradite elektronički krug
Korak 2: Postavite Pin Planner
Kliknite "Pokreni analizu dodjele I/O" da biste provjerili je li pin planer ispravno postavljen. U suprotnom, morate sami uvesti sve nazive portova.
Korak 3: Verilog koda
Izrađujemo mjerač vremena "servo_count". Kad je "servo_A" VISOKO, PWM je 1,5 ms pa se servo nalazi na 120 stupnjeva. Nasuprot tome, kada je "servo_A" NISKA, PWM je 0,15 ms i stoga se servo drži na 0 stupnjeva.
dodijeliti XIO_2 [3] = servo_puls; // za V '
reg [31: 0] broj serva;
početni početak
broj servo <= 32'b0;
servo_A <= 1'b0;
kraj
uvijek @(postavljeno CLK_66)
početi
broj serva <= broj serva + 1'b1;
if (broj servo> 400000000) // Sat ciklus 66MHz, 1/66M * 400000000 ~ 5 sekundi
početi
servo_A <=! servo_A;
broj servo <= 32'b0;
kraj
kraj
reg [31: 0] ex_auto;
početni početak
ex_auto <= 32'b0;
servo_auto <= 1'b0;
kraj
uvijek @(postavljeno CLK_66)
početi
if (servo_A == 1'b1)
početi
ex_auto <= ex_auto + 1'b1;
if (ex_auto> 100000) // Satni ciklus 66MHz, ovaj PWM iznosi ~ 1,5 ms, servo se okreće na 120 stupnjeva
početi
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
kraj
kraj
if (servo_A == 1'b0)
početi
ex_auto <= ex_auto + 1'b1;
if (ex_auto> 10000) // Satni ciklus 66MHz, ovaj PWM iznosi ~ 0,15 ms, servo se okreće na 0 stupnjeva
početi
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
kraj
kraj
kraj
Korak 4: Prenesite Verilog kôd
Kliknite "Pokreni kompilaciju". Ako se ne prikaže poruka o pogrešci, idite na "Programer" da biste dovršili postavljanje hardvera. Ne zaboravite ažurirati pof datoteku u "Promijeni datoteku" ako je potrebno. Kliknite "Start" za učitavanje koda.
Uostalom, trebali biste vidjeti da se servo motor povremeno okreće.