Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Selles õpetuses kirjutame servomootori juhtimiseks Verilogi koodi. Servo SG-90 toodab Waveshare. Servomootori ostmisel võite saada andmelehe, mis loetleb tööpinge, maksimaalse pöördemomendi ja kavandatava impulsi laiuse modulatsiooni (PWM) jne. Siiski pakub FPGA DuePrologic sisendpinget 3,3 V, kus servo SG -90 tööpinge on 5V - 7V. Elektrienergia puudumise tõttu loetlen oma kalibreeritud PWM -i, et servomootorit edukalt pöörata.
Meie ülesanne: Servomootorit pööratakse edasi -tagasi 5 sekundi jooksul
Täismenüü:
Samm: ehitage elektrooniline vooluahel
2. toiming: seadistage Pin Planner
Klõpsake nuppu "Alusta I/O -ülesannete analüüsi", et kontrollida, kas tihvtiplaneerija on õigesti seadistatud. Vastasel juhul peate kõik pordi nimed ise importima.
Samm: Verilogi kood
Loome taimeri "servo_count". Kui "servo_A" on HIGH, on PWM 1,5 ms ja seega asub servo 120 kraadi juures. Seevastu kui "servo_A" on LOW, on PWM 0,15 ms ja seetõttu hoitakse servot 0 kraadi juures.
määrata XIO_2 [3] = servo_pulse; // V jaoks
reg [31: 0] servo_count;
esialgne algus
servo_count <= 32'b0;
servo_A <= 1'b0;
lõpp
alati @(positsioon CLK_66)
alustada
servo_count <= servo_count + 1'b1;
if (servo_count> 400000000) // Kellatsükkel 66 MHz, 1/66 M * 400000000 ~ 5 sekundit
alustada
servo_A <=! servo_A;
servo_count <= 32'b0;
lõpp
lõpp
reg [31: 0] ex_auto;
esialgne algus
ex_auto <= 32'b0;
servo_auto <= 1'b0;
lõpp
alati @(positsioon CLK_66)
alustada
kui (servo_A == 1'b1)
alustada
ex_auto <= ex_auto + 1'b1;
kui (ex_auto> 100000) // Kellatsükkel 66 MHz, see PWM on ~ 1,5 ms, servo pöörleb 120 kraadini
alustada
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
lõpp
lõpp
kui (servo_A == 1'b0)
alustada
ex_auto <= ex_auto + 1'b1;
kui (ex_auto> 10000) // Kellatsükkel 66 MHz, see PWM on ~ 0,15 ms, servo pöörleb 0 kraadini
alustada
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
lõpp
lõpp
lõpp
Samm: laadige üles Verilogi kood
Klõpsake "Alusta koostamist". Kui veateadet ei kuvata, minge riistvara seadistamise lõpuleviimiseks "Programmeerijale". Ärge unustage vajadusel värskendada pof -faili jaotises "Muuda faili". Koodi üleslaadimiseks klõpsake nuppu "Start".
Lõppude lõpuks peaksite nägema, et servomootorit pööratakse perioodiliselt.