Table des matières:
- Étape 1: Construire un circuit électronique
- Étape 2: Configurer le planificateur d'épingles
- Étape 3: Code Verilog
- Étape 4: Télécharger le code Verilog
Vidéo: Servomoteur de contrôle FPGA Cyclone IV DueProLogic : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Dans ce tutoriel, nous allons écrire du code Verilog pour contrôler le servomoteur. Le servo SG-90 est fabriqué par Waveshare. Lorsque vous achetez le servomoteur, vous pouvez recevoir une fiche technique qui répertorie la tension de fonctionnement, le couple maximal et la modulation de largeur d'impulsion (PWM) proposée, etc. Cependant, le FPGA DuePrologic fournit une tension d'entrée de 3,3 V où la tension de fonctionnement du servo SG-90 est de 5 V - 7 V. En l'absence d'alimentation électrique, je vais lister mon PWM calibré afin de faire tourner le servomoteur avec succès.
Notre tâche: le servomoteur est tourné d'avant en arrière avec une période de 5 secondes
Menu complet:
Étape 1: Construire un circuit électronique
Étape 2: Configurer le planificateur d'épingles
Cliquez sur "Démarrer l'analyse de l'affectation des E/S" pour vérifier si le planificateur de broches est correctement défini. Sinon, vous devez importer vous-même tous les noms de port.
Étape 3: Code Verilog
Nous créons un timer "servo_count". Lorsque "servo_A" est HAUT, le PWM est de 1,5 ms et le servo est donc situé à 120 degrés. En revanche, lorsque "servo_A" est LOW, le PWM est de 0,15 ms et donc le servo est resté à 0 degré.
assigner XIO_2[3] = servo_pulse; //pour V'
reg [31:0] servo_count;
début initial
compte_servo <= 32'b0;
servo_A <= 1'b0;
finir
toujours @(posedge CLK_66)
commencer
compte_servo <= compte_servo + 1'b1;
if(servo_count > 400000000) //Cycle d'horloge 66MHz, 1/66M * 400000000 ~ 5 secondes
commencer
servo_A <= !servo_A;
compte_servo <= 32'b0;
finir
finir
reg [31:0] ex_auto;
début initial
ex_auto <= 32'b0;
servo_auto <= 1'b0;
finir
toujours @(posedge CLK_66)
commencer
si(servo_A==1'b1)
commencer
ex_auto <= ex_auto + 1'b1;
if (ex_auto > 100000) // Cycle d'horloge 66 MHz, ce PWM est d'environ 1,5 ms, le servo tourne à 120 degrés
commencer
servo_auto <= !servo_auto;
ex_auto <= 32'b0;
finir
finir
si(servo_A==1'b0)
commencer
ex_auto <= ex_auto + 1'b1;
if (ex_auto > 10000) // Cycle d'horloge 66 MHz, ce PWM est de ~ 0,15 ms, le servo tourne à 0 deg
commencer
servo_auto <= !servo_auto;
ex_auto <= 32'b0;
finir
finir
finir
Étape 4: Télécharger le code Verilog
Cliquez sur "Démarrer la compilation". Si aucun message d'erreur ne s'affiche, accédez à « Programmer » pour terminer la configuration du matériel. Pensez à mettre à jour le fichier pof dans "Changer de fichier" si nécessaire. Le clic "Démarrer" pour télécharger le code.
Après tout, vous devriez voir que le servomoteur tourne périodiquement.
Conseillé:
FPGA Cyclone IV DueProLogic contrôle la caméra Raspberry Pi : 5 étapes
Le FPGA Cyclone IV DueProLogic contrôle la caméra Raspberry Pi : Bien que le FPGA DueProLogic soit officiellement conçu pour Arduino, nous allons rendre le FPGA et le Raspberry Pi 4B communicables. Trois tâches sont implémentées dans ce tutoriel : (A) Appuyez simultanément sur les deux boutons poussoirs de FPGA pour inverser l'angle de
FPGA Cyclone IV DueProLogic - Bouton poussoir et LED : 5 étapes
FPGA Cyclone IV DueProLogic - Push Button & LED : Dans ce tutoriel, nous allons utiliser le FPGA pour contrôler le circuit LED externe. Nous allons mettre en œuvre les tâches suivantes (A) Utilisez les boutons poussoirs du FPGA Cyclone IV DuePrologic pour contrôler la LED. (B) LED Flash sur & éteint périodiquementVidéo démo Lab
Ventilateur rotatif utilisant un servomoteur et un contrôle de vitesse : 6 étapes
Ventilateur rotatif à l'aide d'un servomoteur et d'un contrôle de vitesse : dans ce tutoriel, nous allons apprendre à faire tourner un ventilateur à vitesse réglable à l'aide d'un servomoteur, d'un potentiomètre, d'arduino et de Visuino.Regardez la vidéo
Contrôle d'accès à la nourriture pour chat (ESP8266 + servomoteur + impression 3D): 5 étapes (avec photos)
Contrôle d'accès à la nourriture pour chat (ESP8266 + servomoteur + impression 3D) : ce projet reprend le processus que j'ai utilisé pour créer un bol de nourriture pour chat automatisé, pour mon chat diabétique âgé Chaz. Vous voyez, il a besoin de petit-déjeuner avant de pouvoir prendre son insuline, mais j'oublie souvent de ramasser son plat de nourriture avant d'aller au lit, ce qui spo
Bras robotique à servomoteur RC contrôlé par Fpga - Concours Digilent : 3 étapes
Bras robotique à servomoteur RC contrôlé par Fpga - Concours Digilent : Bras robotique à servomoteur contrôlé par FPGALe but de ce projet est de créer un système programmable capable d'effectuer des opérations de soudure sur une carte de perforation. Le système est basé sur la carte de développement Digilent Basys3 et il sera capable de souder co