![FPGA Cyclone IV DueProLogic Controls Servomotor: 4 pași FPGA Cyclone IV DueProLogic Controls Servomotor: 4 pași](https://i.howwhatproduce.com/images/002/image-3532-21-j.webp)
Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
![FPGA Cyclone IV DueProLogic Controles Servomotor FPGA Cyclone IV DueProLogic Controles Servomotor](https://i.howwhatproduce.com/images/002/image-3532-22-j.webp)
În acest tutorial, vom scrie codul Verilog pentru a controla servomotorul. Servo-ul SG-90 este fabricat de Waveshare. Când cumpărați servomotorul, este posibil să primiți o fișă tehnică care să enumere tensiunea de funcționare, cuplul maxim și modulul de lățime a impulsului propus (PWM) … etc. Cu toate acestea, FPGA DuePrologic furnizează o tensiune de intrare de 3,3V, unde tensiunea de funcționare a servo SG-90 este de 5V - 7V. În lipsa de energie electrică, voi lista PWM-ul meu calibrat pentru a roti cu succes servomotorul.
Sarcina noastră: Servomotorul este rotit înainte și înapoi cu perioada de 5 secunde
Meniu complet:
Pasul 1: Construiți un circuit electronic
![Construiți un circuit electronic Construiți un circuit electronic](https://i.howwhatproduce.com/images/002/image-3532-23-j.webp)
Pasul 2: configurați Pin Planner
![Configurați Pin Planner Configurați Pin Planner](https://i.howwhatproduce.com/images/002/image-3532-24-j.webp)
Faceți clic pe „Începeți analiza temei I / O” pentru a verifica dacă planificatorul de pin este setat corect. În caz contrar, trebuie să importați singur toate porturile.
Pasul 3: Codul Verilog
Creăm un cronometru „servo_count”. Când "servo_A" este HIGH, PWM este de 1,5 ms și, prin urmare, servo-ul este situat la 120 de grade. În schimb, când „servo_A” este scăzut, PWM este de 0,15 ms și, prin urmare, servo-ul rămâne la 0 grade.
assign XIO_2 [3] = servo_pulse; // pentru V '
reg [31: 0] servo_count;
început inițial
servo_count <= 32'b0;
servo_A <= 1'b0;
Sfârșit
mereu @ (posedge CLK_66)
începe
servo_count <= servo_count + 1'b1;
if (servo_count> 400000000) // Ciclul ceasului 66MHz, 1 / 66M * 400000000 ~ 5 secunde
începe
servo_A <=! servo_A;
servo_count <= 32'b0;
Sfârșit
Sfârșit
reg [31: 0] ex_auto;
început inițial
ex_auto <= 32'b0;
servo_auto <= 1'b0;
Sfârșit
mereu @ (posedge CLK_66)
începe
if (servo_A == 1'b1)
începe
ex_auto <= ex_auto + 1'b1;
dacă (ex_auto> 100000) // Ciclu de ceas 66MHz, acest PWM are ~ 1,5 ms, servo se rotește la 120 de grade
începe
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
Sfârșit
Sfârșit
if (servo_A == 1'b0)
începe
ex_auto <= ex_auto + 1'b1;
dacă (ex_auto> 10000) // Ciclu de ceas 66MHz, acest PWM are ~ 0,15 ms, servo se rotește la 0 grade
începe
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
Sfârșit
Sfârșit
Sfârșit
Pasul 4: Încărcați codul Verilog
![Image Image](https://i.howwhatproduce.com/images/002/image-3532-26-j.webp)
![](https://i.ytimg.com/vi/lsDoIZI5m34/hqdefault.jpg)
Faceți clic pe „Porniți compilarea”. Dacă nu este afișat niciun mesaj de eroare, accesați „Programator” pentru a finaliza configurarea hardware. Nu uitați să actualizați fișierul pof în „Schimbați fișierul”, dacă este necesar. Faceți clic pe „Start” pentru a încărca codul.
La urma urmei, ar trebui să vedeți că servomotorul este rotit periodic.
Recomandat:
Rotiți CLOCK NISP la fiecare minut folosind servomotor - Arduino: 8 pași
![Rotiți CLOCK NISP la fiecare minut folosind servomotor - Arduino: 8 pași Rotiți CLOCK NISP la fiecare minut folosind servomotor - Arduino: 8 pași](https://i.howwhatproduce.com/images/001/image-60-32-j.webp)
Rotiți CLOCK Sand în fiecare minut folosind Servo Motor - Arduino: În acest tutorial vom învăța cum să rotiți un ceas de nisip mic (1 minut) la fiecare 60 de ani folosind servo motor și Visuino, Urmăriți un videoclip demonstrativ
Coș de gunoi inteligent folosind Arduino, senzor cu ultrasunete și servomotor: 3 pași
![Coș de gunoi inteligent folosind Arduino, senzor cu ultrasunete și servomotor: 3 pași Coș de gunoi inteligent folosind Arduino, senzor cu ultrasunete și servomotor: 3 pași](https://i.howwhatproduce.com/images/001/image-183-24-j.webp)
Coș de gunoi inteligent folosind Arduino, senzor cu ultrasunete și servomotor: În acest proiect, vă voi arăta cum să creați un coș de gunoi inteligent folosind Arduino, unde capacul coșului de gunoi se va deschide automat atunci când vă apropiați cu coșul de gunoi. Celelalte componente importante utilizate pentru fabricarea acestei coșuri de gunoi inteligente sunt un ultrasunete HC-04
FPGA Cyclone IV DueProLogic Controls Camera Raspberry Pi: 5 pași
![FPGA Cyclone IV DueProLogic Controls Camera Raspberry Pi: 5 pași FPGA Cyclone IV DueProLogic Controls Camera Raspberry Pi: 5 pași](https://i.howwhatproduce.com/images/001/image-1646-19-j.webp)
FPGA Cyclone IV DueProLogic Controls Camera Raspberry Pi: În ciuda faptului că FPGA DueProLogic este conceput oficial pentru Arduino, vom face FPGA și Raspberry Pi 4B comunicabile. Trei sarcini sunt implementate în acest tutorial: (A) Apăsați simultan cele două butoane pe FPGA pentru a răsturna unghiul de
FPGA Cyclone IV DueProLogic - Buton și LED: 5 pași
![FPGA Cyclone IV DueProLogic - Buton și LED: 5 pași FPGA Cyclone IV DueProLogic - Buton și LED: 5 pași](https://i.howwhatproduce.com/images/001/image-1648-12-j.webp)
FPGA Cyclone IV DueProLogic - Buton și LED: În acest tutorial, vom folosi FPGA pentru a controla circuitul LED extern. Urmează să implementăm următoarele sarcini (A) Folosiți butoanele de pe FPGA Cyclone IV DuePrologic pentru a controla LED-ul. (B) LED-ul flash pe & oprit periodicVideo Demo Lab
Brațul robotului cu servomotor RC controlat de Fpga - Concurs Digilent: 3 pași
![Brațul robotului cu servomotor RC controlat de Fpga - Concurs Digilent: 3 pași Brațul robotului cu servomotor RC controlat de Fpga - Concurs Digilent: 3 pași](https://i.howwhatproduce.com/images/004/image-10153-2-j.webp)
Brațul robotului cu servomotor RC controlat de Fpga - Concurs Digilent: brațul robotului cu servomotor controlat FPGA Scopul acestui proiect este de a crea un sistem programabil care poate efectua operațiuni de lipire pe placa de perfecționare. Sistemul se bazează pe placa de dezvoltare Digilent Basys3 și va fi capabil să lipească