universidad tecnologica equinoccial facultad de...

168
I

Upload: others

Post on 09-Nov-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

I

Page 2: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

II

UNIVERSIDAD TECNOLOGICA EQUINOCCIAL

FACULTAD DE CIENCIAS DE LA INGENIERÍA

INGENIERÍA INFORMÁTICA Y CIENCIAS DE LA COMPUTACIÓN

TEMA:

“CONTROL Y MANIPULACIÓN DE MOVIMIENTOS DE UN BRAZO

ROBÓTICO MEDIANTE UNA INTERFAZ WEB”

TESIS

PREVIA LA OBTENCIÓN DEL TÍTULO DE INGENIERÍA EN INFORMÁTICA

Y CIENCIAS DE LA COMPUTACIÓN

AUTOR:

MARÍA FERNANDA CÓRDOVA C.

DIRECTOR DE TESIS:

ING. JUAN CARLOS RIVERA

2011

Page 3: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

III

DECLARACIÓN

Del contenido del presente trabajo se responsabiliza él autor.

MARIA FERNANDA CORDOVA C.

C.I. 1712693629

Page 4: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

IV

Page 5: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

V

AGRADECIMIENTOS

Agradezco a Dios y a su precioso hijo Jesús por haberme guiado y sostenido en el

transcurso de mi carrera ante las adversidades, dándome sabiduría y pasión para

desempeñar con excelencia todo lo propuesto. Gracias Dios por ser tu quien haya

guiado mi caminar durante toda mi vida y el privilegio de terminar honrando tu nombre

con esta tesis.

Agradezco a la Universidad Tecnológica Equinoccial por ser la Institución quien me

brindo las herramientas necesarias para mi formación académica.

Gracias a mi esposo y a mi hijo por la comprensión y el apoyo brindado durante este

tiempo, ustedes se convirtieron en el principal motor para culminar el presente trabajo.

A mis padres por apoyarme en todo momento en la formación de mi diario vivir sin

ellos no hubiera logrado cumplir este objetivo.

Un agradecimiento muy especial a mi director de tesis Ing. Juan Carlos Rivera por

guiarme en todo este arduo camino y su comprensión en todo momento, Gracias

ingeniero.

En fin agradecer a todas las personas que se preocuparon para que culmine con éxito

este trabajo.

Page 6: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

VI

DEDICATORIA

Dedico este trabajo principalmente a mi padre celestial DIOS quien ya tuvo

predestinado el propósito mío en esta tierra guardando mi vida y formándome cada día

como una mujer esforzada y valiente, dedico a su hijo JESUS quien se hizo real en mi

vida y no me ha soltado desde aquel día.

Dedico de igual manera en forma muy especial a toda mi familia, a mi esposo Fernando

Ramos de quien estoy muy orgullosa, a mi hijo Israel el cual fue mi aliento para

terminar la presente tesis, a mis padres Gustavo y Susana Córdova gracias por todo el

apoyo brindado y el ánimo que me dieron para seguir formándome cada día, a mis

hermanos Amalia y David animándoles para que sigan adelante.

Dedico también esta tesis a todos mis amigos y a unos muy especiales Dina Rivera,

Elizabeth Campoverde, Gaby Mafla, Vivian Campos, Mirella Salinas a mis pastores

Gustavo y Patricia Sánchez gracias por su amistad que mediante su ayuda, sabiduría y

buenos deseos hicieron posible este trabajo.

Page 7: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

VII

INDICE GENERAL

CARATURA……………………………………………………………………...........II

DECLARATORIA……………………………………………………………….…...III

INFORME DIRECTOR TESIS………………………………………………….…..IV

AGRADECIMIENTOS…………………………………………………………..........V

DEDICATORIA…………………………………………………………………........VI

INDICE GENERAL……………………………………………………………........VII

INDICE DE CONTENIDOS…………………………………………………….....VIII

LISTA DE FIGURAS……………………………………………………………… .XV

LISTA DE TABLAS……………………………………………………………...XVIII

LISTA DE FOTOS………………………………………………………………..XVIII

Page 8: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

VIII

INDICE DE CONTENIDO

1. INTRODUCCION .................................................................................................. 1

1.1 OBJETIVO GENERAL ........................................................................................ 2

1.2 OBJETIVOS ESPECÍFICOS ............................................................................... 2

1.3 ALCANCE ............................................................................................................ 2

1.4 JUSTIFICACIÓN. ................................................................................................ 3

1.5 FACTIBILIDAD ................................................................................................... 4

ECONÓMICA .......................................................................................................... 4

TÉCNICA ................................................................................................................. 4

OPERATIVA ............................................................................................................ 4

CAPÍTULO II ............................................................................................................. 5

2. MARCO TEÓRICO ............................................................................................... 5

2.1 ROBÓTICA........................................................................................................... 5

2.1.1 Concepto ...................................................................................................... 6

2.1.2 Concepto de Robot .......................................................................................... 6

2.1.3 Estructura de un Brazo Robótico ...................................................................... 6

2.1.4 Funcionamiento de los Brazos Robóticos.......................................................... 7

2.2 MOTORES ELÉCTRICOS .................................................................................. 8

Page 9: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

IX

2.2.1 Definición .................................................................................................... 9

2.2.2 Partes de un Motor Eléctrico............................................................................. 9

2.2.3 Funcionamiento del Motor.............................................................................. 10

2.2.3.1 Rotor ....................................................................................................... 11

2.2.3.2 Estator ..................................................................................................... 13

2.2.4 Control de Velocidad del Motor ..................................................................... 14

2.3 MICROCONTROLADOR ................................................................................. 14

2.3.1 Arquitectura Básica ........................................................................................ 15

2.3.2 PIC 18F4550 .................................................................................................. 17

2.3.2.1 Características Principales de los Microcontroladores PIC18 ................... 17

2.3.2.2 Nano Watt Technology ............................................................................ 18

2.3.3.2.1 Modo de ejecución alternativo ...................................................... 19

2.3.3.2.2 Modo múltiple inactivo ................................................................. 19

2.3.3.2.3 Modo de cambio sobre la marcha. ................................................. 19

2.3.3.2.4 Bajo consumo en módulos principales. ......................................... 19

2.3.2.3. Universal Serial Bus (USB) .................................................................... 20

2.3.2.4 Múltiples opciones de oscilador. .............................................................. 20

2.4 UNIVERSAL SERIAL BUS (USB) .................................................................... 24

2.4.1 EVOLUCIÓN DEL USB ............................................................................... 25

2.4.1.1 USB 1.0 ................................................................................................... 25

2.4.1.2 USB 1.1 ................................................................................................... 25

2.4.1.3 USB 2.0 ................................................................................................... 25

2.4.2 Nivel Físico .................................................................................................... 26

Page 10: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

X

2.4.2.1 Definición................................................................................................ 26

2.4.3 Tipos de Conectores USB ............................................................................... 26

2.4.4 Funcionamiento del USB ................................................................................ 27

2.4.5 Estructura del USB ......................................................................................... 29

2.4.5.1 Controlador ............................................................................................. 29

2.4.5.2 Hub ......................................................................................................... 29

2.4.5.3 Periféricos. .............................................................................................. 30

2.4.6 Componentes del Cable USB ......................................................................... 31

2.4.7 Protocolo ........................................................................................................ 32

2.4.7.1 SYN ........................................................................................................ 32

2.4.7.2 PID .......................................................................................................... 32

2.4.8 Tipos de Paquetes ....................................................................................... 33

2.4.8.1 Token Packets.......................................................................................... 33

2.4.8.2 Data Packets .................................................................................... 33

2.4.8.3 Handshake Packets........................................................................... 34

2.4.9 Tipos de Transferencia de Datos ..................................................................... 34

2.4.9.1 Por Control (Control Transfer) ................................................................. 34

2.4.9.2 Isócrono (Isochronous Data Transfer) ...................................................... 35

2.4.9.3 Por Interrupción (Interrupt Data Transfer)................................................ 35

2.4.9.4 Por Volumen (Bulk Data Transfer) .......................................................... 35

2.4.10 Modelo Lógico ............................................................................................. 35

2.4.10.1 Clases USB ............................................................................................ 37

2.4.10.1.1 USB CDC (Communication Device Class) .................................. 39

2.4.10.1.2 USB HID (HUMAN INTERFACE DEVICES) ........................... 40

Page 11: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

XI

2.4.11 MICROCHIP USB ....................................................................................... 41

2.5 CAMARAS WEBCAM ...................................................................................... 43

2.5.1 Concepto ........................................................................................................ 43

2.5.2 Tecnología ..................................................................................................... 44

2.5.3 Funcionamiento .............................................................................................. 44

2.5.4 Características de las Cámaras Web ................................................................ 45

2.5.5 Partes de la Cámara Web ................................................................................ 46

2.5.6 Capacidades de Resolución Cámara Web ....................................................... 47

2.5.7 Puerto para Cámara Web ................................................................................ 47

2.6 HERRAMIENTAS DE PROGRAMACIÓN ..................................................... 48

2.6.1 PIC C COMPILER ......................................................................................... 48

2.6.1.1 PCW COMPILER ................................................................................... 49

2.6.1.2 Características del PIC C PRO COMPILER ............................................ 49

2.6.2 HERRAMIENTA DE DESARROLLO WEB ................................................. 51

2.6.2.1 VISUAL STUDIO ................................................................................... 51

2.6.2.2 Entorno de Desarrollo .............................................................................. 51

2.6.2.3 Que es .NET? .......................................................................................... 51

2.6.2.4 Partes del Entorno .NET .......................................................................... 52

2.6.2.4.1 .NET FRAMEWORK ................................................................... 52

2.6.2.4.3 Bibliotecas de Clase Base (BCL) ................................................... 53

2.6.2.4.4 Entorno Común de Ejecución para Lenguajes (CLR) .................... 54

2.6.2.5 C#............................................................................................................ 54

2.6.2.5.1 Ventajas ........................................................................................ 55

Page 12: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

XII

2.6.2.5.2 Características de C# ..................................................................... 55

CAPÍTULO III ......................................................................................................... 59

3. DESARROLLO DEL PROYECTO ..................................................................... 59

3.1. INTRODUCCIÓN.............................................................................................. 59

3.1.1 Definición Metodología Prototipos: ................................................................ 59

3.2 LINEAMIENTO DEL PROYECTO .................................................................. 59

3.3 EL ACTUADOR ................................................................................................ 61

3.3.1 Características del Actuador ........................................................................... 61

3.3.2 CONSTRUCCIÓN DEL BRAZO ROBÓTICO .............................................. 62

3.4 CIRCUITO DE CONTROL ............................................................................... 64

3.4.1 Driver de Control de Motores L293D Puente H .............................................. 65

3.4.1.1 Estructura L293D .................................................................................... 65

3.4.1.2 Distribución de Pines ............................................................................... 67

3.4.3 Oscilador ........................................................................................................ 68

3.4.4 Microcontrolador PIC 18F4550 ...................................................................... 69

3.4.4.1 Características PIC 18F4550 .................................................................... 70

3.4.4.2 Funcionamiento PIC 18F4550 ................................................................. 71

3.4.4.2 Distribución de Pines PIC 18F4550 ......................................................... 72

3.4.7 Diseño de Pistas para las Placas Electrónicas del Circuito de Control ......... 77

3.5 PROGRAMA PARA COMUNICACIÓN USB ................................................. 80

Page 13: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

XIII

3.5.1 OBJETIVO .................................................................................................... 80

3.5.2 DIAGRAMA DE FLUJO ............................................................................... 80

3.5.3 DESARROLLO ............................................................................................. 82

3.5.3.2 Comunicación USB ................................................................................. 84

3.5.3.3 Recepción y Envió de Paquetes................................................................ 86

3.5.3.4 Movimiento de Motores ........................................................................... 87

3.6 SOFTWARE DE CONTROL PARA PC APLICACIÓN WEB ....................... 89

3.6.1 OBJETIVO .................................................................................................... 89

3.6.2 DIAGRAMA DE FLUJO ............................................................................... 90

3.6.3 DESARROLLO ............................................................................................ 92

3.6.3.1 Aplicaciones Web sobre la Plataforma .NET ........................................... 92

3.6.3.2 Comunicación por el Puerto USB ............................................................ 93

3.6.3.3 Drivers para Windows ............................................................................. 96

3.6.3.4 API mpusbapi.dll .................................................................................... 97

3.6.3.5 Comprobar comunicación ...................................................................... 100

3.6.3.6 Cargar Cámara WEB ............................................................................. 105

3.6.3.7 Asignar Ángulos de Giro ....................................................................... 111

3.6.3.8 Ejecutar Movimiento de Motores ........................................................... 112

3.6.3.9 Interfaz Gráfica Web ............................................................................. 117

CAPÍTULO IV ........................................................................................................ 121

4. CONCLUSIONES Y RECOMENDACIONES.................................................. 121

BIBLIOGRAFIA .................................................................................................... 126

Page 14: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

XIV

GLOSARIO............................................................................................................. 128

ANEXOS ................................................................................................................. 133

ANEXO I ................................................................................................................. 134

FORMATO DE PRESUPUESTO PARA PLAN DE TESIS.................................. 134

ANEXO II ............................................................................................................... 137

MANUAL DE USUARIO .................................................................................... 137

Page 15: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

XV

LISTA DE FIGURAS

CAPÍTULO II

FIGURA 2. 1 ROTOR Y ESTATOR DEL MOTOR .................................................................. 9

FIGURA 2. 2 POLARIDAD DEL MOTOR DE CORRIENTE .................................................... 10

FIGURA 2. 3 ROTOR DEL MOTOR .................................................................................. 12

FIGURA 2. 4 ESTATOR DEL MOTOR DE CORRIENTE ........................................................ 13

FIGURA 2. 5 MICROCONTROLADOR PIC ........................................................................ 15

FIGURA 2. 6 ARQUITECTURA VON NEUMAN ................................................................. 16

FIGURA 2. 7 ARQUITECTURA HARDVARD...................................................................... 16

FIGURA 2. 8 DIAGRAMA DE PINES PIC 18F4550, .......................................................... 22

FIGURA 2. 9 DIAGRAMA DE BLOQUES 18F4550 ............................................................ 23

FIGURA 2. 10 TIPO DE CONECTORES USB ..................................................................... 27

FIGURA 2. 11 ESTRUCTURA DE CAPAS DEL BUS USB .................................................... 28

FIGURA 2. 12 DISPOSITIVOS USB CONECTADOS A UN PC .............................................. 30

FIGURA 2. 13 COMPONENTES DE CABLE USB ............................................................... 31

FIGURA 2. 14 DIAGRAMA DE FLUJO DE SELECCIÓN DE CLASE USB ................................. 41

FIGURA 2. 15 CLASES USB CON MICROCHIP ............................................................. 42

FIGURA 2. 16 FUNCIONAMIENTO DE LA WEBCAM.......................................................... 45

FIGURA 2. 17 PARTES EXTERNAS DE LA CÁMARA WEB ................................................. 46

FIGURA 2. 18 PANTALLA PRINCIPAL DEL PIC C PRO COMPILER ................................ 50

Page 16: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

XVI

CAPÍTULO III

FIGURA 3. 1 DIAGRAMA GENERAL ................................................................................ 60

FIGURA 3. 2 BRAZO ROBÓTICO ..................................................................................... 62

FIGURA 3. 3 CIRCUITO INTEGRADO L293D PUENTE H ................................................... 65

FIGURA 3. 4 DIAGRAMA DE PINES L293D ..................................................................... 66

FIGURA 3. 5 CIRCUITO INTEGRADO L293D MANEJO DE 2 MOTORES PEQUEÑOS A Y B ..... 68

FIGURA 3. 6 OSCILADOR DE CUARZO XT ...................................................................... 69

FIGURA 3. 7 MICROCONTROLADOR PIC 18F4550 ......................................................... 70

FIGURA 3. 8 DIAGRAMA DE PINES PIC 18F4550 ........................................................... 72

FIGURA 3. 9 CIRCUITO DE CONTROL ............................................................................. 76

FIGURA 3. 10 CARÁTULA PLACA DE CONTROL .............................................................. 77

FIGURA 3. 11 VISTA POR DEBAJO DE LA PLACA DE CONTROL......................................... 78

FIGURA 3. 12 PLACA DE CONTROL TERMINADA VISTA LATERAL ................................... 79

FIGURA 3. 13 PLACA DE CONTROL TERMINADA ............................................................ 79

FIGURA 3. 14 DIAGRAMA DE FLUJOS DEL PIC 18F4550 ................................................ 81

FIGURA 3. 15 DISTRIBUCIÓN DE PINES PUERTO B Y D ................................................... 83

FIGURA 3. 16 DIAGRAMA DE FLUJOS MACRO APLICACIÓN WEB.................................... 91

FIGURA 3. 17 ESTRUCTURA DE C# EN PLATAFORMA .NET ............................................ 93

FIGURA 3. 18 ACCESO AL PUERTO USB ........................................................................ 95

FIGURA 3. 19 DIAGRAMA DE FLUJO COMPROBACIÓN COMUNICACIÓN ......................... 101

FIGURA 3. 20 DIAGRAMA FLUJO DE LAS SUBRUTINAS PIDE VERIFICACIÓN USB Y ENVIAR

PAQUETE ........................................................................................................... 102

FIGURA 3. 21 DIAGRAMA DE FLUJO DE LAS SUBRUTINAS LEER DATO Y RECIBIR

PAQUETE ........................................................................................................... 104

Page 17: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

XVII

FIGURA 3. 22 DIAGRAMA DE FLUJO CARGAR CÁMARA WEB ....................................... 107

FIGURA 3. 23 DIAGRAMA DE FLUJO MOVIMIENTO MOTORES Y LA SUBRUTINA DE ENVIAR

PAQ. .................................................................................................................. 115

FIGURA 3. 24 APLICACIÓN WEB PARA EL CONTROL Y MANIPULACIÓN DEL BRAZO

ROBÓTICO ......................................................................................................... 117

FIGURA 3. 25 VERIFICAR CONEXIÓN PUERTO USB ..................................................... 118

FIGURA 3. 26 BOTÓN PARA CARGAR CÁMARA WEB .................................................... 118

FIGURA 3. 27 LISTA PARA ESCOGER ÁNGULOS DE GIRO MOTORES .............................. 119

FIGURA 3. 28 BOTONES PARA EJECUTAR MOVIMIENTOS ACTUADOR (BR) ................... 120

Page 18: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

XVIII

LISTA DE TABLAS

CAPÍTULO II

TABLA 2. 1 CARACTERÍSTICAS DE LA FAMILIA MICROCONTROLADORES PIC18, ............ 18

TABLA 2. 2 TIPOS DE CLASES DE DISPOSITIVOS ............................................................. 37

TABLA 2. 3 ALGUNOS DRIVERS DE WINDOWS PARA ALGUNAS CLASES USB ................... 38

CAPÍTULO III

TABLA 3. 1 DISTRIBUCIÓN DE PINES DEL PIC 18F4550 ................................................. 73

TABLA 3. 2 VALORES PARA MOTORES DEL ACTUADOR ............................................... 113

LISTA DE FOTOS

CAPÍTULO III

FOTO 3. 1 BRAZO ROBÓTICO EN LA FASE DE ARMADO ................................................... 63

FOTO 3. 2 BRAZO ROBÓTICO DESARMADO .................................................................... 63

CAPÍTULO IV

FOTO 4. 1 PROYECTO INTEGRADO Y TERMINADO ........................................................ 124

FOTO 4. 2 PROYECTO INTEGRADO Y FUNCIONANDO .................................................... 125

Page 19: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

1

CAPÍTULO I

1. INTRODUCCION

Los robots, la parte más atractiva en la era de la automatización, representan una

pieza fundamental en el estudio de la ingeniería. La robótica se ha convertido en

una tecnología multidisciplinar, ya que hace uso de más recursos que le

proporcionan otras ciencias como (Mecánica, Electrónica, Informática, Matemática).

La robótica se ha caracterizado por el desarrollo de sistemas cada vez más flexibles

y versátiles, mediante la utilización de nuevas estructuras mecánicas y de nuevos

métodos de control, manipulación y percepción de su entorno.

Podemos contemplar la robótica como una ciencia que aunque se han conseguido

grandes avances todavía ofrece un amplio campo para el desarrollo y la innovación y

es precisamente este aspecto que me ha motivado investigar como poder controlar y

manipular un brazo robótico por medio de una interfaz Web, sirviendo a la vez como

un aporte al laboratorio virtual de la Universidad Tecnológica Equinoccial y para

futuros avances y estudios que podrían realizarlos en esta rama de la tecnología.

Es por ello que el presente proyecto se trata del Control y manipulación de

movimientos de un Brazo Robótico mediante una Interfaz Web.

Page 20: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

2

1.1 OBJETIVO GENERAL

Desarrollar una aplicación Web que permita el control y manipulación de un Brazo

Robótico.

1.2 OBJETIVOS ESPECÍFICOS

• Investigar el funcionamiento electrónico y la interfaz que permita la

comunicación del prototipo brazo robótico y la PC.

• Investigar que herramienta Web podría utilizar para enviar comandos a los

circuitos eléctricos y la utilización de controladores que me permitirán resolver los

movimientos de objetos por medio del brazo robótico.

• Diseñar el circuito electrónico que permita ser el intermediario del prototipo del

brazo robótico y la PC.

• Diseñar la aplicación Web que permitirá la manipulación y el control de los

movimientos del brazo robótico.

• Poner en funcionamiento y realizar las respectivas pruebas para la manipulación

y control del brazo robótico.

1.3 ALCANCE

El presente proyecto tiene como finalidad desarrollar una interfaz Web para

manipular y controlar un brazo robótico, utilizando herramientas Web.

Page 21: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

3

El proyecto constará de las siguientes partes:

- La construcción del circuito entre el brazo robótico y el computador y

- El desarrollo de la interfaz Web sea esta .NET o la herramienta Web que se

acople de mejor manera a este proyecto, siendo esta interfaz Web la que servirá

para el control y manipulación del brazo robótico utilizado por el usuario final.

- No se llevará a cabo la construcción del brazo robótico las pruebas se las

realizará con actuadores.

1.4 JUSTIFICACIÓN.

Este proyecto es de gran utilidad para conocer el comportamiento de los

componentes que intervienen tanto de hardware y software para el control y

manipulación de un brazo robótico mediante las herramientas Web utilizadas hoy en

día.

La fuerza capaz de producir, aporta considerablemente a los recursos físicos

disponibles, reduciendo el tiempo y el esfuerzo necesario para tareas específicas

como el movimiento de objetos.

Además será de ayuda para el aprendizaje de los alumnos que utilizan los

laboratorios de las carreras de Ingeniería de la Universidad Tecnológica

Equinoccial.

Page 22: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

4

1.5 FACTIBILIDAD

ECONÓMICA

La interfaz Web para el control y manipulación de movimientos por medio de un

brazo robótico (actuador), es de gran factibilidad debido a que no se requiere de una

gran inversión económica para la demostración y objetivos propuestos.

TÉCNICA

En lo técnico los conocimientos tanto en hardware y software adquiridos en las

distintas asignaturas de la carrera de Ingeniería, servirá de guía de aprendizaje para

los temas planteados en los siguientes niveles.

OPERATIVA

La manipulación del prototipo por parte del usuario mediante la Interfaz Web será

sencilla, además podrá ser utilizado como herramienta didáctica en el laboratorio

virtual de la Carrera de Ingeniería de la Universidad Tecnológica Equinoccial.

Page 23: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

5

CAPÍTULO II

2. MARCO TEÓRICO

Este capítulo explica cada unas las partes principales que compone el presente proyecto

que es del “Control y Manipulación de Movimientos de un Brazo Robótico mediante un

aplicación Web” y los puntos son los siguientes: Robótica, Motores Eléctricos,

Microcontrolador, Universal Serial Bus (USB), Cámaras Web, Herramientas de

Programación.

2.1 ROBÓTICA

La robótica es una rama de la era de la tecnología que permite crear, construir,

programar, armar y automatizar sistemas que se basan en estructuras mecánicas

articuladas dotados de un determinado grado de inteligencia la mayoría de ellos son

destinados a la producción industrial donde se necesita tareas específicas o muchas

de las veces para sustituir al hombre en alguna área específica.

Los sistemas robóticos tienen la capacidad de recibir información a través de

sensores, ingreso de datos, actualizaciones con ello comprenden el entorno en el que

se desenvuelven a través del empleo de modelos, formulas o tareas específicas y de

ejecutar planes con su debido control y supervisión de la operación.

Page 24: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

6

La robótica es pluridisciplinaria se apoya de muchas ciencias como son: Informática,

Electrónica, Mecánica, Robótica e Inteligencia Artificial y está actualizándose en los

progresos de la microelectrónica y de la informática, así como en los de nuevas

disciplinas tales como el reconocimiento de patrones y de inteligencia artificial.

2.1.1 Concepto

“La robótica es la ciencia y la tecnología de los robots. Se ocupa del diseño,

manufactura y aplicaciones de los robots. La robótica combina diversos disciplinas

como son: la mecánica, la electrónica, la informática, la inteligencia artificial.”1

2.1.2 Concepto de Robot

Es un ente artificial mecánico o virtual, máquina usada para realizar un trabajo con la

habilidad de tomar decisiones en una secuencia pre-programada automática,

percibiendo elementos del ambiente adaptándose a ellos, con movimientos en uno o

más ejes de rotación o traslación, controlada por una computadora.

2.1.3 Estructura de un Brazo Robótico

En general cuando se habla de un brazo robótico se dice que está formado por:

1 Robótica.(s.f.).recuperado el 25 julio de 2010,de “http://es.wikipedia.org/wiki/Rob%C3%B3tica”

Page 25: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

7

- Base

- Brazo

- Muñeca

- Tenaza, pinza

- Sensores

Los sensores son elementos electromecánicos, eléctricos que le permiten al robot

tomar información del ambiente exterior. Por ejemplo: ruido, luz, visión, calor, etc.

De acuerdo con la cantidad de movimientos que puede realizar un brazo robótico se

dividen en:

• 2 grados de libertad

• 3 grados de libertad

• 4 grados de libertad

• 5 grados de libertad

• 6 grados de libertad

2.1.4 Funcionamiento de los Brazos Robóticos

Existen varios brazos robóticos que se mueven con:

Page 26: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

8

- Motores de pasos

- Motores eléctricos DC

- Servo motores

2.2 MOTORES ELÉCTRICOS

Los motores eléctricos suplen una diversa gama de necesidades de servicio, desde

arrancar, acelerar, mover o frenar, hasta sostener y detener una carga. A los motores

se los fabrica con una amplia variedad de velocidades, con valores fijos, ajustables o

variables, su tamaño varía desde motores muy pequeños para robots básicos o

maquinas utilizadas en la industria.

El uso de los motores eléctricos se ha extendido a nivel de todos los campos de la

actividad humana desde lo más básico como juguetes que utilizan motores pequeños

como en grandes maquinas industriales que han sustituido a las máquinas de vapor.

En el mercado encontramos motores eléctricos de las más variadas dimensiones,

tamaños, costos desde los pequeños motores fraccionarios empleados en pequeños

objetos hasta potentes motores que generan miles de caballos de fuerza, como los de

las grandes locomotoras eléctricas.

Los motores eléctricos por lo general están clasificados en la actualidad en dos

grandes categorías los de corriente alterna (CA) y los de corriente continua (CC)

estos últimos son en su totalidad pequeños motores, puede producir una alta potencia

a pesar del tamaño reducido, la velocidad puede ser fijada cambiando el voltaje

utilizado.

Page 27: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

9

2.2.1 Definición

“Los motores eléctricos son máquinas eléctricas rotatorias que transforman la energía

eléctrica en energía mecánica a través de medios electromecánicos.”2

2.2.2 Partes de un Motor Eléctrico

De acuerdo a las características fundamentales de un motor de corriente continua se

compone de:

- Rotor

- Estator

Dentro de éstas se ubican los demás componentes:

- Carcaza

- Tapa interior frente.

- Caja de conexiones

- Tapa posterior

Figura 2. 1 Rotor y Estator del Motor

2 Motor de Corriente Continua (s.f.). recuperado el 8 de agosto de 2010, de “http://es.wikipedia.org/wiki/Motor_de_corriente_continua”

Page 28: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

10

Fuente: http://www.todorobot.com.ar/documentos/dc-motor.html

2.2.3 Funcionamiento del Motor

“El funcionamiento de un motor se basa en la acción de los campos magnéticos

opuestos que hacen girar el rotor en dirección opuesta al estator, siendo el rotor el

único que gire, si se desea cambiar la dirección de giro en un motor de Corriente

Continua tan solo tenemos que invertir la polaridad de la alimentación del motor.”3

La velocidad de un motor se podría modificar variando su tensión de alimentación, y

así el motor alteraría su velocidad y su fuerza.

Figura 2. 2 Polaridad del Motor de Corriente

3 Mecánica.(s.f.). Recuperado el 8 septiembre del 2010, de “http://www.x- robotics.com/motorizacion.htm”

Page 29: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

11

Fuente: http://perso.wanadoo.es/luis_ju/soft/files/motores.pdf

2.2.3.1 Rotor

El rotor cumple con el papel de ser una parte móvil y opera como base, constituye la

parte que permite la rotación del motor, el rotor se mueve magnéticamente.

Está formado por:

• Eje: Está formado por una barra de acero fresada, imparte la rotación al núcleo,

devanado y colector.

• Núcleo: Se localiza sobre el eje. La función principal es proporcionar un

trayecto magnético entre los polos para que el flujo del devanado circule.

• Devanado: Está constituido de bobinas aisladas entre sí, proporciona un

camino de conducción conmutado.4

4 Motores de Continua DC.(s.f.). Recuperado el 8 de septiembre del 2010, de “http://www.info-ab.uclm.es/labelec/solar/electronica/elementos/motores_de_continua.htm”

Page 30: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

12

• Colector: Al colector se lo denomina también conmutador, éste está constituido

de láminas de material conductor, separadas entre sí y del centro del eje por un

material aislante, para evitar cortocircuito con dichos elementos.5

Figura 2. 3 Rotor del Motor

Fuente: http://www.todorobot.com.ar/documentos/dc-motor.html

5 Motores de Continua DC.(s.f.). Recuperado el 8 de septiembre del 2010, de “http://www.info-ab.uclm.es/labelec/solar/electronica/elementos/motores_de_continua.htm”

Page 31: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

13

2.2.3.2 Estator

“El estator es la parte fija del motor. La función principal es suministrar el flujo

magnético que será usado por el bobinado del rotor para realizar su movimiento

giratorio.”6

Está formado por:

• Carcaza

• Imán permanente

• Escobillas

Figura 2. 4 Estator del Motor de Corriente

Fuente: http//www.todorobot.com.ar/documentos/dc-motor.html

6 Motores de Continua DC.(s.f.). Recuperado el 8 de septiembre del 2010, de “http://www.info-ab.uclm.es/labelec/solar/electronica/elementos/motores_de_continua.htm”

Page 32: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

14

2.2.4 Control de Velocidad del Motor

Para el control de velocidad de cualquier motor se recomienda el control por

Modulación de Ancho de Pulso conocido como PWM, el ángulo de ubicación del

motor depende de la duración del nivel alto de la señal.

Se debe tomar en cuenta que ninguno de los valores del ángulo o de duración de

pulso puede estar fuera del rango de operación del dispositivo, no se puede exceder

con los límites establecidos por cada motor, cada motor tiene un límite de giro de

modo que no puede girar o excederse más de cierto ángulo en un mismo sentido

debido la limitación física del control de posición.

2.3 MICROCONTROLADOR

“Un Microcontrolador PIC (Peripheral Interface Controller), es un circuito integrado,

en cuyo interior posee toda la arquitectura de un computador, esto es unidad central

de procesamiento “CPU”, memoria y circuitos de entrada y salida.”7

En la actualidad existen diversas empresas que se dedican a la fabricación de estas

microcomputadoras, una de estas empresas con gran prestigio y líder en ventas de

este dispositivo a nivel mundial es MICROCHIP TECHNOLOGY Inc., su éxito se

debe a la gran variedad, versatilidad, velocidad, bajo costo, bajo consumo de

potencia y disponibilidad de herramientas para su programación.

7Reyes, C. (2006) “Microcontroladores PIC Programación en Basic”,Ecuador.

Page 33: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

15

Si uno se adquiere un microcontrolador de fábrica, este no realiza ninguna tarea, para

que funcione un microcontrolador se requiere que sea programado en un lenguaje

determinado, los microcontroladores pueden realizar desde un simple parpadeo de un

LED hasta un sofisticado control de un robot.

Una de las ventajas es que simplifica todo el diseño a una placa de reducido tamaño

y pocos elementos.

Figura 2. 5 Microcontrolador PIC

Fuente: http://www.msebilbao.com/tienda/images/24PIC18F4520IP.jpg

2.3.1 Arquitectura Básica

Page 34: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

16

En los inicios, los microcontroladores adoptaron la arquitectura clásica de Von

Neumann, en el momento presente se impone la arquitectura Harvard. La

arquitectura de Von Neumann se caracterizó por disponer de una sola memoria

principal donde se almacenan datos e instrucciones de forma indistinta. A dicha

memoria se accede a través de un sistema de buses único (direcciones, datos y

control).8

Figura 2. 6 Arquitectura Von Neuman

Fuente: http://www.unicrom.com/Tut_arquitectura_microcontrolador.asp

La arquitectura Harvard dispone de dos memorias independientes una, que contiene

sólo instrucciones y otra, sólo datos. Las dos arquitecturas cuentan con sus

respectivos sistemas de buses de acceso y permiten realizar operaciones de acceso

lectura o escritura simultáneamente.9

Figura 2. 7 Arquitectura Hardvard

8Microcontroladores.(s.f.). Recuperado el 8 de julio del 2010, de http://es.wikipedia.org/wiki/Microcontrolador 9Microcontroladores.(s.f.). Recuperado el 8 de julio del 2010, de http://es.wikipedia.org/wiki/Microcontrolador

Page 35: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

17

Fuente: http://www.unicrom.com/Tut_arquitectura_microcontrolador.asp

2.3.2 PIC 18F4550

Esta familia de productos PIC18, ofrece las ventajas de un alto rendimiento

computacional a un precio económico, además con alto rendimiento y con Watt

Nano Technology.

2.3.2.1 Características Principales de los Microcontroladores PIC18

a) Arquitectura RISC avanzada Harvard: 16 bit con 8 bit de datos.

b) 77 instrucciones

c) Desde 18 a 80 pines

d) Hasta 64 KB de programa

e) Hasta 3968 bytes de RAM y 1 KB de EEPROM

f) Frecuencia máxima de reloj 40 MHz.

g) Pila de 32 niveles

Page 36: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

18

h) Múltiples fuentes de interrupción

i) Periféricos de comunicación avanzados (CAN Y USB)

Tabla 2. 1 Características de la Familia Microcontroladores PIC18,

Fuente: Microchip Technologies, (2006).” Data Sheet PIC 18”. (pp.11). USA

2.3.2.2 Nano Watt Technology10

10 Microchip Technologies, (2006).” Data Sheet PIC 18”. USA

Page 37: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

19

Todos los dispositivos de la familia PIC18 incorporan una serie de características

que puede significativamente reducir el consumo de energía durante el

funcionamiento. Entre ellas figuran:

2.3.3.2.1 Modo de ejecución alternativo. El consumo de energía durante la

ejecución de código se puede reducir hasta en un 90%.

2.3.3.2.2 Modo múltiple inactivo. El controlador también puede ejecutarse con

su núcleo deshabilitado pero con los periféricos en actividad, En estos estados, el

consumo de energía podría reducirse más del 4% de los requerimientos normales de

operación.

2.3.3.2.3 Modo de cambio sobre la marcha. Los modos de gestión de energía

son invocados por el código de usuario durante la operación, permitiendo al usuario

incorporar ideas de reducción de energía.

2.3.3.2.4 Bajo consumo en módulos principales. El consumo de requerimientos

del Timer1 y el Watchdog Timer son minimizados.

Page 38: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

20

2.3.2.3. Universal Serial Bus (USB)

Los dispositivos de la familia PIC18, incorporan un completo módulo de

comunicaciones bus universal en serie. El módulo soporta bajas y altas velocidades en

comunicaciones para todos los tipos de transferencias de datos. Tiene incorporado su

propio transmisor y receptor y un regulador de 3.3V.

2.3.2.4 Múltiples opciones de oscilador.

Todos los dispositivos de la familia PIC18F2455/2550/4455/4550, ofrecen 12 opciones

de osciladores, permitiendo a los usuarios una amplia variedad de opciones en el

desarrollo de aplicaciones hardware.

2.3.3 CONFIGURACIÓN PINES PIC 18F4550

El microcontrolador 18F4550 dispone de 5 puertos de I/O que incluyen

35 líneas de I/O.

- Puerto A 7 líneas de E/S

- Puerto B 8 líneas de E/S

- Puerto C 6 líneas de E/S + 2 líneas de entrada

- Puerto D 8 líneas de E/S

Page 39: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

21

- Puerto E 3 líneas de E/S + 1 línea de entrada

La alimentación en general:

• GND = Vss = 0V

• VCC= 5V

• El valor de Vdd puede ir desde 3V hasta 5.5V

Es necesario tener en cuenta algunas recomendaciones a la hora de trabajar con

Microcontroladores PIC:

• Dado que los Microcontroladores PIC consumen poca energía, con

niveles de voltaje inferiores a 5.5V, es necesario que para su manipulación se

deba realizar con herramientas idóneas como una pinza debido a que son

susceptibles a daños por estática.

• No se debe sobrepasar los niveles de energía máxima de 25 Jouls que nos

proveen tanto los pines de Entrada como de Salida

Page 40: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

22

Figura 2. 8 Diagrama de Pines PIC 18F4550,

Fuente: Microchip Technologies, (2006).” Data Sheet PIC 18”. (pp.5). USA

Page 41: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

23

2.3.4 Diagrama de Bloques PIC 18F4550

Figura 2. 9 Diagrama de Bloques 18F4550

Fuente: Microchip Technologies, (2006).” Data Sheet PIC 18”. (pp.13). USA

Page 42: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

24

2.4 UNIVERSAL SERIAL BUS (USB)

El avance tecnológico y la evolución rápida de la tecnología hacen más fácil el uso o

la manipulación por cualquier tipo de persona, en un ambiente amigable sin

necesidad de ser un experto en comprender el funcionamiento, usarlos o instalarlos, y

este es el caso del conocido USB.

El USB (Universal Serial Bus) es una nueva arquitectura de bus que desplazó a las

interfaces en serie y paralelo, creando una interfaz sencilla y de mayores

prestaciones, este nuevo bus USB fue desarrollado por un grupo de siete empresas

(COMPAQ, DIGITAL EQUIPMENT CORP, IBM PC Co, INTEL, MICROSOFT,

NEC Y NORTHERN TELECOM)

Es un avance plug and play y permite instalar periféricos sin necesidad de instalar

software. Con el transcurso del tiempo este dispositivo se ha ido perfeccionando

desde el USB. 1.0 y actualmente el USB 2.0.

Page 43: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

25

2.4.1 EVOLUCIÓN DEL USB

2.4.1.1 USB 1.0

Conocido por su baja velocidad, utilizado para dispositivos de interfaz humana

(HID) como ratones, teclados, etc. Admite hasta 1.5 Mbps (192 Kb/s).

2.4.1.2 USB 1.1

Conocido como velocidad completa, este USB fue creado en 1996, un bus externo

que soporta tasas de transferencia de 12 Mbps (1.4 Mb/s), en un solo puerto USB se

puede utilizar para conectar 127 dispositivos periféricos, como ratones, módems,

teclados, joysticks, etc.

2.4.1.3 USB 2.0

Conocido como alta velocidad (esta versión fue creada en abril del 2000), debido a

que es un bus externo que soporta tasas de transferencia de datos de hasta 480 Mbps

(60 MB/s) es decir 40 veces más rápido que la versión USB1.0 y la versión USB 1.1.

El USB 1.0, USB 1.1 con el USB 2.0 son compatibles y ocupan los mismos cables y

conectadores, utilizados para conexiones a Internet.

Page 44: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

26

2.4.2 Nivel Físico

2.4.2.1 Definición

“USB (Universal Serial Bus) es una interface plug & play entre la PC y ciertos

dispositivos tales como teclados, ratón (mouse), scanner, impresoras, módems,

placas de sonidos, cámaras, etc.”11

“Plug & Play (conocida también por su abreviatura PnP) es la tecnología que

permite a un dispositivo informático ser conectado a un computador sin tener que

configurar ni proporcionar parámetros a sus controladores. Para que sea posible, el

sistema operativo con el que funciona el computador debe tener soporte para dicho

dispositivo. La frase plug-and-play se traduce como enchufar y usar.”12

2.4.3 Tipos de Conectores USB

Existen dos tipos de conectores USB

• Los conectores USB tipo A, son utilizados para dispositivos que no

requieren demasiado ancho de banda (como el teclado, el ratón, las

cámaras Web, etc.), su forma es rectangular como lo muestra en la figura

2.9.

11 Echeveria,G. Morán,C. USB.(s.f.). Recuperado el 8 de agosto de 2010, de “http://www.monografias.com/trabajos11/usbmem/usbmem.shtml” 12Plug & Play.(s.f.). Recuperado el 8 de agosto de 2010, de “http://es.wikipedia.org/wiki/Plug-and-play"

Page 45: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

27

• Los conectores USB tipo B son utilizados en dispositivos que requieren

alta velocidad (discos duros externos, etc.), su forma es cuadrada como lo

muestra en la figura 2.9.

Figura 2. 10 Tipo de Conectores USB

Fuente: http://es.kioskea.net/contents/pc/usb.php3

2.4.4 Funcionamiento del USB

El USB se comporta como una interfaz de transmisión de datos, trabaja como un bus

punto a punto, con inicio en el HOST y destino en un dispositivo USB o puede ser en

un HUB, solo puede existir un único HOST en la arquitectura USB.

HOST. – Funciona como el punto de inicio, dispositivo anfitrión.

HUB.- Es un dispositivo que permite conectar o contiene uno o más puertos hacia

otro dispositivo USB, este puede tener de 4 hasta 16 puertos.

Page 46: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

28

Este bus se basa en el paso de testigo (TOKEN), el control USB distribuye testigos

por el bus, el dispositivo cuya dirección coincide con la que porta el testigo responde

aceptando o enviando datos al controlador y también gestiona la distribución de

energía a los periféricos que lo requieran.13

TOKEN.- Topología lógica en anillos, técnica de acceso de paso de testigo.

Este bus emplea una topología de estrella jerarquizada, se puede conectar

dispositivos en cadena, alcanzando a conectar hasta 127 dispositivos, permite un

máximo de 7 niveles de jerarquía, es por ello que no se produce retardo en el envío

de un paquete de datos hacia capas inferiores.

Figura 2. 11 Estructura de capas del Bus USB

Fuente: http://www.monografias.com/trabajos11/usbmem/usbmem.shtml

13 García, E (2008). “Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC”. España: Marcombo.

Page 47: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

29

2.4.5 Estructura del USB

El USB “Universal Serial Bus” consta de tres componentes:

- Controlador

- Hub

- Periféricos

2.4.5.1 Controlador

Es un programa que contiene las instrucciones de control que permiten el

funcionamiento de elementos, componentes o periféricos de un PC, es el responsable

de las comunicaciones entre los periféricos USB y la CPU de la PC.

Cada vez que un periférico es añadido, el controlador determina el tipo de dispositivo

y le asigna una dirección lógica para utilizarla, cuando existe un error comunica éste

a la CPU, y, ésta al usuario y cuando se establece una conexión correcta el

controlador asigna al periférico los recursos del sistema que este precise para su

funcionamiento óptimo.14

2.4.5.2 Hub

14 USB.(s.f.). Recuperado el 18 de julio del 2010, de http://www.scribd.com/doc/27880137/Funcionamiento-Del-Puerto-Usb

Page 48: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

30

Los Hub son los encargados de la distribución de datos y alimentación, hacen posible

la conexión a un puerto USB de 127 dispositivos. Los datos y alimentación son

repartidos hacia sus puertas descendentes y permite la comunicación hacia su puerta

ascendente.

2.4.5.3 Periféricos.

Los periféricos son unidades o dispositivos auxiliares que están conectados a una

CPU de una PC, a través de los cuales una computadora se conecta con el mundo

exterior.

Figura 2. 12 Dispositivos USB conectados a un PC

Fuente: Autora

Page 49: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

31

2.4.6 Componentes del Cable USB

“El USB transfiere señales y energía a los periféricos utilizando un cable de 4 hilos,

los datos del USB se transmiten por un par trenzado (D+ y D-), además de la masa y

alimentación (+5V) y tierra GND (-5V) , lo que permite la alimentación remota por

parte del dispositivo hasta unos 100 mA. Los conectores son de dos tipos estándar A

y estándar B con una versión especial, este bus admite cableados de hasta 5 metros.

La codificación de datos se realiza con la técnica NRZI (Non-return-to-Zero-

Inverted).”15

Figura 2. 13 Componentes de Cable USB

Fuente: Autora

15García, E (2008). “Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC”. España: Marcombo.

Page 50: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

32

2.4.7 Protocolo

Un paquete (packet) se inicia con un patrón de sincronización que permite al reloj

del receptor la sincronización; se transmiten los datos y se finaliza con el fin de

paquete (end of packet – EOP).

USB divide el tiempo en espacios de 1 ms denominados Tramas, durante las cuales

se llevan a cabo las comunicaciones a través de transacciones, las cuales se

componen a su vez de Paquetes.

Algunos campos son un estándar como el SYN y el PID para todos los paquetes, y

otros son específicos para cierto grupo de paquetes.

2.4.7.1 SYN

Todos los paquetes comienzan con una sincronización SYN, la misma que es una

secuencia codificada para proporcionar una densidad máxima de transición. Después

de este patrón se envía el identificador de paquetes.

2.4.7.2 PID

Page 51: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

33

Un identificador de paquete (PID), sigue inmediatamente el ámbito de cada paquete

SYN USB, el PID indica el tipo de paquete, el formato del paquete y el tipo de

detección de errores que tendrá el paquete.

2.4.8 Tipos de Paquetes16

Existen cuatro tipos de paquetes:

- Token packets

- Data packets

- Handshake packets

2.4.8.1 Token Packets.

Se compone de un paquete de token enviado por el controlador USB, y siempre está

presente en toda transacción. El token packets está formado por los siguientes

campos: SYN, PID (1 byte), la dirección ADDR (4 bits address), ENDP el número

de endpoint (4 bits), CRC el checksum (5 bits) y el EOP.

2.4.8.2 Data Packets

Transfiere datos desde el controlador USB y el dispositivo. El paquete de datos está

formado por: SYN, PID, DATA los datos (de 0 a 1024 bytes), CRC y el EOP.

16 García, E (2008). “Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC”. España: Marcombo.

Page 52: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

34

2.4.8.3 Handshake Packets

Se utiliza para informar el estado de una transacción de datos, el Handshake paquetes

está formado por: SYN, PID y el EOP en el PID se especifica si la recepción de datos

es correcta (ACK), cuando el receptor no acepta el paquete (NAK). Cuando el

endpoint está parado (STALL) o cuando no hay respuesta en el receptor (NYET).

2.4.9 Tipos de Transferencia de Datos17

USB soporta cuatro tipos la transferencia de datos:

- Por Control

- Isócrono

- Por Interrupción

- Por Volumen

2.4.9.1 Por Control (Control Transfer)

Ayuda a configurar, control de dispositivos y para manejo del bus, es una

transferencia de datos bidireccional.

17 García, E (2008). “Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC”. España: Marcombo.

Page 53: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

35

2.4.9.2 Isócrono (Isochronous Data Transfer)

Para transmisión de información con ancho de banda y latencia garantizadas, se emplea

en telecomunicaciones. Permite una comunicación periódica y continua de datos. Por

ejemplo: altavoces, audio, video, etc.

2.4.9.3 Por Interrupción (Interrupt Data Transfer)

Es una transferencia unidireccional para transferencias de pocos datos, no periódicas, de

baja frecuencia pero con unos ciertos límites de latencia. Por ejemplo: teclado, ratones,

etc.

2.4.9.4 Por Volumen (Bulk Data Transfer)

Para transferencias de grandes cantidades de datos no periódica con dispositivos

asíncronos. Por ejemplo: impresoras, escáneres, cámaras de fotos (foto fija), etc.

2.4.10 Modelo Lógico

“El HOST conoce el tipo de transferencia de datos de cada endpoint, y se lo hace por

medio de los llamados DESCRIPTORES. Este tipo de descriptores se encuentran

dentro del dispositivo USB y dan información al HOST.

Page 54: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

36

Cada vez que se conecte un dispositivo USB al bus, el HOST lo identifica mediante

la lectura de los descriptores y le asigna una dirección dentro del bus, el proceso se

llama ENUMERACIÓN.

A nivel lógico, una determinada configuración es un conjunto de Interfaces, donde

cada Interfaz especifica qué partes del hardware del dispositivo se comunican con el

sistema, donde cada una de estas partes de hardware se denomina Endpoint.”18

“La comunicación entre una aplicación y los distintos Endpoints de un dispositivo se

realiza a través de USB por medio de unos caminos lógicos de transferencias de

datos denominados Pipes, de forma que cada Pipe comunica la aplicación con un

determinado Endpoint en el dispositivo. Las Pipes pueden ser de tipo Control

(también denominadas de Mensaje), que son bidireccionales y con formato

especificado por la norma, y de tipo Stream, que son unidireccionales.

Todos los dispositivos USB deben implementar los dos Endpoints 0 (IN y OUT) para

permitir que el sistema pueda establecer la Pipe de Control por omisión y pueda

acceder a información de identificación y requisitos de configuración y consiga

configurar el dispositivo.”19

18Soporte, T.” Un paseo por USB”. España: OEM 19 Soporte, T.” Un paseo por USB”. España: OEM

Page 55: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

37

2.4.10.1 Clases USB

Una clase USB es un grupo de dispositivos con características o atributos similares,

utilizan la misma forma de comunicarse con el entorno. Cada clase de dispositivo

tiene una característica propia como el número y tipo de endpoint. La clase de

dispositivo está definida en sus descriptores.

Existen varias clases de dispositivos, entre los que se puede indicar:

Tabla 2. 2 Tipos de Clases de dispositivos

Fuente: “Compilador C CCS y Simulador PROTEUS para microcontroladores PIC”

CLASE APLICACIÓN IDENTIFICACION

Reservada 0x00

Audio Altavoces, etc. 0x01

Comunicación (CDC) Modem, fax 0x02

Dispositivo para

interface humana

(HID)

Ratón, teclado, etc 0x03

Impresión Impresoras 0x04

Almacenamiento

masivo (MSD)

Tarjetas de memoria, discos duros,

etc

0x05

….. ….. …..

Page 56: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

38

La clase de dispositivo permite conocer la forma en que la interfaz se comunica con

el sistema, la cual localiza la CLASS DRIVER que controla la conectividad entre la

interfaz y el sistema.

DRIVER: Puede está contenido en el mismo sistema operativo o puede ser creado

uno nuevo para una clase correcta.

Tabla 2. 3 Algunos drivers de Windows para algunas clases USB

Fuente: “Compilador C CCS y Simulador PROTEUS para microcontroladores PIC”

CLASE USB DRIVER VERSION WINDOWS

Human Interface

Device (HID)

Hidusb.sys Windows Server

2008,Vista,Server 2003, XP,

2000

Mass Storage Class

(MSC)

Usbsgtor.sys Windows Server 2008, Vista,

Server 2003, XP, 2000

Printing Class Usbprint.sys Windows Server 2008, Vista,

Server 2003, XP, 2000

Scanning / imaging

(PTP)

WpdUsb.sys Windows Server 2008, Vista,

Server 2003, XP, 2000

Modem Class Usbser.sys Windows Server 2008, Vista,

Server 2003, XP, 2000

Page 57: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

39

“Cuando se conecta un dispositivo a un computador el sistema operativo (Window’s

Device Manager) compara la información de los descriptores del dispositivo con la

información de los archivos *.INF para asignar el tipo de driver específico para el

dispositivo conectado.”20

Pero también se puede crear un archivo .INF a medida.

2.4.10.1.1 USB CDC (Communication Device Class)

La comunicación clase del dispositivo (CDC) define algunos modelos de

comunicación, incluyendo la interface serie RS-232, viendo que en la actualidad la

comunicación serie está desapareciendo de las computadoras portátiles y los

problemas que existían porque muchas de las aplicaciones utilizaban este tipo de bus

pero buscaron una solución como emular el RS-232 con USB con la ventaja que el

PC verá la conexión USB como una conexión COM RS-232 sin requerir cambios en

el software.

Para la especificación CDC se utiliza dos interfaces USB, interface Communication

Class usando un IN INTERRUPT ENDPOINT de interrupción y la segunda es la

interface Data Class usando un OUT bulk endpoint y un IN bulk endpoint.

20 García, E (2008). “Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC”. España: Marcombo.

Page 58: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

40

2.4.10.1.2 USB HID (HUMAN INTERFACE DEVICES)

“Permite la interacción del usuario con el HOST, los requisitos de velocidad son

mínimos, se necesita una aplicación software (Client Software), los datos que el

dispositivo HID envía al HOST son interpretados por el Class Driver del sistema

operativo y entonces son utilizados por el Client Software. La ventaja de la clase

USB HID es que no es necesario desarrollarlo ya que lo suministra el sistema

operativo. Los dispositivos HID necesitan un FIRMWARE para el dispositivo físico,

el HID CLASS DRIVER, las llamadas a función API (Application Programming

Interface) y el software de aplicación.

API (Application Programming Interface). Es una interfaz de comunicación entre

componentes software, las API utilizadas en USB HID están contenidas en los

ficheros DLL (HID DLL, SETUPAPI.DLL, KERNELL23.DLL).

DLL (Dynamic Linking Library). Son archivos que contienen funciones que se

pueden llamar desde aplicaciones u otras DLL.

Una alternativa al HID es el dispositivo a medida (Custom Device) que permite una

mayor tasa de transmisión de datos, pero, por el contrario se necesita el desarrollo de

una class driver especifico.”21

21 García, E (2008). “Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC”. España: Marcombo.

Page 59: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

41

Figura 2. 14 Diagrama de flujo de selección de clase USB

Fuente: “Compilador C CCS y Simulador PROTEUS para microcontroladores PIC”

2.4.11 MICROCHIP USB

Microchip en sus nuevas versiones suministra una serie de microcontroladores con el

módulo USB integrado, lo que permite la conexión directa del conector USB al PIC

utilizando solo un componente externo. El PIC contiene un USB (SIE) Serial

Interface Engine compatible con alta y baja velocidad, el SIE permite la

comunicación entre el HOST y el PIC.

Las clases soportadas por Microchip son la CDC, HID, MSD y Custom Device

Page 60: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

42

Figura 2. 15 Clases USB con MICROCHIP

Fuente: “Compilador C CCS y Simulador PROTEUS para microcontroladores PIC”

Page 61: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

43

2.5 CAMARAS WEBCAM

El uso de las cámaras de video se ha popularizado masivamente en los sistemas de

cómputo como herramientas de comunicación, al igual que en el hogar como un

elemento que se ha incluido como una línea visual de entretenimiento.

Las webcams nacieron de un informático de la Universidad de Cambridge. En 1991

Quentin Stafford Fraser bajaba las gradas de su oficina para buscar café pero llego un

día que se cansó de bajar escaleras para ver si en el piso de debajo de su laboratorio

quedaba café y descubrir siempre que los demás ya se lo habían acabado, así que

conecto una videocámara a un ordenador mediante una tarjeta de video. Y así nació

la primera webcam.22

2.5.1 Concepto

Una Cámara Web es una cámara de video barata y sencilla ubicada cerca del monitor

del ordenador, están diseñadas para enviar videos en vivo, así como captura de

imágenes a través de la red a uno o más usuarios. Una cámara web también puede

ser una cámara digital, video que se ve a través de un sitio web conectada en el

puerto USB del computador, de modo que los usuarios puedan ver ciertos

acontecimientos en vivo.

22 Origen de las Webscam.(s.f.). Recuperado el 20 octubre del 2010, de http://historico.portalmix.com/webcams/origen.shtml

Page 62: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

44

2.5.2 Tecnología

Las cámaras Web normalmente están formadas por:

- Lente,

- Sensor de imagen y

- Circuitería necesaria para manejarlos,

Existen distintos tipos de lentes, siendo las lentes plásticas más comunes.

2.5.3 Funcionamiento

Para el funcionamiento de la cámara Web la luz de la imagen pasa por la lente, ésta se

refleja en un filtro RGB (Red-Green-Blue), el cuál descompone la luz en tres colores

básicos: rojo, verde y azul. Esta división de rayos se concentra en un chip sensible a la

luz denominada CCD ("Charged Coupled Device"), el cuál asigna valores binarios a

cada píxel y envía los datos digitales para su codificación en video y posterior

almacenamiento o envío a través de Internet.23

23 La Cámara Web.(s.f.). Recuperado el 20 de octubre del 2010, de http://informaticamoderna.com/Camara_web.htm.

Page 63: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

45

Figura 2. 16 Funcionamiento de la Webcam

Fuente: http://informaticamoderna.com/Camara_web.htm#ani

2.5.4 Características de las Cámaras Web

• Tiene una resolución por lo general baja, aproximadamente 640 X 480 pixeles,

ya que las imágenes trasmitidas instantáneamente por Internet deben de tener

un tamaño muy bajo.

• Dependiendo el modelo, tiene la lente giratoria de hasta 360° horizontales, una

base adaptable a la superficie, e incluso micrófono integrado.

• Pueden tomar fotos al instante pero con baja resolución.

• Su diseño es muy específico para aplicaciones de entretenimiento y en algunos

casos como cámara de vigilancia.

Page 64: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

46

2.5.5 Partes de la Cámara Web

Las cámaras web internamente cuentan con los circuitos adecuados para el sensor de

imágenes y la transmisión hacia la computadora. Sus partes son:

Figura 2. 17 Partes Externas de la Cámara Web

Fuente: http://informaticamoderna.com/Camara_web.htm#ani

• Visor digital: se encarga de captar las imágenes a transmitir y grabar vía

Internet.

• Grabador de audio (opcional): capta el sonido a transmitir vía Internet.

• Base giratoria: permite colocar la cámara en la posición que el usuario decida.

Page 65: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

47

• Cable de datos: transmite los datos de la cámara hacia la computadora.

• Cubierta: protege los circuitos internos y le da estética a la cámara Web.

2.5.6 Capacidades de Resolución Cámara Web

Es la cantidad máxima de píxeles que es capaz de capturar para generar la imagen.

Un píxel es cada uno de los puntos que conforman la imagen y a más cantidad de

ellos, se tendrá un mayor detalle de la imagen.

Ejemplo: cámara Web, marca Genius®, modelo Eye 110, 640X480, USB.

Esto es: (640) X (480 píxeles) = 307,200 píxeles de resolución ó 300 Kilopíxeles.

2.5.7 Puerto para Cámara Web

El conector con el que trabaja una cámara Web es de tipo USB; existen 2 versiones

de este conector, el USB 1.1 y el USB 2.0. En este tipo de conectores, el macho se

distingue por ser el que viene en los dispositivos extraíbles, y el conector hembra es

el que se encuentra montado en la computadora.

Page 66: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

48

2.6 HERRAMIENTAS DE PROGRAMACIÓN

Es necesario saber que herramienta de programación se utilizará en el control y

manipulación del brazo robótico, por lo cual se indicará el software utilizado tanto

para el micro controlador PIC 18F4550 (PIC C COMPILER) y como la

programación de la interfaz web (Microsoft .net).

2.6.1 PIC C COMPILER

Es una tarea complicada trabajar con los PIC debido a que poseen un juego reducido de

instrucciones (RISC); tareas como las operaciones aritméticas; tratamientos de números,

otros por lo tanto actualmente existen diferentes lenguajes de alto nivel para trabajar con

micro controladores PIC.

El lenguaje C es un lenguaje de alto nivel que está presente en multitud de dispositivos

electrónicos programables, la programación en un lenguaje de alto nivel permite la

creación de programas independientemente de la plataforma utilizada, el lenguaje C

permite la programación desde un nivel más cercano al programador, además brinda la

posibilidad de controlar aspectos más cercanos del hardware como la manipulación

directa de bites, bytes.

Bajo este lenguaje existen en la actualidad en el mercado una gran oferta de

compiladores de C para PIC entre ellos está el PCW COMPILER (Custom Computer

Services) utilizado en el actual proyecto.

Page 67: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

49

2.6.1.1 PCW COMPILER

PCW COMPILER es un lenguaje de programación con su fabricante CCS (Custom

Cumputer Services) el cual cuenta con una completa suite de herramientas integradas

para el desarrollo y depuración de aplicación en lenguaje ensamblador, cabe señalar

que el trabajo de este lenguaje de programación es compilar traducir un lenguaje alto

de programación en otro lenguaje de programación bajo en este caso un programa

equivalente que la máquina pueda interpretar.

2.6.1.2 Características del PIC C PRO COMPILER

• Permite la ejecución de los programas con mayor velocidad.

• Permite la reutilización de código.

• Lenguaje más cercano a la máquina.

• Optimización de código generado.

• Portabilidad entre sistemas.

• Biblioteca de funciones pre compiladas ahorrando mucho tiempo al

programador.

• Puede usarse con los microcontroladores PIC12C76x, PIC14C4000,

PIC16C55x, PIC16C6xx, PIC16C7xx, PIC 16c92x, PIC18Cxx y PIC18Fxx.

• Control directo de pantallas LCD mediante un simple comando.

• Soporta velocidades de reloj desde 3,58 a 20 MHz.

Page 68: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

50

• Es aceptado por la empresa fabricante de microcontroladores MICROCHIP.

• Fácil mantenimiento de programas.

Desventajas:

• Tomar en cuenta la capacidad de la memoria del PIC a utilizar debido a

que los programas al compilarlos pueden resultar extensos y pesados.

• Control limitado de todos los tiempos y los registros bit a bit.

Figura 2. 18 Pantalla principal del PIC C PRO COMPILER

Fuente: Programa en funcionamiento del Autor

Page 69: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

51

2.6.2 HERRAMIENTA DE DESARROLLO WEB

2.6.2.1 VISUAL STUDIO

Visual Studio es una más moderna herramienta de desarrollo de aplicaciones para

Windows, la plataforma .NET e Internet y posiblemente sea el entorno de desarrollo

más avanzado en este último tiempo, además la versión Visual Studio 2010 viene

acompañada .NET Framework 4.0, incluye las herramientas para desarrollo de

aplicación para Windows 7.

2.6.2.2 Entorno de Desarrollo

Un entorno de desarrollo informático (IDE Integrated Development Environment) es un

entorno de programación, proveen un marco de trabajo amigable permite utilizar el

lenguaje de programación de una forma interactiva, es posible que un mismo IDE pueda

trabajar con varios lenguajes de programación.

2.6.2.3 Que es .NET?

Es un lenguaje de programación de última generación, con un conjunto de

tecnologías de software, que contiene varios lenguajes de programación que se

ejecutan bajo el .NET FRAMEWORK, soporta encapsulación, herencia y

polimorfismo.

Page 70: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

52

2.6.2.4 Partes del Entorno .NET

Net Framework. Engloba toda la plataforma .Net

• Lenguaje .NET (C#, VB .NET, J#)

• CRL Common Runtime Languaje. Motor de ejecución común para todos los

lenguajes .Net.

• MSIL Microsoft Intermedial Languaje. Lenguaje intermedio al que compilan las

aplicaciones.

• CLS Common Languaje Specification. Contiene las pautas que deben cumplir

los lenguajes .Net.

• ADO.NET Interfaz de Base de Datos.

• ASP.NET Tecnología de páginas Web dinámicas integrada dentro del entorno

.Net.

• Biblioteca de Clases .NET Conjunto de clases que componen el .Net

Framework.

2.6.2.4.1 .NET FRAMEWORK

Es una parte indispensable aquí se integran los lenguajes.NET.

Soporta los siguientes lenguajes de programación:

- C#

Page 71: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

53

- VB .NET

- J#

- C++ (Controlado)

- Delphi (De Borland)

C# es el único lenguaje original debido a que ha sido el único desarrollado para .NET.

Los elementos con los que está compuesto el .NET FRAMEWORK son:

- Lenguajes de programación integrados en .NET FRAMEWORK

- La Biblioteca de Clases Base (BCL)

- El Entorno Común de Ejecución para Lenguajes (CLR)

2.6.2.4.3 Bibliotecas de Clase Base (BCL)

Las bibliotecas de la clase base se encarga principalmente de las tareas relacionadas

con el desarrollo de aplicaciones en la plataforma .NET, las tareas son las siguientes:

- Interrelación con los periféricos

- Manejo de datos de cada una de las aplicaciones

- Interacción con las APIS de Windows y API WIN 32

- Generación de Código

- Administra memoria

- Maneja excepciones

Page 72: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

54

- Interactúa con otras aplicaciones

La BCL para mayor rendimiento se divide en capas y estas son:

1. ASP.NET.- Construye aplicaciones y servicios Web

2. WINDOWS FORMS.- Construye aplicaciones de escritorio

3. ADO.NET.- Conexión para base de datos.

2.6.2.4.4 Entorno Común de Ejecución para Lenguajes (CLR)

La principal función del Entorno Común de Ejecución para Lenguajes (CLR) de

cargar las aplicaciones que se crean en los distintos lenguajes de la plataforma .NET

y compilar su código fuente sea cual sea su lenguaje y convertirlos en código

máquina.

2.6.2.5 C#.

Es un lenguaje de programación orientado a objetos moderno, simple y poderoso

desarrollado y estandarizado por Microsoft como parte de su plataforma .NET.

Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la

plataforma.NET el cual es similar al de Java aunque incluye mejoras derivadas de

otros lenguajes en esos el Delphi. En el caso del lenguaje C#, la intención original de

Page 73: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

55

los creadores del lenguaje fue llamarlo "C en re bemol", para denotar belleza e

inteligencia en el diseño de tal lenguaje.

En conclusión, C# es un lenguaje de programación que toma las mejores

características de lenguajes preexistentes como Visual Basic, Java o C++ y las

combina en uno solo.24

2.6.2.5.1 Ventajas

• C# es un lenguaje moderno, sencillo y muy seguro. Fue creado para

desarrollar aplicaciones orientadas a objetos.

• Incorpora las características de un lenguaje de última generación.

• C# es un lenguaje de propósito general

• C# profundiza el conocimiento del lenguaje mejorando la calidad del

software que escribe ya se trate de aplicaciones Web, Servicios Web,

aplicaciones de escritorio, etc.

2.6.2.5.2 Características de C#25

Sencillez.

24 C Sharp#.(s.f.). Recuperado el 8 de septiembre del 2010, de http://issuu.com/mamusillo/docs/lenguajes 25Características de C#.(s.f.). Recuperado el 15 de septiembre del 2010, de http://www.scribd.com/doc/7411856/Caracteristicas-de-C

Page 74: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

56

Su código es conocido como auto contenido, mismo que no necesita ficheros

adicionales al propio código fuente. Por su tamaño independiente permite la

portabilidad de código.

Modernidad

A pesar del tiempo sigue trabajando con elementos conocidos y útiles para el

programador como tipos decimales, booleanos, strings

Orientación a Objetos

C# es orientado a objetos y cuenta con las principales características que son:

encapsulación, herencia y polimorfismo.

Orientación a Componentes

La propia sintaxis de C# incluye elementos propios del diseño de componentes que

otros lenguajes tienen que simular e incluye formas de definir atributos, propiedades

o eventos.

Gestión Automática de Memoria

Page 75: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

57

C# también proporciona un mecanismo de liberación de recursos determinista a

través de la instrucción using.

Seguridad de Tipos

C# dispone de mecanismos para el control del acceso al tipo de datos, lo que permite

que los errores no sean difíciles de detectar.

Sistema de Tipos Unificados

A diferencia de C++, en C# todos los tipos de datos que se definan siempre

derivarán, aunque sea de manera implícita, de una clase base común llamada

System.Object, por lo que dispondrán de todos los miembros definidos en ésta clase

(es decir, serán “objetos”).

Versionable

C# permite crear nuevas versiones sin temor a que la introducción de nuevos

miembros provoquen errores difíciles de detectar.

Page 76: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

58

Eficiente

En C# se puede manipular objetos a través de punteros, para ello basta marcar

regiones de código como inseguras (modificador unsafe), lo que puede resultar vital

para situaciones donde se necesite una eficiencia y velocidad procesamiento muy

grandes.

Page 77: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

59

CAPÍTULO III

3. DESARROLLO DEL PROYECTO

3.1. INTRODUCCIÓN

En este capítulo se especifican los requerimientos tanto de hardware como de

software para el control y funcionamiento del actuador (Brazo Robótico), se

escogió para al desarrollo del proyecto la metodología basada en Prototipos y ciertas

técnicas que ayuda cumplir con los objetivos anteriormente mencionados.

3.1.1 Definición Metodología Prototipos: Es un modelo a escala de lo real, que

equivale a un software final, proporciona una retroalimentación temprana por parte

de los usuarios acerca del software. Un prototipo es un modelo, presentación,

demostración o simulación fácilmente ampliable y modificable de un software

planificado, incluyendo su interfaz y su funcionalidad de entradas y salidas.

3.2 LINEAMIENTO DEL PROYECTO

El presente proyecto consta de tres partes fundamentales:

Page 78: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

60

- La primera parte se encuentra formada por: El Actuador (Brazo

Robótico).

- La segunda parte es: El Circuito de Control, el cual permite la

comunicación entre el host y el actuador, el mismo que se encuentra montado

sobre un circuito que recibe señales de entrada y salida para controlar los

movimientos del actuador conectado al host por medio del puerto USB.

- La tercera: El Host (computador portátil o de escritorio) el cual contiene

la aplicación web que sirve de interfaz entre el usuario y la manipulación de

movimientos del actuador.

Figura 3. 1 Diagrama general

Fuente de consulta: Diseñado por el Autor

Page 79: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

61

3.3 EL ACTUADOR

El actuador (Brazo Robótico) como está claramente definido en el alcance del

proyecto no debía ser construido, en este caso fue adquirido de modo que sea de

ayuda para demostrar el resultado esperado. Se adquirió un Kit de Brazo Robótico

con mando S300355 cableado.

3.3.1 Características del Actuador

- 5 motores completamente independientes

- 5 grados de libertad (Base, Codo, Muñeca, Apertura y Cierre de las

Pinzas y Luz)

- Carga máxima de 100 g

- Corriente consumo 40 mA

- Plástico

Page 80: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

62

Figura 3. 2 Brazo Robótico

Fuente: http://www.encuentraregalo.com/wp-content/uploads/2008/11/brazo-robotico-kit.jpg

3.3.2 CONSTRUCCIÓN DEL BRAZO ROBÓTICO

El Kit de brazo robótico se lo armó según el manual del fabricante, los motores con

los que cuenta tanto para la base, codo, muñeca y de las pinzas son de corriente

continua (CC), mismos que son comerciales y utilizados en este tipo de robots.

Estos brazos robóticos fueron creados para poder realizar prácticas de robótica o

como juguetes.

Cada motor requiere un voltaje 5V para su movimiento, cada uno se maneja de

forma independiente, el brazo robótico para el control de sus movimientos utilizará

Page 81: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

63

un circuito de control para cada uno de los motores y que servirá de interfaz entre el

actuador y el host (computador).

Foto 3. 1 Brazo Robótico en la fase de armado

Fuente: Autor del trabajo de tesis

Foto 3. 2 Brazo Robótico desarmado

Fuente: Auto del trabajo de tesis

Page 82: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

64

3.4 CIRCUITO DE CONTROL

Este circuito será diseñado para realizar el control de cada motor. Para construir

este circuito se necesitó de los materiales que a continuación se listan:

• 3 Driver de Control de Motores L293D Puente H

• Regulador de Voltaje 7805

• 1 Oscilador de cuarzo XT 20 MHz

• 1 Microcontrolador PIC 18F4550

• Conector USB Hembra tipo B

• 1 LED comprobación de la fuente

• 1 LED arranque del micro

• 2 Capacitores 22 pF

• 2 Capacitores lenteja #104

• 2 Resistencias 330 Ω

• 1 Capacitor electrolítico 10 µf a 25V para fuente USB

• 1 Capacitor 47 µf a 63 V para la fuente

• 1 Resistencia 330 Ω Reset

• Cable

• 6 Borneras 2 entradas

• Baquelita de un lado

• 1 Sócalo de 40 pines

• 3 Sócalos 16 pines

• 1 Switch de dos posiciones

Page 83: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

65

3.4.1 Driver de Control de Motores L293D Puente H

El driver L293D contiene en su interior cuatro circuitos que se los puede utilizar

independientemente o formando dos puentes completos H que permitan el manejo

del control de giro de motores pequeños con una tensión de 1.5 V, estos pueden ser

motores de corriente continua o motores paso a paso y el manejo del giro se lo puede

hacer en ambos sentidos.

Figura 3. 3 Circuito Integrado L293D puente H

Fuente: http://www.hvwtech.com/products/341/17310_PV.jpg

3.4.1.1 Estructura L293D

Cada circuito que contiene el L293D controla una corriente de 600 mA y una tensión

de hasta 36V en cada uno.

Page 84: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

66

Este puente H es una interfaz que está diseñada para recibir dos señales de entrada y

envían dos señales de salida al motor, permite, básicamente el control de dos señales

digitales de baja potencia, cuando la señal sea 1 lógico en una de sus entradas y en la

una habilitación, el puente H invierte las señales el 1 se convierte en 0 y el 0 en 1 y

así conecta al motor a la fuente de alimentación, y para el sentido contrario se

invertiría la polaridad.

Figura 3. 4 Diagrama de Pines L293D

Fuente: www.micropik.com

Page 85: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

67

3.4.1.2 Distribución de Pines

- Pines 4, 5, 13, y 12 GND (tierra)

- Pines 8 y 16 VSS y VS 5V

- Pines 1 y 9 Enable 1 y Enable 2 5V

- Pines 6 y 3 Salida Motor

- Pines 11 y 14 Salida Motor

En este caso para manejar los cinco motores del actuador se debe utilizar tres

circuitos integrados L293D, la velocidad de cada motor dependerá de la

programación que se dé en el microcontrolador.

Cabe recalcar que los drivers de control de motores L293D reciben el voltaje de la

fuente de 5V.

En la figura se muestra el control de dos motores con un circuito integrado L293D.

Page 86: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

68

Figura 3. 5 Circuito Integrado L293D manejo de 2 motores pequeños A y B

Fuente: http://www.ece.uvic.ca/~ece499/2001b/group06/schem.html

3.4.3 Oscilador

Los osciladores son utilizados como componentes de control de la frecuencia de

circuitos osciladores convirtiendo las vibraciones mecánicas en pulsos eléctricos de

una frecuencia específica.26

El oscilador permite controlar a la velocidad a la que trabajar el microcontrolador en

este caso 20 MHz.

26Osciladores.(s.f.). Recuperado el 8 de octubre del 2010, de http://es.wikipedia.org/wiki/Oscilador

Page 87: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

69

Figura 3. 6 Oscilador de cuarzo XT

Fuente: http://ersonelectronica.com/images/191-CUARZO.jpg

El PIC 18F4550 tiene un oscilador interno de 32 KHz, el PIC ejecuta una instrucción

en un ciclo de máquina (4 periodos de reloj), cuando se requiere aumentar la

velocidad de debe conectar un oscilador externo con frecuencias de 8, 10, 12, 16, 20,

32, 40 y 48 MHz, este caso se utiliza un oscilador de 20 MHz.

3.4.4 Microcontrolador PIC 18F4550

El microcontrolador elegido es el PIC 18F4550 es uno de los más completos dentro

de la familia PIC 18FXXX de la marca Microchip, una de las marcas más vendidas

por su amplia gama que dispone y de acuerdo a las necesidades de cada aplicación, el

microcontrolador que seleccionado dentro de su funcionamiento maneja el periférico

Page 88: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

70

de comunicación avanzada como es el USB el mismo que actualmente es manejado

en la mayoría de computadoras; tanto portátiles como de escritorio.

Figura 3. 7 Microcontrolador PIC 18F4550

Fuente: www.mercadolibre.com.mx/jm/img?s=MLM&f=30610953_6334.jpg&v=E

3.4.4.1 Características PIC 18F4550

a) Arquitectura RISC avanzada Hardvard: 16 bit con 8 bit de datos.

b) 77 instrucciones

c) Desde 18 a 80 pines

d) Hasta 64 K bytes de programa

e) Hasta 3968 bytes de RAM y 1 K bytes de EEPROM

f) Frecuencia máxima de reloj 40 MHz.

Page 89: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

71

g) Pila de 32 niveles

h) Múltiples fuentes de interrupción

i) Periféricos de comunicación avanzados (CAN Y USB)

3.4.4.2 Funcionamiento PIC 18F4550

La principal función del PIC 18F4550 es el control de giro de cada uno de los

motores que posee el actuador (Brazo Robótico) dentro del cual se manejará valores

enviados por la aplicación web al PIC, para que éste a su vez permita dichos

movimientos, éste también direccionará cuál de todos los motores realizará una

acción y cuando deje de hacerla. Como se ha dicho, la familia de

microcontroladores PIC 18F4550 permite el manejo del puerto USB tanto en

computadoras portátiles como de escritorio, desplazando casi en su totalidad a los

puertos en serie y paralelo; por esta razón se escogió este tipo de comunicación,

actualmente existen librerías propias de los lenguajes de programación que hacen

más fácil la programación y el uso de esta tecnología del mundo de los

microcontroladores.

A continuación se muestra el Diagrama de pines que tiene el PIC 18F4550 y cuál es

la distribución dentro del circuito de control:

Page 90: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

72

Figura 3. 8 Diagrama de Pines PIC 18F4550

Fuente: Microchip Technologies, (2006).” Data Sheet PIC 18”. (pp.5). USA

3.4.4.2 Distribución de Pines PIC 18F4550

En el microcontrolador PIC 18F4550 se utilizan los siguientes pines:

Page 91: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

73

Tabla 3. 1 Distribución de Pines del PIC 18F4550

PIN SIMBOLO DESCRIPCION

1 MCLR Reset

2 RA0/AN0

LED (Indica si el microcontrolador está

encendido)

3 RA1

4 RA2

5 RA3

6 RA4

7 RA5

8 RE0

9 RE1

10 RE2

11 VDD Pin Conectado a Voltaje Conector USB

12 VSS Pin Conectado a Tierra GND

13 OSC1

Oscilador 20 MHZ --> Capacitor 22 pF --> Tierra

GND

14 OSC2

Oscilador 20 MHZ --> Capacitor 22 pF --> Tierra

GND

15 RC0

16 RC1

17 RC2

Page 92: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

74

PIN SIMBOLO DESCRIPCION

18 VUSB Capacitor 104 --> Tierra GND

19 RD0 Pin Conectado al Pin 7 Input Driver 3

20 RD1 Pin Conectado al Pin 2 Input Driver 3

21 RD2 Pin Conectado al Pin 10 Input Driver 3

22 RD3 Pin Conectado al Pin 15 Input Driver 3

23 D- Conector -D USB

24 D+ Conector +D USB

25 RC6

27 RD4

28 RD5

29 RD6

30 RD7

31 VSS Pin Conectado a Tierra GND

32 VDD Pin Conectado a Voltaje Conector USB

33 RB0 Pin Conectado al Pin 14 Input Driver 2

34 RB1 Pin Conectado al Pin 10 Input Driver 2

35 RB2 Pin Conectado al Pin 7 Input Driver 2

36 RB3 Pin Conectado al Pin 2 Input Driver 2

37 RB4 Pin Conectado al Pin 15 Input Driver 1

38 RB5 Pin Conectado al Pin 10 Input Driver 1

39 RB6 Pin Conectado al Pin 7 Input Driver 1

40 RB7 Pin Conectado al Pin 2 Input Driver 1

Fuente: Autora del trabajo

Page 93: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

75

Nota:

Los Driver 1, 2, 3 son los circuitos integrados L293D que controlan cada uno de los

motores.

Los motores consumen el voltaje de una fuente externa y no de la que consume el

microcontrolador mismo que utiliza el voltaje que le brinda el USB del HOST, se lo

hace por separado debido a que el micro puede sufrir daños porque los motores

consumen una corriente mayor a la que el microcontrolador puede entregar.

Page 94: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

76

3.4.6 CIRCUITO DE CONTROL

Figura 3. 9 Circuito de Control

Page 95: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

77

3.4.7 Diseño de Pistas para las Placas Electrónicas del Circuito de Control

El diseño de pista utilizado en el desarrollo del control y manipulación de un brazo

electrónico posee dos caras, la placa electrónica permite la unificación de forma

compacta los distintos dispositivos empleados.

• Placa de Circuito de Control: Carátula Ver Figura 3.10 y Cara posterior Figura

3.11.

Figura 3. 10 Carátula Placa de Control

Fuente: Realizado con Eagle por el Autor

Page 96: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

78

Figura 3. 11 Vista por debajo de la Placa de Control

Fuente: Realizado con Eagle por el Autor

Page 97: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

79

Figura 3. 12 Placa de Control Terminada Vista Lateral

Figura 3. 13 Placa de Control Terminada

Fuente: Autora

Page 98: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

80

3.5 PROGRAMA PARA COMUNICACIÓN USB

3.5.1 OBJETIVO

Internamente el PIC 18F4550 debe realizar lo siguiente:

- Sincronizar de forma óptima la comunicación entre el puerto USB y el HOST.

- Recibir datos del PC mediante el bus USB.

- Transformar los datos receptados a un valor de tiempo (milisegundos) el mismo

que servirá para el movimiento de cada uno de los motores ingresados en

grados.

- Mover cada uno de los motores del actuador en grados (Brazo Robótico)

3.5.2 DIAGRAMA DE FLUJO

Con el siguiente diagrama se explica el funcionamiento del programa realizado en el

Microcontrolador PIC 18F4550.

Page 99: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

81

Figura 3. 14 Diagrama de Flujos del PIC 18F4550

INICIO

Inicializar el Hardware USB

Habilitar el Periférico USB

Espera que sea configurado por el HOST

Recibo Datos???

Almacenar Datos

FIN

NO

SI

RecCommand VERIFICARUSB = 99

CONTROLMOTORB = 88CONTROLMOTORD = 77

Dispositivo enumerado por el

Host?

SI

NO

Reccomand = VERIFICADOR

Transmision de Dato a la PC valor 1 “Dispositivo Conectado”

RecComand = CONTROLMOTOR

B Retardo o pausa (mils)

RecComand = CONTROLMOTOR

D

Encender Motor ubicado en el Puerto D Retardo o pausa (mils)

Encerar Puerto B

(0x00)

Encerar Puerto D

(0x00)

SI

SI

SI

NO

NO

NO

Encender Motor ubicado en el Puerto B

Transformar el valor en milisegundos

aa

NO

a

a

Fuente: Autora

Page 100: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

82

3.5.3 DESARROLLO

3.5.3.1 Definición de Constantes

Una constante es un dato cuyo valor no se altera o no cambia durante la ejecución del

programa. En este caso definimos las siguientes constantes.

- VERIFICARUSB = 99

- CONTROLMOTORB = 88

- CONTROLMOTORD = 77

Estas nos servirá como identificadores de comparación dentro del programa: el primero

para realizar la verificación de conexión USB y las otras dos constantes para

direccionar a que puerto pertenece el motor sea este al puerto B o D.

Para determinar al puerto correspondiente sea este B o D se debe saber la distribución

de los pines que corresponden al microcontrolador el micro dispone de 40 pines que

contiene 5 puertos con diferentes números de pines:

- Puerto A 6 pines

- Puerto B 8 pines

- Puerto C 6 pines

- Puerto D 8 pines

- Puerto E 3 pines

Page 101: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

83

En nuestro caso ocupamos los puertos B y D para el control de cada motor del actuador,

debido a que trabajan cada uno de estos dos puertos con 8 pines lo que equivale a 1 byte

de 8 bits y así poder controlar los desplazamientos de los motores sean estos arriba,

abajo, derecha, izquierda, abrir, cerrar.

Figura 3. 15 Distribución de Pines Puerto B y D

Fuente: Autora

Page 102: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

84

3.5.3.2 Comunicación USB

Para llevar a cabo este tipo de comunicación se debe tomar en cuenta el protocolo USB.

El compilador CCS contiene librerías para facilitar esta tarea. Se usarán las librerías:

1. #include <18F4550.h>

2. #fuses

HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDI

V1,VREGEN

3. #use delay(clock=48000000)

4. #include <pic18_usb.h>

5. #include “header.h”

6. #include <usb.c>

- En la primera, se declara la librería del integrado a usar y el programa

automáticamente adopta los parámetros del PIC.

- En la segunda directiva, se define qué fusibles deben activarse en el dispositivo

cuando se programe.

- En la tercera directiva indica al compilador la frecuencia del procesador, en

ciclos por segundo [Hz].

Page 103: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

85

- En la cuarta representa el driver de capa hardware de la familia PIC18F4550.

- En la quinta esta librería header.h contiene los descriptores del dispositivo

como son el VID (vendor id) y el PID (product id), son necesarios para evitar

conflictos en el momento de conectarse con otros dispositivos del mismo

fabricante.

- En la sexta esta librería maneja las interrupciones USB y el USB Setup

Requests en Endpoint 0.

Una vez que el bus USB es conectado al PC, el programa del microcontrolador ejecuta

esta serie de funciones sincronizadas para la comunicación. Son las que a continuación

se las explica y en el orden que son ejecutadas.

- usb_init().- Inicializa la pila USB, los periféricos USB y permite

interrupciones.

- usb_task().- Controla el pin de detección de conexión cuando se conecta y

se desconecta del bus.

- usb_wait_for_enumeration(void).- Espera hasta que el PicUSB sea configurado

por el HOST.

Page 104: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

86

- usb_enumerated(void).- Esta función retorna TRUE si el PIC ya está

configurado y FALSE si no lo está.

- usb_kbhit(1).- Si el PIC ha recibido datos del PC esta función retorna TRUE,

sino FALSE.

3.5.3.3 Recepción y Envió de Paquetes

Una vez que el dispositivo está configurado se procede a ejecutar las siguientes

funciones que permite recibir y enviar los paquetes de datos por medio del bus USB.

- usb_get_packet (endpoint, ptr, max)

Esta función se utiliza para recibir datos que el PC envía al PIC

ENTRADAS * endpoint – es el buffer de datos de entrada, donde llega el

paquete de datos .

*prt – es el apuntador donde guardaremos el dato.

*max – es el tamaño del paquete en bytes.

SALIDAS Esta función guarda el paquete una vez que es configurado el

dispositivo, los tres bytes que se obtienen por parte del host son guardados en la

variable recbuf.

- usb_put_packet(endpoint, ptr, len, toggle)

Esta función se usa para enviar datos del PIC al HOST

Page 105: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

87

ENTRADAS * endpoint – por donde se quieren enviar los datos

* ptr – apunta a la dirección del dato a enviar

* len – el tamaño del paquete en bytes

* toggle – porque canal de dato se debe enviar Data 0, Data 1 o

cambiar de Data a cada envío con USB_DTS_TOGGLE

SALIDAS (TRUE y FALSE)

Devuelve TRUE si los datos han sido enviados correctamente, FALSE en caso

contrario, la única razón por la que puede dar FALSE es porque el buffer está

todavía lleno desde la última vez que se trató de enviar un paquete.

Se puede decir que un endpoint es un buffer temporal de datos de entrada y salida, sin

olvidarse que cada endpoint tiene su respectivo (pipe) canales por los cuales son

enviados los paquetes comúnmente utilizados en el flujo de comunicación USB.

3.5.3.4 Movimiento de Motores

Una vez receptado el paquete de datos enviado por medio del puerto USB desde la

aplicación Web, el paquete se almacena en una variable determinada dentro del

programa del microcontrolador, el dato que se almaceno esta en sistema binario por esta

razón se procede a convertirlo a entero para realizar una operación y obtener un valor

de tiempo en este caso milisegundos, tiempo que se demora el motor en realizar el giro

o desplazamiento.

Page 106: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

88

El actuador trabaja con motores eléctricos de corriente continua con caja de reducción

con un control limitado por ello realizamos la siguiente operación con un valor

aproximado tomado manualmente: 1550 milisegundos se tarda en mover un motor 30°.

Con esta comparación procedemos a realizar la operación por cada valor ingresado para

los diferentes motores del actuador. Ejemplo.

producto = (int32)AnguloMotor * 1550

pulsoalto = (int32)producto/30

• 1550 tiempo que se tarda en mover un motor 30 grados

Donde (int32) AnguloMotor es la variable donde se almacena el dato que es enviada

desde la aplicación web y es transformada de sistema binario a entero. Esta variable

recibirá los valores que envíe la aplicación web de acuerdo al ángulo del motor que se

requiera mover.

El valor que se obtiene en pulsoalto es un valor entero que nos permitirá obtener el

tiempo (milisegundos) que el motor eléctrico va a moverse. Es una regla de tres que se

realizará por cada valor (ángulo motor) almacenado y enviado desde el host.

El siguiente paso para realizar el movimiento de los motores consiste en obtener el

siguiente byte guardado en memoria del microcontrolador enviado por el host; el dato es

comparado con las constantes antes definidas CONTROLMOTORB = 88,

CONTROLMOTORD = 77, las mismas que nos permitirán direccionar la información

al puerto en el que está conectado el motor: B o D.

Page 107: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

89

Una vez que sabemos a qué puerto del microcontrolador pertenece dicho motor se

procede a encender el motor y para finalizar enceramos todo puerto utilizado con el

valor 0x00, para que esté listo para ser utilizado por los demás motores.

3.6 SOFTWARE DE CONTROL PARA PC APLICACIÓN WEB

3.6.1 OBJETIVO

A continuación se describirá el software desarrollado para el computador personal

(PC), el objetivo perseguido durante la creación del software, fue el diseño de una

aplicación visual de fácil manejo entres sus principales características están:

- Ingresar a una Aplicación Web.

- Realizar la comunicación vía USB (Host – Placa de control - Actuador)

- Probar si el dispositivo está conectado al Host.

- Cargar cámara web para ayuda visual en el manejo y manipulación del

actuador.

- Asignar los valores de cada uno de los motores para establecer la cantidad de

grados a moverse.

- Ejecutar el movimiento de cada motor y el tipo de desplazamiento (arriba,

abajo, derecha, izquierda, abrir, cerrar)

- Movimiento del actuador en tiempo real (brazo robótico).

Page 108: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

90

3.6.2 DIAGRAMA DE FLUJO

Los Diagramas de Flujo cumplen un papel muy importante porque representa

gráficamente la lógica utilizada para el desarrollo y la secuencia de toda sus

operaciones dentro un proyecto, en este punto se explica el funcionamiento macro de

cómo está compuesto la aplicación de Web encargada del control y manipulación de

un brazo robótico.

Page 109: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

91

Figura 3. 16 Diagrama de Flujos Macro Aplicación Web

Fuente: Autora

Page 110: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

92

3.6.3 DESARROLLO

3.6.3.1 Aplicaciones Web sobre la Plataforma .NET

El lenguaje seleccionado para el presente proyecto es C#, que permite desarrollar

aplicaciones sobre la plataforma .NET, esta plataforma se caracteriza por

proporcionar utilidades y servicios para combinar la informática con las nuevas

tecnologías de las comunicaciones, C# permite desarrollar aplicaciones Web

dinámicas e interactivas.

C# está desarrollado en un entorno multilenguaje diseñado para la creación y

ejecución de aplicación Web en la forma más cómoda para el programador sea el

lenguaje al que esté familiarizado. Está compuesta por cuatro componentes

principales:

• Una máquina virtual (CLR, Common Language Runtime).

• Un lenguaje intermedio (MSIL, Microsoft Intermediate Language).

• Una biblioteca de clases (.NET).

• Un conjunto de recursos para crear aplicaciones Web dinámicas (ASP.NET).

Page 111: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

93

Figura 3. 17 Estructura de C# en plataforma .NET

Fuente:http://apuntesutn.foroactivo.com/teoria-f12/teoria-resumen-poo-net-t30.htm

Las grandes ventajas que aporta esta estructura de programación son:

• Creación entornos visuales y aplicaciones para Internet

• Manejo de las DLL de Windows

• Creación de aplicaciones Web, escritorio y su fácil integración.

• Posibilidad de utilizar varios lenguajes de programación (C#, Visual

Basic, C++, J#, SQL Server).

• Un código C# compilado para su portabilidad en cualquier plataforma

(Intel, Motorola, plataformas Unix, telefonía móvil, etc.).

3.6.3.2 Comunicación por el Puerto USB

El proceso de comunicación a través del puerto USB entre la aplicación Web

desarrollada en el PC y el circuito de control, es un proceso que requiere de una serie

de componentes.

Page 112: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

94

Para la comunicación por el puerto USB los principales elementos son los drivers,

entendiéndose que un driver es una porción de código software que permite a los

programas acceder a las funciones de un dispositivo hardware.

En Windows 7, el control del bus USB se lleva a cabo por unos drivers específicos

del USB proporcionado por MICROCHIP.

Estos drivers propios del sistema operativo, tienen una estructura por capas donde

cada capa se encarga de una parte del proceso de la comunicación. Dividir la

comunicación por capas tiene una razón muy importante, debido a que si existen más

periféricos que realicen tareas parecidas pueden utilizar el mismo driver, haciendo la

comunicación más eficiente. Una aplicación que desee acceder a un periférico USB,

debe utilizar un driver que tenga capacidad para comunicarse con estos drivers USB

del sistema pero bajo el sistema operativo Windows.

Además del driver necesario para la comunicación del bus USB, se requiere de una API

(Application Programming Interface), esta API contiene las funciones necesarias para

que la aplicación se comunique con el driver.

Page 113: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

95

Figura 3. 18 Acceso al Puerto USB

APLICACIÓN WEBSOFTWARE

DESARROLLADO EN C#

DRIVER BRAZO ROBOTICO

mchpusb.sys

WIN 32 SUBSISTEMA

CAPA FISICAFIRMWARE

USB Hub Driverusbhub.sys

Bus Driversusbd.sys

API (mpusbapi.dll)

DRIVERS USB DEL SISTEMA

Fuente: Autora

La creación de un driver para Windows no es una tarea tan sencilla como se piensa

primero se necesita la debida experiencia en programación C/C++, además de un buen

Page 114: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

96

conocimiento sobre el sistema operativo, la comunicación con el hardware y las

aplicaciones.

Microchip como una empresa líder en la fabricación de microcontroladores involucrada

en las nuevas tecnologías y con la finalidad de acelerar el tiempo de desarrollo, ha

puesto a disposición de los usuarios un paquete de herramientas para establecer la

comunicación entre una aplicación propia y un microcontrolador PIC con capacidad

USB.

Las herramientas que proporciona MICROCHIP son:

• Un driver de acceso al puerto USB (mchpusb.sys) y

• La API correspondiente (mpusbapi.dll) para acceder a las funciones del driver.

3.6.3.3 Drivers para Windows

Cada dispositivo USB debe tener una única combinación de dos números de serie, como

son el:

- VID (Vendor Identification) y

- PID (Product Identification).

El VID y el PID son utilizados en archivos INF, así como en el descriptores de

dispositivo, estos números sirven para que el dispositivo sea reconocido por el

computador en el momento de la conexión y que el sistema operativo le pueda asignar

los drivers adecuados. Para que el driver funcione sin problemas con el USB los valores

Page 115: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

97

del Vendor Identification VID y del Product Identification PID deben ser exactamente

los mismos en el:

- Fichero mchpusb.inf del driver creado por Microchip , y;

- Descriptor USB del software del PIC 18F4550.

3.6.3.4 API mpusbapi.dll

Microchip creó la API mpusbapi.dll que desde algún tiempo está siendo distribuida

conjuntamente con el driver USB, fue creada para facilitar el desarrollo de

aplicaciones que se basan en la utilización del bus USB, además pone a disposición

varias funciones que permite tener acceso a los comandos del driver antes

mencionado (mchpusb.sys).

Tiene seis funciones básicas:

• MPUSBGetDLLVersion(void)

Devuelve la versión de mpusbapi.dll en formato hexadecimal de 32 bits.

• MPUSBGetDeviceCount ((PVID_PID)

Informa sobre el número de dispositivos conectados con el VID y PID

especificados.

ENTRADA: pVID_PID Cadena de caracteres del número de identificación

asignados.

Page 116: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

98

• MPUSBOpen (INSTANCE, PVID_PID, PEP, DWDIR, DWRESERVED)

Abre una conexión con el “endpoint” especificado, devuelve el acceso al pipe

del endpoint con el VID_PID asignado.

ENTRADAS:

- INSTANCE – Un número de dispositivos para abrir, es por ello que se utiliza

el MPUSBGetDeviceCount para determinar el número de dispositivos existen.

Cabe mencionar que el número devuelto debe ser menor o igual que los

dispositivos conectados y usando el driver genérico.

- PVID_PID – String que contiene el PID&VID del dispositivo prototipo, el

formato que utilizan es el hexadecimal y es el siguiente:

Si un dispositivo tiene un VID=0x04d8 y un PID=0x000b, el string de entrada

sería “vid_0x04d8&pid_0x000b”.

- PEP – Es un string con el número del endpoint que se va abrir el formato es

“\\MCHP_EPz” o “\MCHP_EPz” según el lenguaje que se va a utilizar y z es el

número del Endpoint en decimal.

Ejemplo:

“\\MCHP_EP1” o “\MCHP_EP1”

- DW-DIR – Especifica la dirección del endpoint.

• MPUSBClose (HANDLE)

Cierra la conexión con el “endpoint” especificado.

ENTRADA: Handle – Identifica la pipe del Endpoint que se va a cerrar.

Page 117: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

99

• MPUSBRead(HANDLE, PDATA, DWLEN, PLENGTH,

DWMILISECONDS)

Lee el número de bytes especificados del “endpoint”.

ENTRADAS:

- HANDLE – Identifica la pipe del endpoint que se va a leer

- DWLEN – Especifica el número de bytes que hay que leer de la pipe.

- DWMILLSECONDS – Especifica el intervalo del time out en milisegundos,

la función vuelve si transcurre el intervalo aunque no se complete la operación.

SALIDAS:

- PDATA – Puntero al buffer que recibe el dato leído de la pipe

- PLENGTH – Puntero al número de bytes leídos.

• MPUSBWrite(HANDLE, PDATA, DWLEN, PLENGTH,

DWMILISECONDS)

Escribe el número de bytes especificados en el “endpoint”.

ENTRADAS:

- HANDLE – Identifica la pipe del endpoint que se va a escribir.

- DWLEN – Especifica el número de bytes que se van a escribir en la pipe.

- DWMILLISECONDS - Especifica el intervalo del time out en milisegundos,

la función vuelve si transcurre el intervalo aunque no se complete la operación.

SALIDAS:

- PDATA – Puntero al buffer que contiene los datos que se van a escribir en la

pipe.

Page 118: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

100

- PLENGTH – Puntero al número de bytes que se escriben al llamar esta

función.

Estas funciones son las usadas para establecer la comunicación entre la aplicación del

PC y el Brazo USB. Desde el código del programa en C# se accede a ellas usando el

atributo DllImport.

3.6.3.5 Comprobar comunicación

Esta opción permite comprobar si efectivamente se realizó la conexión del dispositivo

USB, y si está apto para recibir y enviar datos por la línea de comunicación generada

entre el Host y el dispositivo USB de la placa de control. Esta opción conlleva una serie

de procesos los cuales nos permiten alcanzar el objetivo deseado.

Como primer punto se mostrará el proceso macro para realizar la comprobación de

conexión USB.

Page 119: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

101

Figura 3. 19 Diagrama de Flujo Comprobación Comunicación

PideVerificarUsb ()

Lectura > 0

Inicio

FIN

Lectura = LeerDato ()

DISPOSITIVO NO CONECTADO

DISPOSITIVO CONECTADO

SI

NO

Fuente: Autora

Una vez que se presiona el botón para probar la comunicación en la aplicación web se

ejecuta en primera instancia el método PideVerificarUsb () que envía un dato al PIC

para comprobar la conexión.

Una vez ejecutado este método PideVerificarUsb () internamente se ejecuta un sub

método que ayudará con esta acción, el método se llama EnviarPaquete (), éste método

Page 120: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

102

envía dos bytes; el primer byte contendrá un dato verificador el cual puede ser

comparado dentro del PIC situado en la placa de control y en el segundo byte será 0x00

como se muestra en los diagramas de flujo siguientes:

Figura 3. 20 Diagrama Flujo de las Subrutinas Pide Verificación USB y Enviar

Paquete

PideVerificarUsb

Enviar_buf[0] = cmd_VUEnviar_buf[1] = 0x00

Enviar Paquete Enviar Paquete

EnviarRetraso = 1000EnvioLongitudDato FIN

Abrir Pipes

Ejecuta_MPUSBWrite

Cerrar Pipes

FIN

Fuente: Autora

Page 121: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

103

La función EnviarPaquete () ejecuta internamente tres funciones de la API mpusbapi.dll

que se utiliza como ayuda para la manipulación del puerto USB, siendo las funciones

las siguientes: AbriPipes (), MPUSBWrite (), CerrarPipes (), el objetivo de la función

EnviarPaquete() es enviar los dos bytes por el canal de comunicación USB.

Una vez enviados los datos se ejecuta el segundo proceso de la comprobación de la

conexión y es la función LeerDato(), cuyo objetivo principal es almacenar en una

variable lectura el dato recibido del PIC 18F4550, este método ejecuta un proceso

interno RecibirPaquete() siendo su objetivo recibir el dato desde el PIC 18F4550 y este

sirve para realizar la respectiva comprobación.

Page 122: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

104

Figura 3. 21 Diagrama de Flujo de las Subrutinas Leer Dato y Recibir Paquete

LeerDato

RecibirPaquete

Fin

Retornarrecibe_buf[0]

RecibirPaquete

RecibirRetraso = 1000

Abrir Pipes

Ejecuta_MPUSBRead

Cerrar Pipes

Fin

Fuente: Autora

La función RecibirPaquete() ejecuta tres funciones de mpusbapi.dll para facilitar el

manejo del puerto USB y son las siguientes: AbriPipes(), MPUSBRead(),

Page 123: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

105

CerrarPipes(), una vez recibido el paquete y el dato se procede la comprobación para

determinar si se efectuó con éxito la comunicación con el dispositivo o no.

El proceso de la comprobación de la conexión tiene como objetivo tomar medidas a

futuro para efectuar con éxito las demás procesos que conlleva la aplicación

desarrollada para el control y manipulación del brazo robótico.

3.6.3.6 Cargar Cámara WEB

En esta parte del proyecto se realiza la captura de imágenes con una cámara web,

este módulo permite entablar una conexión entre el driver de la webcam y la

aplicación, después de tener acceso al driver y mediante la API se puede obtener el

video de la webcam emite. Este módulo es desarrollado en una aplicación de

escritorio invocado desde la aplicación Web principal mediante un botón

direccionado a esta aplicación, además para la construcción de esta aplicación se

utilizó API para Windows las cuales nos permite el manejo de la captura de

imágenes.

Las API utilizadas son:

- AVICAP32.dll

- USER32.dll

Page 124: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

106

Las API (Application Programming Interface) es un conjunto de funciones,

procedimiento o métodos si se refiere a programación orientada a objetos que

interactuar con Windows. Las funciones principales de la API se encuentran en unas

librerías .DLL que se alojan en el directorio System32 de Windows y con ellas se

puede realizar casi todas las tareas del Windows.

Una API representa una interfaz de comunicación entre componentes software.

AVICAP32.DLL. Soporte para la captura de video para los archivos AVI (Audio

Visual Interface)

USER32.DLL. Componente de núcleo de 32 bits, controla todo lo que tiene que ver

con la creación de ventanas, comunicaciones, hardware y mensajes.

Para explicar el funcionamiento general para la captura de imágenes con la cámara

web se mostrará con un diagrama de flujo, en el que se indican los procesos con los

que cuenta este módulo y cómo se comporta en cada fase establecida.

Page 125: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

107

Figura 3. 22 Diagrama de Flujo Cargar Cámara Web

Fuente: Autora

Page 126: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

108

La captura de imágenes comienza desde que el usuario presiona el botón de

comandos llamado “CAMARA” ubicado en la aplicación Web principal, dentro de

este evento se genera el direccionamiento a la aplicación de escritorio y se procede

abrir la pantalla con su respectiva configuración donde se proyectará la cámara Web.

Una vez abierta se procede a manipular la aplicación de escritorio llamada

CAMARABRAZOUSB la cual cuenta con una clase principal llamada

CAPTURAVIDEO la cual contiene las funciones de la API USER32 y AVICAP32

que manipula la captura de imágenes y sus respectivos métodos para dicha acción,

como se muestra a continuación.

[DllImport("avicap32.dll")]

public extern static int capCreateCaptureWindowA(string Nombre, int Stilo, int xpi,

int ypi, int Ancho, int Alto, int capvidPadre, int ID);

[DllImport("user32.dll")]

public extern static int SendMessageA(int capvid, int Msg, short wParam, int

lParam);

[DllImport("user32", EntryPoint = "OpenClipboard")]

public static extern int OpenClipboard(int capvid);

Page 127: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

109

[DllImport("user32", EntryPoint = "EmptyClipboard")]

public static extern int EmptyClipboard();

[DllImport("user32", EntryPoint = "CloseClipboard")]

public static extern int CloseClipboard();

Una vez que procedemos a encender la cámara el primer método construye una

ventana de captura de ancho y alto variables.

capvid = capCreateCaptureWindowA("Ventana de Captura", WS_VISIBLE |

WS_CHILD, 0, 0, ancho, alto, Handle, 0);

El primer parámetro es el nombre de la ventana, después el estilo de la ventana

WS_VISIBLE | WS_CHILD, luego vienen los parámetros que indican la posición

inicial en X e Y, el alto y ancho de la ventana, después decidir dónde va a ir la

ventana en este caso en un Picturebox se indica el objeto con su manejador o

“Handle” y va indicado con la variable vidcap.

Como segundo paso conecta la ventana con el driver de la cámara

var1 = SendMessageA(capvid, WM_CAP_DRIVER_CONNECT, 0, 0);

Se tiene que conectar la ventana con el driver de la cámara, se le indica la ventana

con la variable capvid, se ordena conectarse al driver con la función

Page 128: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

110

WM_CAP_DRIVER_CONNECT y el siguiente parámetro en este caso 0 muestra el

índice del driver al que tiene que conectar, puede variar del 0 a 10, como es 0 se

conectará al primer driver que encuentre.

Luego se procede a capturar la imagen indicando de inicio la velocidad con la que

mostrará el video y se utilizará la función WM_CAP_SET_PREVIEWRATE, la

misma que indica la velocidad en este caso 66 milisegundos máximo, que se puede

generar 30 cuadros por segundo.

var1 = SendMessageA(capvid, WM_CAP_SET_PREVIEWRATE, 66, 0);

Para empezar a mostrar el video se usa la función WM_CAP_SET_PREVIEW, que

indica que va mostrar el video; y la variable “TRUE” indica que empiece caso

contrario si fuera “FALSE” dejaría de hacerlo, pero el programa sigue capturando el

video con el driver solo que no mostraría la información.

var2 = SendMessageA(capvid, WM_CAP_SET_PREVIEW, 1, 0);

Si el usuario procede a desconectar la cámara Web se ejecuta un método final

llamado Detener () el mismo que realiza la tarea de desconectar la cámara Web

ejecutándose la función adecuada para esta tarea.

var2 = SendMessageA(capvid, WM_CAP_DRIVER_DISCONNECT, 0, 0);

Page 129: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

111

El funcionamiento de la captura de video mediante una cámara web es de gran ayuda

para la manipulación y el control de movimientos del actuador (brazo robótico),

porque mediante a este sistema se obtiene una ayuda visual, sea que este actuador

permanezca cerca o lejos para ser manipulado.

3.6.3.7 Asignar Ángulos de Giro

El actuador (brazo robótico) cuenta con 5 motores independientes, los cuales

pueden realizar los movimientos con ángulos máximos sugeridos especificados por

cada motor para dicho actuador.

- BASE – 270°

- HOMBRO – 180°

- CODO – 270°

- MUÑECA – 120°

- PINZA – ABRIR Y CERRAR

Para listar los ángulos de cada motor se utilizó la propiedad Dropdownlist la cual

permite desplegar y poder escoger el ángulo de movimiento requerido, el

Dropdownlist es asignado a cada motor en grados que van desde el 1° hasta el

máximo sugerido por cada motor.

Page 130: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

112

Para ayudarnos en este proceso se generaron dos métodos el primero llamado

Page_load () encargado de almacenar los valores máximos permitidos por cada

motor, cada vez que la página web se cargue se ejecutará este método.

listagrados(ddlhombro,180);

listagrados(ddlcodo, 270);

listagrados(ddlmeñeca, 120);

listagrados(ddlbase, 270);

Y este a la vez hace el llamado a un método interno listagrados() el cual recibe dos

valores el Dropdownlist específico y el tamaño asignado para este. Este evento genera

por cada motor la lista de grados máximos para proceder a escoger el grado del

movimiento que se desea realizar.

3.6.3.8 Ejecutar Movimiento de Motores

Esta opción permite ejecutar el movimiento de cada motor que comprende el

actuador mediante botones de comando asignados a su respectivo tipo de

movimiento y motor.

Page 131: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

113

Para la ejecución del movimiento de cada motor, primero se toma en cuenta el tipo

de movimiento, si el motor pertenece al puerto B o D y que motor del puerto B o D

efectuará el movimiento. Eso muestra la figura siguiente:

Tabla 3. 2 Valores para Motores del Actuador

PUERTO MOTOR SALIDAS TIPO MOVIMIENTO

B

Identificador

(0) Hombro 0x01 Subir

Hombro 0x02 Bajar

Codo 0x04 Subir

Codo 0x08 Bajar

Muñeca 0x10 Subir

Muñeca 0x20 Bajar

Pinza 0x40 Cerrar

Pinza 0x80 Abrir

D

Identificador

(1) Base 0x01 Izquierda

Base 0x02 Derecha

Led 0x08 Encender

Fuente: Autora

Page 132: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

114

A cada botón de comandos se le asignó un motor del actuador con su respectivo tipo

de movimiento, cada botón representa un método el cual contendrá un “salida” la

misma que almacena un valor hexadecimal y representa el tipo de movimiento que

realizará el motor. Además ejecutará un método interno llamado MoverMotor()

MoverMotor(salida, 0, leerangulo(ddlmuñeca)

Este método recibe la “salida” antes mencionada, un “identificador” ayuda a

determinar a qué puerto pertenece dicho motor en este caso los identificadores son

“0” puerto B y “1” puerto D y una función llamada LeerAngulo() que lee el dato en

grados ingresado, este método MoverMotor() principalmente se encarga de realizar

el envío de datos hacia el PIC18F4550, para que éste a su vez realice dicha

operación. Para extender la explicación se muestra el proceso en el siguiente

diagrama de flujo:

Page 133: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

115

Figura 3. 23 Diagrama de Flujo Movimiento Motores y la Subrutina de Enviar

Paq.

Fuente: Autora

Page 134: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

116

Una vez que se ejecuta este evento se realiza una serie de procesos los cuales son

importantes para cumplir el objetivo de mover cada uno de sus motores que

componen el actuador (brazo robótico), primero ejecuta una sentencia de condición

si el puertobd = 0 el valor cmd_CM (88) es almacenado en el primer byte del

arreglo, sino es 0 el valor cmd_CMD (77) es almacenado, los valores de cmd_CM o

cmd_CMD servirán en el microcontrolador como valores de comparación para

determinar si el motor pertenece al puerto B o D , en el segundo byte es almacenada

la salida correspondiente al motor que se activará y que acción ejecutará, y en el

tercer byte el valor del ángulo a mover.

El siguiente paso es ejecutar el método EnviarPaquete(), éste permite realizar el

envío del arreglo de bytes por medio del bus USB hacia el microcontrolador, este

método está completamente ligado con las funciones que corresponden a la DLL

mpusbapi.dll que ayuda a la comunicación por medio del bus USB y las funciones

internas de este método son el AbrirPipes(), MPUSBWrite(), CerrarPipes(), éstas se

ejecutan por cada motor y el tipo de movimiento que se desea realizar.

Una vez enviados los valores al microcontrolador, este último procede a realizar el

movimiento de los motores seleccionados.

Page 135: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

117

3.6.3.9 Interfaz Gráfica Web

Usando el lenguaje de programación orientada a objetos C# y el entorno de

desarrollo para programadores Visual Studio, se ha diseñado la aplicación web que

desde el PC se encarga del control y manipulación de movimientos del actuador

(Brazo Robótico).

El modo de operación del interfaz web se basa en eventos, los cuales son

principalmente generados por un “click” con el botón izquierdo del ratón, donde se

haga “click”, se ejecutará la tarea asociada a ese determinado objeto, es un entorno

intuitivo que permite al usuario familiarizarse con todas las opciones en cuestión de

minutos.

Figura 3. 24 Aplicación Web para el control y manipulación del Brazo Robótico

Page 136: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

118

Fuente: Autora

La aplicación Web se compone de un botón que verifica si existe comunicación con el

puerto USB. Si el puerto USB tiene conexión aparecerá el mensaje: DISPOSITIVO

CONECTADO 1, caso contrario DISPOSITIVO NO CONECTADO 0. Como muestra

la siguiente figura 3.35.

Figura 3. 25 Verificar Conexión Puerto USB

Fuente: Autora

Además cuenta con un botón que permite cargar una cámara Web para visualizar al

brazo robótico y ayuda a manipular de mejor manera los movimientos del actuador

(brazo robótico),

Figura 3. 26 Botón para Cargar Cámara Web

Fuente: Autora

Page 137: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

119

También cuenta con una lista de ángulos máximos permitidos por cada motor, para

escoger el ángulo de giro y el motor que se requiere para dicho movimiento.

Figura 3. 27 Lista para escoger Ángulos de Giro Motores

Fuente: Autora

Y además con botones para realizar la ejecución de los movimientos de cada uno de los

motores con los que cuenta el actuador Base, Hombro, Codo, Muñeca, Pinza y LED.

Page 138: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

120

Figura 3. 28 Botones para Ejecutar Movimientos Actuador (BR)

Fuente: Autora

Page 139: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

121

CAPÍTULO IV

4. CONCLUSIONES Y RECOMENDACIONES

CONCLUSIONES

Después de la realización del proyecto final de la carrera se puede destacar que he

aprendido sobre la creación de una aplicación partiendo de una idea básica, como esa

idea se va desarrollando y como va pasando por todas las fases de desarrollo hasta

convertirse en el objetivo deseado.

En el transcurso de la realización de este proyecto que tiene como objetivo del control y

manipulación de un brazo robótico con comunicación USB hacia una Aplicación Web

se pudo sacar las siguientes conclusiones en los dos niveles trabajados tanto en

Hardware como en Software:

HARDWARE:

- Se construyó una placa de control, pequeña, económica y que realice las tareas

asignadas.

- Los Microcontroladores PIC 18F4550 son dispositivos muy interesantes que

funcionan eficientemente en cualquier proyecto que requiera el control de

acciones programadas.

Page 140: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

122

- El conector USB trabaja de una manera flexible no necesita configuraciones

adicionales, solo los del driver.

- Cada dispositivo USB debe tener una única combinación de dos números de

serie el VID & PID así como en los descriptores del dispositivo, para

diferenciar un dispositivo del otro..

- Toda la parte del Hardware, actualmente funciona con los objetivos esperados.

SOFTWARE

- El lenguaje de programación PIC C Compiler es de gran ayuda debido a que es

un lenguaje de alto nivel conocido por la mayoría de programadores y que

permite acercarse al lenguaje máquina con el que trabajan los micro

controladores.

- La programación es C es más eficiente debido a que ocupa menos recursos.

- El lenguaje de última tecnología desarrollado en la plataforma .NET C# cubrió

las expectativas de acuerdo a las necesidades que se presentaron a lo largo del

proyecto principalmente con la implementación y el manejo de las DLL.

- La plataforma .NET permite trabajar con código inseguro para manejar los

puertos del HOST.

- Se consiguió desarrollar un Aplicación Web, sencilla, interactiva, que permite

manipular y controlar al actuador con mucha precisión.

- La Aplicación Web puede ser usada por todo tipo de personas porque su

interfaz es amigable y de fácil interacción.

Page 141: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

123

- Me gustaría destacar la importación de las API cuando se quiere implementar

alguna aplicación relacionada con el sistema operativo Windows, la facilidad de

implementación en un entorno como .NET y de la robustez que tiene un

lenguaje como C#.

- La adquisición de un grado de experiencia en el desarrollo de este proyecto me

ha ayudado a obtener nuevos conocimientos en la parte electrónica y de

software.

RECOMENDACIONES

Las distintas pruebas efectuadas en la construcción y desarrollo tanto de Hardware

como de Software para el control y manipulación de movimientos del Brazo Robótico

mediante una aplicación Web dejan algunas recomendaciones:

HARDWARE:

• Manipular los Microcontroladores PIC con herramientas adecuadas (Pinzas),

porque si se manipula al Microcontrolador PIC 18F4550 con las manos corre el

riesgo de daños por estática.

• Es necesario siempre tomar en cuenta que no hay que sobrepasar los niveles de

corriente que proveen los pines de Entrada/Salida del PIC 18F4550 para evitar

que se dañe el microcontrolador.

Page 142: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

124

• Es mejor que los motores del actuador consuman el voltaje y amperaje de una

fuente externa y no de la que consume el microcontrolador del USB del host

debido a que el micro puede sufrir daños o no va a funcionar óptimamente.

• Para un mejor control de los movimientos de los motores con los que cuenta el

actuador para futuro adquirir brazos robóticos que cuenten con servo motores.

• El Brazo Robótico didáctico no está diseñado para uso continuo debido a que

está hecho de plástico y sus motores son motores de corriente continua con caja

de reducción.

SOFTWARE:

- La versión del Framework .NET 4.0.

Foto 4. 1 Proyecto Integrado y Terminado

Page 143: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

125

Fuente: Autora

Foto 4. 2 Proyecto Integrado y Funcionando

Fuente: Autora

Page 144: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

126

BIBLIOGRAFIA

• C Sharp#. Recuperado el 8 de septiembre del 2010, de

http://issuu.com/mamusillo/docs/lenguajes

• Características de C#. Recuperado el 15 de septiembre del 2010, de

http://www.scribd.com/doc/7411856/Caracteristicas-de-C

• Echeveria,G. Morán,C. USB. Recuperado el 8 de agosto de 2010, de

http://www.monografias.com/trabajos11/usbmem/usbmem.shtml

• García, E (2008). Compilador C CCS y Simulador PROTEUS para

Microcontroladores PIC. España: Marcombo.

• La Cámara Web. Recuperado el 20 de octubre del 2010, de

http://informaticamoderna.com/Camara_web.htm.

• Mecánica. Recuperado el 8 septiembre del 2010, “http://www.x-

robotics.com/motorizacion.htm”

• Microchip Technologies, (2006). Data Sheet PIC 18. USA

• Microcontroladores. Recuperado el 8 de julio del 2010, de

http://es.wikipedia.org/wiki/Microcontrolador

• Osciladores. Recuperado el 8 de octubre del 2010, de

http://es.wikipedia.org/wiki/Oscilador

• Origen de las Webcams. Recuperado el 20 octubre del 2010, de

http://historico.portalmix.com/webcams/origen.shtml

Page 145: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

127

• Plug & Play. Recuperado el 8 de agosto de 2010, de

“http://es.wikipedia.org/wiki/Plug-and-play"

• Reyes, C. (2006). Microcontroladores PIC Programación en Basic,Ecuador.

• Soporte, T. Un paseo por USB. España: OEM

• USB. Recuperado el 18 de julio del 2010, de http://

www.scribd.com/doc/27880137/Funcionamiento-Del-Puerto-Usb

Page 146: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

128

GLOSARIO

ACTUADOR.

Mecanismo que hace que un dispositivo se encienda o apague, se ajuste o se mueva. El

actuador es el componente que mueve la cabeza ensamblada en una unidad de disco o

un brazo de un robot.

API.

Formato de lenguaje y mensajes utilizado por un programa de aplicación para

comunicarse con otro programa que le suministra servicios.

BIT.

Dígito Binario. Unidad mínima de almacenamiento de la información cuyo valor puede

ser 0 ó 1 (falso o verdadero respectivamente). Hay 8 bits en un byte

BUS DE DATOS.

Cableado utilizado para transmitir un conjunto de señales de información (Datos) entre

dispositivos de una computadora.

BYTE.

Conjunto de 8 bit, el cual suele representar un valor asignado a un carácter.

Page 147: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

129

C/C++.

Es un lenguaje de programación que abarca programación Estructurada, programación

genérica, y programación orientada a objetos. C++ está considerado por muchos como

el lenguaje más potente, debido a que permite trabajar tanto a alto como a bajo nivel.

CIRCUITO INTEGRADO.

Un circuito integrado es un pequeño chip que puede funcionar como un amplificador,

oscilador, microprocesador o incluso una memoria de computadora.

CAPACITOR.

Componente electrónico que almacena una carga.

COMPILADOR.

Software que traduce lenguajes de programación de alto nivel (COBOL, C, etc.) a

lenguaje de máquina.

DRIVER.

Controlador de dispositivos, es una rutina de programa que enlaza un dispositivo

periférico al sistema operativo.

ELECTRONIC SWITCH.

Interruptor electrónico. Interruptor on/off (de encendido/apagado) que se activa

mediante corriente eléctrica.

Page 148: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

130

FIRMWARE.

Categoría de chips de memoria que mantienen su contenido sin energía eléctrica; e

incluye las tecnologías ROM, PROM, EPROM y EEPROM.

HEX.

El sistema numérico de base 16 se usa como una forma abreviada para representar

números binarios.

HERZT.

Frecuencia de vibraciones eléctricas (ciclos) por segundo.

HOST.

Servidor que nos provee de la información que requerimos para realizar algún

procedimiento desde una aplicación cliente

HUB.

El punto central de conexión para un grupo de nodos; útil para la administración

centralizada.

INPUT.

Dato que está listo para su ingreso al computador. Ingresar datos en el computador.

Page 149: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

131

IIS.

Servicios de Información de Internet de Microsoft. IIS es un conjunto de servicios

basados en Internet, para maquinas con Windows.

INTERFAZ.

Conexión e interacción entre hardware, software y el usuario.

MICROPROCESADOR.

Microchip. Circuito integrado en un soporte de silicón el cual está formado por

transistores y otros elementos electrónicos miniaturizados.

NET.

Sigla que sirve para identificar el sitio web perteneciente a la Red (Network), (.net) el

cual es llamado Dominio.

PAQUETE.

Un paquete es un pedazo de información enviada a través de la red. La unidad de datos

que se envía a través de una red la cual se compone de un conjunto de bits que viajan

juntos.

PLUG AND PLAY.

Característica del sistema operativo de un PC en orden de reconocer los dispositivos

hardware a él conectados y ponerlos en funcionamiento de forma rápida y sencilla.

Page 150: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

132

PROGRAMACION ORIENTADA A OBJETOS.

Programación Orientada a Objetos (POO) es una filosofía de programación que se basa

en la utilización de objetos. El objetivo de la POO es "imponer" una serie de normas de

desarrollo que aseguren y faciliten la mantenibilidad y reusabilidad del código.

PROTOCOLO DE COMUNICACIONES.

Estándares de hardware o software que gobiernan la transmisión entre estaciones.

PUERTO.

Canal de entrada/salida de una computadora.

SOFTWARE.

Se refiere a programas en general, aplicaciones, juegos, sistemas operativos, utilitarios,

antivirus, etc. Lo que se pueda ejecutar en la computadora.

ROBÓTICA.

Se puede considerar como la automatización por medios mecánicos, es decir, los

sistemas destinados a conseguir robots a nivel industrial originariamente, aunque tiende

a expandirse a otros ámbitos fuera del área de la fabricación.

USB.

Es una interface de tipo plug & play entre una computadora y ciertos dispositivos, por

ejemplo, teclados, teléfonos, scanner e impresoras.

Page 151: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

133

ANEXOS

Page 152: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

134

ANEXO I

FORMATO DE PRESUPUESTO PARA PLAN DE TESIS

PRESUPUESTO

En este documento se expone el presupuesto del proyecto acometido. Con la finalidad

de detallar el presupuesto, este se divide en hardware, herramientas de desarrollo,

recursos humanos y otros insumos. Cabe tener en cuenta que los precios de los

componentes deben servir como cantidad orientativa, ya que los precios del mercado

están en continuo cambio.

1.

- Herramientas de Desarrollo

Descripción Precio

Microsoft .NET 500

Microsoft Windows XP

Professional 200

TOTAL 700

Page 153: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

135

2.

- Hardware

Descripción Cant. P.U. Subtotal

Disponibilida

d

Actuador Brazo Robótico 1 150 150

Circuito 1 100 100

Cables 1 20 20

Cámara Web

1

40

40

TOTAL 760

3.

- Recursos Humanos

Recursos

Horas V/H Total

Desarrollador 800

$

4.00

1,200.0

0

Page 154: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

136

4.

- Otros Insumos

Descripción Cant. P.U. Subtotal

Libros 2 50 100

Revistas 2 10 10

TOTAL 110

5- Resumen

Descripción TOTAL

Herramientas de Desarrollo 700

Hardware 760

Recursos Humanos 1200

Otros Insumos 110

TOTAL 2770

Page 155: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

137

ANEXO II

MANUAL DE USUARIO

Page 156: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

138

INTRODUCCION

Para el control y manipulación de un Brazo Robótico se requiere:

SOFTWARE

• Windows 7 Profesional SP2.0

• Microsoft NET.Framework 4.0

• IIS7 (Internet Information Services)

HARDWARE

• Procesador Core Duo

• Memoria RAM 1 GB o superior

Page 157: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

139

MANUAL DE INSTALACIÓN BRAZO USB

INSTRUCCIONES

INSTALACIÓN SOFTWARE

El proyecto BRAZO USB requiere de la instalación de algunos componentes para su

correcto funcionamiento por esta razón se establece el siguiente orden de instalación.

1. NET.Framework 4.0

2. ISS 7

3. Copiar carpeta PROYECTO WEB BRAZO USB en la ruta C:\inetpub\wwwroot

4. Convertir en aplicación Web en Administración de equipos.

5. Instalación Driver para la Cámara Web Genius iLook 300 V1.4

6. Verificar si la página Web con la siguiente ruta

http://localhost/brazousbMF/brazoUSB.aspx

NET.Framework 4.0

Instala los archivos del NET Framework necesarios para ejecutar aplicaciones

desarrolladas para NET Framework 4.0 ( VISUAL STUDIO 2010)

Genius iLook 300

Instala el driver para el funcionamiento de la cámara web la misma que soporta

Windows 7/Vista/XP.

Page 158: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

140

INSTALACIÓN HARDWARE

La primera vez que el USB del circuito de control es conectado a un computador (Host),

el sistema operativo Windows informará de que un nuevo dispositivo ha sido detectado.

A partir de este momento quedará de manifiesto el potencial “plug & play” (conectar y

trabajar) del bus de comunicaciones USB.

Mediante la información contenida en los descriptores contenidos en el programa del

micro (“string descriptors”), se indica al usuario el nombre del dispositivo conectado.

Page 159: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

141

Detección del Brazo USB por primera vez que es conectado al PC

Ahora lo que hace Windows es decidir que driver se debe asignar al Brazo USB.

El Sistema Operativo lee el descriptor del dispositivo conectado y busca en su base de

datos del registro un driver que haga coincidencia con la información leída desde el

dispositivo.

Buscando el Driver para el Brazo USB

Como el Brazo USB es un dispositivo USB específico no encontrará ninguna

coincidencia en la primera búsqueda. Por lo tanto tenemos una manera para poder

realizar la instalación:

Page 160: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

142

Inicio Panel de Control Sistema y Seguridad Sistema Administración de

Dispositivos

Encontraremos un dispositivo sin definirse aun con un signo de interrogación, dando a

conocer que aun ese dispositivo no pude ser definido.

Driver todavía no específico para el Brazo USB

Debemos en este caso dar un clic derecho y mandamos Actualizar Software de

Controlador. Una vez presionado debe salir una pantalla donde nos pregunta que

debemos buscar dentro del equipo la localización del controlador o driver.

Page 161: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

143

Búsqueda del Driver en la PC

Windows ejecutará un asistente para la instalación del nuevo hardware con la finalidad

de instalar los controladores o drivers del nuevo dispositivo.

Page 162: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

144

Ubicamos dentro del PC el driver

Secuencia de Instalacion del Driver

Fin de la Instalación del Driver para el Brazo USB

Page 163: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

145

Para comprobar que se efectuó la instalación y el Brazo USB fue reconocido por el

ordenador se puede acceder al “ADMINISTRADOR DE DISPOSITIVOS” por Inicio

Panel de Control Sistema y Seguridad Sistema Administración de

Dispositivos

Administrador de Dispositivos, donde se muestra que el USB del dispositivo

BRAZO está reconocido

Page 164: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

146

Esta instalación se lo realiza una sola vez las siguientes veces que el USB de la tarjeta

de control sea conectada será reconocida por el driver especifico.

PANTALLA DE CONTROL DEL BRAZO USB

Es la pantalla donde se realizará el control y la manipulación del actuador (Brazo

Robótico), es una aplicación dinámica, sencilla y de fácil familiarización.

Page 165: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

147

Una vez que la placa de control sea conectada al computador por medio del bus USB la

aplicación Web se la puede manipular de forma sencilla debido a que cuenta con

botones de control los cuales permiten una determinada acción como se explica a

continuación:

Comprobación de la Comunicación.

Este nos permite verificar la conexión de la placa de control con el ordenador por medio

del puerto USB una vez que esta comunicación sea optima tendrá un mensaje de

DISPOSITIVO CONECTADO caso contrario DISPOSITIVO NO CONECTADO.

Cámara.

Ésta se enciende para tener una ayuda visual de cada movimiento realizado al actuador

(brazo robótico), nos permite tener un control específico de la posición actual y la

posición futura.

Ángulos de Giro.

Nos permite determinar el ángulo requerido para el movimiento de cada motor que

constituye el actuador (brazo robótico), estos van desde el grado 1 hasta el máximo

grado que permite el movimiento de cada motor.

Page 166: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

148

Giro Derecha.

Nos permite realizar la acción de girar la base a lado derecho del actuador dependiendo

del ángulo seleccionado.

Giro Izquierda.

Nos permite realizar la acción de girar la base a lado izquierdo del actuador

dependiendo del ángulo seleccionado.

Subir Hombro.

Nos permite realizar la acción de subir el hombro del actuador dependiendo del ángulo

seleccionado.

Bajar Hombro.

Nos permite realizar la acción de bajar el hombro del actuador dependiendo del ángulo

seleccionado.

Page 167: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

149

Subir Codo.

Nos permite realizar la acción de subir el codo del actuador dependiendo del ángulo

seleccionado.

Bajar Codo.

Nos permite realizar la acción de bajar el codo del actuador dependiendo del ángulo

seleccionado.

Subir Muñeca.

Nos permite realizar la acción de subir la muñeca del actuador dependiendo del ángulo

seleccionado.

Bajar Muñeca.

Nos permite realizar la acción de bajar la muñeca del actuador dependiendo del ángulo

seleccionado.

Abrir y Cerrar Pinza.

Nos permite realizar la acción de abrir y cerrar la pinza no depende del ángulo de

movimiento debido a que solo dispone de dos ángulos abrir y cerrar.

Page 168: UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE …repositorio.ute.edu.ec/bitstream/123456789/5713/1/45110_1.pdf · “control y manipulaciÓn de movimientos de un brazo robÓtico

150

Encender LED.

Nos permite realizar la acción de encender una luz con la que cuenta el actuador tiene

una duración de 5 segundos y a continuación se apaga.