
Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:55

Šioje pamokoje mes ketiname parašyti „Verilog“kodą servo varikliui valdyti. Servo SG-90 gamina „Waveshare“. Pirkdami servo variklį, galite gauti duomenų lapą, kuriame išvardyta darbinė įtampa, maksimalus sukimo momentas ir siūlomas impulsų pločio moduliavimas (PWM) ir kt. Tačiau „FPGA DuePrologic“teikia 3,3 V įėjimo įtampą, kai servo SG -90 darbinė įtampa yra 5–7 V. Trūkstant elektros energijos, aš išvardinsiu savo kalibruotą PWM, kad galėčiau sėkmingai pasukti servo variklį.
Mūsų užduotis: Servo variklis sukamas pirmyn ir atgal 5 sekundes
Visas meniu:
1 žingsnis: sukurkite elektroninę grandinę

2 veiksmas: nustatykite „Pin Planner“

Spustelėkite „Pradėti įvesties/išvesties užduočių analizę“, kad patikrintumėte, ar smeigtukų planavimo priemonė nustatyta teisingai. Priešingu atveju visus uostų pavadinimus turite importuoti patys.
3 veiksmas: „Verilog“kodas
Mes sukuriame laikmatį „servo_count“. Kai „servo_A“yra HIGH, PWM yra 1,5 ms, taigi servo yra 120 laipsnių kampu. Priešingai, kai „servo_A“yra žemas, PWM yra 0,15 ms, todėl servo laikoma 0 laipsnių.
priskirti XIO_2 [3] = servo_pulse; // už V '
reg [31: 0] servo_count;
pradinė pradžia
servo_count <= 32'b0;
servo_A <= 1'b0;
galas
visada @(pozavimas CLK_66)
pradėti
servo_count <= servo_count + 1'b1;
if (servo_count> 400000000) // Laikrodžio ciklas 66MHz, 1/66M * 400000000 ~ 5 sekundės
pradėti
servo_A <=! servo_A;
servo_count <= 32'b0;
galas
galas
reg [31: 0] ex_auto;
pradinė pradžia
ex_auto <= 32'b0;
servo_auto <= 1'b0;
galas
visada @(pozavimas CLK_66)
pradėti
jei (servo_A == 1'b1)
pradėti
ex_auto <= ex_auto + 1'b1;
jei (ex_auto> 100000) // Laikrodžio ciklas 66 MHz, šis PWM yra ~ 1,5 ms, servo sistema sukasi iki 120 laipsnių
pradėti
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
galas
galas
jei (servo_A == 1'b0)
pradėti
ex_auto <= ex_auto + 1'b1;
jei (ex_auto> 10000) // Laikrodžio ciklas 66 MHz, šis PWM yra ~ 0,15 ms, servo sistema sukasi iki 0 laipsnių
pradėti
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
galas
galas
galas
4 veiksmas: įkelkite „Verilog“kodą


Spustelėkite „Pradėti kompiliaciją“. Jei nerodomas klaidos pranešimas, eikite į „Programuotojas“, kad užbaigtumėte aparatūros sąranką. Nepamirškite, jei reikia, atnaujinti pof failą „Keisti failą“. Norėdami įkelti kodą, spustelėkite „Pradėti“.
Galų gale turėtumėte pamatyti, kad servo variklis yra periodiškai sukamas.
Rekomenduojamas:
„FPGA Cyclone IV DueProLogic Controls“„Raspberry Pi“kamera: 5 žingsniai

„FPGA Cyclone IV DueProLogic Controls“„Raspberry Pi“fotoaparatas: Nepaisant to, kad „FPGA DueProLogic“yra oficialiai sukurta „Arduino“, mes ketiname padaryti FPGA ir „Raspberry Pi 4B“perduodamus. Šioje pamokoje įgyvendinamos trys užduotys: (A) Vienu metu paspauskite du mygtukus FPGA, norint pasukti kampą
FPGA Cyclone IV DueProLogic - mygtukas ir LED: 5 žingsniai

„FPGA Cyclone IV DueProLogic“- mygtukas ir šviesos diodas: šioje pamokoje mes naudosime FPGA išorinei šviesos diodų grandinei valdyti. Mes ketiname įgyvendinti šias užduotis (A) Norėdami valdyti šviesos diodus, naudokite „FPGA Cyclone IV DuePrologic“mygtukus. (B) Blykstės šviesos diodas šviečia & periodiškai išjungta Vaizdo demonstracinė laboratorija
Žingsninis variklis valdomas žingsninis variklis be mikrovaldiklio!: 6 žingsniai

Žingsninis variklis valdomas žingsninis variklis be mikrovaldiklio!: Šiame greitam instrukcijoje mes pagaminsime paprastą žingsninio variklio valdiklį, naudodami žingsninį variklį. Šiam projektui nereikia sudėtingų grandinių ar mikrovaldiklio. Taigi, nesivaržydami, pradėkime
Žingsninis variklis valdomas žingsninis variklis be mikrovaldiklio (V2): 9 žingsniai (su paveikslėliais)

Žingsninis variklis valdomas žingsninis variklis be mikrovaldiklio (V2): Viename iš ankstesnių instrukcijų parodžiau, kaip valdyti žingsninį variklį naudojant žingsninį variklį be mikrovaldiklio. Tai buvo greitas ir įdomus projektas, tačiau jis turėjo dvi problemas, kurios bus išspręstos šioje instrukcijoje. Taigi, sąmojingai
Žingsninis variklis Valdomas žingsninis variklis - Žingsninis variklis kaip rotacinis kodavimo įrenginys: 11 žingsnių (su nuotraukomis)

Žingsninis variklis Valdomas žingsninis variklis | Žingsninis variklis Kaip rotacinis kodavimo įrenginys: Ar pora žingsninių variklių guli ir norite ką nors padaryti? Šioje instrukcijoje naudokime žingsninį variklį kaip rotacinį kodavimo įrenginį, kad valdytumėte kito žingsninio variklio padėtį naudodami „Arduino“mikrovaldiklį. Taigi, be jokių papildomų pastangų, pradėkime