ELECTRÓNICA DIGITAL - UNAL - 2022 II 1
Digital - Informe del Proyecto
Catalina Criollo Castelblanco, Diego Fernando Malagon Saenz y Luis David Preciado Martinez
Resumen—La electrónica digital es un campo de la electrónica Verilog
que implica el estudio de señales digitales para procesar y Verilog es un lenguaje para la descripción de sistemas
controlar varios sistemas y subsistemas.* Con los conocimientos digitales ( HDL: Hardware Description Language). Los
adquiridos en clase se realizo la elaboración de una banda
transportadora cuyo control se ejerce, principalmente, por medio sistemas pueden ser descritos:
de una tarjeta FPGA. Esta banda transportadora cuenta con • Nivel estructural empleando elementos de librería
controles de velocidad y dirección, contadores de objetos y un
detector de metales . o bien elementos previamente creados,se realiza la
interconexión de unos con otros. Sería similar a una
Index Terms—Banda transportadora, Verilog, FPGA, Digital. captura esquemática donde la función del diseñador
es instanciar bloques y conectarlos entre sí.
I. O BJETIVOS • Nivel de comportamiento el diseñador describe la
Identificar el funcionamiento de los dispositivos a utilizar transferencia de información entre registros (nivel
e implementar de manera efectiva por medio del control RTL: Register Transfer Level).
con la tarjeta FPGA. Estos dos niveles de descripción pueden mezclarse,
Desarrollar una banda transportadora que cuente con dos dando lugar a los denominados diseños mixtos. Verilog
contadores. nació en 1985 como un lenguaje propietario de una
Implementar el control de dispositivos sensores y actua- compañía (Cadence Design System), pero en 1990
dores por medio de la programación a Hardware. se formo OVI (Open Verilog International) haciendo
dicho lenguaje de dominio publico, permitiendo a otras
II. J USTIFICACIÓN empresas que pudieran emplear Verilog como lenguaje,
con objeto de aumentar la difusión de dicho lenguaje. [2]
Evidenciar las aplicaciones de control que permite la elec-
trónica digital a partir de la integración de interruptores, senso-
Motor paso a paso
res y motores desde la FPGA. Simulando una situación común
Un motor paso a paso es un dispositivo electromecánico
de la industria, la cual es la operación e instrumentalización
que convierte una serie de pulsos eléctricos en
de una banda transportadora.
desplazamientos angulares, lo que significa que es
capaz de girar una cantidad de grados (paso o medio
III. M ARCO T EÓRICO paso) dependiendo de sus entradas de control. Los
FPGA motores paso a paso son ideales para la construcción de
Un FPGA (field programmable gate array) es un mecanismos en donde se requieren movimientos muy
dispositivo semiconductor que contiene componentes precisos. La característica principal de estos motores es
lógicos programables e interconexiones programables el hecho de poder moverlos un paso a la vez por cada
entre ellos. Los componentes lógicos programables pulso que se le aplique. Este paso puede variar desde
pueden ser programados para duplicar la funcionalidad 90° hasta pequeños movimientos de 1.8°, Es por eso que
de puertas lógicas básicas tales como AND, OR, XOR, ese tipo de motores son muy utilizados, ya que pueden
NOT o funciones combinacionales más complejas moverse a deseo del usuario según la secuencia que
tales como decodificadores o simples funciones se les indique a través de un microcontrolador. Estos
matemáticas. En muchos FPGA, estos componentes motores poseen la habilidad de quedar enclavados en
lógicos programables (o bloques lógicos, según una posición si una o más de sus bobinas está energizada
el lenguaje comúnmente usado) también incluyen o bien total mente libres de corriente. [3]
elementos de memoria, los cuales pueden ser simples
flip-flops o bloques de memoria más complejos. Sensor inductivo de proximidad
Una jerarquía de interconexiones programables Los sensores inductivos son utilizados como detectores
permite a los bloques lógicos de un FPGA, ser de proximidad de objetos metálicos. Son muy utilizados
interconectados según la necesidad del diseñador del en sistema de automatización industrial, como contadores
sistema, algo parecido a un breadboard programable. de objetos, o para activar alguna acción en la presencia
Estos bloques lógicos e interconexiones pueden ser de algún objeto metálico. Su aplicación en impresoras
programados después del proceso de manufactura por el 3D es de gran utilidad pues permite realizar una auto
usuario/diseñador, así que el FPGA puede desempeñar calibración de nivel, para que el sistema sepa definir su
cualquier función lógica necesaria. [1] posición relativa a la plataforma de impresión. [4]
ELECTRÓNICA DIGITAL - UNAL - 2022 II 2
Final de carrera 5. Como operario de una banda transportadora deseo tener
Un final de carrera o interruptor de posición, es un dos contadores independientes para tener fácil acceso a
sensor que detecta la posición de un elemento móvil la información de los tipos de materiales que pasan por
mediante accionamiento mecánico. Así pues, además de la banda.
ser los sensores más instalados en el mundo, no dejan de
ser sensores de contacto que necesitan estar en contacto IV-B. Diagramas de flujo, esquemáticos, diagramas de caja,
con el objeto para detectar la llegada de un elemento diagramas de bloques tablas y/o cualquier insumo que aporte
móvil a una determinada posición. información al diseño
La salida de los finales de carrera es binaria y la Diagrma de flujo.
única información que nos da, es si el objeto está en En primer lugar se diseñó un diagrama de flujo con el objetivo
una posición determinada o no. Hablando en términos de identificar las acciones principales que se tendrían que
tecnológicos, los finales de carrera son sensores implementar con la tarjeta, en este se logra identificar dos
electromecánicos y por lo tanto, disponen de partes ramas principales, la primera que corresponde al control del
mecánicas enlazadas a partes eléctricas.[5] motor encargado de mover la banda y la segunda en la que
se describe el funcionamiento de los sensores junto con el
Display siete segmentos contador.
Los displays de 7 segmentos son dispositivos electró-
nicos de visualización utilizados como una forma fácil
de representar numerales decimales y una alternativa a
los displays de matriz de puntos más complejos. Los
displays de 7 segmentos empezaron a usarse de forma
generalizada como una forma popular para visualizar
números. Se llaman displays de segmentos porque están
compuestos por varios segmentos que se encienden y
apagan para dar la apariencia del glifo deseado. Los
segmentos generalmente son LED individuales o cristales
líquidos. Los displays de siete segmentos se emplean
ampliamente en relojes digitales, medidores electrónicos,
calculadoras básicas, pantallas de electrodomésticos, co-
ches, y muchos otros dispositivos que muestran informa-
ción numérica.[6] Figura 1. Diagrama de flujo.
Diagramas de Bloques
IV. R ESULTADOS Posteriormente se realizó un diagrama de bloques donde se
IV-A. Descripción concisa-corta del diseño, tarea o funcio- identifican cada uno de los componentes que harían parte del
nalidad cuyo resultado va a ser mostrado diseño además de dar un primer vistazo a cómo va conectado
cada cosa. Primeramente, se tenia contemplado hacer uso de
Se propone como proyecto de laboratorio del curso de una placa de Arduino para el control del motor, sin embargo,
Electrónica Digital 1 el desarrollo de una banda transportadora. el objetivo final era controlar todo mediante la tarjeta FPGA
Esta banda transportadora deberá poder ser controlada a través por lo que el diseño final debía ser sin Arduino.
de la tarjeta FPGA. Además, debe contar con funcionalidades
como detector de presencia de un objeto, contadores, detecto-
res de objetos metálicos y control de velocidad.
Historias de Usuario:
1. Como operario de una banda transportadora deseo trans-
portar objetos para no depender de la fuerza de una
persona o de vehículos independientes.
2. Como operario de una banda transportadora quiero tener
una indicación luminosa al detectar un objeto para tener
una advertencia sensorial de que el proceso está en
funcionamiento.
3. Como operario de una banda transportadora quiero tener
botones (inicio, parada, reset y cambio de velocidad) para
tener control sobre el proceso.
4. Como operario de una banda transportadora deseo tener
sensores que permitan diferenciar dos tipos de objetos
para contabilizar los diversos tipos de materiales que
pasan por la banda. Figura 2. Diagrama de Bloques con Arduino
ELECTRÓNICA DIGITAL - UNAL - 2022 II 3
de flujo. En primer lugar, para el uso de los sensores y el
contador se tiene una máquina de estados y un contador de 0
a 9999 para cada uno de los sensores, para al final entregar
el registro del contador a una máquina de estado que se
encarga de la visualización dinámica. Por otro lado, en la
parte del motor se puede ver como se conecta el motor al
botón de inicio, y la velocidad se controla con dos divisores
de frecuencia, el primero con 500Hz para una alta velocidad
y el segundo con 143 Hz con una baja velocidad.
Figura 3. Diagrama de Bloques sin Arduino
Caja Negra y Transparente
En diagrama de caja negra del código de la tarjeta se pueden
identificar siete entradas y seis salidas. En cuanto a las entradas
se tienen:
Las señales entregadas por los sensores que habilitan los
contadores.
Los sensores y los botones de seldir y selspeed encar-
gados del control del motor, el primero que define la
dirección a la que irá la banda y el segundo que controla
la velocidad de esta misma.
Entradas fundamentales como lo son el botón de encen-
dido, el botón de reseteo y el pulso de reloj de 50MHz
entregado por la misma tarjeta.
Por otro lado, en cuanto a las salidas se tiene:
Un valor de 8 bits para el común de los displays de la
tarjeta el cuan cambia dinamicamente dependiendo de
cierta frecuencia.
Los 7 bits necesarios para la activación de los leds del
display los cuales cambian dependiendo del contador.
Las salidas correspondientes al control del motor.
El led Blinky que indica el buen funcionamiento de la Figura 5. Diagrama de caja transparente.
tarjeta.
Diagramas de Estados
En principio se habían planeado solo dos máquinas de estado
un para cada contador y otra para la visualización dinámica
Figura 4. Diagrama de caja negra. en el display, sin embargo durante las pruebas del código se
podía observar que además de la lectura normal del sensor,
En el diagrama de caja transparente se puede ver más específi- se estaban contando números de más debido al ruido que se
camente todos los bloques utilizados en el código. Excluyendo produce durante el cambio de estado de la señal, es por eso
el bloque del Blinky, a grandes rasgos se pueden identificar dos que se agregaron dos estados mas para el contador de unidades
grandes secciones como ya se había planteado en el diagrama que es el que se activa con el sensor.
ELECTRÓNICA DIGITAL - UNAL - 2022 II 4
Figura 8. Diagrama de estados 2
Figura 6. Diagrama de estados 1
en los que se activa un contador de 20 bits y no cambia
de estado hasta que este agote sus bits, funcionando como un
delay en el que la tarjeta no lee nada de los sensores. En la
siguiente tabla se puede ver más específicamente cada estado
y su propósito.
Figura 9. Tabla de información de la maquina de estados 2
Por otro lado también se optó por usar una máquina de
estados para la visualización dinámica, en la que en cada
estado se entrega un valor para la activación de un display
y el respectivo valor del contador y el cambio de estado está
dado por un divisor de frecuencia de 1000 Hz con un contador
hasta 50000, este valor fue deducido durante una práctica
anterior. En el siguiente gráfico se puede ver mucho mejor
cómo funciona su orden, además también se creó una tabla
con la descripción más especifica de cada estado.
Figura 7. Tabla de información de la maquina de estados 1
Esta máquina de estados en realidad funciona como un filtro
pues recibe la señal directa del sensor y la traduce en una señal
de pulsos con la que finalmente funciona el contador, además
de esto también entrega una señal con un pulso cada 10 objetos
contados la cual funciona como habilitador par la siguiente
máquina de estados que corresponde al contador decimal. Sin
embargo, este contador ya recibe un señal en forma de pulsos
por lo que no es necesario un delay, es por eso que para el
contador decimal, de centenas y de unidades de mil se usa
otra máquina de estados, la máquina de estados diseñada en
un principio. Figura 10. Diagrama de estados 3
ELECTRÓNICA DIGITAL - UNAL - 2022 II 5
IV-C. Codificación en Verilog
Una vez realizado el código en verilog se obtuvieron los
siguientes resultados con la herramienta RTL Viewer.
Figura 14. Caja transparente en RTL Viewer
Figura 11. Tabla de información de la maquina de estados 3 La principal diferencia entre este diagrama y la caja trans-
parente es que aquí si se puede apreciar mejor la distribución
del contador de 0 a 9999, del resto se puede observar que las
Esquemas conexiones coinciden bastante.
Finalmente se realizó el diseño de la caja que todos los
componentes electrónicos incluida la tarjeta FPGA además de
que funcionaria como base de la banda.
Figura 15. RTL Viewer Contador unidades
Para e contador de unidades se puede ver más específica-
mente como hay dos contadores, uno antes de la máquina de
estados que sería el encargado de general el delay, y luego está
Figura 12. Mockup en Inventor el contador que va solo hasta 9. Además de esto, también se
puede apreciar el registro que entregara la señal de habilitación
para el siguiente contador. Para los demás contadores es igual,
solo que no se tiene el contador de delay.
Figura 13. Cortes de la Caja Figura 16. RTL Viewer Contador decenas
ELECTRÓNICA DIGITAL - UNAL - 2022 II 6
Figura 17. RTL Viewer Contador centenas
Figura 21. RTL Viewer FMS Display dinamic
Finalmente en el RTL viewer de la maquina de estados de
la visualización dinámica que funciona a partir del divisor de
frecuencia descrito anteriormente , se puede observar como
a partir de la maquina de estados se determinan el valor de
común y se determina que valor sera entregado al traductor de
valor binario a siete segmentos que es la entrada valida para
los displays.
Los archivos creados para el proyecto fueron:
Figura 18. RTL Viewer Contador milésimas
Figura 19. RTL Viewer Divisor de frecuencia Figura 22. Archivos del proyecto
Figura 20. RTL Viewer Control motor
Para el control del motor no hay mucho que decir respecto
al control de la dirección que solo es una compuerta not, ni
del habilitador del motor que por temas de recursos se conectó
directamente al botón de inicio. Figura 23. Código Proyecto parte 1
ELECTRÓNICA DIGITAL - UNAL - 2022 II 7
Figura 24. Código Proyecto parte 2
Figura 26. Código Counter
Figura 25. Código Control motor
ELECTRÓNICA DIGITAL - UNAL - 2022 II 8
Figura 29. Código Divisor de Frecuencia
Figura 27. Código Counter delay parte 1
Figura 28. Código Counter delay parte 2 Figura 30. Código FSM Display parte 1
ELECTRÓNICA DIGITAL - UNAL - 2022 II 9
Figura 31. Código FSM Display parte 2
Figura 34. Código Proyecto tb parte 1
Figura 35. Código Proyecto tb parte 2
Figura 32. Código hex to sseg
Figura 36. Código motor tb
IV-D. Simulaciones
La primera prueba realizada fue al contador de 0 a 9999,
para esto se aumento la frecuencia para así poder observar
mas fácilmente como se comporta cada contador, además de
Figura 33. Código blinky que se trabajó con un solo contador.
ELECTRÓNICA DIGITAL - UNAL - 2022 II 10
Luego de esto se agregó el segundo contador, en código
de blinky y se corrigió una funcionalidad del init, por lo que
una vez más se tuvo que verificar el código completo y así
poder identificar errores antes de llevarse a la tarjeta, de esta
simulación se destaca el funcionamiento del botón de inicio
que al desactivarse todas las maquinas vuelven al estado de
inicio, sin embargo los registros se mantienen lo que diferencia
esta funcionalidad del botón de reseteo.
Figura 37. Simulación del contador de 0 a 9999.
De esta simulación destaca como funciona la máquina de
estados sin delay, se puede ver como luego de que hay una
bajada en el sensor, inmediatamente en la señal de salida hay
un pulso de reloj, aparte de esto también se puede evidenciar
el correcto funcionamiento de la máquina de estados de
la visualización dinámica. Sin embargo, aunque el contador
funciona bien aquí, no se tiene en cuenta el ruido que se
Figura 40. Simulación del funcionamiento del init.
logra distinguir de los sensores por lo que se tuvo que realizar
cambios en el contador de unidades.
Posteriormente se diseñó el código para el motor, por lo
que se creó otro archivo de testbenches exclusivo para este. IV-E. Implementación
Lo más importante que había que ver en esta simulación era El primer subsistema en ensamblarse fue el de potencia. Que
ver la señal que entregaba cada divisor de frecuencia, pues era incluye, el motor paso a paso NEMA 17, su respectivo driver
obligatorio que esta presentara una potencia del 50 %, también A4988, una fuente DC de 12 voltios/ 2 amperios, dos poleas
se verifico el funcionamiento de cada botón asociado a este. sincrónica GT2 20 dientes, para ejes de 5 y 8 mm, correa
distribución GT2 de 6mm, dos ejes de acero, 4 rodamientos
de 8 mm y lona de impresión para la banda.
Para garantizar que el motor Nema es capaz de mover
el sistema completo, se realizó el cálculo del torque y se
comparó con lo indicado en el datasheet[7],en donde se
tiene un torque máximo de 43N cm. Se tiene una densidad
ρAcero = 7850Kg/m3 , un diámetro de los ejes D = 5mm y
una longitud L = 400mm y una distancia del eje al motor de
= d = 11cm.
Figura 38. Simulación del control del motor. V = π(0, 005m/2)2 ∗ (0, 4m) = 7, 85x10−6 m3
Una vez corregido el contador de las unidades se realizó una Para 2 ejes:
simulación para ver como interactuaba el contador del delay V = 1, 57x10−5 m3
con el cambio de estado y comprobar su funcionamiento, se
puede ver como el código espera a que el contador termine Masa total:
para continuar su lectura del sensor.
m = (7850Kg/m3 )(1, 57x10−5 m3 ) = 0, 123Kg
Peso:
F = (0, 123Kg)(9, 81m/s2 ) = 1, 21N
Torque:
T = (1, 21N )(11cm) = 13.31N cm
La siguiente imagen hace referencia a la asignación de pines
Figura 39. Simulación del contador con delay. de la tarjeta FPGA:
ELECTRÓNICA DIGITAL - UNAL - 2022 II 11
transportadora, y el contador de la izquierda es especifico para
los objetos metálicos.
Figura 44. Banda transportadora. Encendida
En la siguiente imagen, se presenta el paso de un objeto
no metálico, por lo cual el contador en el que se evidencia el
aumento es en el de la derecha.
Figura 41. Asignación de pines.
A continuación se muestran registros del funcionamiento
del proyecto:
Figura 45. Banda transportadora. Paso de un objeto no metálico
Esta situación es el paso de un objeto metálico, por lo que
se tiene dos imágenes de registro, la primera cuando el objeto
pasa por el sensor inductivo, y la segunda cuando pasa por el
final de carrera.
Figura 42. Banda transportadora. Apagada
Figura 46. Banda transportadora. Paso de un objeto metálico. Sensor inductivo
Figura 43. Banda [Link] superior
Los botones que presenta la banda transportadora corres-
ponden, de izquierda a derecha, a inicio, cambio de veloci-
dad, cambio de dirección y reset. El contador de la derecha
permite llevar el conteo de los objetos que pasan por la banda Figura 47. Banda transportadora. Paso de un objeto metálico. Final de carrera
ELECTRÓNICA DIGITAL - UNAL - 2022 II 12
La opción de reset del dispositivo se presenta a continua- que viene incluido en la PCB, siguiendo la guía de la página
ción, en donde se ve ambos contadores con determinados web Last Minute Engineers [8].
valores, seguido del estos en cero, puesto que se oprimió el
botón momentos previos a la segunda situación.
Figura 48. Banda transportadora. Previo al reset
Figura 50. Pines del Driver A4988
CorrienteN ominal 1.7
Vref = = = 0.68
2.5 2.5
Figura 49. Banda transportadora. Luego del reset
Los casos anteriores, junto con las opciones de cambio de
velocidad y de cambio de dirección, que por medio de una
foto no se evidencian de manera clara, se presentan en el video
entregado junto con el informe de proyecto,
V. A NÁLISIS DE RESULTADOS
Se puede notar que el planteamiento de la caja transpa- Figura 51. Medición del voltaje de Referencia
rente, sus entradas, salidas y bloques, se parece mucho a la
realidad vista por medio del RTL viewer. Se pueden ver las
Al momento de realizar el corte láser de la caja, se tomó
similitudes en la la implementación de la máquina de estados
una tolerancia errónea de la estructura, por lo que debieron
para los sensores y la visualización dinámica. La lógica con
ajustarse los [Link] otro lado, el motor debido al
multiplexores y divisores de frecuencia para la selección de
torque realizado, presentaba altas vibraciones, por lo que se
velocidades, entre otros.
ancló a la base de la caja.
Aunque realizar simulaciones sea de gran ayuda para veri-
En cuanto al código si se llegaron a corregir varios errores
ficar el correcto funcionamiento del código y para encontrar
sobre la marcha, en primer lugar porque se venía de usar
errores de sintaxis y de lógica, finalmente los errores mas gran-
únicamente la tarjeta FPGA sin ningún otro componente
des se encuentran luego de implementarse en la tarjeta, como
adicional. Durante el proceso de diseño se terminó generando
por ejemplo el contador que parecía funcionar perfectamente
5 versiones del código.
dentro de la simulación, pero al momento probarse terminaba
contando bastantes números de más. Para la primera versión se entregó únicamente el código
Una posible mejora en la parte mecánica podría ser utilizar de los sensores
un material aun menos flexible pero con más fricción en la En la segunda versión se implementó el control para
banda. el motor y se replanteo el contador debido a que se
estaban presentado errores asociados al ruido causado por
el cambio de estado del sensor, sin embargo, no se tuvo
VI. E RRORES CORREGIDOS O INSALVABLES éxito.
Un problema al que nos enfrentamos en el desarrollo de este En la tercera versión se agregó la máquina de estados
proyecto fue el torque que entregaba el motor paso a paso. Ya con Delay corrigiendo el error debido al ruido.
que aunque según el datasheet el motor podía dar la suficiente Al intentar agregar el segundo sensor se presentó un
potencia para operar la banda, pero en las primeras pruebas se imprevisto debido a que en principio se pensaba que el
bloqueaba. La solución para esto fue modificar la regulación segundo display era independiente al primero, por esta
de corriente del driver A4988, por medio del potenciómetro razón en la cuarta versión se tuvieron que replantear
ELECTRÓNICA DIGITAL - UNAL - 2022 II 13
varios bloques en el que se destaca la ampliación de la
máquina de estados de la visualización dinámica.
En la última versión se corrigieron errores en el botón
de inicio y reseteo encontrados después de conectar los
botones y pulsadores externos a la tarjeta.
VII. C ONCLUSIONES
Se pudo evidenciar la aplicación de los dispositivos
FPGA en el control industrial.
Se aplicaron los conocimientos aprendidos tanto en la
clase de teoría como en los laboratorios de Electrónica
Digital 1.
Es evidencio la importancia de las máquina de estados
finitos para poder realizar procesos complejos en la
electrónica digital.
VIII. R EFERENCIAS
[1] "FIELD PROGRAMMABLE GATE ARRAY (FPGA)".
Test Page for the HTTP Server on Red Hat Enterprise Linux.
[Link]
MEMORIA%[Link].
[2] J. Chavez. "Manual de Verilog". marceluda.
[Link]
[3] "Motor paso a paso ¿Qué es y como fun-
ciona?Ïngeniería Mecafenix. [Link]
electricidad-industrial/motor-paso-a-paso/.
[4] "Sensor de Proximidad Inductivo".
Electronilab. [Link]
sensor-de-proximidad-inductivo-lj12a3-4-z-bx/.
[5] "Finales de carrera: Qué son y
características principales". Grupo Nove-
lec. [Link]
finales-de-carrera-que-son-y-caracteristicas-principales/.
[6] "Display de 7 segmentos". Newark. [Link]
[Link]/display-seven-segment-display-technology.