9
UNIVERSIDAD NACIONAL DE CHIMBORAZO FACULTAD DE INGENIERÍA ESCUELA DE ELECTRÓNICA Y TELECOMUNICACIONES SISTEMAS DIGITALES Y LABORATORIO Fausto Chávez [email protected] Héctor Cajilema hector55Qhotmail.es Jesica Quillay [email protected] Tema: Diseño E Implementación De Un Robot Multifuncional Mediante El Hardware VHDL. ResumenEn este informe muestra el diseño e implementación de un robot móvil multifuncional: Seguidor de línea, seguidor de luz y evasor de obstáculos, producto del desarrollo de la práctica de laboratorio correspondiente a la asignatura de Sistemas Digitales, abordando los conceptos de Lenguaje de Descripción de VHDL. El dispositivo lógico programable utilizado para el control del robot móvil fue la FPGA ESPARTAN 6. El sensor QRD1114 fue utilizado para la detección de línea, un par de fotoceldas como sistema para detección de luz y para detección de obstáculos unos interruptores tipo bumper. Palabras ClavesArreglos lógicos programables, Lenguaje de Descripción de Hardware VHDL, Lógica Combinaciones, Robótica móvil, Seguidor de Línea, Seguidor de Luz. I. INTRODUCCIÓN La robótica es un área que actualmente está siendo utilizada en un sin número de aplicaciones industriales, domésticas y educativas, trabajar con robots exige un conocimiento multidisciplinar de la electrónica, la informática y hasta la mecánica. Conocimiento de sensores, comunicaciones, motores e incluso inteligencia artificial hace de esta disciplina un excelente elemento formativo para estudiantes y profesionales, colocando en práctica los conocimientos en cada una de las temáticas anteriormente mencionadas, además de generar el deseo y la motivación de querer aprender nuevas técnicas y métodos que hagan del robot un sistema más autónomo e inteligente. A. OBJETIVO GENERAL Diseño E Implementación De Un Robot Multifuncional Mediante Lenguaje VHDL y en el Hardware FPGA Espartan 6 Zula 2. B. OBJETIVOS ESPECIFICOS. Identificar y aprender la importancia del desarrollo de aplicaciones basadas

Proyect Robot Completo Vhdl

Embed Size (px)

Citation preview

Page 1: Proyect Robot Completo Vhdl

UNIVERSIDAD NACIONAL DE

CHIMBORAZO

FACULTAD DE INGENIERÍA

ESCUELA DE ELECTRÓNICA Y TELECOMUNICACIONES

SISTEMAS DIGITALES Y LABORATORIO

Fausto Chávez

[email protected]

Héctor Cajilema

hector55Qhotmail.es

Jesica Quillay

[email protected]

Tema: Diseño E Implementación De Un

Robot Multifuncional Mediante El Hardware

VHDL.

Resumen—En este informe muestra el diseño

e implementación de un robot móvil

multifuncional: Seguidor de línea, seguidor de

luz y evasor de obstáculos, producto del

desarrollo de la práctica de laboratorio

correspondiente a la asignatura de Sistemas

Digitales, abordando los conceptos de

Lenguaje de Descripción de VHDL.

El dispositivo lógico programable utilizado

para el control del robot móvil fue la FPGA

ESPARTAN 6.

El sensor QRD1114 fue utilizado para la

detección de línea, un par de fotoceldas como

sistema para detección de luz y para detección

de obstáculos unos interruptores tipo bumper.

Palabras Claves—Arreglos lógicos

programables, Lenguaje de Descripción de

Hardware VHDL, Lógica Combinaciones,

Robótica móvil, Seguidor de Línea, Seguidor

de Luz.

I. INTRODUCCIÓN

La robótica es un área que actualmente está

siendo utilizada en un sin número de

aplicaciones industriales, domésticas y

educativas, trabajar con robots exige un

conocimiento multidisciplinar de la

electrónica, la informática y hasta la

mecánica. Conocimiento de sensores,

comunicaciones, motores e incluso

inteligencia artificial hace de esta disciplina

un excelente elemento formativo para

estudiantes y profesionales, colocando en

práctica los conocimientos en cada una de las

temáticas anteriormente mencionadas, además

de generar el deseo y la motivación de querer

aprender nuevas técnicas y métodos que

hagan del robot un sistema más autónomo e

inteligente.

A. OBJETIVO GENERAL

Diseño E Implementación De Un

Robot Multifuncional Mediante

Lenguaje VHDL y en el Hardware

FPGA Espartan 6 Zula 2.

B. OBJETIVOS ESPECIFICOS.

Identificar y aprender la importancia

del desarrollo de aplicaciones basadas

Page 2: Proyect Robot Completo Vhdl

en circuitos digitales programables

FPGA.

Aplicar todo lo aprendido en lenguaje

VHDL y en la FPGA Espartan 6.

Realizar la programación del robot

mediante VHDL.

Probar y quemar en la tarjeta FPGA

Espartan 6.

Implementar el robot multifuncional.

II. MARCO TEORICO

Seguidor De Línea

Estos robots pueden variar desde los más

básicos (van tras una línea única) hasta los

robots que recorren laberintos. Todos ellos,

sin embargo, poseen (por lo general) ciertas

partes básicas comunes entre todos:

Sensores: Un rastreador detecta la línea a

seguir por medio de sensores. Hay muchos

tipos de sensores que se pueden usar para este

fin; sin embargo, por razones de costos y

practicidad los más comunes son los sensores

infrarrojos (IR), que normalmente constan de

un LED infrarrojo y un fototransistor.

Motores: El robot se mueve utilizando

motores. Dependiendo del tamaño, el peso, la

precisión del motor, entre otros factores, éstos

pueden ser de varias clases: motores de

corriente continua, motor paso a

paso o servomotores.

Ruedas: Las ruedas del robot son movidas por

los motores. Normalmente se usan ruedas de

materiales anti-deslizantes para evitar fallas

de tracción. Su tamaño es otro factor a tener

en cuenta a la hora de armar el robot.

Fuente de energía: El robot obtiene la energía

que necesita para su funcionamiento de

baterías o de una fuente de corriente alterna,

siendo esta última menos utilizada debido a

que le resta independencia al robot.

Seguidor De Luz

Su tarea es encontrar un punto de luz dentro

de un ángulo de detección de las Foto-

resistencias y dirigirse lo más rápido posible

hacia tal fuente de luz.

Xilinx Ise

Xilinx ISE (Entorno de Software Integrado)

es una herramienta de software producido por

Xilinx para la síntesis y el análisis de los

diseños de HDL, lo que permite al

desarrollador para sintetizar ("compilación")

sus 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.

III. ALGORITMO PROPUESTO PARA EL

CONTROL DEL ROBOT MÓVIL

Page 3: Proyect Robot Completo Vhdl

IV. METODOLOGIA

La función a realizar por el robot está

determinada por el estado de las entradas de

selección (SEL0 y SEL1).

Para la función de seguimiento de línea se

utilizaron un par de sensores (SL0 y SL1),

para el seguimiento de luz se utilizaron un par

de fotoceldas (SLuz0 y SLuz1) y para la

función de evasión de obstáculos un par de

interruptores (SObs0 y SObs1).

En la lógica combinacional entra la

programación en VHDL para cumplir cada

función y la movilidad del robot está

determinada por el accionamiento conjunto de

dos motores DC controlados por medio de un

puente H integrado.

V. PROCEDIMIENTO

Diseño Del Algoritmo Controlador Del

Robot Móvil Multifuncional

La tabla I muestra la asignación de funciones

a realizar por el robot móvil, según los

estados de las líneas de selección.

Tabla I. Asignación de funciones para robot

móvil.

SEL 1 SEL2 FUNCION

0 0 SEGUIDOR DE

LINEA

0 1 SEGUIDOR DE

LUZ

1 0 EVASOR DE

OSTACULOS

1 1 PARAR

A. Seguidor de Línea

La función de seguidor de línea solo tendrá en

cuenta los estados lógicos digitales entregados

por los sensores ópticos dispuestos para tal

fin. El acondicionamiento electrónico

realizado a cada sensor óptico para que

entregue dichos estados digitales, se muestra

en la Fig. 2.

Fig. 3. Acondicionamiento de sensores

ópticos.

El voltaje de calibración Vcal se ajusta para

mejorar la sensibilidad de acuerdo a las

condiciones de luminosidad de la pista de

prueba. La lógica utilizada para la activación

de los motores para la función de seguimiento

de línea se muestra en la Tabla II.

Tabla II. Lógica de control de motores para

seguidor de línea

Page 4: Proyect Robot Completo Vhdl

Los estados de MOTOR1 y MOTOR2

corresponden a los estados que adoptaran las

líneas de entrada al integrado L293B,

Control0, Control1, Control2 y Control3

respectivamente (Ver Fig. 2). Si ambos

sensores detectan color negro (SL0=0 y

SL1=0) el robot debe avanzar, si se detecta

color blanco por la derecha (SL1=0 y SL0=1)

el robot debe girar a la izquierda, si se detecta

color blanco por la izquierda (SL1=1 y

SL0=0) el robot debe girar a la derecha, y si

ambos sensores detectan color blanco (SL1=1

y SL0=1) el robot debe retroceder.

A. Seguidor de Luz

La función de seguidor de luz solo tendrá en

cuenta los estados lógicos digitales entregados

por las fotoceldas dispuestas para tal fin. El

acondicionamiento electrónico realizado a

cada fotocelda para que entregue dichos

estados digitales, se muestra en la Fig. 4.\

Fig. 4. Acondicionamiento de sensores de

luminosidad.

La lógica utilizada para la activación de los

motores para la función de seguimiento de luz

se muestra en la Tabla III.

Entonces, si ambos sensores de luminosidad

detectan luz (SLuz1=1 y SLuz0=1) el robot

debe avanzar hacia adelante, si se detecta luz

por la derecha (SLuz1=0 y SLuz0=1) el robot

debe avanzar girando a la derecha, si se

detecta luz por la izquierda (SLuz1=1 y

Sluz0=0) el robot debe avanzar girando a la

izquierda, y por último, si no se detecta

luminosidad (SLuz1=0 y SLuz0=0) el robot

debe parar.

A. Evasor de Obstáculos

La función de evasión de obstáculos solo

tendrá en cuenta los estados lógicos digitales

entregados por los interruptores tipo bumper

dispuestos para tal fin. El acondicionamiento

electrónico realizado a cada bumper para que

entregue dichos estados digitales, se muestra

en la Fig. 5.

Page 5: Proyect Robot Completo Vhdl

La lógica utilizada para la activación de los

motores para la función de evasión de

obstáculos se muestra en la Tabla IV.

Tabla IV. Lógica de control de motores para

evasión de obstáculos.

Si los bumpers no detectan obstáculo

(SObs1=1 y SObs0=1) el robot debe avanzar,

si se detecta obstáculo por la derecha

(SObs1=0 y SObs0=1) el robot debe girar a la

izquierda, si se detecta obstáculo por la

izquierda (SObs1=1 y SObs0=0) el robot debe

girar a la derecha, y por último, si se detecta

obstáculo frontal (SObs1=0 y SObs0=0) el

robot debe retroceder.

VI. SIMULACION PROTEUS

VII. PROGRAMACION

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

--Uncomment the following library

declaration if using

-- arithmetic functions with Signed or

Unsigned values

--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library

declaration if instantiating

-- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

Entity ROBOT is

port(

SEL: in std_logic_vector (1 downto 0);

S_LINEA: in std_logic_vector (1 downto 0);

S_LUZ: in std_logic_vector (1 downto 0);

S_OBST: in std_logic_vector (1 downto 0);

CONTROL: out std_logic_vector (3 downto

0));

end ROBOT;

architecture BEHAVIORAL of ROBOT is

begin

process(SEL, S_LINEA, S_LUZ, S_OBST)

begin

--SEGUIDOR DE LINE

if SEL="00" then

if S_LINEA="00" then

CONTROL<="1010"; --retrocede

elsif S_LINEA="01" then

CONTROL<="0110"; --derecha

elsif S_LINEA="10" then

CONTROL<="1001"; --izquierda

else

CONTROL<="0101"; --adelante

end if;

end if;

--SEGUIDOR DE LUZ

if SEL="01" then

if S_LUZ ="00" then

CONTROL<="1111"; --adelante

elsif S_LUZ ="01" then

Page 6: Proyect Robot Completo Vhdl

CONTROL<="0110"; --izquierda

elsif S_LUZ ="10" then

CONTROL<="1001"; --derecha

else

CONTROL<="0101"; --parar

end if;

end if;

--EVASOR DE OBSTACULOS

if SEL="10" then

if S_OBST="00" then

CONTROL<="0101"; --retrocede

elsif S_OBST="01" then

CONTROL<="1001"; --derecha

elsif S_OBST="10" then

CONTROL<="0110"; --izquierda

else

CONTROL<="1010"; --adelante

end if;

end if;

--OTRO CASO

if SEL="11" then

CONTROL<="1111"; --parar

end if;

end process;

end BEHAVIORAL;

VIII. ESQUEMATICOS

Page 7: Proyect Robot Completo Vhdl

IX. ASIGNACION DE PINES

NET SEL(0) LOC =B15;

NET SEL(1) LOC =B16;

NET S_LINEA(0) LOC =C15;

NET S_LINEA(1) LOC =C16;

NET S_LUZ(0) LOC =F16;

NET S_LUZ(1) LOC =F15;

NET S_OBST(0) LOC =J14;

NET S_OBST(1) LOC =J16;

NET CONTROL(0) LOC =K16;

NET CONTROL(1) LOC =K15;

NET CONTROL(2) LOC =M16;

NET CONTROL(3) LOC =M15;

X. QUEMADA DE LA TARJETA

Page 8: Proyect Robot Completo Vhdl

CARGAMOS .BIT

XI. CONCLUSIONES

Se logró aplicar los conocimientos

adquiridos en el periodo académico,

tanto en lo que se obtuvo

conocimiento de la programación de

lenguaje VHDL como en la tarjeta

FPGA Espartan 6.

El desarrollo de aplicaciones basadas

en dispositivos programables, permite

generar aplicaciones de manera mas

rápida y eficiente, puesto que el diseño

es mas orientado al algoritmo

desarrollado a nivel de software, y los

inconvenientes de implementación y

cableado pasan a ser problemas menos

tediosos y difíciles de corregir.

Para el desarrollo del circuito

combinacional controlador del robot

móvil, es importante identificar las

entradas y salidas del sistema, así

como el funcionamiento general del

mismo, puesto que el lenguaje de

descripción de hardware VHDL

XII. RECOMENDACIONES

Se recomienda declarar muy bien los

comandos así como también puntos y

comas para que funcione

correctamente el programa.

Se debe asignar correctamente los

pines con los pines de la tarje.

Page 9: Proyect Robot Completo Vhdl

Es muy importante no sobrepasar el

voltaje de 5V tanto para la

alimentación así como también

entradas y salidas caso contrario

quemaríamos la tarjeta.

XIII. REFERENCIAS

J. Angulo, Introducción a la Robótica:

Principios teóricos, construcción

y programación de un robot educativo,

Ed. Thomson, 2005, pp 75.

[2] E. Palacios, Microcontrolador

PIC16F84 Desarrollo de Proyectos:

Sensores para Microrobótica, segunda

edición, Ed. AlfaOmega, 2006,

pp. 515-527.

[3] ATF16V8B DataSheet, Lattice

Semiconductor, disponible en internet:

http://www.datasheetcatalog.org/datas

heets/320/91363_DS.pdf.

[4] C. Roth Jr, Fundamentos de diseño

logico: Descripción VHDL de

Circuitos Combinacionales, Ed.

Thomson, 2005, pp. 239-244.

[5] J. Wakerly, Diseño Digital

Principios y Practicas: Principios de

diseño

logico-combinacional, Ed. Prentice

Hall, 2001, pp. 193-298.

[6] F. Pardo, VHDL Lenguaje para

Síntesis y Modelado de Circuitos:

Descripción Comportamental

Algorítmica, Ed. Alfaomega, 2004,

pp.

69-82..

[7] J. Garza, Sistemas Digitales y

Electrónica Digital Practicas de

Laboratorio: Captura Esquemática

ISPLever Starter, Ed. Prentice Hall,

2006, pp. 29-46.

Ruge, Ilber A. Ingeniero Electrónico

egresado de la Universidad

Pedagógica

y Tecnológica de Colombia sede

Sogamoso Boyacá en el año 2005,

Magister

en Ingeniería de Control Industrial

egresado de la Universidad de Ibagué

Tolima en el año 2011. Actualmente

se desempeña como docente en la

Universidad de Cundinamarca en el

Programa de Ingeniería Electrónica.

Miembro del grupo de Investigación

GITEINCO clase D ColCiencias.

Temas

de interés: Control inteligente,

energías alternativas, dispositivos

electrónicos

programables entre otros.

García , Duvan G. Actualmente esta

culminado estudios en la Universidad.