
Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-23 14:39

En este tutorial, vamos a escribir código Verilog para controlar el servomotor. El servo SG-90 es fabricado por Waveshare. Cuando compra el servomotor, puede recibir una hoja de datos que enumera el voltaje de funcionamiento, el par máximo y la modulación de ancho de pulso (PWM) propuesta … etc. Sin embargo, el FPGA DuePrologic proporciona un voltaje de entrada de 3.3V donde el voltaje de operación del servo SG-90 es de 5V a 7V. En la falta de energía eléctrica, enumeraré mi PWM calibrado para hacer girar el servomotor con éxito.
Nuestra tarea: el servomotor gira hacia adelante y hacia atrás en un período de 5 segundos.
Menú completo:
Paso 1: Construya el circuito electrónico

Paso 2: Configura el planificador de pines

Haga clic en "Iniciar análisis de asignación de E / S" para comprobar si el planificador de pines está configurado correctamente. De lo contrario, tendrá que importar todos los nombres de los puertos usted mismo.
Paso 3: Código Verilog
Creamos un temporizador "servo_count". Cuando "servo_A" es ALTO, el PWM es de 1.5ms y, por lo tanto, el servo se ubica a 120 grados. Por el contrario, cuando "servo_A" es BAJO, el PWM es de 0,15 ms y, por lo tanto, el servo se mantiene en 0 grados.
asignar XIO_2 [3] = servo_pulse; //para V'
reg [31: 0] servo_count;
comienzo inicial
servo_count <= 32'b0;
servo_A <= 1'b0;
fin
siempre @ (posedge CLK_66)
empezar
servo_count <= servo_count + 1'b1;
if (servo_count> 400000000) // Ciclo de reloj 66MHz, 1 / 66M * 400000000 ~ 5 segundos
empezar
servo_A <=! servo_A;
servo_count <= 32'b0;
fin
fin
reg [31: 0] ex_auto;
comienzo inicial
ex_auto <= 32'b0;
servo_auto <= 1'b0;
fin
siempre @ (posedge CLK_66)
empezar
si (servo_A == 1'b1)
empezar
ex_auto <= ex_auto + 1'b1;
if (ex_auto> 100000) // Ciclo de reloj 66MHz, este PWM es ~ 1.5ms, el servo gira a 120 grados
empezar
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
fin
fin
si (servo_A == 1'b0)
empezar
ex_auto <= ex_auto + 1'b1;
if (ex_auto> 10000) // Ciclo de reloj 66MHz, este PWM es ~ 0.15ms, el servo gira a 0 grados
empezar
servo_auto <=! servo_auto;
ex_auto <= 32'b0;
fin
fin
fin
Paso 4: Cargue el código Verilog


Haga clic en "Iniciar compilación". Si no se muestra ningún mensaje de error, vaya a "Programador" para completar la configuración del hardware. Recuerde actualizar el archivo pof en "Cambiar archivo" si es necesario. Haga clic en "Inicio" para cargar el código.
Después de todo, debería ver que el servomotor gira periódicamente.
Recomendado:
Arduino controla la velocidad y dirección del motor de CC con un potenciómetro, pantalla OLED y botones: 6 pasos

Control de Arduino Velocidad y dirección del motor de CC usando un potenciómetro, pantalla OLED y botones: En este tutorial aprenderemos a usar un controlador de CONTROL DE MOTOR DE CC L298N y un potenciómetro para controlar la velocidad y dirección de un motor de CC con dos botones y mostrar el valor del potenciómetro en la pantalla OLED. Vea un video de demostración
FPGA Cyclone IV DueProLogic controla la cámara Raspberry Pi: 5 pasos

FPGA Cyclone IV DueProLogic controla la cámara Raspberry Pi: a pesar de que la FPGA DueProLogic está diseñada oficialmente para Arduino, vamos a hacer comunicables la FPGA y la Raspberry Pi 4B. En este tutorial se implementan tres tareas: (A) Presione simultáneamente los dos botones en FPGA para cambiar el ángulo de
FPGA Cyclone IV DueProLogic - Pulsador y LED: 5 pasos

FPGA Cyclone IV DueProLogic - Pulsador y LED: En este tutorial, usaremos la FPGA para controlar el circuito LED externo. Vamos a implementar las siguientes tareas (A) Utilice los botones pulsadores en FPGA Cyclone IV DuePrologic para controlar el LED. (B) Flash LED encendido & desactivado periódicamente Laboratorio de demostración de vídeo
Controla la Raspberry Pi sin monitor: 7 pasos

Control de Raspberry Pi sin monitor: en instrucciones anteriores compartí una guía para principiantes de Raspberry Pi. Allí vimos cómo arrancar Raspbian en el Pi y usarlo como escritorio. Pero para esa configuración necesitamos muchos periféricos como monitor, cable HDMI, teclado inalámbrico y adaptador OTG
Brazo robótico con servomotor RC controlado por fpga - Concurso de Digilent: 3 pasos

Brazo robótico con servomotor RC controlado por FPGA - Concurso de Digilent: Brazo robótico con servomotor controlado por FPGA El objetivo de este proyecto es crear un sistema programable que pueda realizar operaciones de soldadura en la placa perf. El sistema se basa en la placa de desarrollo Digilent Basys3 y será capaz de soldar co