91
UNIVERSIDAD POLITÉCNICA SALESIANA SEDE QUITO CARRERA: INGENIERÍA ELECTRÓNICA Tesis previa a la obtención del título de: INGENIERO ELECTRÓNICO E INGENIERA ELECTRÓNICA TEMA: DISEÑO E IMPLEMENTACIÓN DE ALGORITMOS DE CINEMÁTICA DIRECTA E INVERSA UTILIZANDO FPGA’S PARA CONTROLAR EL MANIPULADOR ROBÓTICO SCARA (SELECTIVE COMPLIANT ARTICULATED ROBOT ARM) PERTENECIENTE A LA UNIVERSIDAD POLITÉCNICA SALESIANA CAMPUS SUR. AUTOR: ALEJANDRA MARIANELA ORTIZ CRUZ EDISON FERNANDO PONCE PACHECO DIRECTOR: CARLOS GERMÁN PILLAJO ANGOS Quito, junio del 2014

UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

  • Upload
    lylien

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

UNIVERSIDAD POLITÉCNICA SALESIANA

SEDE QUITO

CARRERA: INGENIERÍA ELECTRÓNICA

Tesis previa a la obtención del título de: INGENIERO ELECTRÓNICO E

INGENIERA ELECTRÓNICA

TEMA:

DISEÑO E IMPLEMENTACIÓN DE ALGORITMOS DE CINEMÁTICA DIRECTA E INVERSA UTILIZANDO FPGA’S PARA CONTROLAR EL

MANIPULADOR ROBÓTICO SCARA (SELECTIVE COMPLIANT ARTICULATED ROBOT ARM) PERTENECIENTE A LA UNIVERSIDAD

POLITÉCNICA SALESIANA CAMPUS SUR.

AUTOR: ALEJANDRA MARIANELA ORTIZ CRUZ EDISON FERNANDO PONCE PACHECO

DIRECTOR: CARLOS GERMÁN PILLAJO ANGOS

Quito, junio del 2014

Page 2: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

DECLARATORIA DE RESPONSABILIDAD Y AUTORIZACIÓN DE USO

DEL TRABAJO DE TITULACIÓN

Nosotros, autorizamos a la Universidad Politécnica Salesiana la publicación total o

parcial de este trabajo de titulación y su reproducción sin fines de lucro.

Además declaramos que los conceptos y análisis desarrollados y las conclusiones del

presente trabajo son de exclusiva responsabilidad de los autores.

_________________________ ________________________

Alejandra Marianela Ortiz Cruz Edison Fernando Ponce Pacheco

CI: 0502472566 CI: 1717202616

Page 3: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

DEDICATORIA

A Dios.

Por habernos permitido llegar a esta instancia de nuestras vidas, por darnos la

inteligencia y sabiduría para realizar este proyecto, y por habernos dado salud para

lograr nuestros objetivos, además de su infinita bondad y amor.

A nuestros Padres.

Por habernos apoyado en todo momento, por su paciencia, sus consejos y valores,

pero más que nada, la motivación constante que nos brindaron para ser personas de

bien.

Alejandra Marianela Ortiz Cruz &

Edison Fernando Ponce Pacheco

Page 4: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

AGRADECIMIENTO

Agradecemos a nuestros profesores, quienes aportaron sus conocimientos con gran

voluntad para construir nuestras vidas profesionales, agradecemos a nuestros

compañeros de aula, con quienes compartimos experiencias que ayudaron y ayudaran

a formar ese vínculo de amistad que permanecerá arraigado a nuestros corazones.

Alejandra Marianela Ortiz Cruz &

Edison Fernando Ponce Pacheco

Page 5: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

ÍNDICE

INTRODUCCIÓN ................................................................................................ 1

CAPÍTULO 1 ....................................................................................................... 3

PLANTEAMIENTO DEL PROBLEMA .......................................................... 3

1.1. Problema a resolver ................................................................................... 3

1.2. Objetivos ................................................................................................... 3

1.2.1. Objetivo general. ....................................................................................... 3

1.2.2. Objetivos específicos. ................................................................................ 3

1.3. Justificación ............................................................................................... 4

1.4. Alcance ...................................................................................................... 4

CAPÍTULO 2 ....................................................................................................... 5

ESTADO DEL ARTE ......................................................................................... 5

2.1. Situación actual ......................................................................................... 5

2.2. Referencias del proyecto ........................................................................... 5

2.3. Los FPGA’s ............................................................................................... 7

2.3.1. Descripción de la tarjeta FPGA Spartan 3E Starter. ................................. 9

2.3.2. Funcionamiento de la tarjeta FPGA Spartan 3E Starter. ......................... 10

2.3.2.1. Bloques de entrada/salida IOB. ........................................................ 12

2.3.3. Spartan-6 XC6SLX150T. ........................................................................ 15

2.4. Motor brushless ....................................................................................... 16

2.4.1. Componentes del motor brushless. .......................................................... 17

2.5. Cinemática del robot ............................................................................... 18

2.5.1. Cinemática directa del robot Scara. ......................................................... 19

2.5.2. Cinemática inversa del robot Scara. ........................................................ 20

2.6. Matriz Jacobiana ..................................................................................... 23

2.6.1. Métodos de cálculo de la matriz Jacobiana inversa. ............................... 25

2.7. Matrices de transformación A y T ........................................................... 25

2.8. Algoritmo de Denavit-Hartenberg .......................................................... 26

2.9. Desarrollo matemático de la cinemática directa e inversa en Matlab ..... 27

2.10. LabVIEW ................................................................................................ 31

2.10.1. ¿Qué es LabVIEW?................................................................................. 31

2.10.2. Panel frontal. ........................................................................................... 31

Page 6: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

2.10.3. Diagrama de bloques. .............................................................................. 32

2.11. Project Navigator ..................................................................................... 33

2.12. Ajuste por mínimos cuadrados ................................................................ 34

CAPÍTULO 3 ..................................................................................................... 36

DESARROLLO DE HARDWARE Y SOFTWARE ..................................... 36

3.1. Diseño de hardware ................................................................................. 36

3.1.1. Diagrama de bloques del sistema. ............................................................. 36

3.1.1.1. Módulo de control de potencia mediante el puente H L298N para

motores….. .......................................................................................................... 37

3.1.1.2. UART (Universal Asynchronous Receiver & Transmitter). ............. 38

3.1.1.3. Módulo de control de datos. ............................................................. 40

3.2. Desarrollo del software ........................................................................... 41

3.2.1. Configuración básica de la tarjeta Spartan 3E en Project Navigator. ....... 41

3.2.2. Diagrama de flujo para interfaz LabVIEW modo manual. ....................... 43

3.2.3. Diagrama de flujo para interfaz LabVIEW modo automático. ................. 48

3.2.4. Diagrama de flujo divisor de frecuencia. .................................................. 51

3.2.5. Diagrama de flujo trama de transmisión. .................................................. 53

3.2.6. Diagrama de flujo trama de recepción. ..................................................... 55

3.2.7. Diagrama de flujo movimiento de motores proceso de recepción. ........... 57

3.2.8. Diagrama de flujo movimiento de motores proceso de transmisión. ........ 59

CAPÍTULO 4 ..................................................................................................... 62

ANÁLISIS DE COSTOS .................................................................................. 62

4.1. Costos de hardware ................................................................................. 62

4.2. Costo de diseño de hardware ................................................................... 62

4.3. Costos de desarrollo del software ............................................................ 63

4.4. Costo total del proyecto ........................................................................... 63

CONCLUSIONES .............................................................................................. 64

RECOMENDACIONES ..................................................................................... 65

LISTA DE REFERENCIAS ............................................................................... 66

Page 7: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

ÍNDICE DE FIGURAS

Figura 1. Robot de tres grados de libertad tipo Scara.................................................. 6

Figura 2. Robot Rhino Scara ....................................................................................... 7

Figura 3. Área de trabajo del robot Rhino Scara ......................................................... 7

Figura 4. Tarjeta FPGA Spartan 3E Starter ................................................................. 9

Figura 5. Arquitectura de la Spartan 3E .................................................................... 12

Figura 6. Diagrama simplificado de un IOB de la Spartan 3E .................................. 14

Figura 7. Diagrama esquemático de un motor brushless ........................................... 17

Figura 8. Componentes del motor brushless ............................................................. 18

Figura 9. Relación entre cinemática directa e inversa ............................................... 19

Figura 10. Por ejemplo para el caso de un robot con 2 grados de libertad ................ 20

Figura 11. Esquema del robot Scara .......................................................................... 21

Figura 12. Matriz Jacobiana ...................................................................................... 23

Figura 13. Relaciones diferenciales ........................................................................... 24

Figura 14. Matriz Jacobiana de un robot Scara ......................................................... 24

Figura 15. Modelo cinemático de la matriz Jacobiana inversa ................................. 25

Figura 16. Parámetros del robot Scara ...................................................................... 28

Figura 17. Panel frontal de LabVIEW ....................................................................... 32

Figura 18. Diagrama de bloques de LabVIEW ......................................................... 32

Figura 19. Esquema de los componentes más importantes del ISE .......................... 33

Figura 20. Mínimos cuadrados .................................................................................. 35

Figura 21. Diagrama de bloques del sistema de control del brazo Scara .................. 37

Figura 22. Módulo de control de potencia................................................................. 38

Figura 23. Diagrama de bloques del UART ............................................................. 39

Figura 24. Ubicación del puerto serial ...................................................................... 39

Figura 25. Módulo de control de datos ...................................................................... 41

Figura 26. Configuración de las propiedades del dispositivo.................................... 42

Figura 27. Diagrama de flujo interfaz LabVIEW modo manual .............................. 44

Figura 28. Configuración de la comunicación serial en LabVIEW .......................... 46

Figura 29. Envío del número integer de 8 bits sin signo correspondiente al

movimiento ................................................................................................................ 46

Figura 30. Contadores para el cambio de estado ....................................................... 47

Figura 31. Envío del número integer de 8 bits sin signo correspondiente al paro .... 47

Page 8: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

Figura 32. Implementación de la fórmula de ajustes de mínimo cuadrados ............. 48

Figura 33. Diagrama de flujo interfaz modo automático .......................................... 49

Figura 34. Envío del número integer de 8 bits sin signo en un ciclo de eventos ...... 51

Figura 35. Diagrama de flujo frecuencia de muestreo del receptor y transmisor...... 52

Figura 36. Diagrama de flujo trama de transmisión .................................................. 54

Figura 37. Diagrama de flujo trama recepción .......................................................... 56

Figura 38. Diagrama de flujo movimiento de motores proceso de recepción ........... 58

Figura 39. Diagrama de flujo movimiento de motores proceso de recepción ........... 60

Page 9: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

ÍNDICE DE TABLAS

Tabla 1. Parámetros denavit-hartenberg (D-H) del robot......................................... 28

Tabla 2. Distribución de pines tarjeta de acoplamiento ............................................ 40

Tabla 3. Strings utilizados en la programación y su respectivo código ASCII.......... 43

Tabla 4. Costos de hardware ..................................................................................... 62

Tabla 5 . Costos de diseño de hardware ................................................................... 63

Tabla 6. Costo de desarrollo de software .................................................................. 63

Tabla 7. Costo total del proyecto .............................................................................. 63

Page 10: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

ÍNDICE DE ECUACIONES

Ecuación 1. Coordenadas del punto O ....................................................................... 21

Ecuación 2. Coordenadas del punto A ....................................................................... 22

Ecuación 3. Coordenadas del punto C ....................................................................... 22

Ecuación 4. Obtención de los valores .......................................................... 22

Ecuación 5. Obtención de los valores , y .................................................... 23

Ecuación 6. Conexión de matrices A ......................................................................... 25

Ecuación 7. Matriz T o matriz 0An ............................................................................. 25

Ecuación 8. Resultado de matriz T1 usando la convención D-H ............................... 28

Ecuación 9 . Resultado de matriz T2 usando la convención D-H .............................. 28

Ecuación 10. Resultado de matriz T3 usando la convención D-H ............................. 28

Ecuación 11. Resultado de matriz T4 usando la convención D-H ............................. 29

Ecuación 12 . Matriz total de transformación ............................................................ 29

Ecuación 13. Ubicación deseada del robot Scara....................................................... 29

Ecuación 14. Ecuación final para representación del robot ...................................... 29

Ecuación 15. Obtención de A4 ................................................................................... 29

Ecuación 16. Resultado sucesivo de la multiplicación de ambas ecuaciones ............ 29

Ecuación 17. Resultado del elemento 1,4 de la ecuaciones 12 y 13 .......................... 30

Ecuación 18. Resultado del elemento 2,4 de la ecuaciones 12 y 13 .......................... 30

Ecuación 19. Obtención de C2 de la ecuación 17 y 18............................................... 30

Ecuación 20. Obtención de S2 de la ecuación 17 y 18 ............................................... 30

Ecuación 21. Obtención de ϴ2 de la ecuación 17 y 18 .............................................. 30

Ecuación 22. Reordenando la ecuación 17 se obtiene ............................................... 30

Ecuación 23. Reordenando la ecuación 18 se obtiene ............................................... 30

Ecuación 24. Resolución de ecuaciones 22 y 23 por la regla de Kramer para obtener

ϴ1 ............................................................................................................................... 30

Ecuación 25. Del elemento 3,4 de la ecuación 12 y 13.............................................. 31

Ecuación 26. Obtención de ϴ3 ................................................................................... 31

Ecuación 27. Del elemento 1,1 de la ecuación 11 y 16 se obtiene C4 ....................... 31

Ecuación 28. Del elemento 2,1 de la ecuación 11 y 16 se obtiene S4 ........................ 31

Ecuación 29. Obtención de ϴ4 ................................................................................... 31

Ecuación 30. Ecuación de la recta.............................................................................. 34

Ecuación 31. Obtención del parámetro “a” ................................................................ 34

Ecuación 32. Obtención del parámetro “b”................................................................ 34

Page 11: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

ÍNDICE DE ANEXOS

Anexo 1. Distribución de pines tarjeta Spartan 3E .................................................... 68

Anexo 2. Continuación distribución de pines tarjeta Spartan 3E.............................. 69

Anexo 3. Conexiones de pines del atmega 128.......................................................... 70

Anexo 4. Circuito del controlador .............................................................................. 71

Anexo 5. Datasheet del motor pittman serie 8000 ..................................................... 72

Anexo 6. Control del brazo robótico en LabVIEW vía bluetooth ............................. 74

Anexo 7. Creación de la aplicación Android para control del brazo robótico ........... 77

Page 12: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

RESUMEN

En este proyecto de titulación se ha diseñado e implementado un algoritmo

cinemático directo e inverso que permite la manipulación de un brazo robótico

RHINO Scara a través de la interacción entre una HMI (Interfaz Maquina Humano)

por diseñar y un hardware ya existente. La interfaz gráfica del software se la realizó

mediante LabVIEW con una comunicación serial entre la computadora y el

hardware, además se programó dicho algoritmo en una tarjeta Spartan 3E

previamente programada con un código VHDL en el programa Project Navigator

proporcionado por Xilinx. Se debe resaltar que este proyecto tiene fines académicos

para la Universidad Politécnica Salesiana del Campus Sur, debido a que el brazo

robótico servirá como una herramienta del laboratorio de robótica y materias afines

que diariamente los estudiantes utilizan en las practicas, desarrollando así una visión

general del funcionamiento del código implementado como las varias aplicaciones

que se pueden tener.

Page 13: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

ABSTRACT

This draft grade was designed and implemented an algorithm for manipulating a

RHINO Scara robotic arm through the interaction between a Human Machine

Interface for designing and an existing hardware. The graphic interface of the

software was done through LabVIEW with the serial communication between the

computer and the hardware, also the algorithm was implemented on Spartan 3E

target pre-programmed with VHDL code in the program provided by Xilinx Project

Navigator. It should be noted that this project is for academic purposes to

Universidad Politécnica Salesiana Campus Sur, because the robotic arm will serve as

a robotic laboratory tool that students use in daily practices, developing an overview

of the implemented code works as several applications that can be had.

Page 14: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

1

INTRODUCCIÓN

El estudio de robótica se ha vuelto muy importante en la industria ya que es

indispensable para procesos en donde se requiere mayor esfuerzo, velocidad y alto

grado de precisión y exactitud, por lo que se ve la necesidad de la implementación de

brazos robóticos para realizar diversos procesos.

En este proyecto se actualizó el hardware y software de un brazo robótico RHINO

Scara con cinco grados de libertad, los cuales actúan a través de cinco motores

acoplados en diferente posición para realizar los movimientos de rotación y

desplazamiento, estos motores están constituidos por encoders los cuales permiten

estimar las posiciones de las diferentes partes del robot Scara.

El robot Scara está constituido por cinco partes: brazo, hombro, codo, muñeca, mano

los cuales imitan el movimiento de un brazo humano, para el control de los motores

se acopló una tarjeta FPGA Spartan 3E de Xilinx, la cual es un conjunto de arreglos

que produce señales digitales para el movimiento de los motores y la captación de la

señal digital de los encoders.

Para el control del robot Scara se utilizó una interfaz gráfica con comunicación serial

entre el software LabVIEW y la tarjeta Spartan 3E, en la cual se presenta los datos

referentes para: movimientos de izquierda y derecha y ángulos de giro para los

motores que controlan cada parte del robot. El software LabVIEW envía la dirección

y ángulo de giro encapsulada en una variable tipo string por el puerto serial hacia la

tarjeta Spartan 3E, indicando al brazo robótico los movimientos que éste debe

realizar, la tarjeta Spartan 3E recibe los datos enviados por el software LabVIEW y

los desencapsula para identificar y activar los movimientos de los motores del robot

Scara.

Quedando la investigación dividida de la siguiente forma:

Capítulo 1: se presenta los objetivos, justificación y alcance los cuales llevaron a la

realización de este proyecto de titulación.

Capítulo 2: se especifica el marco teórico utilizado para control y comunicación del

robot Scara, así como los fundamentos matemáticos para el cálculo de rotación y

funcionamiento de los motores.

Page 15: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

2

Capítulo 3: se describe el hardware y software utilizados en el diseño e

implementación del robot Scara.

Capítulo 4: se detalla el costo total del desarrollo del proyecto de titulación.

Además, se presenta las conclusiones y recomendaciones que surgieron en la

realización y culminación del proyecto, también se presenta anexos en los cuales

detallan características importantes del proyecto, tanto de información técnica como

de programación.

Page 16: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

3

CAPÍTULO 1

PLANTEAMIENTO DEL PROBLEMA

1.1. Problema a resolver

La historia de la Robótica ha estado unida a la construcción de "artefactos", muchas

veces por obra de genios autodidactas que trataban de materializar el deseo humano

de crear seres semejantes a nosotros que faciliten el trabajo.

En la actualidad muchas fábricas utilizan brazos robóticos para el ensamblaje de sus

productos, ya que la eficiencia en producción que se logra es muy alta.

El campo de la robótica es desarrollado en Universidades Politécnicas, muchas de las

cuales cuentan con laboratorios equipados con robots de varios tipos, los cuales

sirven para enseñar al alumno de una manera didáctica su funcionamiento.

La Universidad Politécnica Salesiana Campus Sur, en su laboratorio de robótica,

posee algunos brazos robóticos, entre estos el Robot RHINO Scara, el cual consta de

controladores para su manejo. Con el avance de la tecnología, estas tarjetas de

control han quedado obsoletas y en inactividad.

Frente a esta situación se detectó la necesidad de actualizar el hardware y software de

control del manipulador robótico para obtener los resultados deseados.

El proyecto consiste en utilizar una tarjeta FPGA Spartan 3E para la implementación

de algoritmos cinemáticos, brindando gran velocidad de transmisión de datos, para el

movimiento del manipulador robótico. En la creación de los algoritmos se utilizará el

código fuente VHDL, además se implementará una interfaz amigable que será

utilizada por los estudiantes del Campus Sur.

1.2. Objetivos

1.2.1. Objetivo general.

Diseñar e Implementar algoritmos de cinemática directa e inversa utilizando FPGA’s

para controlar el manipulador robótico SCARA (SELECTIVE COMPLIANT

ARTICULATED ROBOT ARM) perteneciente a la Universidad Politécnica

Salesiana Campus Sur.

1.2.2. Objetivos específicos.

Realizar una simulación de los algoritmos de la Cinemática y Dinámica de un

manipulador Robótico SCARA, en Matlab.

Page 17: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

4

Analizar el funcionamiento de la tarjeta SPARTAN 3E.

Diseñar e Implementar la programación del FPGA basado en VHDL con el

desarrollo de algoritmos para el movimiento del brazo robótico.

Realizar las pruebas necesarias para lograr satisfacer los requerimientos en

cuanto a seguridad y confiabilidad del manipulador robótico SCARA.

1.3. Justificación

En la actualidad existe gran disponibilidad de tarjetas de desarrollo como las

FPGA´s, y gracias al gran avance tecnológico se propone desarrollar una aplicación

en la cual se va a implementar algoritmos cinemáticos para el manejo y control de un

brazo robótico tipo Scara.

Estos algoritmos serán implementados en la Tarjeta FPGA Spartan 3E. La tarjeta de

desarrollo basada en el FPGA Spartan 3E presenta ventajas debido al gran número de

pines de entrada/salida, a la velocidad de procesamiento, capacidad de implementar

algoritmos sobre hardware y velocidad de transmisión de datos.

Se desea implementar este proyecto de investigación con el fin de ofrecer una

alternativa de control al brazo robótico Scara existente en el laboratorio de la UPS

Campus Sur. Con este proyecto se brindará al robot una nueva interfaz de

comunicación y control, dotando al laboratorio de más herramientas a nivel de

hardware, constituyéndose como complemento didáctico en el estudio de los brazos

robóticos.

Esta nueva interfaz propuesta tendrá su manual de operación y uso, permitiendo a los

estudiantes de las materias afines realizar prácticas o realizar futuras investigaciones.

1.4. Alcance

En este proyecto de investigación se implementará algoritmos de cinemática directa e

inversa para el manipulador robótico Scara perteneciente a la UPS campus SUR, con

el uso de la tarjeta FPGA Spartan 3E que será programada mediante el software

XILINX y el lenguaje de programación VHDL.

Se utilizará un PC para la visualización de la interfaz gráfica entre la tarjeta FPGA y

el manipulador robótico con un protocolo de comunicación serial entre estas.

Page 18: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

5

CAPÍTULO 2

ESTADO DEL ARTE

En este capítulo se analiza el estado del arte del proyecto con respecto al

manipulador robótico que en la actualidad se encuentra en inactividad, además se

presentará el marco lógico respectivo en el que se basa el diseño e implementación

del algoritmo de cinemática directa e inversa utilizando la tarjeta Spartan 3E de

Xilinx.

2.1. Situación actual

El proyecto se encuentra en las instalaciones de la Universidad Politécnica Salesiana

del Campus Sur, teniendo en cuenta que posee un sistema eléctrico y electrónico a

base de microcontroladores con los que se alimenta al manipulador y se realiza el

control.

Es un sistema que presenta dificultades al momento de realizar los movimientos con

insuficiencia de exactitud y velocidad de transmisión de datos entre la interfaz de

control y el manipulador robótico.

La conformación de los sistemas eléctricos y electrónicos se llevó a cabo siguiendo

normas y criterios de diseño, de acuerdo a los requerimientos del robot Scara.

2.2. Referencias del proyecto

Robot de tres grados de libertad tipo Scara (selective compliance assembly

robot arm)

Es un brazo robótico que cuenta con tres eslabones unidos por dos articulaciones de

tipo revoluta y una prismática, las cuales le proporcionan movilidad en los tres

planos. Apoyándose en la modelación cinemática directa e inversa de un robot de

tres grados de libertad junto con técnicas de control PID permiten obtener en todo

momento posiciones y trayectorias deseadas que serán definidas por el usuario desde

una interfaz gráfica o HMI desarrollada en programación de alto nivel, como lo es la

plataforma computacional LabVIEW. (Boada & Morales, 2010, pág. 12)

Page 19: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

6

Rhino SCARA

Es un brazo robótico de cuatro grados de libertad con una pinza de accionamiento

eléctrico. Puede ser operado ya sea desde el controlador Mark III o Mark IV. El

Rhino SCARA es un SCARA relativamente grande, es adecuado para operaciones de

montaje diseñado en torno a los componentes de Rhino. (rhinorobotics LTD, 2013)

El Mark III es un controlador de 8 ejes con la capacidad de interactuar con 8 líneas

de entrada de nivel TTL y puede controlar 8 líneas de salida de nivel TTL. También

tiene la capacidad de controlar dos puertos auxiliares que proporcionan 20 voltios

cada uno a 1,5 amperios. El controlador Mark III integra en una sola unidad fuentes

de alimentación, dispositivos de comunicación, lógica del microprocesador,

capacidad de entrada/salida y un lenguaje de software. Se utiliza con la serie de

Rhino XR-3 o un robot SCARA. (rhinorobotics LTD, 2013)

Figura 1. Robot de tres grados de libertad tipo Scara

Fuente: (Boada & Morales, 2010, pág. 21)

Page 20: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

7

A continuación se detalla las dimensiones que posee el robot Rhino Scara con sus

ángulos y distancias de desplazamiento.

2.3. Los FPGA’s

Un FPGA (Field Programmable Gate Array) es un dispositivo semiconductor que

contiene bloques de lógica cuya interconexión y funcionalidad se puede programar.

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. (CEM-bot, 2013)

Figura 2. Robot Rhino Scara

Imagen: Alejandra Ortiz & Edison Ponce

Figura 3. Área de trabajo del robot Rhino Scara

Imagen: Alejandra Ortiz & Edison Ponce

Page 21: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

8

Los FPGA’s tienen la ventaja de ser reprogramables (lo que aumenta una enorme

flexibilidad al flujo de diseño), los circuitos se “ejecutan” más rápido que en otros

dispositivos ya que su ejecución es en paralelo, por lo que los circuitos no necesitan

competir por los mismos recursos. Cada tarea de procesos se asigna a una sección

dedicada del dispositivo y puede ejecutarse de manera autónoma sin ser afectada por

otros bloques de lógica. Como resultado, el rendimiento de una parte de la aplicación

no se ve afectado cuando se agregan otros procesos.

Los FPGA’s son el resultado de la convergencia de dos tecnologías diferentes, los

dispositivos lógicos programables (PLDs [Programmable Logic Devices]) y los

circuitos integrados de aplicación específica (ASIC [application-specific integrated

circuit]).

La tarea para programar una FPGA primero es definir la función lógica que realizará.

Para ello se tiene entornos de desarrollo especializados en el diseño de sistemas a

implementarse en un FPGA. Un diseño puede ser capturado ya sea como

esquemático, o haciendo uso de un lenguaje de programación especial. Estos

lenguajes de programación especial son conocidos como HDL o Hardware

Description Language (Lenguajes de Descripción de Hardware). Los HDLs más

utilizados son:

1. VHDL

2. Verilog

3. ABEL

Un FPGA es un circuito integrado que contiene componentes lógicos e

interconexiones, ambas programables. Los componentes lógicos pueden ser

programados para duplicar la funcionalidad de compuertas lógicas básicas o se

pueden crear funciones combinacionales más complejas tales como decodificadores

o funciones matemáticas simples.

También se pueden incluir elementos de memoria, los cuales pueden ser simples flip-

flops o bloques de memoria más elaborados. La tendencia de los FPGAs ha sido

ahora integrar procesadores como el Picoblaze, que puede ser expandido para tener

algunos recursos que tienen los microcontroladores. (Marín, 2013)

Page 22: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

9

2.3.1. Descripción de la tarjeta FPGA Spartan 3E Starter.

Se emplea como elemento base un kit de desarrollo FPGA comercial con referencia

HWSPAR3E- SK-US de la familia Spartan 3E de Xilinx.

A continuación de describe varias características de esta tarjeta.

1 FPGA XC3S500E de la familia Spartan 3E, con más de 232 pines de uso

como E/S. Más de 10000 celdas lógicas.

1 Memoria PROM con plataforma flash configurable 4 Mbit.

1 DDR SDRAM de 64 Mbyte a 100 MHz.

1 Memoria flash de 16 Mbyte (128 Mbits) para almacenar la configuración

del FPGA o el código del microprocesador.

1 SPI serial flash de 16 Mbits (STMicro) que permite almacenar la

configuración del FPGA o el código del microprocesador.

1 Display LCD de 12-lineas y 16 caracteres.

1 Puerto PS/2 para mouse o teclado.

1 Puerto para monitor VGA.

Figura 4. Tarjeta FPGA Spartan 3E Starter

Fuente: (Inc, Xilinx, 2011, pág. 1)

Adaptado de: (Boada & Morales, 2010)

Page 23: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

10

1 Puerto 10/100 Ethernet.

2 Puertos de 9 pines RS-232 (estilo DTE y DCE).

1 Puerto USB para FPGA/CPLD con descarga/depuración respectivamente.

1 Oscilador de 50 MHz.

1 Memoria EEPROM para almacenar archivos de configuración.

1 Conector de expansión (FX2 Hirose).

3 Conectores de expansión de 6 pines (Diligent).

4 Salidas para conversor digital-análogo DAC base SPI con entradas para

conversor análogo a digital ADC base SPI con preamplificador de ganancia

programable.

1 Encoder rotacional con botón pulsador central.

8 Salidas digitales visualizadas en LED´s.

4 Swiches deslizables.

4 Swiches pulsadores.

1 Entrada para reloj.

1 Socket DIP 8 pines para una señal de reloj auxiliar.

2.3.2. Funcionamiento de la tarjeta FPGA Spartan 3E Starter.

Los FPGA Spartan 3E de Xilinx están conformadas por un conjunto de Bloques

Lógicos Configurables (Configurable Logic Blocks: CLBs) rodeados por un

perímetro de Bloques Programables de entrada/salida (Programmable Input/Output

Blocks: IOBs). Estos elementos funcionales están interconectados por una jerarquía

de canales de conexión (Routing Channels), la que incluye una red de baja

capacitancia para la distribución de señales de reloj de alta frecuencia.

Adicionalmente el dispositivo cuenta con 24 bloques de memoria RAM de 2Kbytes

de doble puerto, cuyos anchos de buses son configurables, y con 12 bloques de

multiplicadores dedicados de 18 X 18 bits. (U-Cursos, 2006)

Los cinco elementos funcionales programables que lo componen son los siguientes:

i. Bloques de entrada/salida (Input/Output Blocks – IOBs): Controlan el flujo

de datos entre los pines de entrada/salida y la lógica interna del dispositivo.

Soportan flujo bidireccional más operación tri-estado y un conjunto de

Page 24: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

11

estándares de voltaje e impedancia controlados de manera digital. (U-Cursos,

2006)

ii. Bloques Lógicos Configurables (Configurable Logic Blocks – CLBs):

contienen Look-Up Tables (Tablas de consulta: son la forma en que su lógica

en realidad se implementa) o (LUTs) basadas en tecnología RAM para

implementar funciones lógicas y elementos de almacenamiento que pueden

ser usados como flip-flops o como latches (circuito electrónico usado para

almacenar información en sistemas lógicos asíncronos). (U-Cursos, 2006)

iii. Bloques de Memoria RAM (Block RAM): proveen almacenamiento de datos

en bloques de 18 Kbits con dos puertos independientes cada uno. (U-Cursos,

2006)

iv. Bloques de multiplicación que aceptan dos números binarios de 18 bit como

entrada y entregan uno de 36 bits. (U-Cursos, 2006)

v. Administradores Digitales de Reloj (Digital Clock Managers – DCMs): estos

elementos proveen funciones digitales auto-calibradas, las que se encargan de

distribuir, retrasar arbitrariamente en pocos grados, desfasar en 90, 180 y 270

grados, dividir y multiplicar las señales de reloj de todo el circuito. (U-

Cursos, 2006)

Los elementos descritos están organizados como se muestra en la figura 5. Un anillo

de IOBs rodea un arreglo regular de CLBs. Atraviesa este arreglo una columna de

Bloques de memoria RAM, compuesta por varios bloques de 18 Kbit, cada uno de

los cuales está asociado con un multiplicador dedicado. Los DCMs están colocados

en los extremos de dichas columnas.

Page 25: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

12

A continuación se hace una descripción más detallada de cada uno de los elementos

funcionales del FPGA, y luego se describe el proceso de configuración de la misma.

2.3.2.1. Bloques de entrada/salida IOB.

Los bloques de entrada/salida (IOB) suministran una interfaz bidireccional

programable entre un pin de entrada/salida y la lógica interna del FPGA. Un

diagrama simplificado de la estructura interna de un IOB aparece en la figura 6. (U-

Cursos, 2006)

Hay tres rutas para señales en un IOB: la ruta de salida, la ruta de entrada y la ruta

tri-estado. Cada ruta tiene su propio par de elementos de almacenamiento que pueden

actuar tanto como registros o como latches (circuito electrónico usado para

almacenar información en sistemas lógicos asíncronos). Las tres rutas principales

son:

La ruta de entrada, que lleva datos desde el pad, que está unido al pin del

package, a través de un elemento de retardo opcional programable,

directamente a la línea I. Después del elemento de retardo hay rutas

alternativas a través de un par de elementos de almacenamiento hacia las

líneas IQ1 e IQ2. Las tres salidas del IOB todas conducen a la lógica interna

del FPGA. (U-Cursos, 2006)

Figura 5. Arquitectura de la Spartan 3E

Fuente: (Inc, Xilinx, 2013, pág. 3)

Page 26: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

13

La ruta de salida, que parte con las líneas O1 y O2, lleva datos desde la lógica

interna del FPGA, a través de un multiplexor y del driver tri-estado hacia el

pad del IOB. En suma a esta ruta directa, el multiplexor da la opción de

insertar un par de elementos de almacenamiento. (U-Cursos, 2006)

La ruta tri-estado determina cuando el driver de salida está en alta

impedancia. (U-Cursos, 2006)

Las líneas T1 y T2 llevan datos desde la lógica interna a través de un multiplexor

hacia el driver de salida. En suma a esta ruta directa, el multiplexor da la opción de

entregar un par de elementos de almacenamiento. (U-Cursos, 2006)

Todas las rutas de señales que entran al IOB, incluidas aquellas asociadas con los

elementos de almacenamiento tienen una opción de inversión. Cualquier inversor

colocado (en la programación) en estas rutas es automáticamente absorbido dentro

del IOB. (U-Cursos, 2006)

Hay tres pares de elementos de almacenamiento en cada IOB, un par para cada uno

de las tres rutas. Es posible configurar cada uno de esos elementos como un flip-flop

“D” gatillado por flanco (FD) o como un latch sensible a nivel (LD). Estos elementos

son controlados con la misma red de distribución de relojes que se utiliza para todo el

sistema. (U-Cursos, 2006)

El par de elementos de almacenamiento tanto de la ruta de salida o del driver tri-

estado pueden ser usados en conjunto, con un multiplexor especial para producir

transmisión de doble tasa de datos (DDR). Esto se logra tomando datos sincronizados

con el flanco de subida del reloj y convirtiéndolos en bits sincronizados tanto con el

flanco de subida como con el de bajada. A esta combinación de dos registros y un

multiplexor se le llama flip-flop tipo D de doble tasa de datos (FDDR). (U-Cursos,

2006)

Page 27: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

14

Cada IOB cuenta además con otros elementos, entre los cuales cuentan las

resistencias de Pull-Up y de Pull-Down, que tienen el objetivo de establecer niveles

altos o bajos respectivamente en las salidas de los IOBs que no están en uso; un

circuito de retención (Keeper) del último nivel lógico que se mantiene, después de

que todos los drivers han sido apagados, lo que es útil para cuidar que las líneas de

un bus no floten, cuando los drivers conectados están en alta impedancia se habilita

Figura 6. Diagrama simplificado de un IOB de la Spartan 3E

Fuente: (Inc, Xilinx, 2013, pág. 11)

Page 28: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

15

un circuito de protección para descargas electro estáticas (protección ESD), que

utiliza diodos de protección. (U-Cursos, 2006)

Finalmente cada IOB cuenta con un control para el slew rate (incapacidad de un

amplificador para seguir variaciones rápidas de la señal de entrada) y para la

corriente de salida máxima. El primero otorga la posibilidad de elegir una tasa alta de

cambio de nivel (con bajo slew rate) o una tasa máxima menor para la utilización de

los puertos en la integración a buses, donde al pasar de alta impedancia a un nivel de

voltaje suele producirse transiciones inesperadas. El segundo entrega siete niveles

diferentes de corrientes máximas tanto para el estándar CMOS como para el TTL, lo

que permite adaptarse a dispositivos que necesitan mayores corrientes para su

activación, en el caso del estándar LVCMOS a 2.5V el rango de corrientes es de 2 a

24 mA (2, 4, 6, 8, 12, 16, 24 mA). (U-Cursos, 2006)

Los IOB soportan 17 estándares de señales de salida de terminación única y seis de

señal diferencial, también cuentan con un sistema integrado, para coincidir con la

impedancia de las líneas de transmisión que llegan al FPGA, llamado Control Digital

de Impedancia (DCI), el que permite elegir hasta 5 tipos diferentes de terminaciones,

utilizando una red de resistencias internas que se ajustan en serie o en paralelo,

dependiendo de las necesidades del estándar elegido. (U-Cursos, 2006)

2.3.3. Spartan-6 XC6SLX150T.

A continuación se detalla algunas características de esta tarjeta.

Conectores I / O

- Dos conectores FMC LPC para fines generales de expansión de E/S.

- Un conector para una tarjeta SD.

- Conector Avnet LCD Interface (ALI).

Conectores RocketIO ™ GTP transceptor

- Un conector pequeño de jaula (SFP).

- Dos transceptores suministrados en un conector FMC para el uso de un módulo de

ampliación.

- Una PCI Express de complemento de interfaz de tarjeta a 2.5 Gbps.

- Un conector de host SATA.

Page 29: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

16

Memoria

- 128 MB de SDRAM DDR3.

- 32 MB FLASH.

Comunicación

- Puerto serial RS- 232.

- USB 2.0.

- Puerto USB -RS232.

- Puerto Ethernet 10/100/1000 Mbits.

Potencia

- Tensiones de alimentación reguladas en 5.0, 3.3, 2.5, 1.8, 1.5 y 1.2 V, derivados de

la ranura PCI Express o una alimentación externa de 12 V.

- Punto de reguladores de carga para carriles de alimentación MGT.

Configuración

- Plataforma Flash de configuración XCF32 y XCF08.

- Cable IV Xilinx Parallel o plataforma con soporte USB para el conector JTAG de

Programación/configuración.

2.4. Motor brushless

Como su propio nombre lo indica, brushless quiere decir "sin escobillas". En este

tipo de motor la corriente eléctrica pasa directamente por los bobinados del estator o

carcasa, por lo tanto aquí no son necesarios ni las escobillas ni el colector que se

utilizan en los brushed. Esta corriente eléctrica genera un campo electromagnético

que interacciona con el campo magnético creado por los imanes permanentes del

rotor, haciendo que aparezca una fuerza que hace girar al rotor y por lo tanto al eje

del motor. (Arian, 2012).

Page 30: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

17

En la realización de este proyecto se ha utilizado los motores reductores cilíndricos

serie GM8000 de Pittman que cuentan con engranajes de acero sinterizado, están

disponibles en tres longitudes de pila y cuentan con terminales de salida lateral.

Los motores con caja de reducción Pittman brindan un funcionamiento suave,

silencioso y de larga vida. Las armaduras están sesgadas para minimizar el rizo de

par, incluso a bajas velocidades y los arrollamientos son de resina impregnada de una

mayor fiabilidad en aplicaciones de movimiento incremental. (Heredia, 2014, pág.

41)

Las características por las cuales se eligió estos motores son la calidad de sus

componentes, como los rodamientos de bolas de alta fiabilidad y engranajes de alto

rendimiento.

2.4.1. Componentes del motor brushless.

Los motores brushless están compuestos por una parte móvil que es el rotor, donde

se encuentran los imanes permanentes, y una parte fija, denominada estator o

carcasa, sobre la cual van dispuestos los bobinados de hilo conductor. (Arian, 2012)

Figura 7. Diagrama esquemático de un motor brushless

Fuente: (Heredia, 2014, pág. 41)

Page 31: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

18

2.5. Cinemática del robot

La cinemática del robot es el estudio de su movimiento con respecto a un sistema de

referencia.

Los diferentes sistemas de referencia pueden ser descritos mediante:

o Modelos analíticos del movimiento espacial en función del tiempo.

o Relaciones de localización del extremo del robot-valores articulares.

(Hernández, 2013)

Las cinemáticas que pueden surgir en un robot pueden ser de dos tipos con un

modelo diferencial entre ambas.

Cinemática directa: Se ocupa en determinar la posición y orientación del

extremo final del robot, con respecto a un sistema de coordenadas de

referencia, conocidos los ángulos de las articulaciones y los parámetros

geométricos de los elementos del robot. (Hernández, 2013)

Cinemática inversa: Se ocupa en determinar la configuración que debe

adoptar el robot para una posición y orientación del extremo conocidas.

(Hernández, 2013)

Figura 8. Componentes del motor brushless

Fuente: (Arian, 2012)

Page 32: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

19

Modelo diferencial (Matriz Jacobiana): Es la matriz formada por las

relaciones entre las velocidades de movimiento de las articulaciones y las del

extremo del robot. (Hernández, 2013)

2.5.1. Cinemática directa del robot Scara.

La cinemática directa se encarga de determinar la posición y orientación del extremo

final del robot, con respecto a un sistema de coordenadas de referencia, conocidos los

ángulos de las articulaciones y los parámetros geométricos de los elementos del

robot, se logra a continuación detallar sus funciones. (Hernández, 2013)

Dónde:

q n-1 = Son las variables de las articulaciones.

Para articulaciones revolutas (unión que gira sobre un

único eje con respecto al otro) las variables son

ángulos.

Figura 9. Relación entre cinemática directa e inversa

Fuente: (Hernández, 2013, pág. 4)

Page 33: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

20

Para articulaciones prismáticas (uniones arraigadas que

se desplazan dentro y a lo largo de cada una de éstas)

las variables son distancias.

x, y, z = Coordenadas de la posición del extremo del robot.

α, β, ϒ = Ángulos de la orientación del extremo del robot.

La obtención de estas relaciones no es en general complicada, siendo incluso en

ciertos casos (robots de pocos grados de libertad) fácil de encontrar mediante simples

consideraciones geométricas. (Hernández, 2013)

En general, un robot de n grados de libertad está formado por n eslabones unidos por

n articulaciones, de forma que cada par articulación-eslabón constituye un grado de

libertad. A cada eslabón se le puede asociar un sistema de referencia a él y utilizando

las transformaciones homogéneas, es posible representar las rotaciones y traslaciones

relativas entre los distintos eslabones que componen el robot. (Hernández, 2013)

2.5.2. Cinemática inversa del robot Scara.

Para formular la cinemática inversa del robot Scara se define el sistema de referencia

que se muestra a continuación. (Noriega, Muñiz, & García, 2010)

Figura 10. Por ejemplo para el caso de un robot con 2 grados de libertad

Fuente: (Hernández, 2013, pág. 6)

Page 34: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

21

Para realizar la modelización es necesario conocer las longitudes así

como el modo de ensamblaje deseado para el robot. Como se va a resolver la

cinemática inversa, se dispone de la posición , la velocidad

y la aceleración del punto D del robot Scara y se desea

calcular, en cada instante temporal, el ángulo y sus derivadas temporales y

), el ángulo y sus derivadas temporales y la distancia y sus derivadas

temporales y . (Noriega, Muñiz, & García, 2010)

Las coordenadas del punto O y sus derivadas temporales son nulas por estar situado

en el origen y ser un punto fijo tal y como se muestra en la ecuación 1. (Noriega,

Muñiz, & García, 2010)

Ecuación 1. Coordenadas del punto O

Las coordenadas del punto A también son constantes y su expresión se muestra en la

ecuación 2. (Noriega, Muñiz, & García, 2010)

Figura 11. Esquema del robot Scara

Fuente: (Noriega, Muñiz, & García, 2010, pág. 5)

Page 35: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

22

Ecuación 2. Coordenadas del punto A

Las coordenadas del punto C se obtienen a partir de los puntos A y D y su expresión

se muestra en la ecuación 3. (Noriega, Muñiz, & García, 2010)

Ecuación 3. Coordenadas del punto C

Entonces, los valores de se pueden calcular directamente como se muestra

en la ecuación 4. (Noriega, Muñiz, & García, 2010)

Ecuación 4. Obtención de los valores

Para obtener la posición del punto B, se tiene en cuenta que A, B y C están

contenidos en un mismo plano paralelo al XOY donde . Además, dicho

plano no varía su coordenada Z por lo que . (Noriega, Muñiz, & García,

2010)

Una vez conocidas la posición, velocidad y aceleración en X e Y de los puntos A y

B, se puede calcular el ángulo , y sus dos primeras derivadas ( y ) respecto

del tiempo. Finalmente se calcula su ángulo ϴ2 y sus derivadas temporales se pueden

calcular mediante la siguiente ecuación (Noriega, Muñiz, & García, 2010)

Page 36: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

23

Ecuación 5. Obtención de los valores , y

2.6. Matriz Jacobiana

Es el medio que permite conocer las velocidades del extremo del robot a partir de las

velocidades de cada articulación. (Hernández, 2013)

Con las funciones de x,y,z correspondientes a las posiciones y su primera derivada

correspondiente a las velocidades se puede obtener la matriz Jacobiana al realizar el

producto punto entre la matriz J (derivada de las posiciones con respecto a cada

punto) y la matriz de las velocidades de las articulaciones, como se detalla en las

siguientes figuras.

Figura 12. Matriz Jacobiana

Fuente: (Hernández, 2013, pág. 28)

Page 37: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

24

Figura 13. Relaciones diferenciales

Fuente: (Hernández, 2013, pág. 29)

Figura 14. Matriz Jacobiana de un robot Scara

Fuente: (Hernández, 2013, pág. 30)

Page 38: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

25

2.6.1. Métodos de cálculo de la matriz Jacobiana inversa.

Existen varios métodos entre estos están:

Inversión simbólica de la matriz Jacobiana

Gran complejidad (matriz 6x6)

Evaluación numérica de J e inversión numérica

Necesidad de recómputo continuo

En ocasiones J no es matriz cuadrada

En ocasiones el determinante de la matriz es | J | = 0

A partir del modelo cinemático inverso, como se observa en la siguiente

figura. (Hernández, 2013)

2.7. Matrices de transformación A y T

La matriz i-1

Ai o matriz de transformación homogénea representa la posición y

orientación relativa entre los sistemas asociados a dos eslabones consecutivos del

robot. Donde i es el número máximo de eslabones del robot.

Ecuación 6. Conexión de matrices A

0A3 =

0A1

1A2

2A3

La matriz T o matriz 0An se aplica al momento de considerar todos los grados de

libertad del robot.

Ecuación 7. Matriz T o matriz 0An

T = 0A6 =

0A1

1A2

2A3

3A4

4A5

5A6

Figura 15. Modelo cinemático de la matriz Jacobiana inversa

Fuente: (Hernández, 2013, pág. 31)

Page 39: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

26

2.8. Algoritmo de Denavit-Hartenberg

Este algoritmo fue creado para definir el paso de un sistema de referencia asociado a

una articulación con la siguiente articulación. Sólo dependen de las características

geométricas de cada eslabón y de las articulaciones que le unen con el anterior y

siguiente eslabón/articulación (no dependen de la posición del robot) y definen las

matrices A que permiten el paso de un sistema de referencia asociado a una

articulación al siguiente y por tanto definen las matrices T. (Hernández, 2013)

El Algoritmo de Denavit-Hartenberg se basa en:

Numerar los eslabones comenzando con 1 (primer eslabón móvil de la

cadena) y acabando con n (último eslabón móvil). Se numerará como eslabón

0 a la base fija del robot.

Numerar cada articulación comenzando por 1 (la correspondiente al primer

grado de libertad) y acabando en n.

Localizar el eje de cada articulación. Si ésta es rotativa, el eje será su propio

eje de giro. Si es prismática, será el eje a lo largo del cual se produce el

desplazamiento.

Para i de 0 a n-1 situar el eje Zi sobre el eje de la articulación i+1.

Situar el origen del sistema de la base {S0} en cualquier punto del eje Z0. Los

ejes X0 e Y0 se situarán de modo que formen un sistema dextrógiro con Z0.

Para i de 1 a n-1, situar el sistema {Si} (solidario al eslabón i) en la

intersección del eje Zi con la línea normal común a Zi-1 y Zi. Si ambos ejes se

cortasen se situaría {Si} en el punto de corte. Si fuesen paralelos {Si} se

situaría en la articulación i+1.

Situar Xi en la línea normal común a Zi-1 y Zi

Situar Yi de modo que forme un sistema dextrógiro con Xi y Zi.

Situar el sistema {Sn} en el extremo del robot de modo que Zn coincida con la

dirección de Zn-1 y Xn sea normal a Zn-1 y Zn.

Obtener θi como el ángulo que hay que girar en torno a Zi-1 para que Xi-1 y Xi

queden paralelos.

Obtener di como la distancia, medida a lo largo de Zi-1, que habría que

desplazar {Si-1} para que Xi y Xi-1 quedasen alineados.

Page 40: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

27

Obtener ai como la distancia medida a lo largo de Xi (que ahora coincidiría

con Xi-1) que habría que desplazar el nuevo {Si-1} para que su origen

coincidiese con {Si}.

Obtener αi como el ángulo que habría que girar entorno a Xi (que ahora

coincidiría con Xi-1), para que el nuevo {Si-1} coincidiese totalmente con {Si}.

Obtener las matrices de transformación i-1

Ai

Obtener la matriz de transformación entre la base y el extremo del robot

T = 0A1

1A2 ...

n-1An.

La matriz T define la orientación (submatriz de rotación) y posición

(submatriz de traslación) del extremo referido a la base en función de las n

coordenadas articulares. (Hernández, 2013)

2.9. Desarrollo matemático de la cinemática directa e inversa en Matlab

Los parámetros del algoritmo Denavit-Hartenberg (D-H) utilizados en el robot Scara

especificados en la siguiente figura se encuentran definidos en la tabla 1.

Se detalla únicamente cuadro grados de libertad, debido a que el quinto grado de

libertad del robot Scara corresponde a la pinza, con movimientos únicos en el eje x,

como se muestra en la siguiente figura.

Page 41: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

28

Tabla 1. Parámetros denavit-hartenberg (D-H) del robot

i

1 0 0

2 0 0

3 0 0 0

4 0 0

Ecuación 8. Resultado de matriz T1 usando la convención D-H

Ecuación 9 . Resultado de matriz T2 usando la convención D-H

Ecuación 10. Resultado de matriz T3 usando la convención D-H

Figura 16. Parámetros del robot Scara

Fuente: (Research, 2012) Elaborado por: Alejandra Ortiz & Edison Ponce

Page 42: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

29

Ecuación 11. Resultado de matriz T4 usando la convención D-H

Ecuación 12 . Matriz total de transformación

Solución inversa para la posición.

Ecuación 13. Ubicación deseada del robot Scara

Ecuación 14. Ecuación final para representación del robot

Para resolver el ángulo , ambos lados de la ecuación 14 se multiplica

sucesivamente con las matrices,

de tal manera que:

Ecuación 15. Obtención de A4

Ecuación 16. Resultado sucesivo de la multiplicación de ambas ecuaciones

Page 43: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

30

Ecuación 17. Resultado del elemento 1,4 de la ecuaciones 12 y 13

Ecuación 18. Resultado del elemento 2,4 de la ecuaciones 12 y 13

Ecuación 19. Obtención de C2 de la ecuación 17 y 18

Ecuación 20. Obtención de S2 de la ecuación 17 y 18

Ecuación 21. Obtención de ϴ2 de la ecuación 17 y 18

Ecuación 22. Reordenando la ecuación 17 se obtiene

Ecuación 23. Reordenando la ecuación 18 se obtiene

Ecuación 24. Resolución de ecuaciones 22 y 23 por la regla de Kramer para obtener

ϴ1

Page 44: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

31

Ecuación 25. Del elemento 3,4 de la ecuación 12 y 13

Ecuación 26. Obtención de ϴ3

Ecuación 27. Del elemento 1,1 de la ecuación 11 y 16 se obtiene C4

Ecuación 28. Del elemento 2,1 de la ecuación 11 y 16 se obtiene S4

Ecuación 29. Obtención de ϴ4

2.10. LabVIEW

2.10.1. ¿Qué es LabVIEW?

(Acrónimo de Laboratory Virtual Instrumentation Engineering Workbench) es un

lenguaje de programación gráfico diseñado para ingenieros y científicos para

desarrollar aplicaciones de pruebas, control y medidas. (estuelectronic, 2012)

2.10.2. Panel frontal.

Es la interfaz con el usuario, se la utiliza para interactuar con el usuario cuando el

programa se está ejecutando. En esta interfaz se definen los controles (se los usa

como entradas, pueden ser botones, marcadores etc.) e indicadores (se los usa como

salidas, pueden ser gráficas, etc). (Estuelectronic, 2013)

Page 45: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

32

2.10.3. Diagrama de bloques.

Es el programa propiamente dicho, donde se define su funcionalidad, aquí se colocan

íconos que realizan una determinada función y se interconectan (el código que

controla el programa). Suele haber una tercera parte icono/conector que son los

medios utilizados para conectar un VI con otros VIs. (Estuelectronic, 2013)

Figura 17. Panel frontal de LabVIEW

Elaborado por: Alejandra Ortiz & Edison Ponce

Figura 18. Diagrama de bloques de LabVIEW

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 46: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

33

2.11. Project Navigator

Actualmente cualquier proceso de ingeniería dispone de un software que asiste al

ingeniero con aplicaciones para el desarrollo de sistemas complejos. Los sistemas

electrónicos reconfigurables del tipo FPGA son un buen ejemplo de la complejidad

que se puede alcanzar, esta complejidad no sería abarcable sin la ayuda de un entorno

con herramientas que asistan en el proceso de diseño, simulación, síntesis del

resultado y configuración del hardware. Un ejemplo de un entorno de este tipo es el

software de la empresa Xilinx denominado ISE (Integrated Software Environment).

(Domínguez, 2011, pág. 3)

Este software constituye un verdadero entorno EDA (Electronic Desing

Automation). La interfaz gráfica de usuario (GUI: Graphic User Interface) se

denomina Proyect Navigator y facilita el acceso a todos los componentes del

proyecto. Los diseños de usuario se pueden introducir mediante diferentes formatos.

Los más utilizados son: los esquemáticos, los grafos de estados y las descripciones

hardware en VHDL. Una vez compilados los diseños se puede simular su

comportamiento a nivel funcional o a nivel temporal. A nivel funcional no tiene en

cuenta los retardos provocados por el hardware y a nivel temporal simula el diseño

teniendo en cuenta cómo se va a configurar el hardware. (Domínguez, 2011, pág. 3)

Figura 19. Esquema de los componentes más importantes del ISE

Fuente: (Domínguez, 2011, pág. 3)

Page 47: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

34

2.12. Ajuste por mínimos cuadrados

Existen numerosas leyes físicas en las que se sabe de antemano que dos magnitudes

“x” e “y” se relacionan a través de una ecuación lineal.

Ecuación 30. Ecuación de la recta.

y = ax + b

Donde las constantes “b” (ordenada en el origen) y “a” (pendiente)

dependen del tipo de sistema que se estudia y, a menudo, son los

parámetros que se pretende encontrar.

El método más efectivo para determinar los parámetros a y b se conoce como técnica

de mínimos cuadrados.

Consiste en someter el sistema a diferentes condiciones, fijando para ello distintos

valores de la variable independiente “x”, anotando en cada caso el correspondiente

valor medido para la variable dependiente “y”. De este modo se dispone de una serie

de puntos (x1, y1),.... (xn, yn) que, representados gráficamente, deberían caer sobre

una línea recta. Sin embargo, los errores experimentales siempre presentes hacen que

no se hallen perfectamente alineados. El método de mínimos cuadrados determina

los valores de los parámetros “a” y “b” de la recta que mejor se ajusta a los datos

experimentales. Sin detallar el procedimiento, se obtiene los parámetros de “a” y “b”.

(Torrelavega, 2008).

Ecuación 31. Obtención del parámetro “a”

∑ ∑ ∑

∑ ∑

Ecuación 32. Obtención del parámetro “b”

∑ ∑

Page 48: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

35

Donde “n” es el número de medidas, “Σ” representa la suma de todos

los datos que se indican e “i” representa el punto en el plano

cartesiano.

Figura 20. Mínimos cuadrados

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 49: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

36

CAPÍTULO 3

DESARROLLO DE HARDWARE Y SOFTWARE

En este capítulo se desarrolla el diseño e implementación del hardware y software, el

sistema de control está basado en una tarjeta FPGA Spartan 3E Starter. Además

consta de tres tarjetas de potencia las mismas que usan un driver con el circuito

integrado L298N. Los motores utilizados son tipo brushless.

La interfaz gráfica a utilizarse es LabVIEW con una comunicación serial entre la

tarjeta Spartan 3E y la PC.

3.1. Diseño de hardware

Se analiza el diagrama de bloques del sistema del brazo robótico RHINO Scara, para

describir el funcionamiento de cada una de las fases que conforman y permiten su

funcionabilidad.

3.1.1. Diagrama de bloques del sistema.

Las fases que forman parte del diagrama de bloques del hardware del brazo robótico

Scara son:

Fuentes de alimentación continúa.

Tarjeta Spartan 3E para el control de movimiento del brazo y control de la

comunicación entre ésta y la PC.

Motores brushless con caja reductora y un enconder para el control del

recorrido de los movimientos del brazo.

Una tarjeta de control para envío y recepción de datos lógicos.

Tarjetas de potencia para el control de los motores implementados con un

circuito integrado L298N.

Comunicación serial y computador para el proceso de información.

Page 50: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

37

3.1.1.1. Módulo de control de potencia mediante el puente H L298N para

motores.

El circuito de potencia fue diseñado según algunos parámetros como: la cantidad de

corriente (Amperios) y voltaje (Voltios) que utilizaría cada motor para el movimiento

de su correspondiente articulación.

El módulo de control de potencia es basado en el circuito integrado L298N, diseñado

para manejar diversos tipos de cargas como motores de corriente continua, motores

paso a paso unipolares o bipolares, solenoides, etc.

Consta de 4 amplificadores de potencia que soportan intensidades de corriente de 2

A, con picos de hasta 3 A, controlables independientemente, o como 2 puentes H. En

la versión “P” los amplificadores están conectados en paralelo 2 a 2, de modo que se

obtiene 2 canales de 3 A, o 1 puente H de 3 A en modo continuo (3,5 A de pico). La

capacidad de control de potencia supera los 120 W en total (160 W en intervalos

cortos).

Dispone de 2 salidas para medir la corriente de cada puente H, que pueden ser

llevadas a un ADC. (Heredia, 2014, pág. 50)

Figura 21. Diagrama de bloques del sistema de control del brazo Scara

Elaborado por: Alejandra Ortiz & Edison Ponce

FPGA

Módulo de Transmisión y

Recepción de Datos

Módulo de Control de Datos

UART Control de

PC Labview

Fuente de

Alimentación 5V

Módulo de Control de Potencia

Fuente de Alimentación

12V – 1A

Fuente de Alimentación

12V – 3A

Page 51: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

38

3.1.1.2. UART (Universal Asynchronous Receiver & Transmitter).

El Receptor y Transmisor Asíncrono Universal (UART) es el software indispensable

de un sistema de comunicación serial. Su función consiste en convertir los datos que

recibe de serie a paralelos y de paralelos a serie en el caso de los datos a enviar, es un

proceso que se realiza bidireccionalmente pero no al mismo tiempo.

En las siguientes figuras se muestra el diagrama de bloques del UART y la tarjeta

Spartan 3E con sus puertos seriales (macho y hembra).

Figura 22. Módulo de control de potencia

Imagen: Alejandra Ortiz & Edison Ponce

Page 52: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

39

Figura 23. Diagrama de bloques del UART

Fuente: (Bareño, 2013, pág. 76)

Figura 24. Ubicación del puerto serial

Imagen: Alejandra Ortiz & Edison Ponce

Page 53: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

40

3.1.1.3. Módulo de control de datos.

Este módulo está constituido por tres circuitos: fuente de alimentación, tarjeta de

acoplamiento de pines con la tarjeta Spartan 3E y la tarjeta Spartan 3E.

La fuente de alimentación consta de un regulador de tensión con una corriente

máxima de 1 A a 12V.

La tarjeta de control consta de un regulador de voltaje LM7805 que permite la

obtención de 5V. Sin embargo se necesita emplear un buen disipador de calor debido

al comportamiento de este componente.

La tarjeta de acoplamiento permite unir los diferentes pines de la tarjeta de control

con la tarjeta Spartan 3E para obtener la comunicación entre dichas tarjetas.

A continuación se detalla los pines de la tarjeta de acoplamiento.

Tabla 2. Distribución de pines tarjeta de acoplamiento

Elaborado por: Alejandra Ortiz & Edison Ponce

Motor A B C D E

Encoder

Spartan PIN 40 PIN 30 PIN 16 PIN 11 PIN 6

PIN 42 PIN 32 PIN 26 PIN 13 PIN 8

AVR PIN 10 PIN 12 PIN 14 PIN 49 PIN 48

PIN 4 PIN 11 PIN 13 PIN 51 PIN 50

Enable Spartan PIN 39 PIN 35 PIN 29 PIN 44 PIN 36

AVR PIN 17 PIN 7 PIN 15 PIN 5 PIN 6

Control

Spartan PIN 37 PIN 33 PIN 27 PIN 14 PIN 9

PIN 38 PIN 34 PIN 28 PIN 15 PIN 10

AVR PIN 37 PIN 40 PIN 42 PIN 45 PIN 47

PIN 38 PIN 39 PIN 41 PIN 44 PIN 46

Reset Spartan PIN 25

AVR PIN 20

Led_inicio Spartan PIN 24

AVR PIN 43

Page 54: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

41

3.2. Desarrollo del software

Se analiza la configuración básica de la tarjeta Spartan 3E para crear un nuevo

proyecto en el software Project Navigator y los diagramas de flujo de las 3 etapas

que forman parte del robot Scara tales como: los diagramas de flujo de la interfaz

LabVIEW, los diagramas de flujo de la comunicación serial y los diagramas de flujo

correspondiente al control del movimiento de los motores, como se muestra desde la

página 43.

3.2.1. Configuración básica de la tarjeta Spartan 3E en Project Navigator.

Los pasos a seguir a continuación sirven para crear un nuevo proyecto y fijar los

parámetros y propiedades de la tarjeta Spartan 3E, permitiendo un acople entre el

software Project Navigator y el hadware correspondiente a la tarjeta.

Figura 25. Módulo de control de datos

Imagen: Alejandra Ortiz & Edison Ponce

Page 55: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

42

1. Abra el Xilinx ISE Project Navigator, seleccionándolo desde el menú Inicio o

desde el icono del escritorio.

2. En el Project Navigator, seleccione File, Menu, New Project. Nombre del

proyecto "tutorial2". Para poner el proyecto en una ubicación diferente,

directamente escriba la dirección del archivo en Project Location o busque

haciendo clic en el botón Examinar de tres puntos.

3. La ubicación del proyecto siempre se puede ver en la parte superior de la

pantalla del Project Navigator. Evite espacios en el nombre del proyecto o

dirección. Haga clic en Siguiente y aparecerá la ventana de las propiedades

del dispositivo.

4. Configurar las propiedades del dispositivo tal y como se muestra en la

siguiente figura, a continuación seleccione Next hasta que se genere el

proyecto.

Figura 26. Configuración de las propiedades del dispositivo

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 56: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

43

En la siguiente tabla se identifica las variables tipo strings utilizados en la

programación y su respectivo código ASCII necesarios para este trabajo.

Tabla 3. Strings utilizados en la programación y su respectivo código ASCII

Elaborado por: Alejandra Ortiz & Edison Ponce

3.2.2. Diagrama de flujo para interfaz LabVIEW modo manual.

En la figura 27 se muestra el diagrama de flujo desarrollado en LabVIEW para la

interfaz y envío de datos para el control de movimiento del robot Scara en modo

manual.

Movimiento del motor Paro

Motor Letra ASCII Letra ASCII

A A (Derecha) 65

1 49 a (Izquierda) 97

B M (Derecha) 77

2 50 m (Izquierda) 109

C C (Sube) 67

3 51 c (Baja) 99

D F (Derecha) 70

4 52 f (Izquierda) 102

E E (Derecha) 69

0 48 e (Izquierda) 101

Reset R 82

r 114

Page 57: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

44

1. Se inicia el algoritmo empezando por declarar los datos, señales y variables

con un valor por defecto igual a 0.

Figura 27. Diagrama de flujo interfaz LabVIEW modo manual

INICIO

String0 = 65 Dato TXString1 = 70 Dato TXString2 = 99 Dato TX

String3 = 109 Dato TXString4 = 69 Dato TX

Botón Abrir=onBotón RDerecha=on

Botón Subir=onBotón RDerecha2=on

Botón MArriba=on

Boton Reset

Encoder=0 Dato_0 RXEncoder1=0 Dato_1 RXEncoder2=0 Dato_2 RXEncoder3=0 Dato_3 RXEncoderE=0 Dato_4 RX

Stop=offReset=offAbrir=off

Cerrar=offSubir=offBajar=off

MArriba=offMAbajo=off

RDerecha=offRizquierdo=off RDerecha2=offRizquierdo2=off

FIN

Boton Stop

Encoder = Encoder+1Encoder1 = Encoder1 + 1Encoder2 = Encoder2 +1Encoder3 = Encoder3 +1EncoderE = EncoderE +1

Encoder = Distancia AEncoder3 = Angulo de Giro B

Encoder2 = Distancia CEncoder1 = Angulo de Giro DEncoderE = Angulo de Giro E

String0=49 Dato TXString1=50 Dato TXString2=51 Dato TXString3=52 Dato TXString4=48 Dato TX

Distancia AAngulo de Giro B

Distancia CAngulo de Giro DAngulo de Giro E

String0 = 97 Dato TXString1 = 102 Dato TXString2 = 67 Dato TXString3 = 77 Dato TXString4 = 69 Dato TX

Botón Cierra=onBotón RIzquierda=on

Botón Baja=onBotón RIzqueirda2=on

Botón MAbajo=on

Encoder = Encoder+1Encoder1 = Encoder1 + 1Encoder2 = Encoder2 +1Encoder3 = Encoder3 +1EncoderE = EncoderE +1

Encoder = Distancia AEncoder3 = Angulo de Giro B

Encoder2 = Distancia CEncoder1 = Angulo de Giro DEncoderE = Angulo de Giro E

String0=49 Dato TXString1=50 Dato TXString2=51 Dato TXString3=52 Dato TXString4=48 Dato TX

SINO

NO SI

SINO

SINO

SINO

SINO

String5 = 82 Dato TX

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 58: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

45

2. Se crea cinco variables tipo string correspondiente a los grados o distancia de

cada motor las cuales se ingresarán manualmente.

3. Si el estado de las señales (Abrir, RDerecha, Subir, RDerecha2, MArriba)

cambian a ON se procede a enviar los datos del siguiente bloque por el pin de

transmisión Serial Tx correspondiente al movimiento del motor, caso

contrario si el estado es OFF se procede a escoger las otras cinco señales

posibles de los motores respectivamente (Cierra, RIzquierda, Baja,

RIzquierda2, MAbajo).

4. Este bloque contiene los cinco diferentes datos a enviar por el pin de

transmisión serial Tx correspondiente al movimiento de cada motor (String0,

String1, String2, String3, String4).

5. Se realiza un contador para el encoder de los motores (Encoder, Encoder1,

Encoder2, Encoder3, EncoderE), los datos de los encoders son recibidos

mediante el pin de recepción serial RX.

6. Si el contador del encoder es igual a la variable tipo string introducida

manualmente, correspondiente a los grados o distancias de cada motor, se

enviara el dato correspondiente al paro del motor por el pin de transmisión

serial Tx.

7. Si el estado de la señal “RESET” cambia a ON se enviara el dato

correspondiente para ubicar el brazo robótico en posición inicial.

8. Si el botón Stop de LabVIEW es activado, el proceso finaliza.

Se observa la configuración del puerto de la comunicación serial que existe entre la

tarjeta FPGA Spartan 3E y la PC, valores tales como: velocidad de transmisión de

115200 bauds/seg, 2 bits de parada, paridad ninguna y un retardo de 12 mseg en este

proceso.

Page 59: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

46

El número ASCII, correspondiente a cada movimiento, es transformado a un intenger

de 8 bits sin signo, para luego ser enviado por el puerto serial de la PC hacia la tarjeta

FPGA.

Se implementa un contador para el cambio de estado de cada bit del byte recibido

desde la tarjeta FPGA correspondiente al movimiento del motor, con la finalidad de

tener un control en el número de vueltas que realiza el encoder.

Figura 28. Configuración de la comunicación serial en LabVIEW

Elaborado por: Alejandra Ortiz & Edison Ponce

Figura 29. Envío del número integer de 8 bits sin signo correspondiente al

movimiento

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 60: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

47

El número ASCII, correspondiente a cada paro, es transformado a un intenger de 8

bits sin signo, para luego ser enviado por el puerto serial de la PC hacia la tarjeta

FPGA.

Figura 30. Contadores para el cambio de estado

Elaborado por: Alejandra Ortiz & Edison Ponce

Figura 31. Envío del número integer de 8 bits sin signo correspondiente al paro

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 61: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

48

Se implementa la fórmula del ajuste de mínimo cuadrados con el objetivo de tener

una linealidad en el movimiento.

3.2.3. Diagrama de flujo para interfaz LabVIEW modo automático.

En la figura 33 se muestra el diagrama de flujo desarrollado en LabVIEW para la

Interfaz y envió de datos para el control de movimiento del robot Scara en modo

automático.

Figura 32. Implementación de la fórmula de ajustes de mínimo cuadrados

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 62: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

49

1. Se inicia el algoritmo empezando por declarar los datos, señales y variables

con un valor por defecto igual a 0.

2. Si la variable string “Parar” cambia a ON se envía los datos correspondientes

al paro de cada motor por el pin de transmisión serial TX.

Figura 33. Diagrama de flujo interfaz modo automático

INICIO

Encoder=0 Dato_0 RXEncoder1=0 Dato_1 RXEncoder2=0 Dato_2 RXEncoder3=0 Dato_3 RXEncoderE=0 Dato_4 RX

Inicio=offParar=offReset=offAbrir=off

Cerrar=offSubir=offBajar=off

MArriba=offMAbajo=off

RDerecha=offRizquierdo=off RDerecha2=offRizquierdo2=off

Parar=on

String0=49 Dato TXString1=50 Dato TXString2=51 Dato TXString3=52 Dato TXString4=48 Dato TX

Distancia AAngulo de Giro B

Distancia CAngulo de Giro DAngulo de Giro E

Botón Abrir=onBotón RDerecha=on

Botón Subir=onBotón RDerecha2=on

Botón MArriba=on Signo +Signo -

Botón Cierra=onBotón RIzquierdaa=on

Botón Baja=onBotón RIzqueirda2=on

Botón MAbajo=on

Boton Inicia

String0=65 Dato TXO

String=97 Dato TX

String0=77 Dato TXO

String=109 Dato TX

String0=67 Dato TXO

String=99 Dato TX

String0=70 Dato TXO

String=102 Dato TX

String0=69 Dato TXO

String=101 Dato TX

FIN

Boton StopBoton Reset

String = 82 Dato TXO

String = 114 Dato TX

NO

NO

NO

NONO

NO SI

SI

SI

SI

SI

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 63: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

50

3. Caso contrario se crea cinco variables tipo string correspondiente a los grados

o distancia de cada motor las cuales se ingresarán manualmente.

4. Si el estado de las señales (Abrir, RDerecha, Subir, RDerecha2, MArriba)

cambian a ON se procede asignar un string “+”.

5. Caso contrario si el estado de las señales (Cierra, RIzquierda, Baja,

RIzquierda2, MAbajo) cambian a ON se procede asignar un string “-”.

6. Si el estado de la señal “Inicia” cambia a ON, se procede a enviar el string

correspondiente al movimiento del motor A, luego el motor B, motor C,

motor D y motor E con un determinado intervalo de tiempo entre cada uno de

éstos.

7. Si el estado de la señal “Reset” cambia a ON, se envía el dato para ubicar el

brazo robótico en la posición inicial, sino el proceso vuelve a su inicio.

8. Si el botón Stop de LabVIEW es activado, el proceso finaliza.

El número ASCII, correspondiente a cada movimiento, es transformado a un intenger

de 8 bits sin signo, este número se elige manualmente mediante el signo “+ o -” y se

lo ejecuta en un ciclo previamente configurado con sus respectivos tiempos de

retardo entre éstos, para luego ser enviado por el puerto serial hacia la tarjeta FPGA.

Page 64: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

51

3.2.4. Diagrama de flujo divisor de frecuencia.

En la figura 35 se muestra el diagrama de flujo correspondiente a la obtención de la

frecuencia deseada para la comunicación serial entre la tarjeta Spartan 3E y la PC.

Figura 34. Envío del número integer de 8 bits sin signo en un ciclo de eventos

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 65: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

52

1. Se inicia el algoritmo ingresando constantes, señales y variables. Las señales

y variables se inicializan en 0, las constantes dependen de la frecuencia de

trabajo de la tarjeta Spartan 3E, que es de 50 MHz y la velocidad de

Figura 35. Diagrama de flujo frecuencia de muestreo del receptor y transmisor

INICIO

CLK_FREQ=50SER_FREQ=115200

Clk=0Counter=0

Clk=1

Counter=(CLK_FREQ*1000000)/SER_FREQ - 1

Frecuencia de Muestreo Deseado del Transmisor y Receptor

Counter= Counter + 1

FIN

NO SI

SINO

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 66: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

53

transmisión deseada para la comunicación, dicha velocidad se eligió de entre

las más comunes, ésta se estableció en 115200 bits/s.

2. Si la señal de reloj “clk” cambia a estado “1” se procede con el siguiente

bloque, caso contrario se mantiene en espera de cambio de estado.

3. Se crea una variable “counter” para ser usada como un contador.

4. Si la variable “counter” es igual a la frecuencia de reloj de la tarjeta, dividido

para la frecuencia deseada, dicho valor menos uno. Se obtiene el número de

ciclos que el proceso se leerá, adquiriendo la frecuencia necesaria para

utilizarla en los procesos de transmisión y recepción.

5. Se finaliza el proceso.

3.2.5. Diagrama de flujo trama de transmisión.

En la figura 36 se muestra el diagrama de flujo correspondiente a la obtención de la

trama a enviarse por el pin de transmisión Serial Tx de la tarjeta Spartan 3E hacia la

PC.

Page 67: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

54

1. Se inicializa el algoritmo con la declaración de datos tipo vector, señales y

variables inicializados en 0.

2. Si la señal de reloj “clk” cambia a estado “1” continua al siguiente bloque,

caso contrario se mantiene en espera del cambio de estado.

Figura 36. Diagrama de flujo trama de transmisión

INICIO

CLK=0Data_cnt=000Tx_clk_en=0

Tx_Req=0Tx_data_tmp=00000000

Tx_data=00000000Tx_par_bit=0

Stop=0

Clk=1 Tx_data_en=1Data_cnt=data_cnt + 1

Tx_par_bit= tx_par_bit XOR tx_data_tmp

Data_cnt=tx_data_tmp

Tx_par_bit=tx_par_bit

Tx_data_tmp= tx_par_bit & stop

Tx_data_tmp= tx_data

FIN

NO SI NO SI

NO SI

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 68: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

55

3. Si la señal “Tx_data_en” cambia a estado “1”, se implementará un contador

con la variable “data_cnt”, caso contrario se mantiene en espera del cambio

de estado.

4. Si la variable “data_cnt” es igual a la señal “tx_data_tmp”, se efectuará la

unión de la señal “tx_par_bit” con la señal “tx_data_tmp” almacenada en la

misma señal “tx_par_bit”, caso contrario la señal “tx_par_bit” se mantiene en

su estado inicial.

5. En este bloque se crea la señal “tx_par_bit” más la señal “stop” ingresada en

la señal “tx_data_tmp”.

6. Finalmente se iguala la señal “tx_data_tmp” al dato “tx_data”. Este es

enviado por el pin de transmisión serial Tx de la tarjeta.

7. Finaliza el proceso.

3.2.6. Diagrama de flujo trama de recepción.

En la figura 37 se muestra el diagrama de flujo correspondiente a la verificación de

la trama a recibirse por el pin de recepción Serial Rx de la tarjeta Spartan 3E desde la

PC.

Page 69: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

56

1. Se inicializa el algoritmo con la declaración de datos tipo vector, señales y

variables inicializados en cero.

Figura 37. Diagrama de flujo trama recepción

INICIO

CLK=0Rx_Data_cnt=000

rx_clk_en=0rx_Req=0

rx_data_tmp=00000000rx_data=00000000

Clk=1 rx_data_en=1 Rx_Data_cnt=rx_data_cnt + 1

For i 0 to 6 loopRx_data(i)= rx_data_tmp(6 - i)

End loop

Rx_Data_cnt=7

rx_data_tmp= rx_data_tmp(6 downto 0)

rx_data_tmp= rx_data

FIN

NO SI NO SI

NO SI

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 70: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

57

2. Si la señal de reloj “clk” cambia a estado “1” continua al siguiente bloque,

caso contrario se mantiene en espera del cambio de estado.

3. Si la señal “rx_data_en” cambia a estado “1”, se implementará un contador

con la variable “rx_data_cnt”, caso contrario se mantiene en espera del

cambio de estado.

4. Si “rx_data_cnt” es igual a 7, se implementará un lazo for de siete ciclos que

mostrará el dato “rx_data_tmp” que se encuentra en las siete diferentes

posiciones, caso contrario se esperará hasta que “rx_data_cnt” sea igual a 7.

5. Se crea la señal “rx_data_tmp” de siete posiciones.

6. Finalmente se iguala la señal “rx_data_tmp” al dato “rx_data”. Este es

recibido por el pin de recepción serial Rx de la tarjeta.

7. Finaliza el proceso.

3.2.7. Diagrama de flujo movimiento de motores proceso de recepción.

En la figura 38 se muestra el diagrama de flujo correspondiente a la recepción de la

trama enviada desde LabVIEW hacia la tarjeta Spartan 3E.

Page 71: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

58

1. Inicia el proceso declarando los datos tipo vector, señales y variables

inicializadas en 0, exceptuando la señal “fin_carrera=1”.

2. Si el estado de la señal “Rx_clk_en” cambia a 1 continua con el siguiente

bloque, caso contrario se mantiene en espera del cambio de estado.

3. Si el dato recibido “Rx_data” es igual a “65 ó 77 ó 67 ó 70 ó 69” se declara

las variables “enable=1, Ctrl_1=1, Ctrl_2=0” que permiten el movimiento del

Figura 38. Diagrama de flujo movimiento de motores proceso de recepción

INICIO

RX_Data=00000000

Enable=0Ctrl_1=0Ctrl_2=0

Fin_carrera=1Rx_Clk_en=0

Rx_data = 65o

Rx_data = 77o

Rx_data = 67o

Rx_data = 70o

Rx_data = 69

Enable=1Ctrl_1=1Ctrl_2=0

Rx_data = 97o

Rx_data = 109o

Rx_data = 99o

Rx_data = 102o

Rx_data = 101Enable=1Ctrl_1=0Ctrl_2=1

Rx_data = 49o

Rx_data = 50o

Rx_data = 51o

Rx_data = 52o

Rx_data = 48

Enable=0Ctrl_1=0Ctrl_2=0

Rx_data=82

Enable=1Ctrl_1=1Ctrl_2=0

Rx_data=114

Enable=1Ctrl_1=0Ctrl_2=1

FIN

Fin_carrera=o

Rx_Clk_en=1

NO SI

NO SI

NO

NO

NO

SI

SI

SI

SINO

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 72: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

59

motor, caso contrario se recibirá el dato “Rx_data” igual a “97 ó 109 ó 99 ó

102 ó 101”, que permite el cambio de las variables “enable=1, Ctrl_1=0,

Ctrl_2=1” con un movimiento inverso al anterior. Ver tabla 2.

4. Si el dato recibido “Rx_data” es igual a “49 ó 50 ó 51 ó 52 ó 48” se declara

las variables “enable=0, Ctrl_1=0, Ctrl_2=0” que permiten el paro del motor,

caso contrario. Ver tabla 2.

5. Una vez realizado el movimiento del brazo, si el dato recibido “rx_data” es

igual a “82 ó 114”, dicho brazo se reinicia a su posición inicial cambiando la

señal “fin_carrera” igual a 0’. Ver tabla 2.

6. Finalización del proceso.

3.2.8. Diagrama de flujo movimiento de motores proceso de transmisión.

En la figura 39 se muestra el diagrama de flujo correspondiente a la transmisión de

la trama recibida por LabVIEW desde la tarjeta Spartan 3E.

Page 73: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

60

1. Inicia el proceso declarando los datos tipo vector, señales y variables

inicializadas en 0.

2. Si el estado de la señal “Tx_clk_en” cambia a 1 continua con el siguiente

bloque, caso contrario se mantiene en espera del cambio de estado.

Figura 39. Diagrama de flujo movimiento de motores proceso de recepción

INICIO

Tx_Clk_en=0Encoder=0

Dato=0Tx_data=00000000

Tx_clk_en= 1

Encoder=1

Dato=1

Encoder=0

Dato=0

Tx_data=°1°&dato&°11°

FIN

SINO

NO

NO

SI

SI

Elaborado por: Alejandra Ortiz & Edison Ponce

Page 74: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

61

3. Si la señal del “encoder” cambia de estado a 1 el dato “dato=1”.

4. Caso contrario si el estado del “encoder” cambia de estado a 0 el dato

“dato=0”, caso contrario se mantiene en espera del cambio de estado.

5. Se crea el dato (Tx_data = “1” + “dato” + “11”), completando así la trama de

un byte a enviarse por el pin de transmisión serial Tx.

6. Finalización del proceso.

Page 75: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

62

CAPÍTULO 4

ANÁLISIS DE COSTOS

En este capítulo se analiza los costos de: diseño y construcción del hardware,

desarrollo del software y el costo total que conllevó el proyecto de investigación.

4.1. Costos de hardware

La tabla 4 señala los costos de los materiales que se utilizaron en la construcción del

brazo robótico, tanto la parte electrónica y ensamblaje del equipo.

Tabla 4. Costos de hardware

Elaborado por: Alejandra Ortiz & Edison Ponce

4.2. Costo de diseño de hardware

A continuación se detalla el costo de diseño del circuito electrónico.

Cantidad Detalle Valor Unitario Total

1 Tarjeta FPGA Spartan 3E 150 150

3 Placas de Control 80 240

1 Tarjeta Expansion de Pines 25 25

1 Estructura de Acrilico 56 56

4 LM393N 2,50 10,00

1 Fuente de Alimentacion AC/DC 1A 50 50,00

3 L298N 4 12,00

24 1N5408 0,60 14,40

6 Resistencias 2W/ 1Ω 0,40 2,40

3 Capacitor 470µf/ 35V 0,80 2,40

12 Capacitor 0,1µf 0,10 1,20

3 Resitencia 330Ω 0,10 0,30

3 Inductancia 0,35 1,05

18 Header 2 entradas 0,20 3,60

6 Header 3 entradas 0,30 1,80

3 Resistencias 3,9K 0,10 0,30

3 Diodo Led 0,10 0,30

3 Disipador de Corriente 1,50 4,50

3 Cable #20 0,20 0,60

2 Cable Bus de Datos 0,60 1,20

TOTAL $ 577

Page 76: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

63

Tabla 5 . Costos de diseño de hardware

Elaborado por: Alejandra Ortiz & Edison Ponce

4.3. Costos de desarrollo del software

Los costos analizados para el desarrollo del software del robot Scara son: LabVIEW,

Proyect Navigator (Lenguaje VHDL), especificando el valor por cada hora de

servicios prestados, como se muestra en la tabla 6.

Tabla 6. Costo de desarrollo de software

Elaborado por: Alejandra Ortiz & Edison Ponce

4.4. Costo total del proyecto

A continuación se detalla el precio total para el diseño y construcción del robot

Scara, en la tabla 7 se especifican los costos del hardware y desarrollo del software.

Tabla 7. Costo total del proyecto

Elaborado por: Alejandra Ortiz & Edison Ponce

Descripción Cantidad

(personas)

Tiempo

(horas)

Precio. Cada

Hora. $

Precio. Total del

Trabajo. $

Diseño de

ingeniería. 2 60 6 720

TOTAL 720 $

Descripción

Cantidad

(personas)

Tiempo

(horas)

Precio. Cada

Hora. $

Precio. Total

del Trabajo. $

Programación LabVIEW 2 80 5$ 800$

Programación VHDL 2 200 5$ 2000

TOTAL 2800 $

DESCRIPCIÓN COSTO

Hardware 577$

Diseño de hardware 720 $

Desarrollo de software 2800 $

TOTAL 4097$

Page 77: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

64

CONCLUSIONES

En el análisis e implementación de la cinemática directa se obtuvo un campo

interactivo para cada motor del brazo, conformando un movimiento coherente y

acorde a lo solicitado por el usuario, dentro de un error característico de estos

motores del 3%, lo que se considera aceptable para los fines propuestos en este

tema de investigación.

Para construir el algoritmo UART con el código VHDL se logró que los

procesos construidos en este algoritmo funcionen en paralelo, facilitando la

selección requerida para cada acción, haciendo más eficiente el tiempo de

respuesta en el movimiento del brazo robótico, ya que no se requiere la lectura

de todo el algoritmo.

Se realizaron las respectivas pruebas en la tarjeta, concluyendo que su campo

didáctico entre la interacción del usuario y la Spartan 3E en las diferentes

practicas prediseñadas tienen un nivel aceptable al momento de visualizar el

funcionamiento de una tarea dedicada, con una velocidad de transmisión y

recepción máxima de 115200 Mbps entre la tarjeta Spartan 3E y la interfaz

LabVIEW, concluyendo también la necesidad de implementar paros de

emergencia en el software para controlar una posible mala manipulación de

dicho brazo.

El nivel de seguridad y confiabilidad que se obtuvo se encuentra dentro de los

márgenes de un estudio eficiente en la manipulación de un brazo robótico en el

campo universitario, en base al movimiento de cada motor que conforma el

brazo se ha logrado incluir actividades prediseñadas con sus diferentes modos de

manipulación (manual, automático y vía bluetooth).

Page 78: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

65

RECOMENDACIONES

Se recomienda tener un gran cuidado en la polarización a tierra de la tarjeta con

el área de control de datos, debido a que cada una posee diferentes niveles de

voltaje para su correcto funcionamiento, adicionalmente la tarjeta consta de

switchs que permiten el cambio de voltaje de 5v – 3.3v con lo que el no tener un

mismo voltaje en las mismas áreas repercutiría en el funcionamiento y

manipulación de los datos digitales.

El tener una idea de los bloques o procesos a construir en el área del UART es

de vital importancia, puesto que sin una idea clara se llega a confusiones y a una

mala apreciación del trabajo que se requiere para la transmisión y recepción de

datos, poniendo gran énfasis en construir un algoritmo que tenga la facilidad de

cambiar sus variables a futuro de una forma sencilla y optima en el momento

que se lo requiera.

Tener un gran cuidado en la manipulación y conexión de los buses de datos que

van desde los motores hacia la tarjeta de control es de gran importancia debido a

que el encoder con el que trabaja el motor es muy susceptible a daños por una

mala polarización, ya que en dichos buses se transmiten voltajes de 12v que son

mucho mayores al voltaje de 5v necesario para su funcionamiento.

Page 79: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

66

LISTA DE REFERENCIAS

Arian. (15 de noviembre de 2012). Cochesrc. Recuperado el 22 de septiembre de

2013, de Cochersc: http://www.cochesrc.com/motor-electrico-brushless-

funcionamiento-y-caracteristicas-a3607.html

Bareño, C. I. (20 de octubre de 2013). Universidad Nacional de Colombia_

Electronica Digital. Recuperado el 9 de enero de 2014, de

http://gmun.unal.edu.co/~cicamargoba/digital2/1.pdf

Boada, Y. F., & Morales, L. A. (16 de junio de 2010). Escuela Politécnica Nacional.

Recuperado el 28 de julio de 2013, de Escuela Politécnica Nacional:

http://bibdigital.epn.edu.ec/bitstream/15000/2219/1/CD-2976.pdf

CEM-bot. (22 de julio de 2013). Wikipedia. Recuperado el 20 de enero de 2014, de

Wikipedia: http://es.wikipedia.org/wiki/Field_Programmable_Gate_Array

Domínguez, M. Á. (18 de Enero de 2011). Universidad de Vigo. Recuperado el 14 de

noviembre de 2013, de

http://webs.uvigo.es/mdgomez/SED/Guia_Inicio_ISE.pdf

estuelectronic. (13 de febrero de 2012). estuelectronic. Recuperado el 20 de agosto

de 2013, de estuelectronic:

http://estuelectronic.wordpress.com/2012/08/06/que-es-y-para-que-sirve-

labview/

Estuelectronic. (20 de marzo de 2013). Estuelectronic. Recuperado el 13 de febrero

de 2014, de Estuelectronic:

http://estuelectronic.wordpress.com/2012/08/06/que-es-y-para-que-sirve-

labview/

Heredia, J. (2014). Diseño e implementación de dos controladores para los brazos

robóticos: Antropomórfico y Scara, utilizando microcontroladores Atmel

AVR'S. Quito: Tesis de Pregrado.

Hernández, M. (1 de marzo de 2013). Ingeniería de Sistemas y Automática.

Recuperado el 16 de abril de 2014, de Ingeniería de Sistemas y Automática:

http://isa.umh.es/asignaturas/rvc/tema4.pdf

Inc, X. (20 de enero de 2011). Xilinx. Recuperado el 15 de juliio de 2013, de Xilinx:

http://www.xilinx.com/support/documentation/boards_and_kits/ug230.pdf

Inc, X. (19 de julio de 2013). Xilinx. Recuperado el 5 de mayo de 2014, de Xilinx:

http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf

Page 80: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

67

Marín, J. M. (2013). Biblioteca de Ingenieria (Universidad de Sevilla). Recuperado

el 10 de septiembre de 2013, de Biblioteca de Ingenieria (Universidad de

Sevilla):

http://bibing.us.es/proyectos/abreproy/11375/fichero/MEMORIA%252FFPG

A%C2%B4S.pdf

Noriega, A., Muñiz, M., & García, A. (20 de Agosto de 2010). xixcnim. Recuperado

el 16 de octubre de 2013, de xixcnim:

http://www.xixcnim.uji.es/CDActas/Documentos/ComunicacionesOrales/14-

02.pdf

Research, E. J. (9 de enero de 2012). Academia.edu. Recuperado el 9 de abril de

2014, de

https://www.academia.edu/5134376/Kinematic_Modeling_and_Simulation_o

f_a_SCARA_Robot_by_Using_Solid_Dynamics_and_Verification_by_MAT

LAB_Simulink

rhinorobotics LTD. (25 de diciembre de 2013). Recuperado el 20 de febrero de 2014,

de rhinorobotics LTD: http://www.rhinorobotics.com/scara.html

Torrelavega. (6 de agosto de 2008). Universidad de Cantabria. Recuperado el 26 de

febrero de 2014, de Universidad de Cantabria:

http://ocw.unican.es/ensenanzas-tecnicas/fisica-i/practicas-

1/Ajuste%20por%20minimos%20cuadrados.

U-Cursos. (12 de Marzo de 2006). U-Cursos. Recuperado el 23 de julio de 2013, de

U-Cursos: https://www.u-

cursos.cl/ingenieria/2006/1/EL693/1/material.../86389

Xilinx. (2013). Xilinx. Recuperado el 09 de abril de 2014, de

http://www.xilinx.com/support/documentation/data_sheets/ds160.pdf

Page 81: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

68

Anexo 1. Distribución de pines tarjeta Spartan 3E

Page 82: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

69

Anexo 2. Continuación distribución de pines tarjeta Spartan 3E

Page 83: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

70

Anexo 3. Conexiones de pines del atmega 128

Page 84: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

71

Anexo 4. Circuito del controlador

Page 85: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

72

Anexo 5. Datasheet del motor pittman serie 8000

Page 86: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

73

Page 87: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

74

Anexo 6. Control del brazo robótico en LabVIEW vía bluetooth

Page 88: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

75

Page 89: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

76

Page 90: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

77

Anexo 7. Creación de la aplicación Android para control del brazo robótico

Page 91: UNIVERSIDAD POLITÉCNICA SALESIANA SEDE …dspace.ups.edu.ec/bitstream/123456789/6860/1/UPS-ST001153.pdf · Matrices de transformación A y T ... Diagrama de flujo para interfaz LabVIEW

78