manuel ballesteros corzovillanuevitas.galeon.com/diplomas/tesis_part1.pdf · control de un brazo...

52
CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB MANUEL BALLESTEROS CORZO UNIVERSIDAD DE PAMPLONA FACULTAD DE INGENIERIAS Y ARQUITECTURA DEPARTAMENTO DE INGENIERIA INDUSTRIAL, MECÁNICA Y MECATRÓNICA PROGRAMA DE INGENIERÍA MECATRÓNICA PAMPLONA, COLOMBIA NOVIEMBRE DE 2008

Upload: ngohanh

Post on 30-May-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB

MANUEL BALLESTEROS CORZO

UNIVERSIDAD DE PAMPLONAFACULTAD DE INGENIERIAS Y ARQUITECTURA

DEPARTAMENTO DE INGENIERIA INDUSTRIAL, MECÁNICA YMECATRÓNICA

PROGRAMA DE INGENIERÍA MECATRÓNICAPAMPLONA, COLOMBIANOVIEMBRE DE 2008

Page 2: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB

MANUEL BALLESTEROS CORZO

TRABAJO DE TESIS PARA OPTAR AL TITULO DE INGENIERO ENMECATRÓNICA

DIRECTOR:ING. ESP. SERGIO PEÑALOZA ROJAS

CODIRECTOR:ING. EDINSON BALLESTEROS CORZO

UNIVERSIDAD DE PAMPLONAFACULTAD DE INGENIERIAS Y ARQUITECTURA

DEPARTAMENTO DE INGENIERIA INDUSTRIAL, MECÁNICA YMECATRÓNICA

PROGRAMA DE INGENIERÍA MECATRÓNICAPAMPLONA, COLOMBIANOVIEMBRE DE 2008

Page 3: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

”Si una persona es perseverante,aunque sea dura de entendimiento,se hará inteligente; y aunque sea débilse transformará en fuerte.”

Leonardo di Ser Piero da Vinci(1452 - 1519) Arquitecto, escultor, pintor, inventor, músico e ingen iero

Page 4: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

DEDICATORIA

Dedico la realización de mi tesis a mis padres, José Manuel Ballesteros Rivero ySocorro Corzo Ortiz quienes han hecho posible junto a Dios Padre creador de

todos los universos, el estar vivo, maquinando “maravillas mate riales”, queespero aporten beneficios en Pro de la humanidad.

Page 5: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

AGRADECIMIENTOS

Muchas personas han contribuido con ayuda técnica, excelentes revisiones,

información de utilidad y consejos prácticos, por lo cual, hay una lista de

personas que me ayudaron directa e indirectamente a concluir este trabajo. A

continuación presento dichos personajes que fueron pieza clave en la consecución

de los objetivos planteados.

Al Ing. Leonardo Mejía, me asesoro en la parte del control de servomotores

además de sugerir el uso del microcontrolador 16F628A de la serie Microchip;

igualmente agradezco al Ing. Harold Rodríguez quien me aconsejo ut ilizar

programación modular en A ssembler. En el diseño estructural del brazo robótico

agradezco la colaboración de los ingeni eros Ricardo Calderón y Oscar

Castellanos. Al profesor Mauricio Rojas y al sena virtual por guiarme en los

primeros pasos y darme a conocer las herramientas que ofrece el lenguaje de

programación java. A mi codirector Ing. Edinson Ballesteros Corzo por la

información y revisión de programas hechos en sockets -java y a mi director de

tesis Ing. Esp. Sergio Peñaloza Rojas por la información y revisión de programas

utilizando tecnología AJAX, además de la implemen tación del servidor Web. No

sobra decir, que mi s patrocinadores financieros y el apoyo moral y afectivo se los

debo a mis queridos padres, José Manuel Ballesteros Rivero y Socorro Corzo

Ortiz a quienes ofrezco mis mas sinceras muestras de agradecimiento.

Finalmente, agradezco al Demiurgo Universal que me dio la oportunidad de

manifestarme en este mundo, dándome oportunidades y probándome

constantemente con obstáculos.

Page 6: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

RESUMEN

La tesis que se presenta a continuación se fundamenta en la creación del

entorno básico necesario para el control de un manipu lador con 5 grados

de libertad de configuración angular por medio de la red Internet, el

proyecto lo conforman básicamente tres partes:

-Diseño y elaboración del software de control

-Diseño y construcción de la tarjeta de control

-Diseño y ensamble del brazo robótico

Para la realización del proyecto se combinan varios lenguajes de

programación entre los que se destaca Java, en el cual recaerá gran parte de

la funcionalidad que va tener el control por medio de la Web. El

manipulador escogido aunque no rivaliza con los robots actuales

utilizados con fines comerciales, posee ciertas características que lo

hacen muy interesante desde el punto de vista didáctico, razón por la cual

se propone como medio de enseñanza en materias como Robótica,

Control Industrial, Programación Mecatrónica entre otras.

Page 7: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

CONTENIDO

Pág.

INTRODUCCIÓN ................................ ................................ ................................ .............. 13

1. OBJETO................................ ................................ ................................ ........................ 15

2. PROBLEMA................................ ................................ ................................ .................. 17

3. DELIMITACIÓN Y METODOLOGÍA ................................ ................................ ............ 18

3.1 OBJETIVO GENERAL ................................ ................................ .......................... 18

3.2 OBJETIVOS ESPECIFICOS .............................. .. ................................ ................. 18

3.3 ACOTACIONES ................................ ................................ ................................ .... 18

3.4 METODOLOGÍA ................................ ....................... ......... ................................ .... 18

4. MARCO TEÓRICO ................................ ................................ ................................ ....... 21

4.1 ROBÓTICA Y TECNOLOGÍAS WEB ................................ ............................. 21

4.2 COMUNICACIONES BASADAS EN EL PROTO COLO TCP ........................ 22

4.3 LENGUAJE DE PROGRAMACIÓN JAVA ................................ ..................... 23

4.3.1 Clases, Objetos y métodos ................................ ................................ ............. 24

4.3.2 Applets................................ ................................ ................................ ............. 25

4.3.3 Socket-Java................................ ...................... .......... ................................ ..... 27

4.3.3.1 Establecimiento de comunicaciones (Socket -Java) ................................ 27

4.4 JSP ................................ ................................ ................................ .................. 29

4.5 JAVASCRIPT ................................ ................................ ................................ .. 30

4.6 HTML ................................ ................................ ................................ ............... 31

4.7 XML ................................ ................................ ................................ ................. 31

4.8 XHTML................................ ................................ ................................ ............. 32

4.9 CSS................................ ................................ ................................ .................. 33

4.10 ARCHIVOS *.BAT ................................ ................................ .......................... ..... 33

4.11 SERVIDOR WEB ................................ ................................ ................................ . 34

4.12 TECNOLOGÍA AJAX ................................ ................................ .......................... 34

4.13 MICROCONTROLADOR ................................ ................................ .................... 37

4.13.1 Programación de microcontroladores ................................ ........................... 37

4.13.2 Pic 16F628A ................................ ................................ ................................ .. 37

4.13.2.1 Organización de la memoria ................................ ................................ .. 38

4.13.2.2 Manejo de puertos ................................ ................................ ................. 39

4.13.2.3 Usart ................................ ................................ ................................ ....... 41

4.14 QUE ES UN SERVOMOTOR? ................................ ................................ ............. 44

4.15 NETMEETING ................................ ................................ ................................ ..... 44

Page 8: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

4.15.1 Realizar una llamada con NetMeeting ................................ .......................... 45

4.15.2 Configuración de video en Netmeeting ................................ ......................... 45

4.16 PRINCIPIO DE TRANSMISIÓN EN SERIE ................................ ........................ 46

4.16.1 Método de transmisión en serie ................................ ................................ .... 47

4.16.2 Estándar RS232 ................................ ................................ ............................ 48

4.16.2.1 Descripción (RS232) ....................... ......... ................................ .............. 49

4.16.2.2 Características eléctricas ................................ ................................ ....... 49

4.16.2.3 Características mecánicas ................................ ................................ ..... 50

4.17 MAX232 ................................ ................................ ................................ ............... 51

5. HARDWARE Y SOFTWARE DE LA TARJETA DE CONTROL ................................ . 53

5.1 TARJETA DE CONTROL ................................ ................................ ..................... 53

5.2 DISEÑO DEL CIRCUITO ................................ ................................ ...................... 53

5.3 ACCESORIOS ................................ ................................ ................................ . 55

5.4 PROGRAMA PARA LA TARJETA DE CON TROL................................ ........ 57

5.4.1 Módulos (Pic 16F628A) ................................ ................................ .................. 57

5.4.1.1 Módulo < P16F628A.INC > ................................ ................................ 58

5.4.1.2 Módulo < MACROS.INC > ................................ ................................ .. 58

5.4.1.3 Módulo < ANG_.INC > ................................ ................................ ........ 58

5.4.1.4 Módulo < RS232_PIC16F628 A > ................................ ........................... 60

5.4.1.5 Módulo < RETARDOS.INC > ...................... .......... ................................ .. 62

5.4.2 PROGRAMA PRINCIPAL (TARJETA DE CONTROL) ................................ ... 63

5.4.2.1 CONFIGURACIÓN DEL PIC 16F628A ................................ .................... 63

5.4.2.2 RUTINAS Y SUBRUTINAS (PROGRAMA PRINCIPAL) ........................ 64

5.4.2.3 CONTROL DE SERVOS ................................ ................................ ........ 65

5.4.2.4 DIAGRAMA DE FLUJO DEL PROGRAMA PRINCIPAL .................... 68

6. DISEÑO MECÁNICO DEL BRAZO ROBÓTICO ................................ ......................... 71

6.1 DESCRIPCIÓN ................................ ................................ ................................ ...... 71

6.1.1 Composición del manipulador ................................ ................................ ........ 71

6.1.1.1 Base giratoria ................................ ................................ ........................... 72

6.1.1.2 Brazo y antebrazo ................................ ................................ .................... 73

6.1.1.3 Muñeca ................................ ................................ ................................ .... 73

6.1.1.4 Pinza ................................ ................................ ................................ ........ 74

6.2 MATERIALES ................................ ................................ ................................ ....... 74

6.3 DISEÑO DE PLANOS ................................ ............................... . ........................... 76

7. DISEÑO DE SOFTWARE PARA LA APLICACIÓN WEB ................................ ........... 77

7.1 APLICATIVO WEB UTILIZANDO SOCKET –JAVA ................................ .............. 77

7.2 DIAGRAMA EN BLOQUES (APLICATIVO SOCKET -JAVA) .............................. 77

Page 9: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

7.2.1 Configuración Network Address Translation (NAT) ................................ ....... 79

7.3 DESCRIPCIÓN DEL PROGRAMA (APLICACIÓN SOCKET -JAVA) .................. 86

7.3.1 Interfaz gráfica (aplicación socket -java) ................................ ............................. 87

7.3.1.1 Firmar Applets ................................ ................................ ......................... 88

7.3.1.2 Archivos *.jar ................................ ................................ ........................... 90

7.3.2 Cliente/Servidor (aplicación Socket -Java) ................................ ..................... 91

7.3.2.1 Envío de datos a manipulador ( aplicación Socket-Java)......................... 95

7.3.2.2 Validación de usuario (aplicación Socket -Java) ................................ ... 100

7.4 APLICATIVO WEB UTILIZANDO EL MODELO AJAX ................................ ..... 102

7.5 DIAGRAMA EN BLOQUES (APLICATIVO CON MODELO AJAX) .................. 103

7.6 DESCRIPCIÓN DEL PROGRAMA (APLICATIVO CON MODELO AJAX) ....... 103

7.6.1 Interfaz gráfica (aplicativo con modelo AJAX) ................................ ............. 104

7.6.2 Cliente/Servidor (aplicativo con modelo AJAX) ................................ ............ 105

7.6.2.1 Envío de datos al servidor ................................ ................................ .... 106

7.6.2.2 Procesamiento de datos (servidor) ................................ ....................... 112

7.6.2.3 Transmisión de imágenes webcam (Aplicativo AJAX) ......................... 119

7.6.2.4 Validación de usuario (Aplicativo AJAX) ................................ .......... 122

7.6.2.5 Ingreso de nuevos usuarios ................................ ............................. 122

7.7 INSTALADORES ................................ ................................ ................................ 123

7.8 MANEJO DEL SERVIDOR (APLICATIVO AJAX) .......................... ...... .............. 124

7.8.2 Detener aplicativo AJAX ................................ ................................ ................ 125

7.8.3 Reiniciar aplicativo AJAX ................................ ................................ .............. 126

7.8.4 Programa ScreenShot ................................ ................................ ................... 127

7.8.5 Programa Imp_Port_Serial ................................ ................................ ............ 128

8. ANÁLISIS ECONÓMICO ................................ ................................ ............................ 129

8.1 COSTOS DE MATERIA PRIMA ................................ ................................ ......... 129

8.2 GASTOS DE OPERACIÓN ................................ ................................ ................. 129

8.3 INVERSIONES ................................ ................................ ................................ .... 130

8.4 INSUMOS GRATUITOS ................................ ................................ ...................... 130

8.5 FUENTES DE FINANCIAMENTO ................................ ................................ ....... 130

9. MARCO DE LEGALIDAD ................................ .............................. .. ........................... 131

10. PROTECCIÓN E HIGIENE DEL TRABAJO ................................ ............................ 132

11. INFLUENCIA AMBIENTAL DEL TRABAJO ................................ ........................... 133

12. CONCLUSIONES ................................ ................................ .............................. 134

13. RECOMENDACIONES ................................ ................................ ...................... 136

REFERENCIAS BIBLIOGRÁFICAS ................................ .................................. ............ 137

Page 10: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

LISTA DE TABL AS

Pag.

Tabla 1. Características Eléctricas ............................... . ............................... . 49

Tabla 2. Características Mecánicas ................................ ............................. . 50

Tabla 3. Lista detalle (figura 10) ............................... . ............................... . .... 54

Tabla 4. Lista detalle (figura 12) ............................... . ................................ .... 56

Tabla 5. Rutinas y Subrutinas del mó dulo < ANG_.INK > .......................... 59

Tabla 6. Rutinas y Subrutinas del módulo < RS232_PIC16F628A > ....... 60

Tabla 7. Rutina y Subrutinas del módulo < RETARDOS.INC > ................. 62

Tabla 8. Rutinas y Subrutinas del programa principal ............................... . . 65

Tabla 9. Elementos de base giratoria ............................... . .......................... . 72

Tabla 10. Valores de la variable ‘bandera’ ................................ ................. 116

Tabla 11. Costos materia prima ............................... . ............................... . ... 129

Tabla 12. Gastos de operación ............................... . ............................... . .... 129

Tabla 13. Inversiones ............................... . ............................... . ................... 130

Tabla 14. Insumos gratuitos ............................... . ............................... . ......... 130

Page 11: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

LISTA DE FIGURAS

Pag.

Figura 1. Esquema básico para el establecimiento de comunicaciones

TCP por medio de sockets ............................... . ............................... . ............. 28

Figura 2. Tecnologías agrupadas bajo el concepto AJAX .......................... 35

Figura 3. Comparación gráfica del modelo tradicional de aplicaciones Web

y el modelo propuesto por AJAX ............................... . ............................... . ... 36

Figura 4. PIC 16F628 (encapsulado DIP) [19] ............................. ... ............. 39

Figura 5. Iniciar llamada (NetMeesting) ............................... . ........................ 45

Figura 6. Configuración de video (Netmeeting) ............................... . ........... 46

Figura 7. Activación de cámara Web (NetMeeting) ............................... . ..... 46

Figura 8. Diagrama de los conect ores DB-25 y DB-9 ............................... . . 50

Figura 9. Conexión del MAX232 ............................... . ............................... . .... 51

Figura 10. Tarjeta de control ............................... . ............................... . .......... 54

Figura 11. Impresión cara superior de la placa ............................... . ............ 55

Figura 12. Accesorios de la tarjeta ................................ ............................... . 55

Figura 13. Conexión (tarjeta, caja externa) ............................... . .................. 56

Figura 14. Método para control de servos ............................... . .................... 66

Figura 15. Control para seis servos ............................... . ............................. . 67

Figura 16. Diagrama de flujo del programa principal (parte 1) ................... 69

Figura 17. Diagrama de flujo del programa principal (parte 2) ................... 70

Figura 18. Composición del brazo robótico ............................... . .................. 71

Figura 19. Base Giratoria ............................... . ............................... . ............... 72

Figura 20. Antebrazo ................................ ............................... . ...................... 73

Figura 21. Brazo ............................... . ............................... . ............................. . 73

Figura 22. Muñeca ............................... . ............................... . .......................... 74

Figura 23. Pinza ............................... . ............................... . ............................. . 74

Figura 24. Materiales ............................... . ................................ ..................... 75

Figura 25. Brazo Robótico ............................... . ............................... . ............. 76

Page 12: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

Figura 26. Diagrama en bloques (Aplicativo Socket -Java) ......................... 78

Figura 27. Ingreso a configuración del router ............................... . .............. 81

Figura 28. Pagina de configuración de router ............................... . .............. 82

Figura 29. Configuración router menú “NAT” ............................... . ............... 83

Figura 30. Configuración router menú “Virtua l Circuit” ............................... . 83

Figura 31. Configuración router “NAT Setting” ............................... . ........... 84

Figura 32. Configuración router (NAT – Virtual Server) ............................. . 84

Figura 33. Configuración router “Submit” ............................... . ..................... 85

Figura 34. Configuración router (salir) ............................... . .......................... 86

Figura 35. Applet (aplicación Socket -Java) ............................... . .................. 87

Figura 36. Validación de usuario (Aplicación Socket -Java)...................... 102

Figura 37. Diagrama en bloques (aplicativo con modelo AJAX) ............. 103

Figura 38. Interfaz gráfica (aplicativo con modelo AJAX) ......................... 104

Figura 39. Diagrama de flujo para el ingreso al aplicativo con Modelo

AJAX............................... . ............................... . ........................... ..... ............... 106

Figura 40. Validación de usuario (aplicación AJAX) ............................... . .. 122

Figura 41. Menú de aplicación AJAX ............................... . .......................... 122

Figura 42. Ingreso de usuario (Aplicación AJAX) ............................... . ...... 123

Figura 43. Inicio del aplicativo AJA X ............................... . .......................... . 125

Figura 44. Detener Aplicativo AJAX ............................... . ........................... . 126

Figura 45. Inicio del servidor jakarta ............................... . .......................... . 127

Figura 46. Inicio del programa ScreenShot ............................... . ................ 127

Figura 47. Inicio de programa Imp_Port_Serial ............................... . ......... 128

Page 13: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

13

INTRODUCCIÓN

Las tecnologías Web están acaparando gran parte del mercado, con

nuevas herramientas e implementaciones para el control industrial, la

enseñanza y las comunicaciones, es un hecho indubitable la extensa

variedad de posibilidades y flexibilidad en el campo tecnológico que

ofrece esta poderosa herramienta para soluciones ingenieriles

alternativas, aunque por otra parte , se estiman cuantiosos problemas a

resolver en cuestión de seguridad y fallos en la Internet . A pesar de estos

inconvenientes, no podemos negar el impacto social, cient ífico y

tecnológico que estas nuevas tecnologías están generando a nivel global,

dando paso a una nueva revolución, que bien podría llamarse “la

revolución industrial de la información”. Incluir la enseñanza de estas

tecnologías ayudaría en demasía a la nueva generación de profesionales

Colombianos, sin embargo, la mayoría de los institutos de educación

superior no cuenta con los estándares mínimos de calidad necesarios

para ofrecer este tipo de enseñanza, o no lo ven necesario, ya que en

cierto modo hay una inversión financiera que “frena” en primera estancia,

las iniciativas de los entusiastas en el tema. Una solución para estos

inconvenientes es utilizar software libre dejando el código abierto para

mejoras futuras y abriendo un nuevo campo investigativo que genere

soluciones a largo y mediano plazo. El trabajo de grado que se presenta a

continuación expone las bases necesarias para el “Control Vía Web” de un

manipulador robótico con 5 grados de libertad de configuración

angular, utilizando herramientas informáticas libres como JAVA, HTML,

JAVASCRIPT, JSP entre otras, la tarjeta de control para mover los

servomotores se basa en el pic 16F628A de la serie Microchip

programado en Assembler ( también es software libre), el código y el

diseño del hardware esta rá abierto para mejoras futuras y a que el

manipulador formará parte del laboratorio de robótica de la Universidad de

Pamplona. La iniciativa del proyecto es dar comienzo a muchas más

Page 14: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

14

investigaciones en el campo del control a través de Internet, además

mejorando algunos aspectos del software, puede incluirse en la

enseñanza de materias como robótica, con programas de simulación

tridimensional y cinemática inversa y directa, para ejecutar movimientos

automatizados solo con el ingreso de las coordenadas de tra bajo.

Page 15: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

15

1. OBJETO

En Colombia se observa a través de los últimos años un auge en la

tendencia de conexión a Internet, a pesar de ser un país subdesarrollado

se puede aprovechar esta demanda de servicio para crear sistemas de

monitores y mando a distancia a través de la Web abaratando costos y

abriendo la posibilidad de diseñarlos directamente en nuestra propia

patria. Aprovechar esta tecnología vanguardista , es un punto clave para el

desarrollo tecnológico colombiano y los entes educativos deberían

propiciar el espíritu investigativo tomando la iniciativa por cuenta propia.

Nuestra universidad no es la excepci ón y ha desarrollado los “semilleros de

investigación”, que pueden dar solución ha problemas en mediano y largo

plazo; en esa tónica es factible replantear algunas formas de

enseñanza como se expone a continuación, beneficiando directamente al

estudiantado y al mismo ente educativo.

Los Manipuladores Electromecánicos frecuentemente forman parte en el

aprendizaje de los estudiantes de Ingeniería Mecatr ónica, e inclusive, la

construcción y control de los ya mencionados se lleva a cabo en un curso

del programa de nuestra universidad; sin embargo, hoy en día las

tecnologías y las carreras hibridas (Mecatrónica es una carrera hibrida)

están dando paso a nue vas variantes en la solución de problemas

ingeniériles, y no podemos desconocer el impacto social, científico y

tecnológico que las aplicaciones Web están causando en nuestro

entorno.

Por tal razón, hace falta complementar la cátedra, introduciendo

conceptos y aplicaciones de estas nuevas herramientas, con el objetiv o

de que como ingeniero , se esté mejor preparado ante el mercado laboral

cada vez mas competitivo. La implementación de control vía Web podría

ser implementada conjuntamente en materias de á rea profesionales,

Page 16: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

16

particularmente para ingeniería Mecatrónica (Aunque también se

relacionen con otras carreras como la Ingeniería Electrónica, Sistemas y

porque no, la Mecánica) como Robótica, Control, Programación

Mecatrónica, que beneficiarían al estudi antado con una base teórica -

práctica en la realidad de su profesión.

Page 17: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

17

2. PROBLEMA

Actualmente la Universidad de Pamplona no cuenta con un manipulador

electromecánico para las prácticas en el laboratorio de robótica. El que se

ofrecía con dicha finalidad, esta averiado y su reparación requiere de

técnicos altamente calificados, sumándole además gastos econ ómicos.

Por otro lado, al ente educativo le c onviene en alto grado apoyar las

investigaciones para crear nuevas tecnologías en la enseñanza , como se

propone en el presente trabajo . Un pequeño paso en esta dirección, se da

al utilizar software libre, es imprescindible que en el ámbito estudiantil se

aprecie y conozca estas herramientas, ya que están en su punto álgido y

desconocer su impacto o no estar fam iliarizado con ellas conlleva a la

formación de profesionales con pocas alternativas ingenier iles para

solventar los problemas en el campo laboral.

Page 18: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

18

3. DELIMITACIÓN Y METODOLOGÍA

3.1 OBJETIVO GENERAL

- Diseñar y construir un brazo robótico, manipulado po r medio de la

red Internet

3.2 OBJETIVOS ESPECIFICOS

- Diseñar y ensamblar un brazo robótico de cinco grados de libertad

- Diseñar y construir una tarjeta para el control del manipulador

- Diseñar Software para manipular vía Web el robot

- Elaborar un manual para el manejo de Software y Hardware

3.3 ACOTACIONES

Este trabajo no pretende conformar un sistema completamente terminado

que maneje todas las variables necesarias, sino hacer una primera

versión para que sea completada y perfeccionadas posteriormente, el

software y el hardware entregado es libre y el autor no se hace

responsable por daños y perjuicios que se puedan ocasionar por errores no

detectados en la fase de prueba o por negligencia en el uso indebido

por parte del usuario.

3.4 METODOLOGÍA

La puesta en marcha del sistema de Robótica -Remota (este proyecto solo

se limita a la parte de Actuación -Remota), combina varios lenguajes

informáticos en los que destacaremos a Java, en el cual recaerá gran

Page 19: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

19

parte de la funcionalidad que va tener el cont rol por medio de la Web. El

manipulador escogido para el proyecto es un robot angular de 5 grados de

libertad. Este, aunque no puede rivalizar con los robots actuales

utilizados con fines comerciales, poseen ciertas características que lo

hacen muy interesantes desde el punto de vista didáctico.

La primera parte del proyecto consistirá en el ensamble de las piezas del

brazo robótico, incluyendo la adaptación de los servomotores en las

articulaciones móviles, luego se diseña y construye lo que será su tarje ta

de control o la interfaz entre el PC y el manipulador. Esta, se realizará por

medio del protocolo de comunicaciones RS -232 utilizando para tal fin una

tarjeta, basada en el Pic 16F628 A de microchip (Por economía, en

aplicaciones mas robustas se descar taría dicha solución). La tarjeta

contará con 6 salidas que controlaran las articulaciones y la pinza del

robot, el hardware y el software, estarán abiertos en caso de querer

ampliar sus capacidades (incluir entradas o salidas); para la transmisión de

datos se contará con el circuito integrado MAX232, con el cual,

podremos elevar o atenuar las señales requeridas en los niveles RS232.

En la segunda parte del proyecto entraremos en un campo de

investigación. Se hará contemplando la programación necesaria par a el

control en primera estancia entre el PC y el brazo robótico, luego,

establecer conexiones TCP/IP entre dos maquinas remotas, para tal fin la

primera opción que se tiene es Java, se estudiará la posibilidad de utilizar

bases de datos como MSQL, y sof tware como VBScript, JavaScrip,

Ethernet, Labview entre otros. La combinación inteligente y consecuente

con nuestros fines acompañados de la experiencia que el director y el

codirector aporten, nos hará escoger una u otra herramienta.

Finalmente, concluiremos con la interfaz gráfica, se ha pensado en un

applet de java, sin embargo es factible cambiar dependiendo de las

circunstancias que en adelante acontezcan. Esta interfaz contará con una

Page 20: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

20

ventana de visualización en la cual se transmitirán imágenes del br azo

robótico en tiempo de ejecución. La documentación respectiva estará

incluida en un catalogo de instrucciones para el software y el hardware. Es

importante recalcar que este proyecto estará abierto para mejoras

futuras.

Page 21: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

21

4. MARCO TEÓRICO

4.1 ROBÓTICA Y TECNOLOGÍAS WEB

En los últimos años se ha experimentado un considerable avance en el

ámbito del desarrollo de aplicaciones Web, tales como la realidad virtual,

sistemas remotos, Telemática. Una de las consecuencias directas de este

avance es el aumento de la flexibilidad, en términos temporales y

espaciales del acceso e implementación de tecnologías, que solventan

problemas en casi todos los campos. Las consideraciones anteriores

tienen además igual significado en el ámbito de los robots pues

constituyen sistemas que típicamente requieren ser operados a distancia en

situaciones en que el robot deba llevar a cabo sus tareas en entornos

peligrosos.

Existen una serie de conceptos relacionados con la posibilidad de

interactuar con un robot que se encuentra en una ubicación remota [1]:

Operación-Remota: extensión de capacidades sensoriales y destrezas

humanas a una localización remota.

Actuación-Remota: aspectos específicos de la Operación -Remota

relacionada con la generación de órdenes a los actuadores.

Sensorización-Remota: aspectos específicos de la Operación -Remota

para la captación y visualización de la información sensorial.

Robótica-Remota: forma evolucionada de la Operación -Remota

caracterizada por una aumen to de la autonomía en el sistema remoto

manteniendo una intervención significat iva del operador humano para la

Page 22: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

22

supervisión u Operación-Remota directa.

Presencia-Remota: situación ideal en la que el operador se “siente”

presente en el lugar remoto.

Realidad-Virtual: utiliza la visión de un observador, de modo que el

usuario tiene la sensación de moverse en un mundo virtual.

Los sistemas de robótica han sido extensamente aplicados en la

automatización industrial, construcción industrial, exploración del es pacio,

construcción inteligente, cirugías, servicios militares y también en nuestra

vida diaria. Varios métodos de control remoto han sido desarrollados para

sistemas robóticas tales como radiofrecuencia, microondas, redes de

computadores, etc. Hoy en día, los servicios de redes de computadores

son utilizados ampliamente en nuestra vida diaria, tales como FTP,

Telnet, the World Wide Web. E -mail, etc. En consecuencia es muy

conveniente usar el Internet para el control de robots y los usuarios

aumentarán en el futuro. Durante la última década, muchos

investigadores han estado usando el Internet como un medio de

transmisión de comandos que pueden controlar robots y obtener señales de

realimentación. Aunque el Internet tiene muchas ventajas en una

variedad de campos, usándolo para control de robots inteligentes también

tiene algunas limitaciones, tales como el problema del retardo de tiempo

incierto, la perdida de datos y la seguridad en la transmisión [2].

4.2 COMUNICACIONES BASADAS EN EL PROTOCOLO TCP

El protocolo TCP (Transfer Control Protocol) funciona en el nivel de

transporte, basándose en el protocolo de red IP (Internet Protocol). IP

proporciona comunicaciones no fiables y no basadas en conexión, muy

dependientes en saturaciones en la red, caídas de nodos, etc. Por el

contrario, TCP está orientado a conexión y proporciona comunicaciones

Page 23: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

23

fiables basadas en mecanismos de red que gestionan el control de flujo de

paquetes y de congestión en los nodos.

El control de flujo aludido es una característica important e en el

funcionamiento del protocolo TCP, evita que los nodos que envían

información puedan saturar a los que reciben; para lograr este objetivo, el

protocolo TCP utiliza de manera interna un mecanismo de sincronización

basada entre el cliente y el servido r [3].

4.3 LENGUAJE DE PROGRAMACIÓN JAVA

Java es un lenguaje de programación con el que podemos realizar

cualquier tipo de programa. En la actualidad es un lenguaje muy extendido

y cada vez cobra más importancia tanto en el ámbito de Internet como en la

informática en general. Está desarrollado por la compañía Sun

Microsystems con gran dedicación y siempre enfocado a cubrir las

necesidades tecnológicas más punteras.

Una de las principales características por las que Java se ha hecho muy

famoso es que es un lenguaje independiente de la plataforma. Eso quiere

decir que si hacemos un programa en Java podrá funcionar en cualquier

ordenador del mercado. Es una ventaja significativa para los

desarrolladores de software, pues antes tenían que hacer un programa

para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc.

Esto lo consigue porque se ha creado una Máquina de Java para cada

sistema que hace de puente entre el sistema operativo y el programa de

Java y posibilita que este último se entienda perfec tamente [4].

La independencia de plataforma es una de las razones por las que Java

es interesante para Internet, ya que muchas personas deben tener acceso

con ordenadores distintos. Pero no se queda ahí, Java está

desarrollándose incluso para distintos tip os de dispositivos además del

Page 24: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

24

ordenador como móviles, agendas y en general para cualquier cosa que

se le ocurra a la industria.

Java fue pensado originalmente para utilizarse en cualquier tipo de

electrodoméstico pero la idea fracasó. Uno de los fundadore s de Sun

rescató la idea para utilizarla en el ámbito de Internet y convirtieron a Java en

un lenguaje potente, seguro y universal gracias a que lo puede utilizar todo

el mundo y es gratuito. Una de los primeros triunfos de Java fue que

se integró en el navegador Netscape y permitía ejecutar programas dentro

de una página W eb, hasta entonces impensable con el HTML [4].

Actualmente Java se utiliza en un amplio abanico de posibilidades y casi

cualquier cosa que se puede hacer en cualquier lenguaje se puede h acer

también en Java y muchas veces con grandes ventajas. En lo que

respecta al proyecto , con Java podemos programar páginas W eb

dinámicas, con accesos a bases de datos, utilizando XML, con cualquier

tipo de conexión de red entre cualquier sistema. En gene ral, cualquier

aplicación que deseemos hacer con acce so Web se puede hacer

utilizando Java.

4.3.1 Clases, Objetos y métodos . Las clases proporcionan la estructura

de los objetos y los mecanismos para fabricar objetos a partir de una

definición de clase. Las clases definen métodos (rutinas de programa) que

son colecciones de código ejecutable los cuales manejan datos

almacenados en los objetos. Los métodos proporcionan el

comportamiento de los objetos de una clase. Desde el punto de vista de la

programación estructurada, una clase se asemejaría a un módulo, los

atributos a las variables globales de dicho módulo, y los métodos a las

funciones del módulo [4].

Podemos definir objeto como el encapsulamiento de un conjunto de

operaciones (métodos) que pueden ser i nvocados externamente, y de un

estado que recuerda el efecto de los servicios.

Page 25: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

25

Un objeto además de un estado interno, presenta una interfaz para poder

interactuar con el exterior. Es por esto por lo que se dice que en la

programación orientada a objetos "s e unen datos y procesos", y no como

en su predecesora, la programación estructurada, en la que estaban

separados en forma de variables y funciones.

Un objeto consta de [5]:

Tiempo de vida: La duración de un objeto en un programa siempre

está limitada en el tiempo. La mayoría de los objetos sólo existen

durante una parte de la ejecución del programa. Los objetos son

creados mediante un mecanismo denominado instanciación, y

cuando dejan de existir se dice que son destruidos.

Estado: Todo objeto posee un esta do, definido por sus atributos.

Con él se definen las propiedades del objeto, y el estado en que se

encuentra en un momento determinado de su existencia.

Comportamiento: Todo objeto ha de presentar una interfaz,

definida por sus métodos, para que el resto de objetos que

componen los programas puedan interactuar con él.

El equivalente de un objeto en el paradigma estructurado sería una

variable. Así mismo la instanciación de objetos equivaldría a la

declaración de variables , y el tiempo de vida de un objet o al ámbito de

una variable.

4.3.2 Applets. Entre las diversas ventajas que ofrece Java, su

independencia de la plataforma en la que se van a ejecutar las

aplicaciones resulta de especial utilidad para servir de soporte a una de

sus posibilidades mas notables, la distribución de programas asociados a

páginas Web y su ejecución a través de los navegadores.

Los programas de Java diseñados e implementados para su ejecución en un

navegador se denominan applets. Cualquier ordenador que disponga

de un navegador con máquina virtual Java (JVM) podrá ejecutar estos

Page 26: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

26

programas, independientemente del procesador, arquitectura y sistema

operativo que conformen la máquina [4].

Las mayores ventajas de los applets son [5]:

La programación general de un applet es igual a la de una

aplicación, siendo necesario únicamente tener en cuenta unas

pocas reglas especificas a seguir.

Su ejecución es segura, en el sentido de que el usuario no podrá

sufrir consecuencias negativas derivadas de su utilización; por

ejemplo borrado de datos en el disco, establecimiento de

comunicaciones no deseadas, etc.

Entre sus mayores desventajas, podemos destacar [5]:

No son tan eficientes en ejecución como sus más directos

competidores, los ActiveX, ni tan “ligeros” en descarga como el

HTML dinámico.

Por motivos de seguridad, tienen restricciones en su ejecución, no

se puede leer ni escribir de unidades de disco, solo se pueden

establecer comunicaciones entre el servidor Web utilizado y el

ordenador del cliente, etc. Esta característica presenta la o tra “cara

de la moneda” respecto a la segunda ventaja expuesta

anteriormente. Existen casos en los que conviene saltarse, de

forma controlada, estas restricciones (en el proyecto se hizo). Java

incorpora la manera de hacerlo, actuando sobre el Security

Manager que incorpora JVM.

La tendencia de Microsoft es la de no incorporar la máquina virtual

Java en su programa Explorer; debido a su cuota de mercado esto

supone un serio problema a la hora de universalizar el uso de

applets.

Page 27: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

27

4.3.3 Socket-Java. En java, las comunicaciones TCP se realizan

utilizando la clásica abstracción de socket. Los socket nos permiten

realizar establecer y programar comunicaciones sin tener que conocer los

niveles inferiores sobre los que se asientan [5].

Para identificar el destino de los paquetes de datos, los sockets utilizan

los conceptos de dirección y puntero. La dirección se refiere a la máquina

a la que se dirigen los datos; se determina gracias a la resolución de

nombres que proporcionan los DNS o simplemente aportando al sock et,

de manera directa, la dirección IP del nodo destino.

Puesto que una misma máquina (nodo) puede hacerse cargo de recoger

varias comunicaciones diferentes de datos (habitualmente ligadas a

distintos servicios), existe la necesidad de proporcionar un meca nismo

que nos permita distinguir los paquetes que llegan relacionados con los

distintos servicios ofrecidos (correo, news, Web, etc.); este mecanismo

son los puertos. Los puertos se representan con valores enteros, que no

deben coincidir para diferentes se rvicios.

Los datos que se envían a un nodo con dirección IP 138.100.48.54 y

puerto 6000 acabaran siendo tratados por programas diferentes

(servidores) que los enviados al mismo nodo (138.100.48.54) y puerto

7000. Este mecanismo no es tan diferente al que u samos en el correo

ordinario; además a la dirección de la casa a la que enviamos una carta,

indicamos la persona a la que se dir ige (que equivaldría al puerto).

4.3.3.1 Establecimiento de comunicaciones (Socket -Java). Java

proporciona dos clases de abstrac ción de comunicaciones TCP:

- Procesos cliente (Socket).

- Procesos servidor (ServerSocket).

Page 28: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

28

A continuación se muestra el esquema básico para comunicaciones TCP

con sockets java [5].

Figura 1. Esquema básico para el establecimiento d e comunicaciones TCP pormedio de sockets

1 El programa que proporciona el servicio (programa servidor) crea

una instancia de la clase ServerSocket, indicando el puerto

asociado al servicio: ServerSocket.SocketServidor = new

ServerSocket(Puerto);

2 El programa se proporciona al servicio invoca el método accept

sobre el socket de tipo ServerSocket . Este método bloquea el

programa hasta que se produce una conexión por parte de un

cliente: --SocketServidor.accept();

3 El método accept devuelve un socket de tipo Socket, con el que se

realiza la comunicación de datos del cliente al servidor: Socket

ComunicaConCliente = SocketServidor.accept();

4 El programa cliente crea una instancia de tipo Socket, a la que

proporciona la dirección del nodo destino y el puerto del se rvicio:

Socket SocketCliente = new Socket (Destino, Puerto);

5 Internamente, el socket del cliente trata de establecer

comunicación con el socket de tipo ServerSocket existente en el

Page 29: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

29

servidor; cuando la comunicación se establece es cuando

realmente se produce el paso 3 del diagrama.

6 Con los pasos anteriores completados se puede empezar a

comunicar datos entre el cliente (o clientes) y el servidor.

4.4 JSP

JSP es un acrónimo de Java Server Pages , que en castellano vendría a

decir algo como Páginas de Servidor Ja va. Es, pues, una tecnología

orientada a crear páginas W eb con programación en Java.

Con JSP podemos crear aplicaciones W eb que se ejecuten en variados

servidores Web, de múltiples plataformas, ya que Java es en esencia un

lenguaje multiplataforma. Las pág inas JSP están compuestas de código

HTML/XML mezclado con etiquetas especiales para programar scripts de

servidor en sintaxis Java. Por tanto, las JSP podremos escribirlas con

nuestro editor HTML/XML habitual.

El motor de las páginas JSP está basado en los servlets de Java -

programas en Java destinados a ejecutarse en el servidor -, aunque el

número de desarrolladores que pueden afrontar la programación de JSP

es mucho mayor, dado que resulta mucho más sencillo aprender que los

servlets.

En JSP creamos páginas de manera parecida a como se crean en ASP o

PHP -otras dos tecnologías de servidor -. Generamos archivos con

extensión .jsp que incluyen, dentro de la estructura de etiquetas HTML,

las sentencias Java a ejecutar en el servidor. Antes de que sean

funcionales los archivos, el motor JSP lleva a cabo una fase de traducción de

esa página en un servlet , implementado en un archivo class (Byte

codes de Java). Esta fase de traducción se lleva a cabo habitualmente

cuando se recibe la primera solicitud de la página . jsp, aunque existe la

opción de precompilar en código para evitar ese tiempo de espera la

primera vez que un cliente solicita la página [6].

Page 30: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

30

4.5 JAVASCRIPT

JavaScrip es un lenguaje de programación que se utiliza pri ncipalmente

para crear páginas Web dinámicas. Una página Web dinámica es aquella

que incorpora efectos como texto que aparece y desapare ce,

animaciones, acciones que se activan al pulsar botones y ventanas co n

mensajes de aviso al usuario [7].

Como tantas otras aportaciones al mundo www, fue Netscape quien inició

la implementación de JavaScript (aunque al principio no se llamaba así), y

posteriormente, una alianza entre Netscape y Sun, creadora del lenguaje

Java, permitió que JavaScript tomase la debida consistencia, definiéndose

como una variante de Java, pero mucho más simple de usar. Esto no

significa que JavaScript sea Java simplificado o reducido. Salvo el nombre

y la sintaxis, JavaScript no tiene mucho en común con Java, pero cumple

su propósito de lenguaje auxiliar del HTML.

Al igual que Java, JavaScript es un lenguaje orientado a objetos

propiamente dicho, ya que dispone de Herencia, si bien esta se realiza

siguiendo el paradigma de programación basada en prototipos , ya que las

nuevas clases se generan clonando las clases base (prototipos) y

extendiendo su funcionalidad. Javascript se puede incluir en cualquier

documento HTML, o todo aquel que termine traduciéndose en HTML en el

navegador del cliente; como por ejemplo PHP o ASP.

Uno de los problemas más graves que tiene JavaScript es que cada

navegador tiene un nivel de lenguaje diferente (incluso alguno s hacen

caso omiso a los estándares), hay distintas versiones de l lenguaje oficial,

y hay versiones de lenguaje que sólo funcionan en un navegador

concreto. Esto propicia que cuando en una sesión el navegador ha

cargado un cierto número de páginas con código JavaScript, es raro que

todas ellas contengan código cien por cien compatible con el navegador, y

éste puede acabar colgándose, no cargando correctamente las páginas, o

no ejecutando los programas JavaScript que éstas contienen.

Page 31: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

31

Otro aspecto que hay que acotar cuando se i ncluya código JavaScript en

páginas Web, es que el cliente, tal vez, tenga desactivado el JavaScript de

su navegador; en muchos casos incluso desconoce cómo activarlo [7]. Por

ello, no es recomendable basar en JavaScript aspectos esenciales del

funcionamiento de una página.

4.6 HTML

El HTML (Hyper Text Markup Language) es un lenguaje que sirve para

escribir hipertexto, es decir, documentos de texto presentado de forma

estructurada, con enlaces (links) que conducen a otros documentos o a

otras fuentes de información (p or ejemplo bases de datos) que pueden

estar en nuestra propia máquina o en máquinas remotas de la red. Todo

ello se puede presentar acompañado de cuantos gráficos estáticos o

animados y sonidos seamos capaces de imaginar [8].

4.7 XML

XML significa eXtensible Markup Language, o lenguaje de anotación

extensible. Ya conocemos el lenguaje HTML ( hypertext markup

language), lenguaje de anotación para páginas W eb que permite

navegación tipo hipertexto; sin em bargo, XML no es sólo un lenguaje, es

una forma de especificar lenguajes, de ahí lo de extensible. Todo lenguaje

que se exprese de una forma determinada puede ser XML. Por lo tanto,

XML no es un lenguaje para hacer mejores páginas W eb, sino un

lenguaje para información auto-descrita, o al menos, auto -descrita si las

etiquetas están bien puestas [8].

XML se inició como un subconjunto de SGML ( structured generalized

markup language), un standard ISO para documentos estructurados que

es sumamente complejo para poder servir documentos en la W eb. XML

es algo así como SGML simplificado, de forma que una aplicación no

necesita comprender SGML completo para interpretar un documento, sino

Page 32: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

32

sólo el subconjunto que se defina. Los editores SGML, sin embargo,

pueden comprender XML.

Por tanto, no debe pensarse que XML es para crear páginas Web, o algo

parecido a las páginas Web. XML es un lenguaje que cambia el

paradigma de programación: de basada en las funciones u objetos a la

programación basada en el documento . XML se puede usar para cambiar

totalmente el paradigma de publicación; de un programa que recibe unas

entradas y produce unas salidas, se pasa a un documento que genera

otro documento, o bien programas que toman documentos y producen

otros documentos. Por eso, tam bién, y, en general, salvo en entornos de

servicios W eb, lo normal es que el XML se use en el servidor, y se sirva

otro tipo de documentos, HTML, por ejemplo, que se obtienen a base de

una serie de transformaciones. Precisamente, esto hace que los

documentos XML se usen dentro de entornos de aplicaciones . Este

entorno de aplicaciones permite publicar documentos XML, que, antes de

ser enviados al cliente, sufrirán una serie de transformaciones para

adaptarlo a los requisitos del mismo.

4.8 XHTML

Acrónimo inglés de eXtensible Hypertext Markup Language (lenguaje

extensible de marcado de hipertexto), es el lenguaje de marcado pensado

para sustituir a HTML como estándar para las páginas Web. En su versión

1.0, XHTML es solamente la versión XML de HTML, por lo que tiene,

básicamente, las mismas funcionalidades, pero cumple las

especificaciones, más estrictas, de XML. S u objetivo es avanzar en el

proyecto del World Wide Web Consortium de lograr una Web semántica,

donde la información, y la forma de presentarla estén claramente

separadas [9].

Page 33: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

33

4.9 CSS

CSS es un lenguaje de hojas de estilos creado para controlar el aspecto o

presentación de los documentos electrónicos definidos con HTML y

XHTML, CSS es la mejor forma de separar los contenidos y su

presentación y es imprescindible para crear páginas Web complejas [10].

Separar la definición de los contenidos y la definición de su aspecto

presenta numerosas ventajas, ya que obliga a crear document os HTML /

XHTML, bien definidos y con significado completo. Además, mejora la

accesibilidad del documento, reduce la complejidad de su mantenimiento

y permite visualizar el mismo documento en infinidad de dispositivos

diferentes.

Al crear una página Web, se utiliza en primer lugar el lenguaje HTML /

XHTML, para marcar los contenidos, es decir, para designar la función de

cada elemento dentro de la página: párrafo, titular, texto destacado, tabla,

lista de elementos, etc.

Una vez creados los contenidos, se utiliza el lenguaje CSS para definir el

aspecto de cada elemento: color, tamaño y tipo de letra del texto,

separación horizontal y vertical entre elementos, posición de cada

elemento dentro de la página, etc [10].

4.10 ARCHIVOS *.BAT

Un batch (o bat) es un archivo de procesamiento por lotes , se trata de

archivos de texto sin formato, guardados con la extensión *.bat que

contienen un conjunto de comandos DOS. Cuando se ejecuta este

archivo bat, los comandos contenidos son ejecutados en grupo , de forma

secuencial, permitiendo automatizar diversas tareas [11].

Cualquier comando DOS puede ser utilizado en un archivo batch, existen

homólogos en otros sistemas operativos diferentes a Windows, por

ejemplo en linux son utilizados los archivos .sh , con el mismo fin.

Page 34: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

34

4.11 SERVIDOR WEB

Un servidor W eb es un programa que sirve para atender y responder a las

diferentes peticiones de los navegadores, proporcionando los recursos

que soliciten usando el protocolo HTTP o el protocolo HTTPS (la versión

cifrada y autenticada). Un servidor W eb básico cuenta con un esquema

de funcionamiento muy simple, basado en ejecutar infinitamente el

siguiente bucle [12]:

1. Espera peticiones en el puerto TCP indicado (el estándar por

defecto para HTTP es el 80).

2. Recibe una petición.

3. Busca el recurso.

4. Envía el recurso utilizando la misma conexión por la que recibió

petición.

5. Vuelve al segundo punto.

Un servidor W eb que siga el esquema anterior cumplirá todos los

requisitos básicos de los servidores HTTP, aunque sólo podrá servir

ficheros estáticos.

A partir del anterior esquema se han diseñado y desarrollado todos los

servidores de HTTP que existen, variando sólo el tipo de peticiones

(páginas estáticas, CGIs, Servlets, etc.) que pueden atender, en función

de que sean o no sean multi -proceso o multi-hilos, etc.

4.12 TECNOLOGÍA AJAX

En realidad, el término AJAX es el acrónimo de Asynchronous JavaScript

+ XML, que se puede traducir como “JavaScript asincrono + XML”.

Ajax no es una tecnología (ver figura 2) es realmente muchas tecnologías,

cada una floreciendo por su propio mérito, uniéndose en poderosas

nuevas formas. AJAX incorpora [13]:

Page 35: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

35

- Presentación basada en estándares usando XHTML y CSS.

- Exhibición e interacción dinámicas usando el Document Object

Model (DOM).

- XML, XSLT y JSON, para el intercambio y manipulación de

información.

- XMLHttpRequest, para el intercambio asíncrono de la información.

- JavaScript poniendo todo junto.

Figura 2. Tecnologías agrupadas bajo el co ncepto AJAX

El modelo clásico de aplicaciones Web en la mayoría de las acciones del

usuario en la interfaz (pinchar un botón, seleccionar un valor de una lista,

etc.) disparan un requerimiento HTTP al servidor Web. El servidor efectúa

un proceso (recopila información, procesa números, hablando con varios

sistemas propietarios), y le devuelve una pagina HTLM al cliente.

En el siguiente esquema, se muestra el mo delo clásico de una aplicación

Web y el modelo de una aplicación Web utilizando AJAX.

Page 36: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

36

Figura 3. Comparación gráfica del modelo tradicional de aplicaciones Web y elmodelo propuesto por AJAX

Esta técnica tradicional para crear aplicaciones Web funciona

correctamente, pero no crea una buena sensación al usuario. Al realizar

peticiones continuas al servidor, el usuario debe esperar a que se

recargue la página con los cambios solicitados. Si la aplicación debe

realizar peticiones continuas, su uso se convierte en algo molesto.

AJAX permite mejorar completamente la interacción de l usuario con la

aplicación, evitando las recargas constantes de la pagina, ya que el

intercambio de información con el servidor se produce en un segundo

plano.

Las aplicaciones construidas con AJAX elimina n la recarga constante de

páginas mediante la creación de un elemento intermedio entre el usuario

y el servidor. La nueva capa intermedia de AJAX mejora la respuesta a la

aplicación, ya que el usuario nunca se encuentra con una ventana del

navegador vacía esperando la respuesta del servidor.

Page 37: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

37

4.13 MICROCONTROLADOR

Un microcontrolador es un circuito integrado programable que contiene

todos los componentes de un computador. Se emplea para controlar el

funcionamiento de una tarea determinada y debido a su reducido tamaño,

suele ir incorporado en el propio artefacto al que gobierna. En su

memoria, solo reside un programa destinado a gobernar una aplicación

determinada; sus líneas de entrada /salida soportan el conexionado de los

sensores y actuadores del artefacto a controlar [14].

La industria Informática acapa ra gran parte de los microcontroladores que

se fabrican. Casi todos los periféricos del computador, desde el ratón o el

teclado hasta la impresora, son regulados por el programa de un

microcontrolador.

4.13.1 Programación de microcontroladores . Para este tipo de

dispositivos, utilizar lenguajes cercanos a la máquina (de bajo nivel)

representan un considerable ahorro de código en la confección de

programas, lo que es importante dada la limitación en la capacidad de

memoria de instrucciones. Los programas bie n realizados en lenguaje

Assembler optimizan el tamaño de la memoria que ocupan y su ejecución

es muy rápida.

Los lenguajes de alto nivel más empleados con microcontroladores son el

C y el BASIC, de los que existen varias empresas que comercializan

versiones de compiladores e intérpretes para diversas familias de

microcontroladores. En el caso de los PIC se destaca el compilador de C

PCM de la empresa CCS y el interprete PBASIC de PARALLAX.

4.13.2 Pic 16F628A. El PIC 16F628A es un microcontrolador CMOS

FLASH de 8 bits de arquitectura RISC capaz de operar con frecuencias de

reloj hasta de 20 MHz, disponible en cápsula DIP (doble hilera de pines)

y SOIC (Montaje superficial en forma cuadrada) de 18 pines [ver

anexo D].

Page 38: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

38

Posee Internamente un oscilador de 4 MH z y un circuito de Power-On

Reset que eliminan la necesidad de componentes externos y expanden a

16 el número de pines a utilizar como líneas de entrada/salida.

Adicionalmente, el PIC 16F628A proporciona una memoria de datos

EEPROM de 128x8 (128 Bytes), u na memoria de programa FlASH de

2024x14 (2K x 14 bits por localidad), una memoria de datos RAM de

propósito general de 224x8, un módulo CCP (captura/comparación/PWM), un

USART, 3 comparadores análogos, una referencia de voltaje

programable y tres temporiza dores. Estas y otras características lo hacen

ideal en aplicaciones automotrices, industriales, y de electrónica de

consumo, así como en equipos e instrumentos programables de todo tipo.

4.13.2.1 Organización de la memoria . El PIC 16F628A posee un

contador de programas de 13 bits, capaz de direccionar un espacio de

memoria de 8Kx14. Sin embargo, únicamente los primeros 2Kx14, desde

0000h hasta 07FFh, están implementados. Los vectores de reset e

interrupción se encuentran en las direcciones 0000h hasta 000 4h,

respectivamente. La pila (stack) es de 8 niveles, lo que significa que

puede soportar hasta 8 direcciones de retorno de subrutina. El espacio de

memoria RAM de datos es de 512x8, dividido en 4 bancos de 128 bytes

cada uno. Sin embargo, solo están imple mentados 330 bytes,

correspondiendo 224 al área de los registros de propósito general (GPR)

y 36 al área de registros de función especial (SFR). Los restantes 70

bytes implementados son espejos de algunos SFR de uso frecuente, así

como los últimos 16 GPR del banco 0. Esta característica agiliza el

acceso a estos registros, puesto que no siempre es necesario especificar

el banco donde se encuentran. La selección del banco de ubicación de un

SFR o un GPR particular se hace mediante los bits 6 (RP1) y 5 (RP0) del

registro STATUS [ver anexo D].

Page 39: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

39

4.13.2.2 Manejo de puertos. El PIC 16F628A (ver figura 4) cuenta con

dos puertos PORTA y PORTB, algunos pines de estos puertos de

entrada/salida son multiplexados con una función alternativa de los

periféricos del disposi tivo. Cuando un periférico es activado el pin no

puede ser usado para propósitos generales de entrada/salida.

Figura 4. PIC 16F628 (encapsulado DIP) [19]

El PORTA es un puerto de entrada de 8 bits. El pin RA4 esta multiplexado

con la entrada de reloj T0CK1. El pin RA5 es un disparador Schmitt solo de

entrada y no cuenta con controladores de salida. El resto de los pines RA5

de los puertos tienen un disparador Schmitt con todos los niveles de entrada

de datos y controladores de sal ida. Todos lo pines tienen bits de dirección

de datos (registros TRIS), mediante los cuales pueden

configurar estos como entradas o salidas (ver anexo D).

Un ‘1’ en el registro TRISA corresponde a poner el controlador

correspondiente de la salida en modo de alta impedancia, es decir, los

pines de PORTA se configuran como entradas de datos. Un ‘0’ en el

registro TRISA pone el contenido de la salida en el pin seleccionado, en

otras palabras los pines del puerto se configuran para la salida de datos.

Cuando se esta leyendo el registro PORTA este lee el estado de los pines

mientras que se le escriba, este escribirá en el puerto. Todas las

operaciones de escritura son operaciones de lectura – modificación –

escritura. La escritura al puerto implica que los pines del puerto sean

leídos primero y después este valor sea modificado y escrito en la salida

del puerto.

Page 40: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

40

Los pines del PORTA son multiplexados por un comparador y un voltaje

de referencia. La operación de estos pines es seleccionada por el control

de bits en el registro CMCON (comparador control register) y el registro

VRCON (voltage reference control register). Cuando es seleccionado

como entrada el comparador, los pines se leerán como 0’s.

TRISA controla la dirección de los pines RA, inclusive cuando este

comienza a usarse como entrada en el comparador. El usuario debe

cerciorarse de mantener los pines configurados como entradas, al usarlas

como entradas del comparador.

La dirección 0x05 hace referencia a la dirección de PORTA el cual reside

en el BANCO 0 y el TRISA reside en la misma dirección pero del BANCO

1.

El PORTB es un puerto bidireccional de 8 bits. Su registro de datos

correspondiente es TRISB. Un ‘1’ en el registro TRISB pone el dispositivo de

salida correspondiente en modo de alta impedancia. Un ‘ 0’ en el

registro TRISB pone el contenido de la salida en el pin seleccionado. Esto

es justo lo mismo que ocurre en TRISA.

El PORTB es multiplexado con interrupciones externas, tales como

USART, el módulo CCP y el reloj de entrada/salida TMR1.

Durante la lectura en el registro PORTB este lee el estado de los pines,

mientras que esta escribiendo este escribirá en el puerto. Todas las

operaciones en el proceso de escritura son leer – modificar –escribir. Por

eso escribir en el puerto implica que los pines del puerto sean primero que

todo leídos, y después su valor sea modificado y escrito en el puerto.

Cuatro de los pines del PORTB (7 - 4), tienen una interrupción en cambios de

características. Solo lo pines configurados como entradas pueden

causar que ocurran estas interrupciones. Los pines de entrada (RB7 –

RB4) son comparados con el antiguo valor trabajado en el PORTB.

Page 41: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

41

Para poder acceder a los distintos bancos, como se menciono

anteriormente se hace uso de los bits 5 y 6 del registro STATUS que

hacen posible realizar el acceso a los distintos bancos del

microcontrolador, esto es de suma importancia para poder realizar la

configuración de los puertos del PIC, ya que los registros PORTA y

PORTB se localizan en el BANCO 0 y sus correspondientes TRISA y

TRISB se localizan en el BANCO 1 (ver anexo D ) por lo que es necesario

realizar direccionamientos para poder cambiar el BANCO.

4.13.2.3 Usart. USART es el acrónimo de Universal

Synchronous/Asynchronous Receiver Transmitter , que traducido al

español viene a ser algo parecido a Transmisor y Receptor

Sincrono/Asincrono Universal .

Se trata de un periférico para la transmisión de datos en formato serie,

utilizando técnicas de transmisión sincrónica o asincrónica, según se

configure el periférico.

La USART del PIC 16F628A puede utilizarse de tres maneras diferentes

[ver anexo D]:

-Asincrono (full duplex)

-Sincrono Master (half duplex)

-Sincrono Slave (half duplex)

Este módulo, pemite enviar 8 o 9 bits por transmisión y tiene posibilidad de

alcanzar varias velocidades de transmisión, siendo lo mas importante, que

por ser una funcionalidad integrada al PIC, el programador logra

desentenderse de toda la complejidad del protocolo a nivel de capa 1 y es

suficiente con poner un dato en un registro del microcontrolador para

enviar y leer otro registro para recibir. A continuación, nos centraremos en

la comunicación asíncrona de 8 bits, pues es en ella en que se realiza la

transmisión de datos por parte de la tarjeta de control.

Page 42: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

42

En el modo asincrono, se utiliza RB2/TX/CK (pin 8) para la transmisión de

datos y RB1/RX/DT (pin 7) para la recepción. Estos pines deben estar

configurados como entradas (puestos en 1 en los registros TRIS

correspondientes).

Para comunicar 2 PIC utilizando el USART, es suficiente con con ectar los

pines RX y TX cruzados, es decir el pin TX del pic1 conectada con el pin

RX del pic2 y el pin RX del PIC1 con el pin TX del PIC2. Dado que los 2

microcontroladores utilizan los mismos voltajes (la norma TTL) no hay que

hacer más cambios. Por otro lado si se quiere comunicar un PIC con un

PC utilizando el puerto serie con la norma RS232 (que e s nuestro caso),

hay que tener en cuenta que esta norma utiliza voltajes distintos para

representar el 1 y el 0 que los microcontroladores. Por lo tanto será

necesario pasar tanto el TX como el RX por un módulo convertid or de

voltajes del tipo MAX232 (ver sección 4.17).

Inicialmente es necesario hacer una serie de configuraciones para que

pueda usarse el modo USART, esto incluye definir a que velocidad se va

a transmitir, el modo (sincrónico / asincrónico), con interrupciones, etc. A

continuación se presenta los registros que intervienen en dicha

configuración.

Registro TXSTA. Transmit Status and Control Register (Registro de

estado y control de transmisión)

Incluye:

baudios.

CSRC selecciona la fuente de reloj (interna, externa).

TX9 habilita transmisiones de 8 o 9 bits.

TXEN habilita transmisión.

SYNC selección de modo (sincrónico, asincrónico).

BRGH complementa el control en la generación de

Page 43: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

43

TRMT bit de estado del Transmit Shift Register

TX9D noveno bit de transmisión de datos.

Registro RCSTA. Receive Status and Control Register (Registro de

estado y control de recepción).

Incluye:

SPEN bit de habilitación del puerto serial.

RX9 configura la recepción de 8 o 9 bits.

SREN bit de habilitación de recepción simple.

CREN bit de habilitación de recepción continua.

ADDEN bit de habilitación de detección de dirección.

FERR bit bandera de error de framing.

OERR bit de error por sobreescritura.

RX9D noveno bit de recepción de datos.

Registro SPBRG. Genera los pulsos, el reloj de la transmisión. Existe un

timer independiente de 8 bits que decrementa hasta 0 a partir del valor de

este registro. Dependiendo de la velocidad de transmisión que se quiera

conviene configurar en 0 o 1 el BRGH, y dependiendo de este valor se

configura en el SPBRG.

Registro PIE1. Incluye:

TXIE habilita interrupciones por transmisión de USART

RCIE habilita interrupciones por recepción de USART

Registro PIR1. Incluye:

TXIF bandera que indica que se enviado por USART

RCIF bandera que indica que se ha recibido por USART

Page 44: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

44

Registro TXREG. Registro que se debe escribir con el dato a enviar por

USART.

Registro RCREG. Registro que se debe leer al recibir un dato por

USART.

4.14 ¿QUE ES UN SERVOMOTOR?

Es un dispositivo sim ilar a un motor de corriente continua, con la

peculiaridad de posicionarse dentro de un rango y mantenerse fijo en

dicha posición. Esta conformado por un motor, una caja reductora y un

potenciómetro de realimentación . Los servomotores se utilizan

frecuentemente en sistemas de radio-control y robótica pero su uso no

esta limitado a estos.

4.15 NETMEETING

NetMeeting es una utilidad de telefonía que nos permite establecer

conferencias en tiempo real en Interne t con otras personas. Este software

viene incorporado de forma gratuita con Windows XP .

Las características de NetMeeting hacen posible realizar llamadas

mediante servidores de directorio, servidores de conferencia y páginas

Web. NetMeeting permite que resulte más fácil realizar llamadas a través

de Internet, la intranet de una organización, e incluso de un teléfono.

Se puede utilizar NetMeeting para enviar a los otros participantes en una

conferencia su imagen . Para enviar una imagen de vídeo, necesitará una

tarjeta de captura de vídeo y una cámara, o una cámara que admita Vídeo

para Windows.

Aunque no se tenga un sistema de vídeo, podrá recibir y ver la s imágenes

que le envíen. Si bien es cierto, que en una conferencia pueden participar

varias personas, sólo es posible intercambiar imágenes de vídeo con u na

de ellas.

Page 45: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

45

4.15.1 Realizar una llamada con NetMeeting . Para realizar una llamada se

ejecutan los siguientes pasos:

- Se va a la barra direcciones y se escribe un correo electrónico, el

nombre del equipo, un número de teléfono o una dirección IP.

- Se presiona el botón ’Llamar’.

La figura 5, muestra la barra de direcciones y el botón para llamar del

programa NetMeeting.

Figura 5. Iniciar llamada (NetMeesting)

4.15.2 Configuración de video en NetMeeting. Para configurar el video

en NetMeeting, se hará doble click sobre ‘Opciones…’ del menú

‘Herramientas’, luego abrimos la pestaña ‘Video’ que desplegará una

imagen similar a la figura que se muestra a continuación .

Page 46: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

46

Figura 6. Configuración de video (Net Meeting)

Para activar la cámara, debes presionar el botón ’Iniciar video’ (ver figura7).

Figura 7. Activación de cámara Web (NetMeeting)

4.16 PRINCIPIO DE TRANSMISIÓN EN SERIE

El concepto de las comunicaciones en serie es el si guiente, los datos son

enviados del emisor al receptor bit a bit a través de una única línea o

Page 47: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

47

circuito. El puerto serie toma 8, 16 o 32 bits en paralelo del bus del

computador y los convierte en un flujo de 8, 16 o 32 bits en serie. El

nombre de transmisión en serie viene de aquí, cada bit de información es

transmitido en serie de un sitio a otro [15].

En la practica en una transmisión en serie algunos bits pueden perderse o

bien ser añadidos y por lo tanto alterar el resultado final. Si un bit se

pierde o se añade, todos los bits sucesivos son cambiados de posición y

se obtiene un resultado incorrecto. Así que para establecer

comunicaciones en serie fiables se deben corregir posibles errores en la

transmisión.

4.16.1 Método de transmisión en serie . Existen dos métodos de

transmisión en serie que corrigen errores de bit. El primero es la

comunicación sincrona . El emisor y el receptor son sincronizados

usando una señal de reloj que indica el tiempo entre cada bit. Controlando

esta señal, el receptor puede determinar si se ha perdido o se ha añadido un

bit. Por ejemplo, imaginemos una cinta transportadora en la que un

producto pasa a través de un sensor cada cinco segundos, si el sensor

detecta algo antes de cinco segundos asume que es un objeto extraño y

suena la alarma, si después de cinco segundos no detecta nada asume

que el producto se ha perdido y suena la alarma. Un aspecto a tener en

cuenta en este tipo de comunicación es que si alguno de los extremos de

la comunicación pierde la señal de reloj, la comunicación finaliza.

El método alternativo, conocido como comunicación asincrona, es

añadir marcadores dentro del flujo de bits para seguir la pista a cada bit de

datos. Si se introduce un bit de comienzo que indica el comienzo de un

bloque de bits, la posición de cada bit puede ser determinada

temporizando los bits en periodos regulares. Enviando bits de comienzo al

principio de cada bloque de bits, los dos extremos no tienen que estar

sincronizados por una señal de reloj. Al utilizar bloques de pequeño

tamaño no hay tiempo para que el temporizador se desincronize. El único

Page 48: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

48

factor importante es que receptor y emisor tengan configurada la misma

velocidad en el puerto. Los datos se dividen en bloques de 5 a 8 bits

llamados palabras. El bit menos significativo de la pal abra se envía

primero y el más significativo el último. En la comunicación el emisor

codifica cada palabra añadiendo al principio de esta un bit de comienzo y

uno o dos bits de parada al final. Algunas veces se añade un bit de

paridad entre el último bit de la palabra y el bit de parada para comprobar

la integridad de los datos [15].

4.16.2 Estándar RS232. En los años 60, cada fabricante usaba un

interfaz diferente para comunicar un DTE (Data Terminal Equipment) y un

DCE (Data Communications Equipment). Cables, c onectores y niveles de

voltaje eran diferentes e incompatibles, por lo tanto, la interconexión entre

equipos de diferentes fabricantes requería el uso de convertidores de los

niveles de voltaje y la fabricación de cables y conectores especiales.

En 1969, el EIA (Electronic ---) junto con Bell Laboratories y otros

fabricantes establecieron un estándar para la interfaz entre DTE's y

DCE´s. El objetivo de este estándar era simplificar la interconexión de

equipos fabricados por diferentes firmas.

Este estándar llego a ser el RS-232-C (Recommended Standard number

232, revision C from the Electronic Industry Association). Un estándar

similar fue desarrollado en Europa por el CCITT (Comite Consultatif

Internatinale de Telegraphie et Telephonie) conocido como V.24

(descripción funcional) y V.28 (especificaciones eléctricas). El RS -232-C

fue adoptado por la mayor parte de fabricantes de terminales y

equipamiento.

En 1980 la creciente industria de los microcomputadores encontró el

estándar RS-232-C barato y apropiado para conectar periféricos al

microcomputador. El RS -232-C llego a ser rápidamente un estándar para

conectar al microcomputador: impresoras, cintas de backup, terminales y

otros microcomputadores.

Page 49: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

49

Como el estándar solamente soporta velocidades de transmisión hasta 20

kbps y distancias hasta 16 metros, se adoptaron nuevos estándares por la

EIA. El RS449 (descripción mecánica) y RS423 (descripción eléctrica) son

compatibles con el RS-232-C y se puede operar a velocidades de hasta

10 Mbps y alcanzar distancias d e hasta 1200 metros. Sin embargo, la

adopción de un nuevo estándar es un proceso largo y costoso. El RS -232-

C esta muy expandido y por lo tanto le queda bastante vida [15].

4.16.2.1 Descripción (RS232) . El estándar RS-232-C describe un interfaz

entre un DTE y un DCE que emplea un intercambio en serie de datos

binarios. En el se definen características eléctricas, mecánicas,

funcionales del interfaz y modos de conexión comunes. Las

características eléctricas incluyen parámetros tales como niveles de

voltaje e impedancia del cable. La sección mecánica describe los pines

[15].

4.16.2.2 Características eléctricas. Los niveles de voltaje descritos en el

estándar son los siguientes [15]:

Tabla 1. Características Eléctricas

Señales de datos "0" "1"Emisor (necesario) de 5 a 15 de -5 a -15 VoltiosReceptor (esperado) de 3 a 25 de -3 a -25 Voltios

Señales de control "Off" "On"Emisor (necesario) de -5 a -15 de 5 a 15 VoltiosReceptor (esperado) de -3 a -25 de 3 a 25 Voltios

Puede verse que los voltajes del emisor y el receptor son diferentes. Esta

definición de los niveles de voltaje compensa las perdidas de voltaje a

través del cable. Las señales son atenuadas y distorsionadas a lo largo

del cable. Este efecto es debido en gran parte a la capacidad del cable.

En el estándar la capacidad máxima es de 2500 pf (picoFaradios). La

capacidad de un metro de cable es normalmente de 130 pf. Por lo tanto,

la longitud máxima del cable esta limitada a unos 17 metros. Sin embargo,

Page 50: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

50

esta es una longitud nominal definida en el estándar y es posible llegar

hasta los 30 metros con cables de baja capacidad o utilizando

velocidades de transmisión bajas y mecanismos de corrección.

4.16.2.3 Características mecánicas

En el estándar no se hace referencia al ti po de conector que debe usarse.

Sin embargo los conectores más comunes son el DB-25 (25 pines) y el

DB-9 (9 pines). El conector hembra debe estar asociado con el DCE y el

macho con el DTE (ver figura 8).

Figura 8. Diagrama de los conectores DB-25 y DB-9

En la siguiente tabla puede verse la señal asociada a cada pin [15].

Tabla 2. Características Mecánicas

DB25Pin

DB9Pin Nombre EIA CCITT DTE-

DCE Nombre Formal

1 FG AA 101 Frama Ground2 3 TD BA 103 --> Transmitted Data3 2 RD BB 104 <-- Received Data4 7 RTS CA 105 --> Request To Send5 8 CTS CB 106 <-- Clear To Send6 6 DSR CC 107 <-- Data Set Ready7 5 SG AB 102 Signal Ground8 1 DCD CF 109 <-- Data Carrier Detect9 + P10 - P11 No asignado12 SDCD SCF 122 <-- Secondary Data Carrier13 SCTS SCB 121 <-- Secondary Clear To Send14 STD SBA 118 --> Secondary Transmitted15 TC DB 114 <-- Transmission Signal16 SRD SBB 119 <-- Secondary Received Data

17 RC DD 115 --> Receiver Signal ElementTiming

Page 51: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

51

18 No asignado

19 SRTS SCA 120 --> Secondary Request ToSend

20 4 DTR CD 108.2 --> Data Terminal Ready21 SQ CG 110 <-- Signal Quality Detector22 9 RI CE 125 <-- Ring Indicator23 CH/CI 111/112 <--> Data Signal Rate Selector24 DA 113 <-- Transmitter Signal25 No asignado

4.17 MAX232

El MAX232 es un circuito integrado que convierte lo s niveles de las líneas

de un puerto serie RS232 a niveles TTL y viceversa. Lo interesante es

que sólo necesita una alimentación de 5V, ya que genera internamente

algunas tensiones que son necesarias para el estándar RS232. Otros

integrados que manejan las líneas RS232 requieren dos voltajes, +12V y -

12V [ver anexo C].

Figura 9. Conexión del MAX232

El MAX232 soluciona la conexión necesaria para lograr comunicación

entre el puerto serie de una PC (ver figura 9) y cualquier otro circuito con

funcionamiento en base a señales de nivel TTL/CMOS.

Page 52: MANUEL BALLESTEROS CORZOvillanuevitas.galeon.com/diplomas/tesis_part1.pdf · CONTROL DE UN BRAZO ROBÓTICO POR MEDIO DE TECNOLOGÍAS WEB ... de los objetivos planteados. Al Ing. Leonardo

52

El circuito integrado posee dos conversores de nivel TTL a RS232 y otros

dos que, a la inversa, convierten de RS232 a TTL.

Estos conversores son suficientes para manejar las cuatro señales más

utilizadas del puerto serie del PC, que son TX, RX, RTS y CTS.

TX es la señal de transmisión de datos, RX es la de recepción, y RTS y

CTS se utilizan para establecer el protocolo para el envío y recepción de

los datos.