• No se han encontrado resultados

Control y manipulación de movimientos de un brazo robótico mediante una interfaz web

N/A
N/A
Protected

Academic year: 2020

Share "Control y manipulación de movimientos de un brazo robótico mediante una interfaz web"

Copied!
168
0
0

Texto completo

(1)
(2)

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

(3)

III

DECLARACIÓN

Del contenido del presente trabajo se responsabiliza él autor.

(4)
(5)

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.

(6)

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.

(7)

VII

INDICE GENERAL

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

XIV

GLOSARIO... 128

ANEXOS ... 133

ANEXO I ... 134

FORMATO DE PRESUPUESTO PARA PLAN DE TESIS... 134

ANEXO II ... 137

(15)

XV LISTA DE FIGURAS

CAPÍTULO II

FIGURA 2.1ROTOR Y ESTATOR DEL MOTOR ... 9

FIGURA 2.2POLARIDAD DEL MOTOR DE CORRIENTE ... 10

FIGURA 2.3ROTOR DEL MOTOR ... 12

FIGURA 2.4ESTATOR DEL MOTOR DE CORRIENTE ... 13

FIGURA 2.5MICROCONTROLADOR PIC ... 15

FIGURA 2.6ARQUITECTURA VON NEUMAN ... 16

FIGURA 2.7ARQUITECTURA HARDVARD... 16

FIGURA 2.8 DIAGRAMA DE PINES PIC18F4550, ... 22

FIGURA 2.9DIAGRAMA DE BLOQUES 18F4550 ... 23

FIGURA 2.10TIPO DE CONECTORES USB ... 27

FIGURA 2.11ESTRUCTURA DE CAPAS DEL BUS USB ... 28

FIGURA 2.12DISPOSITIVOS USB CONECTADOS A UN PC ... 30

FIGURA 2.13COMPONENTES DE CABLE USB ... 31

FIGURA 2.14DIAGRAMA DE FLUJO DE SELECCIÓN DE CLASE USB ... 41

FIGURA 2.15CLASES USB CON MICROCHIP ... 42

FIGURA 2.16FUNCIONAMIENTO DE LA WEBCAM... 45

FIGURA 2.17PARTES EXTERNAS DE LA CÁMARA WEB ... 46

(16)

XVI CAPÍTULO III

FIGURA 3.1DIAGRAMA GENERAL ... 60

FIGURA 3.2BRAZO ROBÓTICO ... 62

FIGURA 3.3CIRCUITO INTEGRADO L293D PUENTE H ... 65

FIGURA 3.4DIAGRAMA DE PINES L293D ... 66

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

FIGURA 3.6OSCILADOR DE CUARZO XT ... 69

FIGURA 3.7MICROCONTROLADOR PIC18F4550 ... 70

FIGURA 3.8DIAGRAMA DE PINES PIC18F4550 ... 72

FIGURA 3.9CIRCUITO DE CONTROL ... 76

FIGURA 3.10CARÁTULA PLACA DE CONTROL ... 77

FIGURA 3.11VISTA POR DEBAJO DE LA PLACA DE CONTROL... 78

FIGURA 3.12PLACA DE CONTROL TERMINADA VISTA LATERAL ... 79

FIGURA 3.13PLACA DE CONTROL TERMINADA ... 79

FIGURA 3.14DIAGRAMA DE FLUJOS DEL PIC18F4550 ... 81

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

FIGURA 3.16DIAGRAMA DE FLUJOS MACRO APLICACIÓN WEB... 91

FIGURA 3.17ESTRUCTURA DE C# EN PLATAFORMA .NET ... 93

FIGURA 3.18ACCESO AL PUERTO USB ... 95

FIGURA 3.19DIAGRAMA DE FLUJO COMPROBACIÓN COMUNICACIÓN ... 101

FIGURA 3.20DIAGRAMA FLUJO DE LAS SUBRUTINAS PIDE VERIFICACIÓN USB Y ENVIAR PAQUETE ... 102

(17)

XVII

FIGURA 3.22DIAGRAMA DE FLUJO CARGAR CÁMARA WEB ... 107

FIGURA 3.23DIAGRAMA DE FLUJO MOVIMIENTO MOTORES Y LA SUBRUTINA DE ENVIAR PAQ. ... 115

FIGURA 3.24APLICACIÓN WEB PARA EL CONTROL Y MANIPULACIÓN DEL BRAZO ROBÓTICO ... 117

FIGURA 3.25VERIFICAR CONEXIÓN PUERTO USB ... 118

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

FIGURA 3.27LISTA PARA ESCOGER ÁNGULOS DE GIRO MOTORES ... 119

(18)

XVIII LISTA DE TABLAS

CAPÍTULO II

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

TABLA 2.2TIPOS DE CLASES DE DISPOSITIVOS ... 37

TABLA 2.3ALGUNOS DRIVERS DE WINDOWS PARA ALGUNAS CLASES USB ... 38

CAPÍTULO III

TABLA 3.1DISTRIBUCIÓN DE PINES DEL PIC18F4550 ... 73

TABLA 3.2VALORES PARA MOTORES DEL ACTUADOR ... 113

LISTA DE FOTOS

CAPÍTULO III

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

FOTO 3.2BRAZO ROBÓTICO DESARMADO ... 63

CAPÍTULO IV

FOTO 4.1PROYECTO INTEGRADO Y TERMINADO ... 124

(19)

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.

(20)

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

(21)

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.

(22)

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

(23)

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.

(24)

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

(25)

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

(26)

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.

(27)

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

(28)

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-

(29)

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

(30)

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

(31)

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

(32)

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) “

(33)

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

(34)

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

(35)

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.

(36)

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).”

(37)

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.

(38)

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

(39)

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.

(40)

22

Figura 2. 8 Diagrama de Pines PIC 18F4550,

(41)

23 2.3.4 Diagrama de Bloques PIC 18F4550

Figura 2. 9 Diagrama de Bloques 18F4550

(42)

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)

(43)

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

(44)

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”

(45)

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.

(46)

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). “

(47)

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

(48)

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

(49)

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). “

(50)

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.

(51)

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). “

(52)

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). “

(53)

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

(54)

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

(55)

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

(56)

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,

(57)

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). “

(58)

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). “

(59)

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.

(60)

42

Figura 2. 15 Clases USB con MICROCHIP

(61)

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.

(62)

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

(63)

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.

(64)

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.

(65)

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

(66)

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.

(67)

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.

(68)

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

(69)

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?

(70)

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.

(71)

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

(72)

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.

(73)

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

(74)

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.

(75)

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

(76)

58 Eficiente

(77)

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

(78)

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

(79)

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)

(80)

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.

(81)

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

(82)

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

(83)

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

(84)

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

(85)

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.

(86)

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.

(87)

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

(88)

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

(89)

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.

(90)

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

(91)

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

(92)

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

(93)

75 Nota:

Los Driver 1, 2, 3 son los circuitos integrados L293D que controlan cada uno de los motores.

(94)

76

3.4.6 CIRCUITO DE CONTROL

(95)

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

(96)

78

Figura 3. 11 Vista por debajo de la Placa de Control

(97)

79

Figura 3. 12 Placa de Control Terminada Vista Lateral

Figura 3. 13 Placa de Control Terminada

(98)

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

Referencias

Documento similar

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

− Un manipulador de menú, si el ítem tiene el flag MF_POPUP, en éste caso hay que hacer un casting a (UINT). − O puede ser cero, si se trata de un separador. El último

El fin de este proyecto es el montaje, programación y puesta en marcha de un sistema de visión artificial coordinado con un brazo robótico, para la realización de manipulación

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y