sábado, 21 de noviembre de 2015

Paper proyecto Parqueadero

DISEÑO DE INGRESO AUTOMATICO A PARQUEADERO
Sierra Cabezas Julio Cristian, Garcia Quiroga Fredicson, Ramirez Jair Andres.
Cristian.cas109@hotmail.com, shilton_99@hotmail.com, jairandres33@hotmail.com
Ingeniería electrónica, Universidad Escuela Colombiana de Carreras Industriales
Bogotá D.C., Colombia



Resumen – El siguiente informe se presentara el desarrollo e implementación de un parqueadero cuyo ingreso y salida sea automático por medio de sensores y gracias a la herramienta de programación VHDL con lo cual se pretende por medio de estados controlar los motores paso a paso.

Abstract –  The following report the implementation of a development whose parking lot entry and exit is automatic through sensors, thanks to VHDL programming, tool with which it intends to through states control the stepper motors is presented.
Palabras Claves —FPGA, VHDL, CONTROL, talanqueras.

1.       Introducción
En la época actual sistemas inteligentes se encuentran en todo el mundo, ya que su objetivo es facilitar la vida humana, por tal motivo, las industrias han logrado implementar un nuevo mecanismo de confort y tranquilidad en nuestros hogares.
Los sistemas son capaces de automatizar una y aportar servicios de bienestar, definiéndose como la integración de la tecnología en el diseño inteligente de un recinto cerrado.
El presente proyecto se enfoca en la automatización de ingreso de un parqueadero implementándolo por medio de varios modulos  los cuales nos permita el exelente funcionamiento de este

2.       Componentes Del Proyecto
 INTEGRADO COMPUERTA NOT : Esta compuerta se utiliza para garantizar los valores que sean reconocidos por la FPGA por medio de compuertas not en cascada indicando que un valor bajo esta entre 0 y 2.3 volts y un valor alto de 3.3 a 5 volts

FPGA: Una FPGA (del inglés Field Programmable Gate Array) es un dispositivo semiconductor que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada 'in situ' (en el sitio/lugar) mediante un lenguaje de descripción especializado. La lógica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta lógica o un sistema combinacional hasta complejos sistemas en un chip.
SENSORES: Un sensor es un dispositivo capaz de detectar magnitudes físicas o químicas, llamadas variables de instrumentación, y transformarlas en variables eléctricas. Las variables de instrumentación pueden ser por ejemplo: temperatura, intensidad lumínica, distancia, aceleración, inclinación, desplazamiento, presión, fuerza, torsión, humedad, movimiento, pH, etc. Una magnitud eléctrica puede ser una resistencia eléctrica (como en una RTD), una capacidad eléctrica (como en un sensor de humedad), una tensión eléctrica (como en un termopar), una corriente eléctrica (como en un fototransistor), etc..
Puente h: es un circuito electrónico que permite a un motor eléctrico DC girar en ambos sentidos, avance y retroceso. Son ampliamente usados en robótica y como convertidores de potencia. Los puentes H están disponibles como circuitos integrados, pero también pueden construirse a partir de componentes discretos.
Actuadores: refiere a un dispositivo capaz de transformar energía hidráulica, neumática o eléctrica en la activación de un proceso con la finalidad de generar un efecto sobre un proceso automatizado. Este recibe la orden de un regulador o controlador y en función a ella genera la orden para activar un elemento final de control como, por ejemplo, una válvula.
Prototipo: corresponde a un montaje funcional, a menor "escala", con materiales pensados para resaltar, en su funcionalidad, la atención de aquello que, en su escala real, se presentará como innovación, mejora o sencillamente el esquema de quien lo implementa.


3.         programa desarrollo
Xilinx ISE (Integrated Synthesis Environment / Ambiente Síntesis Integrado) es una herramienta de software producido por Xilinx para la síntesis y análisis de los diseños de HDL, lo que permite al desarrollador para sintetizar ("compilar") diseños, realizar análisis de tiempo, examinar diagramas RTL, simular la reacción de un diseño a diferentes estímulos, y configurar el dispositivo de destino con el programador. Xilinx ISE es un entorno de diseño para los productos FPGA de Xilinx, y se acopla firmemente a la arquitectura de tales chips, y no puede ser usado con productos FPGA de otros proveedores. El Xilinx ISE se utiliza principalmente para la síntesis de circuitos y diseño, mientras que el simulador de la lógica ModelSim se utiliza para las pruebas de nivel de sistema.



4.         Desarrollo De Proyecto
El control de estados del desplazamiento del móvil está determinado por los datos ingresados en la variable (vector) Selection. Dichos control de funciones esta discriminado en la siguiente tabla:
Tabla I

Motor 1
Motor 2
Estado
0
0
0
0
OFF
1
0
0
0
UP MOTOR 1
0
1
0
0
DOWN MOTOR 1
0
0
1
0
UP MOTOR 2
0
0
0
1
DOWN MOTOR 2
1
1
1
1
XXXXXXXXXX
En la siguiente tabla se podrá observar la tabla de los actuadores en sus diferentes estados tanto del motor 1 como del motor 2 que corresponden a la entrada número 1 y la entrada numero 2


Diagrama de Estados
En la anterior figura se observa la maquina de estados que corresponde al motor numero 1
En la anterior figura se observa la maquina de estados que corresponde al motor numero 2
E0     Stop
E1     Up motor 1
E2     Down motor 1
E3     Up motor 2
E4     Down motor 2

Tabla III
Tabla de estados próximos

E0
0
0
s0.s1n.s2.s3n.s4.s5n
0
1
E1
E1
0
1
s0.s1n.s2n.s3.s4.s5n
0
0
E0
E0
0
0
s0n.s1n.s2n.s3.s4.s5n
1
0
E2
E2
1
0
s0n.s1n.s2.s3n.s4.s5n
0
0
E0
E2
1
0
s0n.s1n.s2n.s3.s4.s5n
1
0
E1

5.         IMPLEMENTACIÓN
Teniendo en cuanta que en la actualidad, este modelo de control se proyecta a una escala industrial más comercial sus métodos son mucho más complejos y funcionales.

Para la implementación del diseño se utilizara el lenguaje de programación VHDL, implementando una máquina de estado tipo Moore.

Se creó un programa de máquina de estado con ayuda de xilinx. La FPGA donde se activan los actuadores de entrada y salida del parqueadero dependiendo de los sensores en la que se encuentre. Si los sensores se activan se  habilitara la entrada o salida del parqueadero, dependiendo estado que se encuentra las señales de los sensores para permitir la entrada al usuario para que estacione o caso contrario  pueda salir del parqueadero

6.         Conclusiones
VHDL es un lenguaje de gran versatilidad y potencial que permite describir de manera sencilla y eficaz funciones básicas para el manejo de proyectos como el móvil previamente descrito.
A nivel de programación, los sensores de fin de carrera pueden ser “interpretados” como interruptores o ‘switches’ para recibir la señal sobre la FPGA y luego enviarla a los servomotores.


7.         Referencias
[2]ttp://www.dea.icai.upcomillas.es/daniel/asignaturas/SistDig1_1_ITL/Practica10_SDI.pdf.
[4] http://www.taringa.net/posts/hazlo-tu-mismo/17422637/Como-hacer-una-luz-solar-de-jardin-casera.html

8.         Autores
Ramirez, Jair Andres – nacido en Bogota, el 12 de febrero del 1991. Graduado como Tecnólogo en electrónica Industrial de la Escuela Colombiana de Carreras Industriales, correspondiente a la promoción del 2015, el 27 de marzo del 2015. Actualmente cursa la carrera profesional de Ingeniería electrónica en la Actual Universidad ECCI. Dentro de sus aficiones laborales y de carrera, se hallan: Administrador de redes y certificado CCNA con cisco system
Sierra Cabezas, Julio Cristian – nacido en Bogotá, Cundinamarca, el 10 de agosto de 1986. Graduado como Tecnólogo en electornica industrial de la Escuela Colombiana de Carreras Industriales, correspondiente a la promoción del 2014, el 27 de marzo. Actualmente cursa la carrera profesional de Ingeniería electrónica en la Actual Universidad ECCI. Dentro de sus aficiones laborales y de carrera, se hallan: Administrador y programador de sistemas de seguridad electrónica

Garcia Quiroga Fredicson – nacido en Bogota, Cundinamarca, el 4 de junio de 1990. Graduado como Tecnólogo en soporte de Telecomunicaciones de la Escuela Colombiana de Carreras Industriales, correspondiente a la promoción del 2014, el 27 de marzo. Actualmente cursa la carrera profesional de Ingeniería electrónica en la Actual Universidad ECCI. Dentro de sus aficiones laborales y de carrera, se hallan: Soporte y desarrollo de software de ventas .

sábado, 17 de octubre de 2015


VISUALIZACIÓN DE SÍMBOLOS ALFANUMÉRICOS EN MONITOR VGA 

LABORATORIO 8 
GRUPO:
Jair Andres Ramirez cod: 35889
Julio Cristian Camilo sierra  cod: 31406
Fredycson Garcia

Representación de símbolos alfanuméricos en VGA

Para representar la imagen debemos usar un monitor VGA, por lo que debemos entender el funcionamiento de esta señal. Se compone de dos tipos de información:
a)      Información de imagen.
Es necesario enviar la información de color a la pantalla. Para ello se descompone la imagen en las tres componentes habituales: rojo (R), verde (G) y azul (B). Se utilizan 3 bits para el rojo y tres para el verde, y sólo dos para el azul, ya que el ojo humano es menos sensible a este color. Con esto se pueden representar 8 niveles de rojo y de verde y cuatro de azul, lo que nos ofrece una paleta de 256 colores.
b)      Información de sincronismo.
Se deben generar las señales de sincronización vertical (VS) y horizontal (HS). La señal VS indica cuando se ha terminado de representar una imagen, y se debe volver al píxel de la esquina superior izquierda; la señal HS indica cuando se debe comenzar a representar una nueva línea. Para un sistema con un reloj de pixel de 25MHZ y una tasa de refresco de 60HZ
MOSTRAR NOMBRES GRUPO EN MATRIZ 8*8
LABORATORIO 5


GRUPO:
Jair Andres Ramirez cod: 35889
Julio Cristian Camilo sierra  cod: 31406
Fredycson Garcia



El enfoque de este proyecto es funcionar como una introducción a los estudiantes de ingeniería que estén comenzando a utilizar la programación en hardware en el sistema de desarrollo FPGA Spartan 3A, mediante el uso de un texto y ayudas interactivas.
mediante la lectura y compresión de este trabajo, el estudiante interesado en aprender programación de hardware se familiarizara con temas como la historia de las FPGA, su arquitectura, su configuración, el procedimiento necesario para la programación de las mismas, los diferentes lenguajes HDL con algunas de sus mas importantes características pero enfocándose de manera primaria en el lenguaje VHDL, la solución de problemas prácticos propuestos y a seguir una forma de propagación que brinde alta fiabilidad e igualmente un alto nivel de optimización  e recursos dentro de la FPGA para asegurar una alta velocidad de desempeño en caso de ser esta necesaria.

MICROPROCESADOR ALU LAB 7

LABORATORIO 7
En este laboratorio podemos ver el funcionamiento de un procesador ALU en el cual se realizan las distintas operaciones aritméticas y lógicas programadas que se encontraban  en la memoria rom, con 2  entradas cada una de 4 bits en los cuales se indicaban los números a operar y en las salidas de la fpga podíamos observar el resultado en números binarios. 

maquinas de estado LAB 6


LABORATORIO 6

por medio de esta practica analizamos el funcionamientos de las maquinas de estado para ponerlas en practica en cualquier ambiente o situación en la que se pueda presentar y de igual manera conocer como funciona una maquina de estado implementado en la FPGA por medio de sus led de salida los cuales nos indican los estados posibles que se pueden presentar en nuestra practica

sábado, 5 de septiembre de 2015

                                                       
                                                                   LABORATORIO 4


GRUPO:
Jair Andres Ramirez cod: 35889
Julio Cristian Camilo sierra  cod: 31406
Fredy Garcia

El objetivo de este laboratorio es realizar una  práctica que sirva de introducción al manejo y programación de un FPGA, para ello disponemos de un display de 16 segmentos, donde mostraremos las letras correspondientes a los nombres de cada integrante . Estas letras las almacenamos en los campos de una memoria para que puedan ser codificadas mediante un contador , será el código que desarrollaremos el encargado de iluminar los leds del display.

Una cosa a tener en cuenta es que tanto el reset, los botones y los leds del display están en lógica negativa, normalmente para nosotros el 1 simboliza encendido y el 0 apagado, con esta lógica el 1 es apagado y el 0 encendido. Una vez codifiquemos las letras que queremos mostrar, mediante VHDL leeremos esos 4 bits para después, por unos puertos de expansión conectados al display que se encuentra en una protoboard, codificar la salida de 16 bits para que el display muestre la letra de acuerdo al nombre.

                        
                                                           LABORATORIO 3


GRUPO:
                                           Julio Cristian Camilo Sierra            cod: 31406        
                         Jair Andres Ramirez              cod:35889
   Fredy Garcia


Básicamente hay dos formas de que una memoria ROM sea implementada en un FPGA a partir del código VHDL:
- Deduciendo la memoria desde el código VHDL. Comúnmente conocido como Inferir.

Por portabilidad y code-resuse el primer método, inferir, es el mas aconsejado. Pero por supuesto tambien se puede recurrir a los IPs del FPGA (segundo caso).
A su vez dentro del metodo de inferir hay diferentes opciones para el modo de 'cargar' la ROM:
1- declarando un tipo (type), luego una señal de ese tipo y asignarle a la señal valores constantes (datos de la ROM)
2- declarando los datos de la ROM en un archivo (data file) y usar instrucciones de apertura y lectura de archivos  para leer los datos.
3- usando instrucción 'case'.

Analizando las distintas opciones en generaral podemos decir el caso 3 se usa cdo la memoria es pequeña, de lo contrario queda un 'case' tremendamente largo y un poco anti-estético. El caso 2 depende del entorno del proyecto- hay empresas en las que no les gusta o no están de acuerdo con el acceso a disco para leer/escribir datos, otras que directamente lo prohíben y otras que lo estimulan. Por lo dicho entonces, detallaré la metodología de la opción 1 que es la mas generalizada.

El primer paso es la declaración del arreglo bi-dimensional que fija el tamaño de la memoria. Pero, antes de detallar esta declaración es conveniente declarar también dos constantes: una constante relacionada con el ancho del bus de direcciones de la memoria, y otra constante relacionada con el ancho del bus de datos de la memoria. Conviene que estas declaraciones sean realizadas como generics dentro del componente, así es más fácil la modificación del tamaño de la misma.
De acuerdo a lo descrito, la primera parte del código de la memoria ROM quedaría:

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
4
entity sync_rom is
 generic (data_width  : natural := 16;
          addr_length : natural := 10);
 port (
  clk     :in  std_logic;
10  address :in  std_logic_vector(addr_length-1 downto 0);
11  data_out:out std_logic_vector(data_width-1  downto 0)
12     );
13 end sync_rom;

LABORATORIO 2




GRUPO:
Julio Cristian Camilo Sierra cod: 31406
Jair Andres Ramirez             cod: 35889
Fredy Garcia
                      
Para poder realizar la complementación de este circuito nos basaremos en el mismo principio empleado en el diseño de un conversor BCD a segmentos realizando la tabla de verdad con las funciones necesarias para el display de 16 segmentos el cual esta configurado de la siguiente forma:

 Configuración de segmentos



Esta configuración nos ofrece las nociones necesarias para realizar la tabla de verdad para las funciones que iluminaran nuestros segmentos, en nuestro caso en particular serán los números del 0 al 9 y las letras del abecedario.

Tabla de funciones

A partir de esta tabla podríamos generar las mapas de karnaugh para realizar la simplificación del circuito. Sin embargo existe una herramienta la cual nos hará mas productivos a la hora de realizar nuestros diseños.

Esta herramienta es un software llamado Boole Dusto el cual es gratis y se puede descargar desde la plataforma edmodo del grupo , este software nos brinda la posibilidad de ingresar nuestra tabla de verdad generando las ecuaciones de cada función e incluso podremos genera el código VHDL para poder implementarlo con nuestro diseño.

domingo, 23 de agosto de 2015

laboratorio 1



LABORATORIO 1


TABLA DE DISEÑO DEL LABORATORIO



REPERTORIO DE SABERES

en el laboratorio aprendimos  los pasos para programar en xilinx comprendimos que realizando el esquemático podemos obtener el código. Esta práctica nos sirvió para la introducción a la descripción de sistemas mediante el lenguaje VHDL. Para ello, implementamos el simulador de VHDL que acompaña las herramientas del entorno de diseño de Xilinx. Este simulador admite un  conjunto de programación capaz de sintetizarse en los dispositivos programables Xilinx dado que incorpora librerías específicas para estos dispositivos. Pero a pesar de ello, es un simulador de uso muy extendido dado que a través de las librerías es posible un uso más general.