Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad...

242
REPUBLICA DE VENEZUELA UNIVERSIDAD "RAFAEL BELLOSO CHACIN" FACULTAD DE INGENIERIA ESCUELA DE ELECTRONICA DESARROLLO DE UN SISTEMA ROBOTICO PARA ELUDIR OBSTACULOS TRABAJO ESPECIAL DE GRADO PARA OPTAR AL TITULO DE INGENIERO EN ELECTRÓNICA. PRESENTADO POR: CHACIN, MARCO C.I. 13.609.650 SOCORRO, ROSELI C.I. 13.471.435 ASESORADO POR: MGS. HERMELINDA CAMACHO ING. ANGEL VILLALOBOS MARACAIBO, AGOSTO 1999

Transcript of Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad...

Page 1: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

REPUBLICA DE VENEZUELA

UNIVERSIDAD "RAFAEL BELLOSO CHACIN"

FACULTAD DE INGENIERIA

ESCUELA DE ELECTRONICA

DESARROLLO DE UN SISTEMA ROBOTICO

PARA ELUDIR OBSTACULOS

TRABAJO ESPECIAL DE GRADO PARA OPTAR AL TITULO DE INGENIERO EN ELECTRÓNICA.

PRESENTADO POR:

CHACIN, MARCO C.I. 13.609.650

SOCORRO, ROSELI C.I. 13.471.435

ASESORADO POR:

MGS. HERMELINDA CAMACHO

ING. ANGEL VILLALOBOS

MARACAIBO, AGOSTO 1999

Page 2: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

UNIVERSIDAD

Dr. Rafael Belloso Chacín

FACULTAD DE INGENIERIA ESCUELA DE ELECTRONICA

VEREDICTO

Nosotros los profesores, HERMELINDA CAMACHO, ANGEL VILLALOBOS y

PEDRO ROMERO, designados como Jurados Examinadores del proyecto de investigación:

"DESARROLLO DE UN SISTEMA ROBÓTICO PARA ELUDIR OBSTÁCULOS",

que presenta el bachiller: CHACIN, MARCO, titular de la Cédula de Identidad No. V-

13.609.650, nos hemos reunido para revisar dicho trabajo y después del interrogatorio

correspondiente, lo hemos APROBADO con la calificación de Veinte (20) puntos,

asignándole la mención Honorífica-Publicación, de acuerdo con las normas vigentes

aprobadas por el Consejo Académico de la Universidad Rafael Belloso Chacín, para la

evaluación de los trabajos Especiales de Grado, para el obtener el Titulo de: INGENIERO

EN ELECTRÓNICA.

En fe de lo cual firmamos, en Maracaibo, 13 de Agosto de 1999.

MGS. HERMELINDA CAMACHO ING. ANGEL VILLALOBOS

C.I. 3.328.682 C.I. 8.500.248

ING. PEDRO ROMERO C.I. 9.193.258

ING. PLACIDO MARTINEZ Decano de la facultad de Ingeniería

ii

Page 3: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

UNIVERSIDAD

Dr. Rafael Belloso Chacín

FACULTAD DE INGENIERIA ESCUELA DE ELECTRONICA

VEREDICTO

Nosotros los profesores, HERMELINDA CAMACHO, ANGEL VILLALOBOS y

PEDRO ROMERO, designados como jurados de Examinadores del proyecto de

investigación: "DESARROLLO DE UN SISTEMA ROBÓTICO PARA ELUDIR

OBSTÁCULOS", que presenta el bachiller: SOCORRO, ROSELI, titular de la Cédula de

Identidad No. V-13.471.435, nos hemos reunido para revisar dicho trabajo y después del

interrogatorio correspondiente, lo hemos APROBADO con la calificación de Veinte (20)

puntos, asignándole la mención Honorífica-Publicación, de acuerdo con las normas vigentes

aprobadas por el Consejo Académico de la Universidad Rafael Belloso Chacín, para la

evaluación de los trabajos Especiales de Grado, para el obtener el Titulo de: INGENIERO

EN ELECTRÓNICA.

En fe de lo cual firmamos, en Maracaibo, 13 de Agosto de 1999.

MGS. HERMELINDA CAMACHO ING. ANGEL VILLALOBOS

C.I. 3.328.682 C.I. 8.500.248

ING. PEDRO ROMERO C.I. 9.193.258

ING. PLACIDO MARTINEZ Decano de la facultad de Ingeniería

iii

Page 4: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

DEDICATORIA

Dedico este esfuerzo sobrehumano y sacrificio a mis Padres Ramón y

Camelia que siempre me han apoyado en los buenos y malos momentos de mi vida,

así como en mis más difíciles decisiones. De la misma manera a Mama Rosa y a

Patty igualmente por apoyarme y ayudarme siempre. Los quiero mucho a todos.

A mis abuelos Mama Alicia y Abuelo Arquímedes que siempre han creído

en mí.

A Tío Arsacio que me ha enseñado lo que verdaderamente valemos como

Venezolanos. Al resto de mi Familia que siempre está conmigo y pendiente de mí…

Especialmente a quien probablemente nunca lea esta dedicatoria, y que le

debo la persona que soy, porque me ayudó a crecer y a madurar antes de tiempo para

enfrentar los, hasta ahora, problemas más grandes de mi vida.

A mis amigos Roseli, María y Hector que me acompañaron en el final de mi

carrera y me hicieron una mejor persona.

A todos mis amigos, que me aguantaron muchas ausencias y faltas, todas por

la tesis, cuando muchas veces necesitaban a un amigo, a Juan Carlos "JMX", Ruben,

Sherry, David "Chepa", la Sra. Ana, Carlos "El Che", Jenny "La Doctora", Luis

"El Guachiman", Michel "Galápago", Javier, Cesar "El Cachi Rodríguez", Zalo

"se sale solo", Poin "El Pollo", Hanns "Humatruco", Juan José "el Doblado Livin'

La Vida Loca", Oscar Luis "Pescaderiux", Walfredo, Wendy, Daniel y

finalmente pero no menos importante a Yose que estuvo conmigo mucho tiempo

iv

Page 5: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

durante la tesis y lamentablemente no pudimos estar juntos hasta el final para ver el

fruto de tanto esfuerzo y tiempo sacrificado. Todos están conmigo siempre…

Este es por ustedes…

Marco Antonio

v

Page 6: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

A mi Fortaleza y Escudo,

En quien confió mi corazón,

Y fui ayudada,

Dios,

Quien me ha dado la Victoria.

Roseli

vi

Page 7: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

AGRADECIMIENTO

Principalmente a Dios por traerme hasta a este punto de mi vida y permitir

que todas las personas que quiero estén conmigo en este momento de realización.

A mis Padres Ramón y Camelia que siempre me apoyaron en mi carrera, a

ellos les debo el estar donde estoy ahora…sin comentarios…Los quiero mucho a los

dos. A Mama Rosa, después de 20 años aún no existen palabras para expresar mi

agradecimiento.

A mi Tío Orlando por confiar en mí y ayudarme desinteresadamente.

A la Familia Socorro González por aceptarme durante este duro proceso y

especialmente a la Sra. Elida por estar siempre pendiente de nosotros en los buenos

y malos momentos. Gracias.

A mi compañera y amiga Roseli sin la cual nada hubiera sido posible. Gracias

por aguantarme todo este tiempo, dándome ánimo cuando ya no lo tenía y servirme

como pilar cuando las cosas no salían bien…Rochi si algo me enseñaste fue a confiar

en Dios y en mi mismo cuando la situación es adversa y no hay ninguna salida

aparente.

Especialmente a mis amigos Hector y María con quienes aprendí a vivir en

comunidad sin estorbarnos unos a otros, así como a ayudarnos mutuamente. Al

"Grand Swift Cherokee" por llevarnos y traernos fielmente, a Fermín que me

enseñó que el valor se lleva por dentro y no es necesario demostrárselo a nadie

mientras se mantienen claras las perspectivas del individuo.

vii

Page 8: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

A Angel por confiar en nosotros ciegamente al principio y siempre aportar

ideas que en la mayoría de los casos sirvieron de inspiración para continuar con

nuestro trabajo. A Carlos por ayudarnos en la mayor medida posible siempre

atendiendo a nuestras ideas y muchas veces sacrificando su propio tiempo. A Maxy

Velazco por tratar siempre de facilitarnos las cosas sobretodo al principio. A la Prof.

Hermelinda que siempre nos guió por el buen camino queriendo siempre lo mejor

para nosotros, poniéndonos a trabajar y mostrándonos nuestros errores y horrores.

A todas las personas que de una manera u otra aportaron un granito de arena a

esta investigación, a todos muchas gracias.

Marco Antonio

viii

Page 9: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

AGRADECIMIENTO

Principalmente a Dios, por ser mi Fuerza, Ayuda y Sustento siempre, por

mostrarnos la salida cuando no parecía haberla y por haberme concedido contar con

personas tan especiales para mí, quienes me apoyaron durante todo este tiempo.

A mis padres Elida y Eudoro, quienes me han brindado cariño, apoyo,

seguridad y amistad durante toda mi vida.

A mis hermanos, Susana, Giovanni, Lisbeth y especialmente a Eudo por

ayudarme siempre y de una u otra forma darme confianza en cada una de las metas

que emprendo.

A Marco, por compartir conmigo este trabajo con abnegación y constancia,

por soportarme durante este proceso impartiéndome seguridad y confianza, en fin por

ser el Mejor de los Mejores: Amigo y Compañero de Tesis. Gracias porque sin Ti

nada de esto hubiese sido posible y porque juntos hicimos que todo el esfuerzo

valiera la pena.

A mis amigos: Hector, mi amigo incondicional durante los últimos 5 años,

quien estuvo de aquí para allá conmigo Siempre. A María, por estar cuando la

necesito o no y por no dejarme desesperar. A Fermín, por preocuparse por mí y tener

siempre una palabra de apoyo. A Rina, por ser mi amiga y compañera estos cinco

años. Y por supuesto al "Grand Swift Cherokee", por llevarnos y traernos,

incondicionalmente. A todos ellos porque juntos llegamos hasta el final, unos

primeros que otros, pero siempre manteniendo la unión y confianza que nos

caracteriza. LOS QUIERO MUCHO.

ix

Page 10: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

A la Sra. Camelia, por estar pendiente siempre de nosotros, a la hora que sea.

A Tío Jorge, por ayudarme desinteresadamente siempre que lo necesito.

A Angel, por confiar en nosotros y ofrecernos la oportunidad de desarrollar

está investigación.

A la Prof. Hermelinda, por motivarnos a dar lo mejor de nosotros y

ayudarnos a hacer de esta investigación lo que deseábamos.

A Carlos PIC, por prestarnos sus conocimientos en la mayor medida posible.

Finalmente a todos los que hicieron posible esta investigación. GRACIAS.

Roseli

x

Page 11: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

Chacín, Marco; Socorro, Roseli. DESARROLLO DE UN SISTEMA ROBÓTICO PARA ELUDIR OBSTÁCULOS. Universidad Rafael Belloso Chacín. Facultad de Ingeniería. Escuela de Electrónica. Ingeniería en Electrónica. Maracaibo. 1999.

RESUMEN

Esta investigación tiene como finalidad el desarrollo de un Sistema Robótico semi-autónomo, construido a partir de un Carro Radio-Control adaptado, que basándose en estímulos del entorno es capaz de movilizarse evadiendo los posibles obstáculos del medio. Teóricamente el estudio se fundamenta en las áreas de Robótica sustentada en McKerrow (1991) y Craig (1989), Sistemas de Control respaldado en Maloney (1997) y Dorf (1989) y en Técnicas de Programación de Joyanes (1995) entre otros. Las acciones realizadas se enfocan al estudio y generación de nuevo conocimiento en la creación de Sistemas Robóticos, considerándose una investigación Tecnológica y Descriptiva para cuyo desarrollo se utilizó la metodología de Angulo (1992). El Hardware del Sistema Robótico está constituido por un conjunto de dispositivos que conforman un Sonar el cual recaba información de los obstáculos del entorno y la transmite vía FM a un PC para ser analizada por un Software de Control y Monitoreo, realizado en lenguaje de alto nivel, donde se obtiene un diagrama representativo al entorno del Robot y se generan las órdenes de acción, como es el movimiento o autopreservación mediante la alteración de diferentes variables internas del sistema. Los resultados de la investigación permiten concluir que un Robot semi-autónomo construido a partir de dispositivos adaptados puede movilizarse en entornos no controlados y desconocidos sin intervención de un operador.

xi

Page 12: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

Chacín, Marco; Socorro, Roseli. A ROBOTIC SYSTEM DEVELOPMENT TO AVOID OBSTACLES. University Rafael Belloso Chacín. Engineering Faculty. Electronics School. Electronics Engineering. Maracaibo. 1999.

ABSTRACT This research has as purpose a semi-autonomous Robotic System Development, built from an adapted RC Car, which based on environment stimulus could be capable of move avoiding the possible environment obstacles. Theorically, this study is founded in the fields of Robotics sustained by McKerrow (1991) and Craig (1989), Control Systems supported by Maloney (1997) and Dorf (1989) and in Programming techniques by Joyanes (1995), and others. The actions are focused to the study and generation of new knowledge in the Robotics Systems creation, considering a technological and descriptive research for which development the Ángulo method was used. The Robotics System Hardware is made of a group of devices that conform a Sonar that gets information form the environment obstacles and then transmits the information via FM to a PC to be analyzed by a Control and Monitoring Software, made on a high level language, where a Robot's surrounding representative diagram is obtained and the action orders, like movement or self-preservation through different internal variables changes, are generated. The research results lead to conclusion that a semi-autonomous Robot built form adapted devices can move in non-controlled and unknown environments without an operator intervention.

xii

Page 13: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

INDICE GENERAL

VEREDICTO ................................................................................................................ii

DEDICATORIA .......................................................................................................... iv

AGRADECIMIENTOS ..............................................................................................vii

RESUMEN...................................................................................................................xi

ABSTRACT................................................................................................................xii

INDICE DE FIGURAS..............................................................................................xiii

INDICE DE TABLAS ................................................................................................ xv

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

CAPÍTULO I: EL PROBLEMA.

A. PLANTEAMIENTO DEL PROBLEMA ............................................................... 4

B. OBJETIVOS DE LA INVESTIGACIÓN............................................................... 7

B.1. OBJETIVO GENERAL .................................................................................. 7

B.2. OBJETIVOS ESPECÍFICOS .......................................................................... 7

C. JUSTIFICACIÓN DE LA INVESTIGACIÓN....................................................... 8

D. DELIMITACIÓN DE LA INVESTIGACIÓN....................................................... 9

CAPITULO II: MARCO TEÓRICO.

A. FUNDAMENTACION TEÓRICA....................................................................... 11

1. ROBÓTICA. ......................................................................................................... 11

1.1.ESTRUCTURA DEL ROBOT ....................................................................... 13

1.2.CINEMÁTICA Y DINÁMICA ...................................................................... 31

1.3.TRAYECTORIAS .......................................................................................... 34

1.4.VISIÓN DEL ROBOT.................................................................................... 36

xiii

Page 14: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

1.5.INTELIGENCIA ARTIFICIAL...................................................................... 42

2. MICROCONTROLADORES............................................................................... 43

2.1.MICROCONTROLADOR PIC16C84 .............................................................. 45

2.1.1 ARQUITECTURA................................................................................... 46

2.1.2 REGISTROS ............................................................................................ 52

2.1.3 TIPOS DE RESET ................................................................................... 57

2.1.4 INTERRUPCIONES. ............................................................................... 60

2.1.5 INSTRUCCIONES DEL PIC16C84........................................................ 62

2.2.MICROCONTROLADOR PIC16F84............................................................... 64

3. SOFTWARE ......................................................................................................... 65

3.1.PROGRAMACIÓN ........................................................................................ 70

3.2.PROGRAMACIÓN ESTRUCTURADA ....................................................... 73

3.3.LENGUAJES PASCAL Y TURBO PASCAL............................................... 75

4. SISTEMAS DE CONTROL ................................................................................. 80

4.1.MODOS DE CONTROL ................................................................................ 84

B. REVISIÓN DE LA LITERATURA ..................................................................... 89

C. DEFINICIÓN DE TÉRMINOS BÁSICOS .......................................................... 94

D. SISTEMAS DE VARIABLES.............................................................................. 98

CAPÍTULO III: MARCO METODOLÓGICO.

A. RECOLECCIÓN DE INFORMACIÓN ............................................................. 102

B. INSTRUMENTOS.............................................................................................. 103

C. TIPO DE INVESTIGACIÓN ............................................................................. 103

D. FASES DEL DESARROLLO. ........................................................................... 104

xiv

Page 15: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

E. MATERIALES Y EQUIPOS.............................................................................. 107

CAPÍTULO IV: RESULTADOS DE LA INVESTIGACIÓN.

FASE 1: DEFINICIÓN DE LAS ESPECIFICACIONES ........................................ 113

FASE 2: ESQUEMA GENERAL DEL HARDWARE............................................ 114

FASE 3: ORDINOGRAMA GENERAL.................................................................. 120

FASE 4: ADAPTACIÓN ENTRE HARDWARE Y SOFTWARE ......................... 129

FASE 5: ORDINOGRAMAS MODULARES Y CODIFICACIÓN DEL............... 138

FASE 6: IMPLEMENTACIÓN DEL HARDWARE............................................... 138

FASE 7: DEPURACIÓN DEL SOFTWARE........................................................... 187

FASE 8: INTEGRACIÓN DEL HARDWARE Y SOFTWARE ............................. 189

FASE 9: CONSTRUCCIÓN DEL MODELO DEFINITIVO Y PRUEBAS FINALES

............................................................................................................................... 192

DISCUSION DE LOS RESULTADOS ................................................................... 194

CONCLUSIONES .................................................................................................... 197

RECOMENDACIONES........................................................................................... 201

BIBLIOGRAFÍA ...................................................................................................... 204

ANEXOS .................................................................................................................. 209

ANEXO A Fotografias del Sistema Robótico.................................................... 210

ANEXO B Diagramas de los Circuitos Implementados .................................... 218

ANEXO C Programas de los Microcontroladores ............................................ 221

ANEXO D Programa del Software de Control .................................................. 244

xv

Page 16: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

INDICE DE FIGURAS

FIGURA No. 1: Marvin (Robot con Ruedas) ............................................................. 14

FIGURA No. 2: Ariel (Robot con Piernas)................................................................. 15

FIGURA No. 3: Curva Velocidad Vs. Voltaje de Control ......................................... 19

FIGURA No. 4: Diagrama Esquemático de un Motor DC ......................................... 21

FIGURA No. 5: Curva Velocidad Vs. Voltaje de Armadura ..................................... 23

FIGURA No. 6: Distribución y Denominación de Pines del PIC16C84 .................... 45

FIGURA No. 7: Memoria de Programa y Pila............................................................ 51

FIGURA No. 8: Proceso a Controlar .......................................................................... 81

FIGURA No. 9: Sistema de Control de Lazo Abierto ................................................ 82

FIGURA No. 10: Sistema de Control de Lazo Cerrado.............................................. 83

FIGURA No. 11: Jet Propulsion Lab's Sojourner....................................................... 89

FIGURA No. 12: Marvin ............................................................................................ 90

FIGURA No. 13: Smart-V .......................................................................................... 91

FIGURA No. 14: Pocketbot........................................................................................ 92

FIGURA No. 15: The Spirit of Bolivia....................................................................... 93

FIGURA No. 16: Diagrama General del Sistema..................................................... 115

FIGURA No. 17: Interface........................................................................................ 121

FIGURA No. 18: Diagrama del Direccionador ........................................................ 122

FIGURA No. 19: Diagrama del Posicionador .......................................................... 123

FIGURA No. 20: Diagrama del Selector de Variables A ......................................... 124

FIGURA No. 21: Diagrama del Selector de Variables B ......................................... 127

FIGURA No. 22: Diagrama del Microcontrolador del ADC.................................... 128

xiii

Page 17: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

FIGURA No. 23: Software de Control ..................................................................... 129

FIGURA No. 24: Tarjeta Interna .............................................................................. 139

FIGURA No. 25: Distribución de Pines del PPI 8255.............................................. 140

FIGURA No. 26: Red Escalera................................................................................. 148

FIGURA No. 27: Amplificadores ............................................................................. 149

FIGURA No. 28: Transmisor FUTABA de 75 MHz................................................ 150

FIGURA No. 29: Interface Serial con el PC............................................................. 153

FIGURA No. 30: Transmisor y Receptor ................................................................. 156

FIGURA No. 31: Servomotor FUTABA S3003....................................................... 165

FIGURA No. 32: Multiplexor Analógico CMOS 4067............................................ 172

FIGURA No. 33: Celda Fotoconductiva................................................................... 173

FIGURA No. 34: Sensores de Distancia Montados en el Servomotor ..................... 174

FIGURA No. 35: Distribución de Pines del ADC0804 ............................................ 178

FIGURA No. 36: Transmisor de 418 MHz............................................................... 182

FIGURA No. 37: Control Electrónico de Velocidad ROOSTER............................. 183

FIGURA No. 38: Motor DC con los Capacitores ..................................................... 185

FIGURA No. 39: Conexiones del Sistema de Movimiento...................................... 186

xiv

Page 18: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

INDICE DE TABLAS

TABLA No. 1: Instrucciones del PIC16C84 .............................................................. 62

TABLA No. 2: Configuración de Puertos del 8255.................................................. 131

TABLA No. 3: Puerto Serial COM1 ........................................................................ 132

TABLA No. 4: Configuración de bits del Transmisor y Receptor del PC ............... 132

TABLA No. 5: Configuración de bits del Direccionador ......................................... 133

TABLA No. 6: Configuración de bits del Posicionador ........................................... 134

TABLA No. 7: Configuración del PIC Selector A ................................................... 135

TABLA No. 8: Configuración del PIC Selector B ................................................... 136

TABLA No. 9: Configuración del PIC del Convertidor ........................................... 137

TABLA No. 10: Transferencia de Información entre el CPU y el PPI 8255............ 142

TABLA No. 11: Palabra de Control ......................................................................... 143

TABLA No. 12: Valores de Salidas Analógicas....................................................... 148

TABLA No. 13: Instrucciones del Robot ................................................................. 159

TABLA No. 14: Instrucciones del Posicionador ...................................................... 167

TABLA No. 15: Instrucciones del Módulo Accionador........................................... 169

TABLA No. 16: Relación Voltaje-Distancia de los Sensores .................................. 174

TABLA No. 17: Variación del Rango Analógico de Entrada .................................. 181

xv

Page 19: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

INTRODUCCION

El aumento de la popularidad de los microprocesadores y microcontroladores

además de su drástica reducción de tamaño y costo en los años recientes han abierto

una gran cantidad de áreas para crear Robots inteligentes, lo que ha llevado a la

Robótica al estudio de la construcción de Robots capaces de realizar tareas precisas y

tomar decisiones adecuadas en distintas situaciones, comenzando con sistemas

manipulados hasta Robots autocontrolados y realizando estudios sobre capacidades

de desplazamiento para adaptarse a las necesidades de cada operación, bien sea en

ambientes controlados o un mundo real que cambia dinámicamente.

Por lo tanto para diseñar un Robot se debe poseer un compendio de

habilidades básicas en campos como la ingeniería electrónica, eléctrica, mecánica,

computación e inteligencia Artificial, debido a que los Sistemas Robóticos requieren

una combinación de elementos para ser efectivos como la sofisticación de la

inteligencia, el movimiento, movilidad, navegación y propósito.

Para atender la necesidad de conseguir este comportamiento sofisticado y

complejo, así como realizar una tarea determinada por medio de operaciones simples,

la presente investigación estudia los procesos concernientes al diseño y construcción

de un Robot semi-autónomo, el cual basándose en los estímulos de su entorno es

capaz de evadir los posibles obstáculos del medio. Radicando su importancia en la

posibilidad de establecer un sistema de navegación reactivo a estímulos del entorno

Page 20: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

2

paralelamente a los sistemas de visión convencionales y un acercamiento a la

interacción de los sistemas de control digital basados en estímulos analógicos reales

con situaciones cambiantes que puede conducir al desarrollo de una mejor estructura

de programas que tomen decisiones acertadas en un mundo real.

Para lograr el objetivo planteado la investigación se estructura en cuatro

capítulos. El Capítulo I, El Problema, donde se trata el Planteamiento del Problema,

los Objetivos, la Justificación y la Delimitación de la Investigación.

El Capítulo II, Marco Teórico, comprende la Fundamentación Teórica

referente a Robótica, Microcontroladores, Programación y Sistemas de Control,

además de la Revisión de la Literatura, la Definición de Términos Básicos y el

Sistema de Variables.

En Capítulo III, Marco Metodológico, se describen los métodos, técnicas y

procedimientos aplicados en el desarrollo y diseño del Sistema Robótico.

Finalmente, El Capítulo IV, Resultados de la Investigación, expone el análisis

descriptivo de los pasos realizados en el diseño y construcción del hardware y

software, así como el funcionamiento del dispositivo.

De esta manera se presenta el trabajo especial de grado "Desarrollo de un

Sistema Robótico para eludir obstáculos".

Page 21: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

CAPITULO I_______________________________________ EL PROBLEMA

Page 22: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

A. PLANTEAMIENTO DEL PROBLEMA

El desarrollo de la tecnología le ha permitido al hombre mejorar su calidad de

vida mediante la construcción de sistemas que le dotan de comodidades, o bien le

disminuyen su carga de trabajo. Así mismo, la creciente adquisición de

conocimientos y técnicas le han llevado al desarrollo de mecanismos o dispositivos

que imiten su comportamiento para realizar actividades dentro de un proceso de

producción, así se manifestaron los primeros Robots.

Este proceso de imitación o replicación no solo significa copiar los

movimientos físicos de una criatura, puede también significar la emulación del

comportamiento, lo que implica el desarrollo de sistemas organizados entre sí que

permitan coordinar estos movimientos y funciones en una forma inteligente.

Para tal efecto surge la Robótica como una rama multidisciplinal de la

ingeniería que estudia la construcción de máquinas automáticas capaces de realizar

tareas precisas y tomar decisiones adecuadas en distintas situaciones. En un principio,

la Robótica, se centró en el desarrollo de manipuladores mecánicos para reproducir

los movimientos de manos y brazos realizados por un operario. Estos manipuladores

fueron seguidos por sistemas más sofisticados, capaces de realizar operaciones

repetitivas autónomas a partir de la sustitución del operador por un programa de

Page 23: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

5

computador. Los investigadores y especialistas en el campo de la electrónica aplicada

a la Robótica, no estaban conformes con tener Robots que actuaran como brazos y

manos, así las investigaciones avanzaron, realizando estudios sobre Robots con

capacidades de desplazamiento que se adaptaran a las necesidades específicas de una

operación determinada.

Sin embargo, las acciones de estos Robots seguían siendo controladas por un

operador, por lo tanto se continuaron desarrollando investigaciones para lograr dotar

a los Robots de suficiente cerebro y autonomía para cumplir órdenes sin una

supervisión constante.

En consecuencia y recientemente, la atención ha sido dirigida a técnicas de

control basadas en el comportamiento, para lo cual es necesario la integración de

diversos elementos que no solo deben basarse en su apariencia física, sino en todo lo

que le permita relacionarse con su entorno, como lo es un sistema apropiado de visión

dotado por sensores, por medio del cual pueda disponer de la información sobre el

espacio que lo rodea, para percibir y responder al entorno en forma inteligente y

flexible a través del software adecuado, y una inteligencia artificial propia para que

piense y planifique sus movimientos para resolver la tarea y ejecute las órdenes.

Basados en estos principios han surgido los llamados Robots errantes o

Robots exploradores (Wandering Robots), los cuales son capaces de llevar ojos y

oídos a lugares desconocidos para el hombre, Robots que se han convertido en la

Page 24: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

6

alternativa para la búsqueda de información o conocimientos. Cualquier dispositivo

como los Robots errantes, diseñado para moverse en un entorno no estructurado o

desconocido, necesita múltiples sensores y controles para evitar obstáculos y la

acción de un computador para procesar la información que les permite moverse.

Lo anteriormente expuesto revela que aún hay áreas por estudiar y mejorar en

cuanto a Robots se refiere, por lo cual es importante tomar en cuenta cada una de las

partes que conforman el Robot, tanto en hardware como en software y explotarlas al

máximo.

En cuanto al hardware cabe destacar que las dimensiones de un Robot le

pueden otorgar ventajas, ya que les permite accesar a sitios donde los humanos no son

capaces, sin embargo la reducción excesiva de tamaño le puede limitar en la acción

que ha de realizar, lo que ha llevado al estudio para el desarrollo de comunidades de

Robots, siendo entonces necesaria la elaboración de algoritmos de programación

complejos para que exista una coordinación entre ellos.

En este mismo orden de ideas, es usual tratar de buscar un hardware más

poderoso, programas más complejos y sensores más precisos en el intento de generar

un comportamiento robótico más sofisticado. Resulta factible creer que la clave para

el éxito en tal exhaustiva tarea reside en la filosofía de tratar de explotar todas las

posibilidades de los sistemas más simples. Así, no solo se obtiene lo mejor de hasta

Page 25: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

7

los Robots más sencillos, sino que igualmente la experiencia ha mostrado que en

muchos casos, los más precisos y "mejores" Robots son los más difíciles de controlar.

Para atender la necesidad de conseguir este comportamiento sofisticado y

complejo, así como realizar una tarea determinada por medio de operaciones simples,

la presente investigación pretende estudiar los procesos concernientes al diseño y

construcción de un Robot semi-autónomo, el cual basándose en los estímulos de su

entorno sea capaz de responder adecuadamente, de manera que pueda evadir los

posibles obstáculos del medio. Fundamentado en el desarrollo de un sistema de visión

propio de los autores, creado a partir de dispositivos que serán adaptados para tal fin.

B. OBJETIVOS DE LA INVESTIGACIÓN

B.1. Objetivo General:

Desarrollar un Sistema Robótico para eludir obstáculos.

B.2. Objetivos Específicos:

• Analizar las diferentes teorías que conforman un Sistema Robótico con el fin de

seleccionar la alternativa a utilizar en su diseño.

Page 26: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

8

• Definir las especificaciones del sistema de visión del Sistema Robótico para

lograr que interactúe con el entorno.

• Diseñar el sistema de visión del Sistema Robótico basándose en las

especificaciones previamente establecidas.

• Elegir los componentes que conforman el Sistema Robótico de acuerdo al diseño.

• Elaborar los circuitos de interfaz para manejar los puertos de salida del PC que

controlará el sistema.

• Armar el módulo de visión del Sistema Robótico sobre la base del diseño

realizado.

• Desarrollar el programa para los Microcontroladores y el PC para controlar el

Sistema Robótico.

• Construir el prototipo del Sistema Robótico para eludir obstáculos.

• Evaluar el Sistema Robótico para corregir las fallas que se presenten en su

funcionamiento.

C. JUSTIFICACION DE LA INVESTIGACIÓN

El desarrollo de un sistema Robótico para eludir obstáculos se justifica por las

siguientes razones:

Page 27: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

9

A través de este sistema el Robot es capaz de interactuar con el entorno y

adaptarse al medio donde se encuentra sin la necesidad de un operador o controlador

y sin estar limitado a un ambiente controlado.

Además puede realizar diferentes operaciones por estar dotado de un software

flexible que puede ser adaptado para que el sistema tenga diferentes tipos de

comportamiento.

Implica el desarrollo de un nuevo sistema de visión o reconocimiento de masa

que ofrece una alternativa a las microcámaras de alto costo y al difícil procesamiento

de las imágenes en el computador.

Aporta una base a futuras investigaciones en busca de nuevas alternativas a

los inasequibles sistemas de visión convencionales ya implementados en el mercado

en Sistemas Robóticos.

D. DELIMITACION DE LA INVESTIGACIÓN

Esta investigación se desarrolló de manera genérica en el campo de la

Electrónica y Computación, específicamente en las áreas de: Robótica, Sistemas de

Control y Programación. La misma se llevó a cabo en el periodo comprendido desde

Septiembre de 1998 hasta Julio de 1999, en la Universidad Rafael Belloso Chacín.

Page 28: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

CAPITULO II_____________________________________ MARCO TEÓRICO

Page 29: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

A. FUNDAMENTACION TEÓRICA

1. ROBÓTICA

El vocablo Robot proviene del término checo robota (trabajo) y es utilizado

comúnmente para definir cualquier máquina o dispositivo (mecánico, eléctrico o

electrónico) capaz de realizar automáticamente diversas operaciones. Sin embargo, el

desarrollo de la robótica permite profundizar más en el empleo de este término

enfocando otras características como la precisión al realizar sus operaciones o al

tomar decisiones adecuadas en diversas situaciones, aún así no es fácil establecer una

definición formal ya que basados en estas mismas características diversos autores han

expuesto diferentes criterios, algunos más limitados que otros como Soska (1985) que

describe Robot como cualquier dispositivo que reemplaza la labor humana, en una

opinión más amplia McKerrow (1986) define Robot como una máquina que puede

ser programada para realizar una variedad de tareas.

Para obtener una explicación técnica de Robot los autores de esta

investigación consideran conveniente fusionar los conceptos expuestos por The

Robot Institute Of America (1986) y Lexis22 (1980:5040), definiendo Robot como el

nombre que se da a ciertos aparatos que son capaces de ejecutar movimientos

coordinados con apariencia automática de adaptación al ambiente, autocontrolados,

Page 30: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

12

reprogramables, multifuncionales, diseñados para desplazar materiales, piezas,

herramientas o dispositivos especiales mediante movimientos programados variables

para el desempeño de diversas tareas.

Desde la perspectiva de la inteligencia artificial clásica y de acuerdo a lo

señalado por Brady (1985), la Robótica es la conexión inteligente de la percepción

para la acción; es una amplia especialidad con significante contenido

interdisciplinario participando en ella teorías de control, física, electricidad,

electrónica, mecánica, matemática, álgebra e informática. De igual manera envuelve

el diseño, la manufactura, programación de Robots, uso de Robots para resolver

problemas, el estudio del control de procesos, sensores, los algoritmos usados en

humanos, animales, máquinas y la aplicación de ese control de procesos y algoritmos

para el diseño de Robots.

En una manera más general la robótica comprende un conjunto de estudios y

técnicas destinadas a fabricar sistemas capaces de desempeñar funciones motrices o

intelectuales en sustitución del hombre.

Tal como se expone en los párrafos anteriores, la principal diferencia entre el

Robot y otras máquinas es su carácter multifuncional, es decir, un mismo Robot

puede realizar diferentes tareas dentro de una determinada región del espacio,

destacándose por la autonomía operativa y el parecido de las tareas realizadas con las

propias de los seres humanos.

Page 31: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

13

1.1. ESTRUCTURA DEL ROBOT

Un Robot requiere la combinación de varias piezas integradas para

desempeñar sus funciones, por su parte autores como Barrientos, Peñín, Balaguer y

Aracil (1996); McKerrow (1991); Craig (1989); Angulo y Avilés (1989); Groover,

Weiss, Nagel y Odrey (1989); Fu, González y Lee (1988), dividen la estructura de los

Robots en: configuración mecánica, transmisiones y reductores, fuentes de

movimiento, sensores y efectores finales.

Atendiendo a estas consideraciones, Mecánicamente un Robot está formado

por una serie de elementos unidos mediante articulaciones que permiten un

movimiento relativo entre cada dos elementos consecutivos. El empleo de diferentes

combinaciones de articulaciones da lugar a diferentes configuraciones, con

características a tener en cuenta tanto en el diseño y construcción del Robot como en

su aplicación, la estructura mecánica de un Robot debe estar diseñada para darle la

forma y sostener a los demás componentes que necesita para su funcionamiento y

puede estar construida con materiales tales como cartón, madera, plástico, algún

metal o la combinación entre ellos.

La forma de los Robots son tan variadas como la imaginación lo permita,

como las plataformas, humanoides, insectoides y con ruedas, estos en su mayoría, son

aparatos que se desplazan de un sitio a otro para lo cual pueden existir diferentes

Page 32: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

14

medios de locomoción. El más utilizado es el de las ruedas (Figura No.1) y le siguen

en importancia las piernas y las orugas o bandas. Las ruedas empleadas en los Robots

pueden tener varias formas y se fabrican de caucho o de plástico, estas se pueden unir

directamente a los motores si estos tienen el mecanismo reductor incorporado o por

medio de poleas, bandas o cadenas.

Figura No. 1: Marvin (Robot con Ruedas)

Fuente: www.-robotics.usc.edu (1998-11-02)

Con referencia a los Robots con piernas, como el que se muestra en la Figura

No.2, se puede inferir que pueden recorrer áreas complejas. En suelos suaves las

piernas son más eficientes que las ruedas, ya que éstas pueden transferir mayor

potencia a la superficie por caballo de fuerza que un vehículo con ruedas, dichas

piernas se pueden fabricar de metal, madera o plástico. Las orugas proporcionan otra

forma de locomoción diferente a las antes mencionadas, estas permiten al Robot

Page 33: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

15

adaptarse a cierto tipo de superficies o a lograr un mejor agarre en ellas y se fabrican

generalmente de caucho.

Figura No. 2: Ariel (Robot con Piernas)

Fuente: www.isr.com (1998-11-02)

En algunos casos las fuentes de movimiento manejan directamente los medios

de locomoción de los Robots. Pero en muchos otros, hay una interface o Medio de

Transmisión entre estos dos elementos que se utiliza para aumentar la fuerza o para

cambiar la naturaleza del movimiento, por ejemplo para convertir movimiento

giratorio en movimiento lineal o viceversa, o para cambiar el ángulo de giro de

horizontal a vertical, el sistema de transmisión no debe afectar al movimiento que

transmite y debe ser capaz de soportar un funcionamiento continuo a un par elevado,

a ser posible en grandes distancias. Uno de los sistemas más utilizados es el de los

engranajes o piñones que reducen la velocidad y aumentan la fuerza o torque, de estos

sistemas hay diferentes tipos, desde el mínimo con dos engranajes hasta las cajas de

Page 34: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

16

transmisión o cajas de engranaje. También está el sistema de transmisión por fricción,

en el cual las dos partes se unen directamente logrando un efecto similar al de los

engranajes pero con la posibilidad de fallar en el agarre en un momento dado.

El sistema de engranajes, básicamente reduce el número de vueltas o de

revoluciones que entrega el motor hacia una rueda, por ejemplo este mecanismo,

además de reducir la velocidad, aumenta la fuerza otorgándole a las ruedas y por lo

tanto al Robot, una mayor potencia que depende del peso que se deba manejar; en la

mayoría de los casos un solo engranaje no es suficiente para obtener la baja velocidad

y la fuerza que se requiere. Por lo tanto, se utiliza un conjunto de varios engranajes

llamado caja de reducciones.

Así mismo existen Reductores capaces de ajustar el torque y la velocidad de

la salida de las fuentes de movimiento a los valores adecuados para el movimiento de

los elementos del Robot, hay casos en el que el eje del actuador se conecta

directamente con la carga o articulación, sin la utilización de un reductor intermedio,

a este proceso se le llama accionamiento directo.

De acuerdo a Barrientos, Peñín y otros (1997:24), los Reductores tienen sus

inconvenientes como el juego angular, rozamiento o disminución de rigidez del

accionador, que puede impedir la precisión y velocidad requeridas, mientras que el

accionamiento directo permite un posicionamiento rápido y preciso, aumento de la

controlabilidad del sistema y simplificación del sistema mecánico.

Page 35: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

17

Las Fuentes de Movimiento son unas de las principales partes de los Robots,

la más utilizada es el motor eléctrico en sus diferentes variedades. Estos, en general,

son aparatos que convierten la energía eléctrica en energía mecánica rotacional que se

utiliza para darle movimiento a ruedas y otros medios de locomoción. En robótica se

utilizan diferentes tipos de motores tales como los motores comunes de corriente

continua (CC o DC), los servomotores y los motores paso a paso.

Los Motores de Corriente Continua o de imán permanente vienen en

muchas formas y tamaños, estos se seleccionan dependiendo de las necesidades del

Robot en cuanto a fuerza y velocidad. Las principales características que tiene un

motor de este tipo son su voltaje de trabajo (3V, 6V, 9V, 12V, etc.), su velocidad

expresada en revoluciones por minuto (RPM) y su fuerza o torque. Dependiendo de

esto se deriva también su tamaño y su consumo de corriente en amperios o

miliamperios.

Hay otro tipo de motores llamados Servomotores que utilizan el principio de

la realimentación para lograr el control sobre el ángulo de giro del eje, esto es muy

importante ya que en muchos casos no se requiere que los motores de un Robot giren

continuamente sino que puedan girar constantemente algunos grados hacia atrás o

hacia delante, para ello se detecta la posición por medio de un sensor de giro

conectado mecánicamente al eje el cual trasmite la información a un circuito que

controla el movimiento.

Page 36: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

18

En concreto, un Servomotor es un motor auxiliar que se emplea para

amplificar un esfuerzo relativamente pequeño y obtener un trabajo considerable, en

esta clase de motores pueden distinguirse tres tipos diferentes: los servomotores AC,

los servomotores DC y los servomotores controlados digitalmente.

Los Servomotores AC son motores que poseen barras conductoras delgadas

en el rotor, por lo que la resistencia del conductor es mayor, y están constituidos por

un devanado principal y un devanado de control. En la gran mayoría de los sistemas

de seguimiento (cuando la variable que está siendo monitoreada y corregida es la

posición física de un objeto), el servomotor AC no es conmutado entre el encendido y

el apagado, en su lugar se trabaja de la siguiente forma: el voltaje aplicado al

devanado de control, VC, es tomado de la salida de un amplificador, la entrada de este

es el voltaje de error, Ve, que depende de la distancia del objeto de su posición

deseada.

El devanado fijo siempre tiene potencia aplicada por una fuente de AC de

voltaje fijo, en este caso, hay un capacitor introducido en serie con el devanado fijo

para desfasar su corriente unos 90 grados. Si la diferencia entre la posición real y la

deseada es grande, Ve es grande y en consecuencia VC será grande, y la corriente del

devanado de control será grande también, esto ocasionará que el servomotor funcione

a alta velocidad. La relación entre la velocidad de rotación y el voltaje de control se

muestra a continuación:

Page 37: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

19

Figura No. 3: Curva Velocidad Vs. Voltaje de Control

Velocidad de Estado Estable (r/min)

Para un torque constante

VC

Fuente: Maloney, T (1997:432)

Como se observa, a medida que disminuye la diferencia entre la posición real

y la posición deseada, el voltaje de error Ve también disminuye, por tanto VC

disminuye, reduciendo así la corriente del devanado de control y haciendo que el

motor funcione a menor velocidad.

Cuando la posición del objeto es precisamente correcta, el voltaje de error Ve

disminuirá a cero y el amplificador no tendrá señal de entrada, por lo que VC también

ira a cero.

Page 38: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

20

La curva del motor muestra que el motor se detiene cuando VC=0, por lo que

el objeto detendrá su movimiento cuando llegue a la posición deseada, por supuesto

el servomotor debe detenerse cuando VC llegue a cero.

En el control de seguimiento, se desea producir mucho torque a bajas

velocidades para que el motor pueda acelerar con rapidez el objeto que se va a

posicionar. Por otra parte, es mejor que la capacidad de producción de torque de

motor se reduzca a bajas velocidades, pues hace menos posible que el motor

sobrepase su marcha. En pocas palabras, es menos posible que el objeto controlado

rebase el punto deseado y tenga que retroceder.

A pequeños voltajes de control (significando que el objeto controlado se

acerca a la posición deseada) el servomotor puede ejercer de hecho un torque

invertido en su eje. Esto es útil en la prevención del sobrepaso, porque si el objeto

tiene una inercia grande, puede tender a deslizarse más allá de la posición deseada

aún cuando el servomecanismo no ejerce fuerza motriz en absoluto. Es decir, en un

caso que comprenda una alta inercia y una baja fricción, el servomotor podría estar

completamente desconectado de las líneas de potencia cuando el objeto controlado

aún estuviera a alguna distancia de la posición deseada, y el objeto no sería capaz de

detenerse a tiempo.

Sin embargo, hay algunos sistemas de seguimiento que requieren un motor

DC como dispositivo corrector final. Esto generalmente ocurre cuando el objeto en

Page 39: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

21

posición es muy grande. Al posicionar un objeto de gran masa, el motor

necesariamente debe tener un régimen de potencia alto. Los Servomotores AC de alta

potencia presentan problemas de sobrecalentamiento de los conductores del rotor,

dada la necesidad de hacer alta la resistencia de los mismos, por tanto, los sistemas de

seguimiento que suministran grandes cantidades de potencia normalmente usan

motores DC.

Un Servomotor DC tiene dos devanados independientes que son el devanado

de campo, colocado en el estator de la máquina, y el devanado de armadura, colocado

en el rotor de la máquina. Ambos devanados están colocados en un suministro de

voltaje de DC. En muchas aplicaciones de motor en derivación de DC, los devanados

pueden estar conectados en paralelo (derivación) y ser manejados por la misma fuente

de DC, pero en una aplicación de seguimiento, los devanados son manejados por

fuentes de DC separadas. Esta situación se ilustra en la figura:

Figura No. 4: Diagrama Esquemático de un Motor DC

Fuente: Maloney, T (1997:447)

Page 40: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

22

El devanado de campo está conectado al suministro de voltaje etiquetado VF y

el devanado de la armadura está conectado a la fuente de voltaje de DC etiquetado

como VA. La velocidad de estado estable puede ser controlada variando VF o VA. De

allí que en muchos sistemas de seguimiento modernos, el ajuste se hace a VA, el

voltaje de alimentación de la armadura.

La capacidad de producción de torque de un servomotor de DC es mayor a

bajas velocidades que a altas velocidades para un determinado voltaje de armadura

VA aplicado, esto permite que el motor acelere la carga (el objeto a posicionar)

rápidamente de su posición estática.

La curva torque - velocidad de la figura, muestra que, a medida que el objeto

se acerca a la posición deseada y VA se reduce, el motor de DC es capaz de entregar

un torque invertido para desacelerar la carga si la velocidad de aproximación es alta,

esto es posible, porque los devanados de la armadura del motor comienzan a actuar

como un generador bajo esta condición, la corriente en los conductores de la

armadura interviene la dirección (suponiendo que el suministro de voltaje en la

armadura es capaz de disipar corriente), y la corriente invertida crea un torque

invertido.

Page 41: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

23

Figura No. 5: Curva Velocidad Vs. Voltaje de Armadura

Velocidad de Estado Estable (r/min)

Para un torque constante

VA

Fuente: Maloney, T (1997:447)

Por tanto el motor de DC en derivación satisface los requisitos de un buen

servomotor. Tiene un torque alto a bajas velocidades, y tiene un efecto de

amortiguación integrado, en el que una velocidad de aproximación alta produce una

tendencia de frenado automático.

Los Servomotores Controlados Digitalmente se caracterizan por su alta

eficiencia y pequeño tamaño, por lo cual han sido tomados como una de las

herramientas más aplicadas a la robótica. Estos compactos, resistentes y duraderos

motores, internamente están constituidos por un tren de engranajes, un engranaje

principal de salida y un potenciómetro posicionador, estos elementos los hacen

perfectos para Robots pequeños, ya que su sistema electrónico y de control mecánico

están construidos en su interior. Una línea de salida proveniente de un

Page 42: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

24

microcontrolador puede manejar a los servomotores en cualquier dirección, el alto

torque y baja velocidad de estos servomotores hace que las aplicaciones robóticas

sean más exactas.

Una de las marcas mas reconocidas en estos servomotores, es FUTABA, estos

servomotores son controlados por PWM (Pulse Width Modulation) o Modulación

por Ancho de Pulso. Los pulsos de control necesarios para su enclavamiento son 50.

El ciclo de trabajo y ancho de pulso puede variar desde 0.35 ms hasta 2.25 ms. La

posición del servomotor se corresponde a la duración del pulso. En estos

servomotores los ángulos rotatorios están limitados, es decir, su giro es de

únicamente 180°.

El Motor Paso a Paso ha ido ganando popularidad en aplicaciones de

robótica, debido a su propiedad de poder mover el eje, con un movimiento angular

preciso. Si además de su movimiento o giro parcial, se agrega un engranaje reductor,

se logran avances exactos del orden de décimas o centésimas de grado lo que los

hacen adecuados para aplicaciones de precisión. Estos motores se encuentran

normalmente en diferentes partes de los sistemas de cómputo tales como impresoras,

unidades de discos duros y flexibles, plotters, scanners, etc.

Hay otras fuentes de movimientos que se pueden utilizar en los Robots como

los cilindros neumáticos e hidráulicos a pequeña escala y los músculos eléctricos. Los

Page 43: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

25

primeros son dispositivos que se alimentan con aire o algún fluido, para lograr un

movimiento lineal de gran poder basado en el principio mecánico del pistón, el

segundo se basa en un metal especial llamado Nitinol, desarrollado en el U.S. Naval

Ordnance Laboratory por un equipo dirigido por W.J. Buehler. Este material, similar

en apariencia a un alambre de acero o una cuerda metálica de guitarra, se contrae con

gran fuerza cuando se le aplica un voltaje y luego vuelve a la posición original lo que

le da un efecto de memoria llamado Shape Memory Effect (SME).

Una vez que se logran integrar todas las piezas mencionadas en los párrafos

anteriores, es necesario conseguir que el Robot realice su tarea con la adecuada

precisión, velocidad e inteligencia, para esto será preciso que tenga conocimiento

tanto de su propio estado como de su entorno, esta información la obtiene utilizando

transductores que transforman una variable física de interés en otra, estos dispositivos

son llamados Sensores, los cuales, paralelamente, se utilizan como componentes

integrales del sistema de control de realimentación de posiciones del Robot.

Los datos relacionados con su estado los consigue con los sensores internos,

mientras los que se refieren al entorno (alcance, proximidad, contacto), se adquieren

con los sensores externos. El empleo de mecanismos de detección exteriores permite

a un Robot interaccionar con su ambiente de una manera flexible, un Robot que

puede ver y sentir es más fácil de entrenar en la ejecución de tareas complejas

mientras que, al mismo tiempo, exige mecanismos de control menos estrictos que las

máquinas preprogramadas.

Page 44: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

26

Los Sensores de Proximidad son capaces de detectar la presencia de un

objeto dentro de un radio de acción determinado, esta detección puede hacerse con o

sin contacto del objeto, estos sensores son utilizados como auxiliares de los

detectores de posición, para indicar la presencia de un objeto dentro de un intervalo

de distancia especificado. En condiciones normales, los sensores de proximidad se

utilizan en robótica para un trabajo en campo cercano en relación con la forma de

agarrar o de evitar un objeto.

Un tipo de sensor que se emplea en la Robótica para la detección de objetos y

cálculo de distancias es el Sensor Ultrasónico, cuyo elemento básico es un

transductor electroacústico, y se basa en la emisión de un pulso de ultrasonido cuyo

lóbulo, o campo de acción, es de forma cónica. Midiendo el tiempo que transcurre

entre la emisión del sonido y la percepción del eco se puede establecer la distancia a

la que se encuentra el obstáculo que ha producido la reflexión de la onda sonora,

mediante la fórmula:

2Vxtd =

Donde V es la velocidad del sonido en el aire y t es el tiempo transcurrido

entre la emisión y recepción del pulso. Numerosos Robots móviles han utilizado estos

sensores para realizar tareas de navegación como, por ejemplo, evitar obstáculos,

seguir paredes, atravesar puertas, etc. Las razones de su utilización son numerosas y

Page 45: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

27

entre ellas cabe destacar su bajo coste, velocidad de procesamiento y una aceptable

precisión. Sin embargo, la navegación de un Robot móvil basada en la información

suministrada por un conjunto de sensores de ultrasonidos presenta una serie de

inconvenientes debidos, sobre todo, a los numerosos errores que cometen estos

sensores en sus medidas.

Entre los diversos factores que alteran las lecturas que se realizan con los

sensores de ultrasonido cabe destacar:

• El campo de actuación del pulso que se emite desde un transductor de

ultrasonido tiene forma cónica. El eco que se recibe como respuesta a la

reflexión del sonido indica la presencia del objeto más cercano que se

encuentra dentro del cono acústico y no especifica en ningún momento la

localización angular del mismo. Aunque la máxima probabilidad es que el

objeto detectado esté sobre el eje central del cono acústico, la probabilidad

de que el eco se haya producido por un objeto presente en la periferia del

eje central no es en absoluto despreciable y debe tomarse en cuenta para

tratarse convenientemente.

• La cantidad de energía acústica reflejada por el obstáculo depende en gran

medida de la estructura de su superficie. Para obtener una reflexión

altamente difusa del obstáculo, el tamaño de las irregularidades sobre la

superficie reflectora debe ser comparable a la longitud de onda de la onda

de ultrasonido incidente.

Page 46: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

28

• En los sensores de ultrasonido de bajo coste se utiliza el mismo

transductor como emisor y receptor. Tras la emisión del ultrasonido se

espera un determinado tiempo a que las vibraciones en el sensor

desaparezcan y esté preparado para recibir el eco producido por el

obstáculo. Esto implica que existe una distancia mínima (proporcional al

tiempo de relajación del transductor) a partir de la cual el sensor mide con

precisión. Por lo general, todos los objetos que se encuentren por debajo

de esta distancia, serán interpretados por el sistema como que están a una

distancia igual a la distancia mínima.

• Los factores ambientales tienen una gran repercusión sobre las medidas:

Las ondas de ultrasonido se mueven por un medio material que es el aire.

La densidad del aire depende de la temperatura, influyendo este factor

sobre la velocidad de propagación de la onda según la expresión velocidad

de propagación de la onda según la expresión:

2731 TVV SOS +=

Por otro lado, los sensores de ultrasonido móviles (como, por ejemplo, los

embarcados en Robot móvil) experimentarán un efecto perturbador debido

a las pequeñas turbulencias de aire que se producen delante del

transductor. En este caso, y al contrario del efecto de la temperatura, la

influencia de las turbulencias sobre la señal ultrasónica es muy difícil de

ser cuantificada.

Page 47: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

29

• Un factor de error muy común es el conocido como falsos ecos. Estos

falsos ecos se pueden producir por razones diferentes: Puede darse el caso

en que la onda emitida por el transductor se refleje varias veces en

diversas superficies antes de que vuelva a incidir en el transductor (si es

que incide). Este fenómeno, conocido como reflexiones múltiples, implica

que la lectura del sensor evidencia la presencia de un obstáculo a una

distancia proporcional al tiempo transcurrido en el viaje de la onda; es

decir, una distancia mucho mayor que a la que está en realidad el

obstáculo más cercano, que pudo producir la primera reflexión de la onda.

Otra fuente más común de falsos ecos, conocida como crosstalk, se

produce cuando se emplea un cinturón de ultrasonidos donde una serie de

sensores están trabajando al mismo tiempo. En este caso puede ocurrir (y

ocurre con una frecuencia relativamente alta) que un sensor emita un pulso

y sea recibido por otro sensor que estuviese esperando el eco del pulso que

él había enviado con anterioridad (o viceversa).

• Las ondas de ultrasonido obedecen a las leyes de reflexión de las ondas,

por lo que una onda de ultrasonido tiene el mismo ángulo de incidencia y

reflexión respecto a la normal a la superficie. Esto implica que si la

orientación relativa de la superficie reflectora con respecto al eje del

sensor de ultrasonido es mayor que un cierto umbral, el sensor nunca

reciba el pulso de sonido que emitió.

Page 48: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

30

• Para emitir un pulso de ultrasonido hay que excitar la membrana del

transductor con una señal en forma de delta de Dirac. Sin embargo, en los

sensores de bajo coste, la señal excitadora es en la práctica un pulso

cuadrado por lo que el efecto resultante es el de la emisión de todo un tren

de ondas de ultrasonidos que emergen de la membrana del sensor. El

momento en el que se emite la onda se suele considerar como el momento

en el que se emitió la onda excitadora. La dificultad estriba en determinar

el momento en que se recibe el eco de la señal emitida: Tanto la forma de

la envolvente de tren de ondas de la señal emitida como la recibida, crece

desde cero hasta alcanzar un valor máximo y vuelve a decrecer hasta cero.

En definitiva, la incertidumbre en la determinación del tiempo transcurrido

entre la emisión y la recepción se traduce en un error en la medida.

De esta manera para evitar interferencias los generadores emiten varias ondas

de diferentes frecuencias, realizándose la detección en el mismo orden y

consiguiendo al mismo tiempo exactitud, la posibilidad de montar los sistemas

ultrasónicos en plataformas giratorias supone la exploración de todo el entorno,

utilizando dos o más sistemas colocados en diferentes puntos y combinando sus

resultados se puede obtener un mapa general del entorno con los obstáculos que

rodean al Robot.

Como se puede inferir de lo expuesto anteriormente, una única medida

proporciona poca información acerca del entorno, así que mediante la acumulación de

Page 49: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

31

la evidencia de una serie de medidas, se incrementa la precisión de la localización de

los diversos obstáculos que hay en el entorno. Por tanto, una forma de reducir la

incertidumbre intrínseca a los sensores de ultrasonido es la utilización de mapas del

entorno donde sucesivamente se vayan plasmando y actualizando las medidas

realizadas. Por otro lado, al moverse el Robot por el entorno, la incertidumbre en la

generación del mapa y su actualización se va acrecentando con el tiempo, debido a

que el error en la estimación de la posición del Robot respecto a un sistema de

referencia general es acumulativo y va creciendo con el tiempo. Por tanto, se debe

contar con un procedimiento que permita reducir la incertidumbre de la posición del

Robot para mantener la coherencia espacial de las diferentes medidas.

Finalmente, para que el Robot realice las diferentes funciones para las cuales

ha sido diseñado e interactue con su entorno, existen dispositivos llamados Efectores

Finales que le permiten sostener, agarrar, o manipular objetos. Estos efectores están

situados en el extremo del Robot, confiriéndoles versatilidad, así como la posibilidad

de realizar labores muy diversas. Usualmente son pinzas que se escogen según el tipo

de objeto y la manipulación a realizar, tomándose en cuenta la forma, tamaño y peso

del objeto, así como la fuerza necesaria para sujetarlo, también son utilizadas las

herramientas para la realización de tareas específicas, en las que no se trata

únicamente de la manipulación de objetos.

1.2. CINEMATICA Y DINAMICA

Page 50: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

32

Para que un Robot pueda moverse y manipular objetos, es necesario una

adecuada localización de las configuraciones espaciales por las que se pretende que el

Robot pase, de esta misma manera es necesario manejar adecuadamente una serie de

herramientas que permitan situar en posición y orientación un objeto.

El estudio de la Cinemática del Robot permite relacionar la posición de sus

actuadores con la posición y orientación del extremo. Así mismo, la Dinámica se

ocupa de la relación entre el movimiento del Robot y las fuerzas implicadas en el

mismo. La cinemática del Robot se interesa por la descripción analítica del

movimiento espacial del Robot como una función del tiempo, y en particular por las

relaciones entre la posición y la orientación del extremo final del Robot con los

valores que toman sus coordenadas articulares, para ello se estudia el movimiento del

mismo con respecto a un sistema de referencia. En torno a lo anterior Fu, González y

Lee (1988) afirman que la cinemática trata con el estudio analítico de la geometría del

movimiento de un Robot con respecto a un sistema de coordenadas de referencia fijo

sin considerar las fuerzas o momentos que originan el movimiento.

Hay dos problemas fundamentales a resolver en la cinemática del Robot, el

primero de ellos se conoce como el problema cinemático directo, y consiste en

determinar cual es la posición y orientación del extremo final del Robot, con respecto

a un sistema de coordenadas que se toma como referencia, conocidos los valores de

las articulaciones y los parámetros geométricos de los elementos del Robot. El

segundo problema denominado problema cinemático inverso, resuelve la

Page 51: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

33

configuración que debe adoptar el Robot para una posición y orientación del extremo

conocidas. Como las variables independientes en un Robot son las variables de

articulaciones, y una tarea se suele dar en términos del sistema de coordenadas de

referencia, se utiliza de manera mas frecuente el problema cinemático inverso.

Denavit y Hartenberg (1955) propusieron un enfoque sistemático y

generalizado de utilizar álgebra matricial para describir y representar la geometría

espacial de los elementos del Robot con respecto a un sistema de referencia fijo. Este

método utiliza una matriz de transformación homogénea 4x4 para describir la

relación espacial entre dos elementos mecánicos rígidos adyacentes y reduce el

problema cinemático directo a encontrar una matriz de transformación homogénea

4x4 que relaciona el desplazamiento espacial del extremo del Robot con respecto al

sistema de coordenadas de su base.

Como se expuso anteriormente, la dinámica se ocupa de la relación entre las

fuerzas que actúan sobre un cuerpo y el movimiento que en el se origina. Esta

relación se obtiene mediante el modelo dinámico que relaciona matemáticamente: la

localización del Robot por sus variables articulares o por las coordenadas de

localización de su extremo, y sus derivadas: velocidad y aceleración; las fuerzas y

pares aplicados en las articulaciones; y los parámetros dimensionales del Robot,

como la longitud, masas e inercias de sus elementos.

Page 52: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

34

El modelo dinámico es imprescindible para conseguir la simulación del

movimiento del Robot, diseño y evaluación de la estructura mecánica,

dimensionamiento de los actuadores y el diseño y evaluación del control dinámico del

Robot. Es importante hacer notar que el modelo dinámico completo de un Robot debe

incluir no solo la dinámica de sus elementos (barras o eslabones) sino también la

propia de su sistema de transmisión, de los actuadores y sus equipos electrónicos de

mando. Estos elementos incorporan al modelo dinámico nuevas inercias,

razonamientos, saturación de los circuitos electrónicos, etc. aumentando aún mas su

complejidad.

El modelo dinámico real de un Robot se puede obtener de leyes físicas

conocidas tales como las leyes de Newton y la mecánica lagrangiana. Esto conduce al

desarrollo de las ecuaciones dinámicas de movimiento para las distintas

articulaciones del dispositivo en términos de los parámetros geométricos e inerciales

especificados para los distintos elementos. Se pueden aplicar sistemáticamente

enfoques convencionales como las formulaciones de Lagrange-Euler y de Newton-

Euler para desarrollar las ecuaciones de movimientos del Robot.

1.3. TRAYECTORIAS

Con el conocimiento de la cinemática y la dinámica de un Robot con

elementos series, seria interesante mover los actuadores de sus articulaciones para

cumplir una tarea deseada controlando al Robot para que siga un camino previsto.

Page 53: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

35

Antes de mover un Robot, es de interés saber si hay algún obstáculo presente en la

trayectoria que el Robot tiene que atravesar. Para realizar una tarea determinada el

Robot debe moverse desde un punto inicial a un punto final, este movimiento puede

ser realizado según infinitas trayectorias espaciales de este modo pueden encontrarse

que los Robots dispongan de trayectorias punto a punto, coordinadas y continuas.

En las Trayectorias Punto a Punto cada articulación evoluciona desde su

posición inicial a la final sin considerar el estado o evolución de las demás

articulaciones, estas trayectorias no están implementadas salvo en Robots simples o

con unidades de control limitadas.

En las Trayectorias Coordinadas o Isocronas todas las articulaciones se

coordinan comenzando y acabando su movimiento a la vez, adaptándose todas a la

más lenta, con esto se evita que algunos actuadores trabajen forzando sus velocidades

y aceleraciones, teniendo que esperar después la conclusión del movimiento de la

articulación más lenta, para ello se hace un cálculo previo averiguando cual es esta

articulación y que tiempo invertirá.

Cuando se pretende que la trayectoria que sigue el extremo del Robot sea

conocida por el usuario (trayectoria en el espacio cartesiano o de la tarea) es preciso

calcular de manera Continua las trayectorias articulares. Típicamente las trayectorias

que el usuario pretende que el Robot describa son trayectorias en recta o en arco de

Page 54: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

36

circulo. Para conseguirlo hay que seguir los pasos de funcionamiento del Control

Cinemático:

1. Convertir la especificación del movimiento dado en el programa en una

trayectoria analítica en el espacio cartesiano.

2. Hacer un muestreo de la trayectoria cartesiana obteniendo un número

finito de puntos de dicha trayectoria.

3. Utilizando la transformación homogénea inversa, convertir cada uno de

estos puntos en sus correspondientes coordenadas articulares.

4. Interpolar los puntos articulares obtenidos, generando para cada variable

articular una expresión que pase o se aproxime a ellos de modo que,

siendo una trayectoria realizable por los actuadores, se trasforme en una

trayectoria cartesiana lo más próximo a la especificada por el programa

del usuario.

5. Hacer un muestreo de la trayectoria articular para generar referencias al

control dinámico.

La planificación de la trayectoria interpola y/o aproxima la trayectoria deseada

por una clase de funciones polinomiales y genera una secuencia de puntos de

consignas de control en función del tiempo para el control del Robot desde la

posición inicial hasta el destino.

1.4. VISIÓN DEL ROBOT

Page 55: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

37

La información más completa que el Robot puede disponer, para adaptarse a

su entorno y llevar a cabo su misión con el máximo rigor, consiste en la propia

imagen del espacio que le rodea, así la capacidad de visión dota al Robot de un

sofisticado mecanismo de percepción que le permite responder a su entorno de una

forma inteligente y flexible, el uso de la visión y de otros esquemas de percepción,

tales como los diferentes sensores, están motivados por la constante necesidad de

aumentar la flexibilidad y campos de aplicación de los sistemas robóticos. Así como

la percepción de la proximidad del contacto, la visión se considera como una potente

capacidad sensorial del Robot, jugando un papel significativo en su comportamiento.

Como señalan Fu, González y Lee (1988), la visión artificial puede ser

definida como los procesos de obtención caracterización e interpretación de

información de imágenes tomadas de un mundo tridimensional, estos procesos

pueden dividirse en cinco áreas principales:

• Percepción.

• Preprocesamiento de la información.

• Segmentación.

• Reconocimiento.

• Interpretación.

Durante la Percepción la información visual se convierte en señales eléctricas

por los sensores visuales, cuando estas señales eléctricas se muestrean espacialmente,

Page 56: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

38

y se cuantifican en amplitud se obtienen de ellas una imagen digital. Dicha imagen se

denomina un campo de datos de visión y se suele capturar mediante un dispositivo de

hardware denominado captador de trama, estos dispositivos son capaces de digitalizar

imágenes a una velocidad de 30 cuadros por segundo. Los cuadros están constituidos

por una matriz de proyecciones de representación de datos de la imagen, los

elementos de la matriz se denominan elementos de imagen o Pixeles. El número de

pixeles se determina mediante un proceso de muestreo realizado en cada cuadro de

imagen. Un pixel individual es la proyección de una pequeña parte de la imagen, que

reduce esa parte a un valor único, este valor es una medida de intensidad de luz para

ese elemento de la imagen, así la intensidad de cada pixel se convierte en un valor

digital.

Conocidas las características del sistema de visión y la forma de conseguir la

digitalización de la imagen la siguiente fase consiste en el Preproceso, en el que se

incluyen técnicas tales como la reducción de ruido y el realce de detalles. Como

seguimiento de esta actividad durante la Segmentación se divide la imagen percibida

en sus partes constituyentes u objetos para su posterior reconocimiento y análisis. Los

algoritmos de segmentación se basan en uno de los dos siguientes principios básicos:

• Discontinuidad o Detección de Bordes.

Esta considera el cambio de intensidad que se produce en los pixeles en el

contorno o bordes de un objeto, dada una región con atributos similares, pero

Page 57: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

39

desconociendo la forma del contorno, este último se puede determinar mediante un

procedimiento de seguimiento de borde. Para ello se detectan discontinuidades de

intensidad en la imagen, el procedimiento es el de explorar la imagen hasta que se

encuentre un pixel diferente al inicial dentro de la región de la figura, una vez

encontrado se cruza hacia la izquierda o a la derecha y se avanza, este procedimiento

se detiene cuando se atraviesa el contorno de la figura y el siguiente pixel es igual al

pixel inicial.

• Similitud o Crecimiento por Región.

Es un conjunto de técnicas de segmentación en las que los pixeles se agrupan

en regiones llamadas elementos de cuadrícula basadas en similitudes de atributos. Las

regiones definidas se podrán examinar en cuanto a si son independientes o se pueden

fusionar a otras regiones por medio de un análisis de la diferencia en sus propiedades,

medias y su conectividad espacial.

En las aplicaciones de la visión del Robot, con frecuencia es necesario

distinguir un objeto de otro. Esto se puede realizar mediante las características

particulares del objeto, tales como el área, el diámetro y el perímetro; una

característica es un parámetro único que permite la facilidad de comparación e

identificación, Groover, Weiss, Nagel y Odrey (1990) afirman que las técnicas

disponibles para la extracción de valores de características para los casos

bidimensionales se pueden categorizar aproximadamente como las que se refieren a

Page 58: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

40

las características de contorno y de área. Las diversas características se pueden

utilizar para identificar el objeto o parte del mismo y para determinar su localización

y orientación.

En consecuencia los procedimientos de crecimiento de región, se pueden

utilizar para determinar el área de una imagen u objeto, así mismo el perímetro o el

contorno que encierra un área específica se puede determinar indicando la diferencia

en la intensidad de pixel en el contorno y contando simplemente los pixeles de la

región segmentada que son adyacentes a los pixeles que no pertenecen a la región; es

decir, al otro lado del contorno. Un objetivo importante en la selección de estas

características es que las características no dependan de la posición ni de la

orientación.

El próximo paso en el procesamiento de los datos de la imagen es el

Reconocimiento que consiste en identificar el objeto que la imagen representa. El

reconocimiento es un proceso de etiquetado, siendo la función de los algoritmos de

reconocimiento identificar a cada objeto segmentado de una imagen y asignarle una

etiqueta, además deben ser lo suficientemente potente para identificar unívocamente

un objeto. Las técnicas de reconocimiento de objetos se pueden dividir en dos

categorías:

• Técnicas de Coincidencia de Plantillas.

Page 59: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

41

Son un subconjunto de técnicas estadísticas de reconocimientos de modelos,

que sirven para clasificar los objetos en una imagen dentro de categorías

predeterminadas; su problema básico es comparar el elemento con un conjunto de

características de un modelo almacenado, definido como modelo de plantilla, el cual

se obtiene durante el proceso de adiestramiento en el que el sistema de visión se

programa para reconocer los elementos prototipos conocidos. Estas técnicas son

aplicables si no existen requerimientos de un gran número de plantillas de modelos.

El procedimiento está basado en el uso de un número suficiente de características

para minimizar la frecuencia de errores en el proceso de clasificación, las

características del elemento en la imagen se comparan con los valores

correspondientes almacenados, cuando se encuentra una coincidencia (permitiéndose

determinadas variaciones estadísticas en el proceso de comparación) el elemento ha

sido clasificado de forma adecuada.

• Técnicas Estructurales.

Estas consideran las relaciones entre las características o bordes de un objeto,

su principio es descomponer al objeto en patrones básicos. Al detectar la frontera de

un objeto se recorre la misma en el sentido de las agujas del reloj, identificando las

apariciones de los elementos básicos, la longitud y dirección de estos elementos,

junto con el orden en que aparecen, establecen la estructura del objeto.

Page 60: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

42

Las técnicas estructurales difieren de las técnicas de decisión teórica o de

detección de plantillas, en que estas últimas tratan un modelo sobre una base

cuantitativa y se ignoran las relaciones geométricas inherentes a la forma del objeto.

Los métodos estructurales por el contrario, realizan la discriminación de objetos

utilizando estas relaciones.

Finalmente es necesario asociar un significado al conjunto de objetos

reconocidos, esto se realiza mediante en proceso de Interpretación, en este proceso

se dota al sistema de visión con un nivel de conocimiento sobre su entorno, aquí se

incluyen todos aquellos métodos que tengan que ver con la comprensión de una

imagen visual.

1.5. INTELIGENCIA ARTIFICIAL

Los conceptos modernos de control de Robots tienen sus raíces en la

investigación en inteligencia artificial, la cual se esfuerza en intentar desarrollar

sistemas que parezcan que se comportan de forma inteligente. A menudo esto se

describe como desarrollar máquinas que piensen y planifiquen los movimientos

necesarios para resolver alguna tarea preespecificada y luego ejecuten las órdenes

necesarias para conseguir esas acciones.

Sobre la base de las ideas expuestas anteriormente podemos definir

Inteligencia Artificial como la capacidad de una máquina de realizar los mismos

Page 61: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

43

tipos de funciones que caracterizan al pensamiento humano. La posibilidad de

desarrollar una máquina así ha despertado la curiosidad del ser humano desde la

antigüedad. Con el avance de la ciencia moderna la búsqueda de la IA (Inteligencia

Artificial) ha tomado dos caminos fundamentales: la investigación psicológica y

fisiológica de la naturaleza del pensamiento humano, y el desarrollo tecnológico de

sistemas informáticos cada vez más complejos.

En este sentido, el término IA se ha aplicado a sistemas y programas

informáticos capaces de realizar tareas complejas, simulando el funcionamiento del

pensamiento humano, aunque todavía muy lejos de éste. En esta esfera las teorías de

investigación más importantes son las de procesamiento de la información,

reconocimiento de modelos, juegos y las áreas aplicadas como el diagnóstico médico.

Actualmente existen dos tendencias en cuanto al desarrollo de sistemas de IA:

los sistemas expertos y las redes neuronales. Los sistemas expertos intentan

reproducir el razonamiento humano de forma simbólica. Las redes neuronales lo

hacen desde una perspectiva más biológica (recrean la estructura de un cerebro

humano mediante algoritmos genéticos). A pesar de la complejidad de ambos

sistemas los resultados distan mucho de un auténtico pensamiento inteligente.

2. MICROCONTROLADORES

Page 62: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

44

La fundamentación teórica presentada a continuación fue traducida y extraída

de los manuales operativos del Sistema de Desarrollo PICSTART PLUS (1994),

Datasheets de Internet (www.microchip.com) y del libro Microcontroladores PIC:

Diseño Práctico de Aplicaciones (Angulo y Angulo: 1997).

Los Microcontroladores son dispositivos digitales integrados, programables

y de actuación secuencial. Funcionalmente, es un dispositivo lógico que permite el

tratamiento de la información almacenada en forma de “Programa de Instrucciones”,

este es capaz de interpretar estas instrucciones y ejecutarlas controlando las unidades

implicadas en su composición. Básicamente está conformado por la Unidad de

Procesamiento Central (CPU), la Unidad de Control, la Unidad Aritmética-Logica

(ALU), Puertos y dispositivos de memoria (RAM, ROM, EPROM, etc.).

Los Microcontroladores PIC16/17 de MICROCHIP, combinan alta ejecución,

bajo costo y pequeño tamaño, ofreciendo la mejor relación precio/ejecución utilizado

en la industria. Existen tres familias de microcontroladores de 8 bits, los cuales se

ajustan a las necesidades del usuario, ellas son: la gama básica de 8-bits PIC16C5X,

la gama media de 8-bits PIC16CXX y la gama alta de 8-bits PIC17CXX.

Destacándose y especificando para esta investigación los microcontroladores

PIC16C84 y PIC16F84 de la familia PIC 16CXX, por ser los que más se adaptan a

los requerimientos de aplicación a utilizar. Los PIC16CXX son microcontroladores

que constan de 8 bits, son de alto rendimiento y construidos bajo tecnología CMOS,

Page 63: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

45

estos dispositivos poseen un núcleo ensamblado, 8 niveles de pila e interrupciones

internas y externas. La separación del bus de datos y el bus de dirección de la

arquitectura HARVARD permite una palabra de instrucción de 14 bits y un bus de

datos de 8 bits. Las estaciones de instrucciones permiten ejecutar todas las

instrucciones en un solo ciclo, excepto para las ramificaciones que requieren dos

ciclos. Este tipo de microcontroladores disponen de 35 instrucciones y un registro

extenso para ejecutar programas de alto nivel.

2.1. MICROCONTROLADOR PIC16C84

Figura No. 6: Distribución y Denominación de Pines del PIC16C84

Fuente: 8-bit CMOS EEPROM Microcontroller Datasheet (1998:1)

Como se muestra en la figura, el PIC16C84 posee 36 bytes de memoria

RAM, 64 bytes de memoria EEPROM y 13 pines de puertos I/O. Esta familia posee

características especiales para reducir los componentes externos haciéndolo útil para

las aplicaciones donde se limita el espacio de trabajo, con la tecnología EEPROM, se

Page 64: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

46

reducen los costos, se aumenta la compatibilidad y eficiencia del equipo, así como

también reduce el consumo de potencia ajustándose perfectamente para aplicaciones

como el manejo de motores, controles automáticos de alta velocidad, cerrojos

electrónicos, tarjetas inteligentes, sensado remoto y dispositivos de seguridad, el fácil

uso y la flexibilidad de los puertos pueden ser atribuidos a características especiales

de su arquitectura, comúnmente encontrada en los microprocesadores RISC.

2.1.1 ARQUITECTURA

La Arquitectura interna del PIC16C84 consta de 7 bloques fundamentales:

• Memoria de Programa EEPROM de 1Kx14bits.

• Direccionamiento de la memoria de programa, basándose en el contador

del programa ligado a una pila de 8 niveles de profundidad.

• Memoria de Datos formada por dos áreas: una RAM donde se alojan 22

registros de propósito específico o especial (SFR) y 36 de propósito

general (GPR), y otra del tipo EEPROM de 64 bytes.

• Direccionado directo e indirecto de la memoria RAM.

• Camino de Datos con una ALU de 8 bits y un registro de trabajo o

acumulador W.

• Diversos recursos conectados al bus de datos, tales como: puertas de I/O,

temporizador TMRO, etc.

• Base de Tiempos y circuitos auxiliares.

Page 65: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

47

Como se expuso anteriormente hay dos Bloques de Memoria en el

PIC16C84, estos son la Memoria del Programa y la Memoria de Datos. Cada bloque

tiene su propio bus, por lo que el acceso para cada bloque puede ocurrir durante el

mismo ciclo del oscilador.

La Memoria de Programa posee un Contador de Programa (PC) de 13 bits

capaz de direccionar un espacio de memoria de programa de 8Kx14, pero solamente

las primeras 1Kx14 (0000h-03FFh) localidades están físicamente implementadas. El

tratar de accesar una localidad por encima de 3FFh causará que se caiga dentro del

primer 1Kx14 de memoria. El vector de puesta a Cero o Reset está ubicado en la

dirección 0000h y el Vector de Interrupción está en la dirección 0004h. Por otra

parte la Memoria del Programa (Figura No. 7) contiene la memoria de datos

EEPROM, esta memoria no está mapeada directamente sobre la memoria de datos,

pero puede ser mapeada indirectamente.

El Contador del Programa (PC) está implementado sobre un par de

posiciones de la memoria RAM. Cuando se escribe el contador de programa como

resultado de una operación de la ALU, los 8 bits de menos peso residen en el registro

PCL, que ocupa la posición 2 de los bancos de la memoria de datos. Los bits de más

peso, PC<12:8>, residen en los 5 bits de menos peso del registro PCLATH, que

ocupa la posición 0Ah de los bancos de la memoria RAM. El Registro PCLATH es

para la parte alta de la dirección y no es directamente accesible.

Page 66: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

48

Igualmente la Memoria de Datos (RAM) está particionada en dos áreas: la

primera el área de los Registros de Funciones Especiales (SFR), mientras la

segunda área corresponde a los Registros de Propósito General (GPR). Las

porciones de la memoria de Datos están ubicadas en Bancos, esto es para ambas áreas

(SFR y GPR). El área de los GPR está en un banco para permitir valores superiores a

los 116 bytes de RAM para propósito general, las áreas del banco de los SFR son

para los registros que controlan las funciones periféricas. El salto de un banco a otro

requiere del uso de bits de control para su selección, que están ubicados en el registro

STATUS.

Los GPR están ubicados en el Banco 0, y los SFR en el Banco 1. El Banco 0

es seleccionado mediante la puesta a cero del bit RP0 (STATUS<5>), por el

contrario, la puesta a 1 del bit RP0 selecciona al Banco 1.

BSF STATUS, RP0; Orden de cambio al Banco 1

BCF STATUS, RP0; Orden de cambio al Banco 0

Cada Banco se extiende hasta los 128 bytes. Las primeras 12 locaciones de

memoria de cada banco están reservadas para los SFR, y las locaciones restantes son

GPR implementados en una RAM estática (SRAM). Todos los dispositivos poseen

cierta cantidad de área para los Registros de Propósito General (GPR), cada GPR es

de 8 bits y pueden ser accesados directa o indirectamente mediante los registros de

Page 67: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

49

funciones especiales (SFR). Los GPR direccionados en el Banco 1 son mapeados a

las direcciones del Banco 0.

Toda la Memoria de Datos puede ser accesada directamente con el uso de la

dirección absoluta de registro de archivo o indirectamente a través de la selección de

registro de archivo correspondiente. El direccionamiento indirecto utiliza el valor

actual de los bits RP1: RP0 dentro del registro STATUS.

En los PICs de la gama media la memoria de datos está organizada para alojar

un máximo de 4 bancos de 128 bytes cada uno. El PIC16C84 solo tiene

implementados los 48 primeros bytes de los bancos 0 y 1. Mediante el

Direccionamiento Directo, el operando que utiliza la instrucción en curso se

referencia mediante su dirección, que viene incluida en el código OP de la misma,

concretamente en los 7 bits de menos peso.

Por otra parte el modo de Direccionamiento Indirecto se usa cuando se

utiliza como operando el registro INDF, que ocupa la dirección 0 de ambos bancos.

En realidad el registro INDF no está implementado físicamente y cuando se le hace

referencia se accede la dirección de un banco especificada con los 7 bits de menos

peso del registro SFR. El bit de más peso del SFR junto al bit IRP del registro

STATUS selecciona el banco a acceder y los siete bits de menos peso apuntan la

posición.

Page 68: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

50

El último tipo de Memoria de Datos es la EEPROM, que puede ser leída y

escrita durante la operación normal (rango completo de VDD), donde se pueden

almacenar datos y variables que interesan que no se pierdan cuando se desconecta la

alimentación al sistema. Soporta hasta un millón de ciclos de escritura y borrado y es

capaz de guardar la información por más de 40 años sin alterarla. La Memoria

EEPROM no está mapeada en la zona de la memoria de datos donde se ubican los

SFR y los GPR, sin embargo, para poder leerla y escribirla durante el funcionamiento

normal del microcontrolador hay que utilizar 4 registros del Banco SFR, estos

registros son: EECON1, EECON2, EEDATA y EEADR.

Reconsiderando lo concerniente a la arquitectura interna, se destaca la Unidad

lógico-aritmética o ALU, que está encargada de realizar la operación lógico-

aritmética que implica la instrucción decodificada, consta de 8 bits de ancho y es

capaz de realizar operaciones de adición, substracción, rotación y lógicas. En las

instrucciones de dos operandos uno de ellos lo recibe desde el registro W o

acumulador y el otro desde un registro o desde la propia instrucción.

El Registro W o Acumulador es un registro de trabajo de 8 bits usado para

las operaciones de la ALU y no se encuentra en la memoria de datos.

La Pila o Stack (Figura No. 7) es una zona aislada de las memorias de

instrucciones y datos, tiene una estructura LIFO (Last-In-First-Out), en la que el

último valor guardado es el primero que sale. Tiene 8 niveles de profundidad cada

Page 69: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

51

uno con trece bits. Funciona como un buffer circular, de manera que el valor que se

obtiene al realizar el noveno desempilado es igual al que se obtuvo en el primero.

Entre sus características no se puede leer ni escribir, el PC se coloca en el stack

cuando se ejecuta una instrucción CALL o cuando se reconoce una interrupción, y se

sale de la interrupción con RETURN, RETLW o RETFIE.

Figura No. 7: Memoria de Programa y Pila

Fuente: 8-bit CMOS EEPROM Microcontroller Datasheet (1998:11)

El PIC16C84 tiene trece pines de I/O organizados como dos puertos, el Puerto

A de 5 bits y el Puerto B de 8 bits.

Page 70: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

52

El PIC posee un temporizador-contador de propósito general TMRO, el cual

es de 8 bits de ancho para encargarse de las funciones de control de tiempos. Este

módulo posee características tales como: es de lectura y escritura, tiene la posibilidad

de hacer uso de un preescalador programable en software de 8 bits, puede

incrementarse mediante un reloj interno o externo, posee capacidad para generar una

interrupción por rebosamiento al pasar de FFh a 00h y por último cuando se usa con

reloj externo puede seleccionarse el flanco para el incremento.

El modo temporizador se selecciona colocan el bit RTS del registro OPTION

a cero, incrementándose cada ciclo de instrucción, si está escribiendo en el TMR0, el

incremento se inhibe para los dos ciclos e instrucción siguientes. Así mismo el modo

de contador se selecciona colocando el bit RTS a 1 en el registro OPTION, en este

modo el TMR0 se incrementa cada vez que haya un flanco de subida o de bajada en

el pin RA4/TOCKI, esto es determinado por el bit de control RTE en el registro

OPTION (RTE=0 selecciona el flanco de subida).

Finalmente hay unos circuitos auxiliares que dotan al procesador de

posibilidades de seguridad, reducción de consumo y reinicialización.

2.1.2 REGISTROS

Page 71: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

53

El PIC16C84 posee varios registros de funciones especiales o especificas

(SFR), separados en dos bancos y direccionados de manera directa o indirecta, entre

los cuales están:

El Registro STATUS, que contiene el estado aritmético de la ALU (Z), el

estado de RESET y el bit de selección de banco para la memoria de datos (RP0).

Como cualquier registro, el registro STATUS puede ser el destino para cualquier

instrucción, si este registro es el destino para una instrucción que afecte a los bits Z, C

(Carry) o DC (Digital Carry), la escritura a estos registros es automáticamente

desactivada. Estos bits son puestos a cero o uno según la lógica del dispositivo, no

obstante, los bits TO y PD no se pueden escribir. Por otro lado, el resultado de una

instrucción con destino al registro STATUS, podría ser diferente a lo pensado.

Únicamente las instrucciones BCF, BSF y MOVWF deben ser utilizadas para

alterar el registro STATUS, porque ninguna de estas funciones modifican los bits

internos de dicho registro. Los bits IRP y PR1 (STATUS<7: >6) no son utilizados por

el PIC 16C84 y deben ser programados como cero. El uso de estos bits como bits de

propósito general R/W no son recomendados, ya que podría afectar a la comunicación

entre otros dispositivos. Para la resta, los bits C y DC, operan como BORROW y

DIGIT BORROW respectivamente.

Page 72: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

54

El Registro OPTION es un registro que puede ser leído y escrito, contiene

varios bits de control para configurar el pre-escalador TMR0/WDT, seleccionar el

flanco de interrupción externa INT, el TMR0 y los Pull-Ups en el puerto B (PORTB).

El Registro INTCON es un registro de control de interrupción, que incluye

las banderas que registran las peticiones individuales de interrupción y contiene

además los bits tanto como para la habilitación global (GIE) como individual. La

única excepción es la bandera de interrupción por culminación de escritura de datos

en la EEPROM (EEIF), la cual reside en el registro EECON1.

El PORTA es un puerto de 5 bits, donde el pin RA4 es una entrada tipo

disparo Schmitt y salida de drenador abierto y está multiplexado con la entrada

TMR0. Los demás pines RA del puerto poseen niveles de entrada TTL y manejadores

de salida CMOS. Todos los pines tienen bits de dirección de datos (registros TRIS),

los cuales pueden configurar los pines como entradas o salidas de forma

independiente.

El Registro TRISA controla el Puerto A y su dirección está mapeada en la

página uno de la memoria de datos. Es un registro de 5 bits de ancho, en donde,

poniendo a uno (1) algún bit, colocará el pin correspondiente al bit seleccionado

como una entrada, si algún bit es puesto a cero (0), luego el pin es colocado como

salida.

Page 73: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

55

Cuando se lee el registro PORTA, éste lee el estado de los pines, mientras que

escribe información en los “latch” del puerto. Todos las operaciones de escritura son

operaciones de Lectura-Modificación-Escritura, por lo tanto, el escribir en un puerto

implica que los pines del puerto son leídos primero, luego estos valores son

modificados y escritos en el “latch” del puerto de datos.

El Registro TRISB, es el registro correspondiente al Puerto B o PORTB,

donde un “1” en cualquier bit de él, coloca el correspondiente manejador de salida en

un modo de alta impedancia. Un "0” en cualquier bit del registro TRISB coloca el

contenido del “lacth” de salida en el pin seleccionado.

El Registro PORTB es un puerto bidireccional de 8 bits, los datos de dicho

puerto le corresponden al TRISB. Cada pin del PORTB posee un “Weak Pull-Up”

interno. Un solo bit de control puede activar todos los “weak pull-ups”. Esto es

realizado poniendo en cero el bit 7 del registro OPTION. Los “weak pull-ups” son

automáticamente apagados cuando los pines del puerto se configuran como salida,

también son desactivados cuando ocurre un “Power-On Reset”.

Los cuatro pines del PORTB, RB7 a RB4, están multiplexados con funciones

especiales de interrupción. Únicamente los pines que se configuren como entrada,

serán capaces de ejecutar dichas interrupciones (cualquier pin de RB7 a RB4 que esté

configurado como salida, es excluido de la ejecución de una interrupción). El valor de

los pines en el modo de entrada es comparado con el antiguo valor transferido en la

Page 74: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

56

última lectura del PORTB. Las salidas desiguales de los pines del PORTB son

sumadas en forma lógica (OR) y conjuntamente para generar el cambio del PORTB

como una interrupción.

La característica de condición de desigualdad en las interrupciones, junto con

la programación configurable para el “pull-ups” de estos cuatro pines permite realizar

una sencilla comunicación con un teclado.

Un cambio podría ocurrir en el pin I/O cuando el PORTB es leído, y el bit

RBIF no debe ser puesto a “1”, por lo que se recomienda hacer una verificación del

PORTB cuando este sea utilizado como sistema de interrupciones. Los pines

restantes, de RB3 a RB0 son líneas de I/O de características comunes.

El Registro EECON1 es un registro de control que maneja operaciones de

lectura/escritura en la EEPROM de Datos, posee los cinco bits de orden inferior

físicamente implementados, los tres bits de orden superior no existen y se leen como

cero.

Los bits de control RD y WR inician la lectura y escritura respectivamente.

Mediante software estos bits solo pueden ser seteados (puestos a uno) y se resetea en

hardware una vez completada la operación de lectura o escritura. Cuando el bit

WREN se coloca a uno se permite una operación de escritura. El bit EIFF es la

Page 75: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

57

bandera de interrupción que se coloca a uno cuando la escritura se ha completado,

este debe ser limpiado en software.

El Registro EECON2 aunque no es un registro físico cuando se intenta leerlo

se obtiene el valor de 00h, sin embargo es necesario para la escritura, ya que solo se

emplea como un dispositivo de seguridad durante el proceso de escritura en la

EEPROM, para evitar las interferencias en el largo intervalo de tiempo que precise su

desarrollo.

Para leer en una localidad de la memoria de datos EEPROM el programador

debe escribir en el Registro EEADR y entonces colocar el bit de control RD a 1.

EEADR está ubicado en la dirección 9 del banco 0, se carga la dirección a acceder de

la EEPROM de datos, las 64 posiciones de un byte cada una ocupan las direcciones

de un mapa que comienza en 00h y termina en 3Fh, por eso los dos bits de más peso

siempre valen cero.

Una vez ubicado el dato con EEADR, este estará disponible en el próximo

ciclo en el Registro EEDATA, por lo tanto puede ser leído en la próxima

instrucción. EEDATA mantiene el valor hasta que se realice otra lectura o hasta que

el usuario realice una operación de escritura sobre él.

2.1.3 TIPOS DE RESET

Page 76: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

58

El PIC16C84 admite diferentes tipos de Reset: Power-On Reset (POR) al

encendido, MCLR durante la operación normal y durante la operación SLEEP, el

rebase del conteo del temporizador WDT durante la operación normal y la operación

SLEEP.

Dentro del microcontrolador se genera un pulso de Power-On Reset cuando

se detecta una caída de tensión en VDD (dentro del rango de 1.2Volts-1.7Volts). Para

tener la ventaja del POR, se conecta el pin MCLR directamente a VDD a través de un

resistor, esto elimina las componentes RC externas que usualmente activan el POR,

este circuito de protección no produce una condición de Reset interna cuando el valor

de VDD disminuye. Para lograr el reset al encendido se utilizan dos temporizadores:

el Power-Up Timer (PWRT) y el Oscillator Start-Up Timer (OST).

El PWRT provee 72ms arreglados nominales de Time-Out para el POR,

opera en un oscilador RC interno, el dispositivo se mantiene en Reset el tiempo que

dura la operación del PWRT. Por otro lado, el PWRT ocasiona un tiempo de retardo,

el cual, permite que el nivel de VDD disminuya hasta un nivel aceptable de

operación. El OST es orientado a mantener al microcontrolador en reset hasta que el

oscilador del cristal es estable, provee 1024 ciclos de retardo provenientes del

oscilador (OSC1/CLKIN) después de que el tiempo de retardo del PWRT culmine; lo

que indica al oscilador de cristal o resonador que comience y estabilice. El Time-Out

del OST (Tost) es invocado solo para los módulos XT, LP y HS y únicamente en un

POR o en un despertar del SLEEP.

Page 77: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

59

Cuando el nivel de VDD disminuye muy lentamente, es posible que el Time-

Out del PWRT (Tpwrt) y el Tost expiren antes de que el VDD haya alcanzado su

valor final, en este caso es recomendable un circuito externo para el MCLR.

En el Power-Up la secuencia Time-Out es de la siguiente manera: el time-out

del PWRT es invocado después que el POR haya expirado, luego el OST es activado,

el time-out final variará basado en la configuración del oscilador y el bit de

configuración de estado PWRT.

Desde que el Time-Out proveniente del pulso de reset del POR ocurre y si el

tiempo de permanencia del MCLR en estado bajo es muy prolongado, entonces, el

time-out expirará, y si el MCLR se mantiene en estado alto la ejecución del time-out

será inmediata. Esto es muy útil para realizar pruebas en la sincronización de dos o

más PIC16CXX cuando operen en paralelo.

El Watchdog Timer WDT es un oscilador libre que se ejecuta internamente,

el cual no requiere ningún componente externo. Este oscilador RC está separado del

oscilador RC del pin OSC1/CLKIN, esto significa que el WDT no comenzará hasta

que el oscilador RC de los pines OSC1/CLKIN y OSC2/CLKOUT se haya detenido

por completo.

Page 78: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

60

Durante la operación normal, el WDT genera un Time-Out que genera una

condición de Reset para el dispositivo. Si el dispositivo está en modalidad SLEEP, un

WDT wake-up causará el despertar y así continuar con la operación normal.

El PIC16C84 puede ser apagado momentáneamente, es decir, puesto a dormir

(SLEEP) y luego levantarlo (Wake-Up). El modo SLEEP se activa mediante la

utilización de la instrucción SLEEP, si está habilitada, el WDT es puesto a cero (pero

sigue trabajando), el bit 4 del registro STATUS es puesto a “1”, y el manejador del

oscilador es apagado. Los puertos I/O mantienen el mismo estado que tenían antes de

que se ejecutara el modo SLEEP.

Para el menor consumo de corriente en el modo SLEEP, se deben colocar

todos los pines de I/O a VDD o Vss sin circuitería externa. Si los puertos están

manejados por altas impedancias, entonces se debe manejar en estado bajo o alto para

evitar fluctuaciones de corriente causadas por las entradas flotantes. El pin T0CKI

también debe ir a VDD o Vss. El pin MCLR debe conectarse directamente a VDD.

2.1.4 INTERRUPCIONES

El PIC16C84 posee cuatro fuentes de Interrupciones: interrupción externa,

finalización del temporizador, finalización en la escritura EEPROM de datos y

cambios en PORTB.

Page 79: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

61

El registro de control de las interrupciones (INTCON) almacena los

requerimientos de interrupciones individuales en los bits de bandera, también posee

los bits para la habilitación de las interrupciones globales o individuales. Por otro

lado las interrupciones individuales pueden ser habilitadas o deshabilitadas por los

mismos bits, es importante mencionar que el bit GEI es puesto a cero cuando ocurre

una condición de Reset.

La instrucción para retornar de una interrupción (RETFIE) realiza la

operación de poner a “1” el bit GIE, para así rehabilitar todas las interrupciones. Los

bits banderas de interrupción del pin RB0/INT, el cambio RB del PORTB y el

rebosamiento del TMR0, están incluidos en el registro INTCON.

La Interrupción Externa que ocurre en el pin RB0/INT es disparada por

flanco: si el bit INTEDG (OPTION<6>) es puesto a “1”, el flanco es de subida; y si

es puesto a “0”, el flanco es de bajada. Cuando un flanco válido aparece en el pin

RB0/INT, el bit INTF (INTCON<1>) es puesto a “1”, esta interrupción puede ser

deshabilitada poniendo a “0” el bit de control INTE (INTCON<4>). El bit bandera

INTF debe ser puesto a cero por el software dentro de la sub-rutina designada para las

interrupciones, estas interrupciones pueden despertar al dispositivo de su modo

SLEEP.

Page 80: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

62

Un rebosamiento (FFh → 00h) en el TMR0, pondrá un “1” en bit bandera

T0IF (INTCON<2>). Esta interrupción puede ser activada o desactivada poniendo a

“1” o “0” el bit T0IE (INTCON<5>).

Un cambio de entrada en PORTB<7:4> colocan en “1” el bit bandera RBIF

(INTCON<0>). Esta interrupción puede ser activada o desactivada poniendo a “1” o

“0” el bit RBIE (INTCON<3>).

Cuando la escritura de un dato en la EEPROM finaliza, se coloca en 1 el bit

EEIF (EECON1<4>), el bit de control respectivo es EEIE (INTCON<6>).

2.1.5 INSTRUCCIONES DEL PIC16C84

Tabla No. 1: Tabla de Instrucciones del PIC16C84

INSTRUCCIONES QUE MANEJAN REGISTROS

SINTAXIS OPERACIÓN CICLOS

ADDWF F, D Suma W y F 1

ANDWF F, D AND W con F 1

CLRF F Borra F 1

CLRW Borra W 1

COMF F, D Complementa F 1

DECF F, D Decrementa F 1

Page 81: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

63

INCF F, D Incrementa F 1

IORWF F, D OR entre W y F 1

MOVF F, D Mueve F 1

MOVWF F Mueve W a F 1

NOP No Opera 1

RLF F, D Rota F a la izquierda 1

RRF F, D Rota F a la derecha 1

SUBWF F, D Resta W a F 1

SWAPF F, D Intercambia cuartetos 1

XORWF F, D XOR de W con F 1

INSTRUCCIONES QUE MANEJAN BITS

BCF F, B Borra bit de F 1

BSF F, B Pone a uno el bit F 1

INSTRUCCIONES DE BRINCO

BTFSC F, D Si bit de F=0 brincar 1(2)

BTFSS F, D Si bit de F=1 brincar 1(2)

DECFSZ F, D Decremento si=0 brincar 1(2)

INCFSZ F, D Incremento si=1 brincar 1(2)

INSTRUCCIONES QUE MANEJAN OPERANDOS INMEDIATOS

ADDLW K Suma literal con W 1

ANDLW K AND literal con W 1

Page 82: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

64

IORLW K OR literal con W 1

MOVLW K Mueve a W un literal 1

SUBLW K Resta W de un literal 1

XORLW K XOR con W 1

INSTRUCCIONES DE CONTROL Y ESPECIALES

CALL K Llamada a subrutina 2

CLRWDT Borra WDT 1

GOTO K Salto incondicional 2

RETFIE Retorno de interrupción 2

RETLW K Retorno con literal 2

RETURN Retorno de subrutina 2

SLEEP Pasa a modo de reposo 1

K=Constante F=Registro B=Bit D=Dirección de la operación. Si D=0 la operación se efectúa alterando solo el acumulador, si D=1 la operación se efectúa alterando el acumulador y el registro.

Fuente: Ángulo y Ángulo (1997:190)

2.2. MICROCONTROLADOR 16F84.

El PIC16F84 es funcionalmente igual al PIC16C84, sólo se diferencian en que

la memoria de programa de este último, como se explicó en el apartado anterior, es

EEPROM y la del primero es FLASH.

Page 83: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

65

La memoria tipo FLASH, es no volátil, de bajo consumo, que se puede

escribir y borrar en circuito al igual que la EEPROM, pero suelen disponer de mayor

capacidad que estas últimas. El borrado sólo es posible con bloques completos y no

se puede realizar sobre posiciones concretas. Son recomendables en aplicaciones en

las que sea necesario modificar el programa a lo largo de la vida del producto, como

consecuencia del desgaste o cambios de piezas.

Para sus mejores prestaciones está sustituyendo a la memoria EEPROM para

contener instrucciones. Así, por contar con está memoria el PICF84 tiene la

peculiaridad de disponer de 68 registros de propósito general que ocupan las

direcciones comprendidas entre 0X0C y la 0X4F en hexadecimal. Por esta razón tiene

mayor capacidad de memoria RAM de datos, ya que disponen de 68 bytes en lugar de

los 36 del PIC16C84.

3. SOFTWARE

Un Programa o Software, es el conjunto de instrucciones que ejecuta un

ordenador o computadora. El término Programa puede referirse al código fuente

original o a la versión ejecutable (en lenguaje máquina) de un componente de

software. Cuando se habla de un programa se supone un cierto grado de terminación,

o sea, se da por hecho que están presentes todas las instrucciones y archivos

necesarios para la interpretación o compilación del programa. Por otro lado, se

entiende por Programa Ejecutable, un programa que ha sido traducido a código

Page 84: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

66

máquina en un formato que puede cargarse en la memoria y ejecutarse. Sin embargo,

en los lenguajes interpretados puede referirse simplemente al código fuente en su

formato apropiado.

El Software puede dividirse en varias categorías basadas en el tipo de trabajo

realizado. Las dos categorías primarias de software son: el software de aplicación,

que dirige las distintas tareas para las que se utilizan las computadoras, y el software

del sistema (los sistemas operativos), que controlan los trabajos del ordenador o

computadora. Según Bores y Rosales (1993) los Software de Aplicación son

aquellos que tienen un propósito específico y el Software del Sistema auxilia en la

creación, modificación y ejecución del software de aplicación.

Los Sistemas Operativos fueron desarrollados sobre todo para coordinar y

trasladar los flujos de datos que procedían de fuentes distintas, como las unidades de

disco o los coprocesadores (chips de procesamiento que ejecutan operaciones

simultáneamente con la unidad central, aunque son diferentes). Un sistema operativo

es un programa de control principal, almacenado de forma permanente en la

memoria, que interpreta los comandos del usuario que solicita diversos tipos de

servicios, como visualización, impresión o copia de un archivo de datos; presenta una

lista de todos los archivos existentes en un directorio o ejecuta un determinado

programa.

Page 85: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

67

Para crear el Software de Aplicación se utilizan un conjunto de vocablos y

reglas proporcionados por un software llamado Lenguaje, este consta de

instrucciones que deben darse en una determinada configuración de información

digital binaria. En las primeras computadoras, la programación era una tarea difícil y

laboriosa ya que los conmutadores ON-OFF de las válvulas de vacío debían

configurarse a mano. Programar tareas tan sencillas como ordenar una lista de

nombres requería varios días de trabajo de equipos de programadores. Desde

entonces se han inventado varios lenguajes informáticos como: el Lenguaje de Bajo

Nivel y el Lenguaje de Alto Nivel, ellos están orientados hacia funciones específicas

y centrados en la facilidad de uso.

Los Lenguajes de Bajo Nivel permiten crear programas muy rápidos, pero

que son a menudo difíciles de aprender. Más importante es el hecho de que los

programas escritos en un bajo nivel sean altamente específicos de cada procesador,

esto es porque vistos a muy bajo nivel, los microprocesadores procesan

exclusivamente señales electrónicas binarias. Dar una instrucción a un

microprocesador supone en realidad enviar series de unos y ceros espaciadas en el

tiempo de una forma determinada. Esta secuencia de señales se denomina código

máquina. El código representa normalmente datos, números e instrucciones para

manipular los microprocesadores, Código es, en realidad, un término genérico para

nombrar las instrucciones del programa, utilizadas en dos sentidos generales. El

primero se refiere al código fuente, legible a simple vista, que son las instrucciones

escritas por el programador en un lenguaje de programación. El segundo se refiere al

Page 86: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

68

código máquina ejecutable, que son las instrucciones convertidas de código fuente a

instrucciones que el ordenador o computadora puede comprender.

Un modo más fácil de comprender el código máquina es dando a cada

instrucción un mnemónico, como por ejemplo STORE, ADD o JUMP. Esta

abstracción da como resultado el ensamblador, un lenguaje de muy bajo nivel que es

específico de cada microprocesador.

El Lenguaje de Máquina es propio del ordenador, basado en el sistema

binario, o código máquina, resulta difícil de utilizar para las personas. El programador

debe introducir todos y cada uno de los comandos y datos en forma binaria, y una

operación sencilla como comparar el contenido de un registro con los datos situados

en una ubicación del chip de memoria puede tener el siguiente formato: 11001010

00010111 11110101 00101011.

Uno de los métodos inventados por los programadores para reducir y

simplificar el proceso es la denominada programación con Lenguaje Ensamblador.

Al asignar un código mnemotécnico (por lo general de tres letras) a cada comando en

lenguaje máquina, es posible escribir y depurar o eliminar los errores lógicos y de

datos en los programas escritos en lenguaje ensamblador, empleando para ello sólo

una fracción del tiempo necesario para programar en lenguaje máquina. En el

lenguaje ensamblador, cada comando mnemotécnico y sus operadores simbólicos

equivalen a una instrucción de máquina. Un programa ensamblador traduce el código

Page 87: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

69

fuente, una lista de códigos de operación mnemotécnicos y de operadores simbólicos,

a código objeto (es decir, a lenguaje máquina) y, a continuación, ejecuta el programa.

Sin embargo, el lenguaje ensamblador puede utilizarse con un solo tipo de

chip de CPU o microprocesador. Los programadores que dedicaron tanto tiempo y

esfuerzo al aprendizaje de la programación de un ordenador, se veían obligados a

aprender un nuevo estilo de programación cada vez que trabajaban con otra máquina.

Lo que se necesitaba era un método abreviado en el que un enunciado simbólico

pudiera representar una secuencia de numerosas instrucciones en lenguaje máquina, y

un método que permitiera que el mismo programa pudiera ejecutarse en varios tipos

de máquinas. Estas necesidades llevaron al desarrollo de lenguajes de alto nivel.

Los Lenguajes de Alto Nivel suelen utilizar términos ingleses del tipo LIST,

PRINT u OPEN como comandos que representan una secuencia de decenas o de

centenares de instrucciones en lenguaje máquina. Los comandos se introducen desde

el teclado, desde un programa residente en la memoria o desde un dispositivo de

almacenamiento, y son interceptados por un programa que los traduce a una serie de

instrucciones en lenguaje máquina.

La traducción de esta serie de instrucciones en lenguaje ensamblador (el

código fuente) a un código máquina (o código objeto) no es un proceso muy

complicado y se realiza normalmente por un programa especial llamado Compilador.

La traducción de un código fuente de alto nivel a un código máquina también se

Page 88: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

70

realiza con un compilador, en este caso más complejo, o mediante un intérprete. Un

compilador crea una lista de instrucciones de código máquina y el código objeto,

basándose en un código fuente. El código objeto resultante es un programa rápido y

listo para funcionar, pero que puede hacer que falle el ordenador si no está bien

diseñado.

Los Intérpretes, por otro lado, son más lentos que los compiladores ya que no

producen un código objeto, sino que recorren el código fuente una línea cada vez.

Cada línea se traduce a código máquina y se ejecuta. Cuando la línea se lee por

segunda vez, como en el caso de los programas en que se reutilizan partes del código,

debe compilarse de nuevo. Aunque este proceso es más lento, es menos susceptible

de provocar fallos en la computadora.

3.1. PROGRAMACIÓN

Según Joyanes, Hermoso y Zahonero (1995), generalmente la principal razón

para que las personas aprendan lenguajes de programación es utilizar la computadora

como una herramienta para la resolución de problemas, para ello se pueden identificar

dos fases:

• Fase de resolución del problema.

• Fase de implementación en la computadora.

Page 89: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

71

El resultado de la primera fase es el desarrollo de un algoritmo para resolver el

problema. Un Algoritmo es un conjunto de instrucciones que conducen a la solución

de un problema, se desarrolla en un lenguaje de programación que la computadora

pueda entender y expresado en cualquier lenguaje de programación de computadora

se denomina Programa, cuya ejecución y verificación es el objetivo final de la fase de

implementación.

El diseño de programas es una tarea difícil y es un proceso creativo, no existe

un conjunto completo de reglas o algoritmos para indicar como escribir programas,

así las fases mencionadas anteriormente disponen de una serie de pasos que conducen

a la solución del problema, tales como:

• Análisis del problema.

• Diseño del algoritmo.

• Codificación.

• Compilación y ejecución.

• Verificación.

• Depuración.

• Documentación.

Las dos primeras fases conducen a un diseño detallado en forma de algoritmo,

durante la Codificación simplemente el algoritmo es un código escrito en un lenguaje

de programación, seguidamente en la fase de compilación se traduce el código fuente

Page 90: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

72

a código máquina mediante intérpretes o compiladores y en la fase de ejecución se

corre el programa sobre la computadora, finalmente en las fases de verificación y

depuración se buscan los errores de las etapas anteriores y se eliminan, para así

documentar el programa para saber que hace y como lo hace.

Para lograr un adecuado grado de confiabilidad en los programas se debe

partir de diagramas correctos, para ello se utilizan herramientas tales como diagramas

de flujo, pseudocódigos y diagramas de Nassi-Schneiderman. Usualmente los

Diagramas de Flujo son la base para la codificación del programa, en estos se

describe el algoritmo o solución del problema de una manera clara y explícita

utilizando de manera combinada una serie de símbolos gráficos, bloques y figuras de

control que incluyen una breve descripción de las operaciones o procedimientos

involucrados, denominadas pseudoinstrucciones. Adicionalmente se establecen

gráficamente la secuencia y el orden de ejecución de cada una de las operaciones,

mediante las líneas de flujo que apuntan siempre hacia la siguiente operación a ser

efectuada, sin embargo, tiene sus desventajas ya que es difícil de modificar por su

carácter gráfico; para superar esto surge el Pseudocódigo como alternativa, de

manera que se pueda programar utilizando como medio básico de expresión la lengua

nativa del programador.

Así mismo, para mejorar la productividad de un programa se utiliza la

Programación Modular, en el cual el programa se divide en módulos, cada uno de

los cuales ejecuta una única actividad y se codifica independientemente de otros

Page 91: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

73

módulos. Cada programa contiene un módulo principal que controla todo lo que

sucede, transfiriendo el control a submódulos o subprogramas, de modo que puedan

ejecutar sus funciones. Dado que los módulos son independientes diferentes

programadores pueden trabajar simultáneamente en diferentes partes del programa, lo

que reduce el tiempo de diseño y codificación del programa, además cada módulo se

puede modificar radicalmente a los demás.

La descomposición de los programas en módulos independientes más simples

se conoce también como el método de "Dividir y Vencer" (Divide & Conquer). Se

diseña cada módulo con independencia de los demás, y siguiendo un método

ascendente y descendente se llegará hasta la descomposición final del problema en

módulos de forma jerárquica.

Seguidamente cada submódulo devuelve le control al módulo principal

cuando haya completado su actividad, que en el caso de ser muy compleja deberá

distribuirse en módulos más pequeños.

3.2. PROGRAMACIÓN ESTRUCTURADA

Es un término general que se refiere a un tipo de programación que produce

código con un flujo limpio, un diseño claro y un cierto grado de modularidad o de

estructura jerárquica. En concreto, la Programación Estructurada significa escribir

un programa de acuerdo a las siguientes reglas:

Page 92: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

74

• El programa tiene un diseño modular.

• Los módulos son diseñados de modo descendente.

• Cada módulo se codifica utilizando las tres estructuras de control básicas:

Secuencia, Selección y Repetición. Las Estructuras de Control indican

el orden, alternancia y repetición de las distintas instrucciones que

componen un programa.

Entre los beneficios de la programación estructurada se encuentran la facilidad

de mantenimiento y la legibilidad por parte de otros programadores. La idea central

de la programación estructurada es darle al programador una herramienta y una

metodología para que pueda enfrentar la solución de cualquier problema de manera

exitosa sin tener que recurrir al procedimiento de ensayo y error.

El principio fundamental en el cual se basa la programación estructurada parte

de la idea lógica de que la mejor manera de obtener programas correctos (libres de

errores) es la de no introducir estos errores desde el comienzo. Al desarrollar un

programa se dedica tiempo en el chequeo y corrección de los errores introducidos

fundamentalmente en las primeras etapas del proceso, principalmente en el análisis

lógico y diseño del programa, es importante reducir estos errores para así minimizar

el tiempo de corrección del programa, con una ganancia en confiabilidad y seguridad

sobre su correcto funcionamiento (Marquez, J. 1992:62).

Page 93: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

75

3.3. LENGUAJES PASCAL Y TURBO PASCAL

El lenguaje de programación PASCAL es un lenguaje de alto nivel y

propósito general, diseñado a finales de los 60s por Niklaus Wirth en el Instituto

Federal de Tecnología (Federal Institute of Technology) de Zurich, para enseñar la

programación de forma disciplinada y sistemática. Su nombre se debe al famoso

matemático francés Blaise PASCAL, diseñador de una de las primeras máquinas de

calcular mecánicas y precursora de las modernas computadoras digitales.

Este lenguaje ha adquirido aceptación y uso en las empresas, industrias y

computadoras personales, ya que es sencillo de aprender, aunque incluye un amplio

rango de conceptos de programación. Este programa fomenta entre los programadores

el escribir programas claros y que son fácilmente comprendidos por otros

programadores.

Muchos compiladores para PASCAL han sido construidos y están disponibles

para diferentes máquinas, los cuales ofrecen interpretaciones ligeramente diferentes

impidiendo la compatibilidad entre ellos, por ello The International Standards

Organization (ISO) y The American National Standard Institute (ANSI) en conjunto

con The Institute of Electrical and Electronics Engineers (IEEE), establecieron

definiciones estándares y oficiales del lenguaje de programación PASCAL conocidas

como: ISO PASCAL y ANSI/IEEE PASCAL, que difieren en algunos aspectos no

Page 94: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

76

significativos. Sin embargo, dos versiones no estándar se han popularizado

considerablemente: UCSD PASCAL y TURBO PASCAL.

El Lenguaje TURBO PASCAL es la versión más popular y difundida debido

a su facilidad de edición, compilación y ejecución. La última mejora de TURBO

PASCAL corresponde a la versión 7.0, la cual posee las siguientes herramientas de

programación:

• Un entorno de desarrollo integrado.

• Punteros.

• Gestión Dinámica de Memoria.

• Introducción a la programación con funciones del DOS y el BIOS.

• El uso del lenguaje ensamblador y programas residentes en memoria.

• Programación orientada a objetos (OOP).

• Turbo Visión.

Este lenguaje de programación está desarrollado a partir del lenguaje

algorítmico y actualmente forma parte de las herramientas de trabajo informativo

disponible en cualquier mercado software. Sus características fundamentales según

autores como Joyanes, Hermoso y Zahonero (1995) y Lozano, P (1994) son las

siguientes:

• Constituye una herramienta excelente para el aprendizaje de la

programación.

Page 95: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

77

• Es un lenguaje de propósito general.

• Es un lenguaje procedural (imperativo orientado a órdenes).

• Es un lenguaje estructurado (soporta las estructuras básicas while, for y

repeat, no necesita el empleo de la sentencia goto).

• En un lenguaje recursivo, es decir permite que sus módulos o

subprogramas (procedimientos y funciones) se llamen a sí mismos.

• Tiene riqueza de tipos de datos, con una gran cantidad de tipos tanto

predefinidos como definidos por el usuario.

• Producción por los compiladores de códigos ejecutables rápidos y

eficientes.

En PASCAL existen varios tipos de estructuras que se refieren a la forma en

como están dispuestas las instrucciones. Entre ellas se tienen Estructuras Simples,

formadas por una sola instrucción, y Estructuras Compuestas, conformadas por dos

o más instrucciones, en el caso de TURBO PASCAL delimitadas por un "Begin" y un

"End".

De esta misma manera existe una estructura para un programa en TURBO

PASCAL, compuesta por tres partes claramente diferenciadas que son:

• Cabecera del programa.

• Sección de declaraciones.

• Cuerpo del programa.

Page 96: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

78

La Cabecera del Programa consta de tres partes: La palabra reservada

"program", el nombre del programa (un identificador) y un punto y coma (;). En

PASCAL estándar deben declararse, entre paréntesis y separados por comas todos los

ficheros que intervienen en la ejecución del programa.

La Sección de Declaraciones está compuesta por:

• Declaración de unidades (USES)(sólo en TURBO PASCAL).

• Declaración de etiquetas (LABEL).

• Declaración de constantes (CONST).

• Definición de tipos (TYPE).

• Declaración de Variables (VAR).

• Declaración de procedimientos y funciones (PROCEDURE, FUNCTION).

Cada una de estas secciones son opcionales, y aunque en PASCAL estándar

deben estar situadas en este orden y cada sección no puede aparecer más que una sola

vez, en TURBO PASCAL las secciones pueden aparecer más de una vez y en un

orden cualquiera.

Tras la sección de declaraciones comienza el programa principal que

constituye el Cuerpo del Programa donde están todas las sentencias que pertenecen

al programa en sí.

Page 97: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

79

Así mismo TURBO PASCAL consta de una serie de elementos que se

combinan entre sí de acuerdo a las reglas de sintaxis propias del lenguaje. Entre los

elementos básicos se pueden resaltar: las Palabras Reservadas las cuales tienen un

significado específico para el compilador y que no pueden cambiarse, a diferencia de

ellas están los Identificadores Estándar, los cuales pueden ser redefinidos por el

usuario (aunque esta práctica no es recomendable) y representan constantes,

variables, tipos de datos, procedimientos, funciones, etc. También están los

Identificadores Definidos por el Usuario que designan los distintos elementos del

programa: tipos de datos, constantes, variables, procedimientos, funciones, etc. Están

formados por secuencias de caracteres alfabéticos y dígitos de cualquier longitud

(hasta 127) siendo significativos sólo los 63 primeros y construidos de acuerdo a las

siguientes reglas:

• Comienzan obligatoriamente por una letra. Excepcionalmente se admite

el carácter subrayado como componente (_) de un identificador.

• Los identificadores no pueden ser palabras reservadas.

• En PASCAL no existen diferencias entre mayúsculas y minúsculas en el

nombre de un identificador.

Además en un programa es importante tomar en cuenta los Comentarios, que

no son más que textos situados en el código fuente y que tienen como objetivo aclarar

el papel o función que determinadas sentencias desempeñan en el programa. Los

Page 98: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

80

comentarios no generan un código ejecutable por el compilador. En PASCAL existen

dos formas de especificar comentarios: poner el texto entre los caracteres '(*' y'*)' o

bien entre llaves '' y ''. Pueden incluirse comentarios en cualquier parte del

programa.

Cabe destacar que un programa en PASCAL no se interpreta siempre se

compila, una vez efectuada la compilación, y si no se ha detectado algún error, el

programa está listo para ser efectuado.

4. SISTEMAS DE CONTROL

El uso de la palabra Sistema tiene muchos significados, se puede definir como

un conjunto, arreglo o colección de piezas unidas o relacionadas de tal manera que

forman una entidad o un todo (DiStefano, Stubberud y Williams, 1992:1). En una

manera más específica se puede decir que un sistema es un ordenamiento de

componente físicos unidos o relacionados que forman y actúan como una unidad

completa.

Del mismo modo la palabra Control se toma en el sentido de regular dirigir o

mandar, así como de mantener o modificar, según un criterio previamente fijado, los

valores de las variables de un cuerpo, máquina o proceso.

Page 99: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

81

Combinando las definiciones anteriores se tiene que un Sistema de Control

es un ordenamiento de componentes físicos o relacionados de tal manera que mandan,

dirigen o regulan al mismo sistema o a otro. Según Richard Dorf (1989) un sistema

de control es una interconexión de componentes que forman una configuración del

sistema que proporcionará una respuesta deseada del sistema. La base para el análisis

de un sistema es el fundamento proporcionado por la teoría de los sistemas lineales la

cual supone una relación causa-efecto para los componentes de un sistema.

En un componente o proceso que vaya a ser controlado deben tomarse en

cuenta las entradas y salidas, las cuales representan la relación causa y efecto del

proceso. Como se aprecia en la Figura No. 7 la Entrada es el estímulo, excitación o

el mandato aplicado a un sistema de control, generalmente desde una fuente externa

de energía, para producir una respuesta específica en el sistema. Por otro lado, la

Salida es la respuesta real que se obtiene de un sistema de control la cual puede ser

igual o no a la respuesta implícita especificada por la entrada.

Figura No. 8: Proceso a Controlar

ProcesoEntrada Salida

Fuente: Dorf, R (1989:2)

Usualmente el propósito del sistema de control es identificar o definir la

entrada y la salida, y por consiguiente la naturaleza de los componentes del sistema.

Así se puede procesar la señal de entrada para proporcionar una variable de señal de

salida, frecuentemente con una amplificación de potencia.

Page 100: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

82

Los sistemas de control, se clasifican en dos categorías generales, que se

distinguen por la acción de control, que es la cantidad responsable de activar el

sistema para producir la salida. Estas categorías son: Sistemas de Control de Lazo

Abierto y Sistemas de Control de lazo Cerrado.

Los Sistemas de Control de Lazo Abierto son aquellos en los cuales la

acción de control es independiente de la salida, es decir, las salidas del sistema son

controladas solamente por las entradas del mismo y no toma en cuenta la verdadera

salida del sistema. Un sistema de control de lazo abierto utiliza un regulador o

actuador de control a fin de obtener la respuesta deseada, como se muestra en la

figura:

Figura No. 9: Sistema de Control de Lazo Abierto

Respuesta de Salida Deseada ProcesoRegulador Salida

Fuente: Dorf, R (1989:2)

Dos características de los sistemas de control de lazo abierto son: la precisión

del sistema que está determinada por la calibración, que no es más que establecer o

restablecer la relación entrada-salida para obtener una exactitud deseada del sistema y

usualmente no presentan problemas de inestabilidad.

Page 101: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

83

De acuerdo a Ogata (1993) un sistema de lazo abierto solo se puede utilizar si

la relación entre la entrada y la salida es conocida y si no se presentan perturbaciones

tanto internas como externas.

En contraste con un sistema de control de lazo abierto, el Sistema de Control

de Lazo Cerrado utiliza una medición adicional para compararla con la respuesta de

salida deseada, con frecuencia también se les llama sistema de control

Retroalimentado. La Retroalimentación es la característica que distingue a los

sistemas de control de lazo cerrado y es una propiedad que permite que la salida se

compare con la entrada de manera que la acción de control apropiada se pueda formar

como alguna función de la entrada y la salida. En concreto, un sistema de control

retroalimentado es un sistema en el cual el valor de alguna magnitud de salida es

controlado mediante la retroalimentación del valor de la magnitud controlada, la cual

es utilizada para manipular una magnitud de entrada de modo que la magnitud

controlada sea llevada a un valor más próximo al deseado. Este proceso se muestra en

la figura:

Figura No. 10: Sistema de Control de Lazo Cerrado

Respuesta de Salida Deseada

Medición

Proceso ReguladorComparador Salida

Fuente: Dorf, R (1989:3)

Page 102: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

84

El uso de la acción de control retroalimentado es para reducir el error del

sistema, esto se da cuando la señal de error actuante, que es la diferencia entre la

señal de entrada y la de retroalimentación entre al controlador, reduce el error y lleva

la salida al valor deseado.

La presencia de retroalimentación imparte varias propiedades al sistema: se

aumenta la exactitud, hay una tendencia hacia la oscilación o inestabilidad, se reduce

la sensitividad de la razón salida/entrada frente a las variaciones en los parámetros del

sistema, se reducen los efectos de las no linealidades y de las distorsiones externas o

ruido y el ancho de banda es aumentado, el ancho de banda es una medida de la

respuesta de frecuencia de qué tan bien responde (o filtra) el sistema a las variaciones

(o frecuencias) de la señal de entrada.

Hasta el momento se ha expuesto que la principal diferencia entre los sistemas

de control de lazo cerrado y los de lazo abierto es la generación y utilización de la

señal de error, esta le otorga al sistema la capacidad de llevar a cabo una acción de

autocorrección. La Autocorrección se refiere a la capacidad del sistema para

monitorear o revisar una variable del proceso y automáticamente corregirlo si no es

aceptable.

4.1. MODOS DE CONTROL

Page 103: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

85

La relación entre la señal de salida del controlador y la señal de error depende

del diseño y del ajuste de este, la manera como reacciona el controlador a la señal de

error indica el modo de control, estos se pueden clasificar de acuerdo a la

complejidad de los mecanismos y de los circuitos involucrados en: Control On-Off,

Proporcional, Proporcional-Integral y Proporcional-Integral-Derivativo.

En el modo de Control On-Off, el dispositivo o efector final solo tiene dos

posiciones o estados de operación. Si la señal de error es positiva el controlador envía

el dispositivo corrector final a una de sus dos posiciones, si la señal es negativa, el

controlador envía el dispositivo corrector final a la otra posición.

Según Maloney (1997) existe una característica importante en el control On-

Off, esta es la sobrecorrección que ocurre cuando el proceso no puede responder

instantáneamente a los cambios de la variable monitoreada, la sobrecorrección

depende de la naturaleza completa del sistema y puede ser diferente en las direcciones

positivas y negativas.

Ningún controlador On-Off puede exhibir la operación ideal, ya que estos

poseen una zona de actuación. La zona de actuación está definida como el más

pequeño rango de valores medidos que debe atravesar para hacer que el dispositivo

corrector vaya de una posición a la otra.

Page 104: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

86

La zona de actuación es una expresión del hecho que el valor medido debe

pasar por encima del valor deseado y así alcanzar un valor positivo en la señal de

error, con el efecto de llevar al efector a una de las dos posiciones. Igualmente, el

valor medido debe caer por debajo del valor deseado para obtener una señal de error

negativa, y así llevar a la otra posición al efector. En muchos controladores On-Off, la

zona de actuación es fija, posiblemente de un 2%.

Todos los controladores On-Off tienen una Brecha Diferencial, esta se define

como el rango menor de valores que debe atravesar el valor medido para hacer que el

dispositivo corrector pase de una posición a otra. La brecha diferencial puede

expresarse como un porcentaje del rango completo del controlador. La brecha

diferencial tiene su ventaja en que se reduce el desgaste del dispositivo corrector y su

desventaja está en que el valor instantáneo medido puede desviarse del punto de

ajuste.

En el modo de Control Proporcional (P), el dispositivo corrector final no es

forzado a tomar una posición de todo o nada (On-Off), en lugar de esto, tiene un

rango continuo de posiciones posibles, así sin importar el mecanismo en sí y la

potencia que lo alimenta, el controlador proporcional es esencialmente un

amplificador con ganancia ajustable. La posición exacta que toma el efector final es

proporcional a la señal de error, en otras palabras, la salida del controlador es

proporcional a la señal de error que se refleja en su entrada. Este tipo de control

elimina la constante de oscilación alrededor del valor deseado.

Page 105: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

87

En todo control proporcional existe una Banda Proporcional, la cual es el

porcentaje del rango total del controlador en el cual el valor medido cambiará en

orden de producir que el dispositivo de corrección final cambie en un 100%. La

mayoría de los controladores proporcionales tienen una banda proporcional ajustable.

Como afirmación general, se puede decir que el control proporcional trabaja

bien solamente en sistemas donde los cambios en el proceso son muy pequeños y

lentos.

Para las situaciones en las cuales los cambios en la carga son grandes y

rápidos, y el valor deseado puede variar considerablemente, el modo de Control

Proporcional-Integral (PI) se adapta mejor, en este modo la operación del

dispositivo corrector final está determinada por dos factores: la magnitud de la señal

de error que es la parte proporcional y la integral con respecto al tiempo de la señal de

error; en otras palabras, la magnitud del error multiplicada por el tiempo que ha

permanecido. De esta manera se puede decir que en este modo de control la señal de

control es proporcional a la suma de la señal de error y su integral.

Este modo se ajusta a la mayoría de las situaciones de control, ya que puede

controlar bastante bien grandes cambios en la carga, atenúa oscilaciones prolongadas,

disminuye el desbalance y se recupera rápidamente en presencia de una perturbación.

Page 106: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

88

Aunque el control proporcional-integral es adecuado para la mayoría de las

situaciones de control no es adecuado para todos, hay procesos que presentan

problemas de control muy difíciles de manejar como: cambios muy rápidos en la

carga y retardos de tiempo grandes entre la aplicación de la acción correctora y el

aparecimiento de los resultados de dicha acción en la variable medida (Maloney,

1997:310).

En los casos en los que prevalecen algunos de estos problemas la solución

podría ser el Control Proporcional-Integral-Derivativo (PID), en el que la acción

correctiva es determinada por 3 factores: la magnitud del error, que es la parte

proporcional, la integral de tiempo del error, o la magnitud de error multiplicada por

el tiempo que ha persistido, que es la parte integral y el cambio del error en el tiempo,

que es la parte derivativa. Un rápido cambio del error provoca una mayor acción

correctiva que un cambio de error lento.

Se puede definir el control PID como un control en el cual la señal, de control

es proporcional a la suma de la señal de error, su integral y su derivada.

En un sentido intuitivo, la parte derivativa del controlador intenta mirar

adelante y prevee que el proceso sufrirá un cambio basándose en las medidas

actuales, es decir, si la variable medida está cambiando muy rápidamente, es seguro

que tratará de cambiar en una gran cantidad. Siendo este el caso, el controlador trata

Page 107: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

89

de anticiparse al proceso implicando una acción correctora mayor que la que aplicaría

un control proporcional-integral.

B. REVISIÓN DE LA LITERATURA

Esta investigación se sustenta en un conjunto de proyectos desarrollados en

diversos laboratorios, entre los cuales se encuentran:

Figura No. 11: Jet Propulsion Lab's Sojourner

Fuente: mars.jpl.nasa.gov (1998-11-02)

The NASA Jet Propulsion Lab (1996) quienes diseñaron y construyeron el

Robot SOJOURNER, componente de la misión espacial Mars Pathfinder, para

realizar una serie de experimentos científicos, tecnológicos y de ingeniería; entre

ellos comprobar la posibilidad de realizar a bajo costo, el viaje, la entrada, el

descenso y el posicionamiento seguro en Marte de una carga útil para el hombre. Así

con un apropiado circuito de control para el movimiento del Robot, un sistema de

Page 108: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

90

comunicaciones inalámbrico, un sistema de visión formado por cámaras

tridimensionales, un espectrómetro y un avanzado sistema de computación se pudo

obtener la información precisa de un planeta que hasta entonces no había sido

explorado. Sin embargo el desarrollo tecnológico más notable es la incorporación del

sistema de control remoto del rover, que utiliza la realidad virtual para observar los

movimientos del Robot y generar una serie de comandos para que el Robot se mueva

y realice sus operaciones, por medio de un joystick que hace mover al Robot virtual

en pantalla y envía los comandos hacia Marte.

Figura No. 12: Marvin

Fuente: www.-robotics.usc.edu (1998-11-02)

Los resultados obtenidos en tal proyecto fueron satisfactorios en lo que se

refiere a Robots manipulados para desplazarce en lugares inaccesibles para el

hombre, sin embargo posteriormente se han realizado investigaciones que enfocan

más el comportamiento y la autonomía de los Robots como se hizo en La

Universidad del Sur de California (The South California University) (1996)

donde adaptaron un carro radio control llamado MARVIN, al cual se le especifica el

Page 109: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

91

tipo de comportamiento deseado más que el programa de control que lo produce. Está

equipado con 5 sensores detectores de sonar y dos bumpers táctiles que le proveen

una señal de realimentación del entorno. De esta información, infiere qué

características sensoriales son relevantes para actuar y toma las acciones apropiadas

frente a cada situación. De esta manera y a través de una política de control, el Robot

debe primero aprender a anticipar los resultados de conseguir una recompensa

positiva o negativa y tratar de evitar la negativa, y mediante esta información

actualizar la política de control hasta que sea la más apropiada. Los comportamientos

logrados incluyen evadir obstáculos, exploración del ambiente y el seguir una pared.

La contribución primaria de este trabajo está en su intento por identificar esquemas de

códigos más eficientes para la representación del estado del espacio o entorno.

Figura No. 13: Smart-V

Fuente: www.cs.umd.edu (1998-11-02)

Así mismo en el Laboratorio de Robot Móviles Autónomos (Autonomous

Mobile Robotics Laboratory) en La Universidad de Maryland (1997), un carro

Page 110: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

92

radio control fue convertido en un Robot llamado SMART-V, capaz de correr de

forma autónoma o bajo un control externo vía módem inalámbrico. Sin embargo no

tenía la suficiente autonomía y para ello se creó una nueva versión completamente

autónoma y con un diseño mejorado. Este posee un anillo sonar de dos partes con 12

sensores de ultrasonido multiplexados en el tiempo y un módulo de rango que toma el

tiempo que tarda la señal del transductor en volver, estos trabajan en conjunto con

una computadora de manera inalámbrica transmitiendo los datos para el

procesamiento y trazan la ruta a seguir por el radio control. Sin embargo y a pesar que

los transductores del modelo tienen 20 grados de apertura de haz y son capaces de ver

distancias de hasta 10 metros tienen un error nominal de ±3 milímetros a ± 3 metros.

A pesar del margen de error presentado en la detección de obstáculos, mediante esta

investigación se logró el desplazamiento autónomo del Robot en un entorno no

controlado.

Figura No. 14: Pocketbot

Fuente: www.divent.com (1998-11-02)

Page 111: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

93

Con respecto a la detección The Diversified Enterprises (1998) diseñaron el

POCKETBOT, un Robot miniatura totalmente programable desde cualquier

computador que posee sensores tales como celdas fotosensitivas para la visión, que

detectan las fuentes de luz y de esta manera puede ser instruido para que se acerque o

escape de ellas, se mueva alrededor de los obstáculos, busque puntos negros y ejecute

una cantidad incontable de otros comportamientos.

Figura No. 15: The Spirit Of Bolivia

Fuente: www.-robotics.usc.edu (1998-11-02)

En ese orden de ideas The Ullanta Performance Robotics (1997),

prepararon el equipo The Spirit Of Bolivia, conformado por Robots PIONNER I

desarrollados por ActivMedia Robotics, los cuales utilizando microcontroladores y

detectores infrarrojos son capaces de evitar colisiones con objetos de baja estatura y

de operar en distintos ambientes, además tienen un módulo para anillo sonar que

provee 180 grados de cobertura en la dirección en la que se desplaza y se les pueden

adaptar lasers, cámaras, sujetadores, brújula y el sistema de visión Fast Track.

Page 112: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

94

Aprovechando estas características los investigadores de Ullanta equiparon estos

Robots con sistema de visión, sistema Fast Track/Cognachrome, siete sonares

detectores y un sujetador para la manipulación de objetos, el cual a su vez incorpora

sensores de ruptura de rayo. De esta manera lograron la interacción de cinco Robots

que juegan Fútbol/Soccer, logrando no solo la detección y manipulación de objetos

sino la autonomía en sus movimientos.

C. DEFINICIÓN DE TÉRMINOS BÁSICOS

A continuación se presenta un listado ordenado alfabéticamente de los

términos más utilizados.

• ALU (Aritmetic Logic Unit): Unidad aritmética y lógica; parte de una unidad

central de proceso que se encarga de realizar operaciones aritméticas y lógicas

(Electrónica Moderna Práctica, tomo 4, 1995, p. 9).

• BUFFER: Memoria, sección de memoria o registro que recoge la información

procedente de una memoria auxiliar, o más generalmente de un dispositivo de

entrada-salida reteniéndola para transferirla oportunamente a la memoria interna o

principal del ordenador (Microprocesadores y Microcomputadoras, 1980, p.242).

Page 113: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

95

• CICLO DE TRABAJO: Relación entre el tiempo de trabajo con el de

inactividad de un circuito o sistema; se expresa generalmente en porcentaje

(Electrónica Moderna Práctica, tomo 4, 1995, p. 54).

• CMOS: Acrónimo de Complementary Metal Oxide Semiconductor

(Semiconductor Complementario de Óxido Metálico). Es un dispositivo

semiconductor formado por dos transistores de efecto de campo de óxido metálico

(MOSFET), uno del tipo n y otro del tipo p, integrados en un único chip de silicio

(Enciclopedia Microsoft® Encarta® 97).

• CONVERTIDOR ANALÓGICO DIGITAL (ADC): Circuito electrónico que

convierte una señal analógica en digital. La señal analógica, que varía de forma

continua en el tiempo, se conecta a la entrada del dispositivo y se somete a un

muestreo (cuantificación discreta, o asignación de un valor numérico a una

determinada intensidad de la señal) a una velocidad fija, obteniéndose así una

señal digital a la salida del mismo. Esta señal se puede volver a convertir en

analógica mediante un convertidor digital analógico (Enciclopedia Microsoft®

Encarta® 98).

• CPU: Unidad Central de proceso (Central Processing Unit). Módulo encargado

de buscar, decodificar y ejecutar instrucciones en un computador (Electrónica

Moderna Práctica, tomo 4, 1995, p. 77).

Page 114: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

96

• EEPROM: Siglas que denotan memoria de sólo lectura programable y borrable

eléctricamente, cuyo contenido puede establecerse a través de un proceso de

programación a través de una delgada capa de dióxido de silicio a una puerta

flotante (Electrónica Moderna Práctica, tomo 4, 1995, p. 108).

• EPROM: Siglas que denotan memoria de sólo lectura y borrable, cuyo contenido

puede establecerse a través de un proceso de programación por inyección de

electrones y que puede borrarse por exposición a la acción de rayos ultravioletas

(Electrónica Moderna Práctica, tomo 4, 1995, p. 112).

• FRECUENCIA: En un efecto que se repite periódicamente, frecuencia es la

inversa del período, es decir, el número de oscilaciones que se producen por

segundo. Su unidad es el Hertzio (Hz). Freedman (1993, p. 670).

• INTERFAZ: Creación de enlaces permanentes entre aplicaciones permanentes

bajo el mismo sistema operativo. Consiste en la elección del conjunto de

informaciones de origen y el lugar donde se requieren reproducir. Freedman

(1993, p. 755).

• OTP (One-Time-Programmable): Dispositivos programables una sola vez

(PIC16/17 Microcontroller Data Book, 1996, p. 3).

Page 115: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

97

• PUERTO: En hardware de ordenadores o computadoras, el lugar donde se

intercambian datos con otro dispositivo. Los microprocesadores disponen de

puertos para enviar y recibir bits de datos. Estos puertos se utilizan generalmente

como direcciones de memoria con dedicación exclusiva. Los sistemas completos

de computadoras disponen de puertos para la conexión de dispositivos periféricos,

como impresoras y módems (Enciclopedia Microsoft® Encarta® 98).

• PWM: Modulación por Ancho de Pulso (Pulse Width Modulation). Tipo de

modulación en que la duración o anchura de los impulsos se varía

proporcionalmente a la amplitud de los valores de muestra de la señal

moduladora. José Briceño (1993, p. 3.33).

• RAM: Memoria de acceso aleatorio (Random Access Memory). Almacenamiento

concebido para proporcionar un tiempo de acceso constante para cualquier

posición direccionada (Electrónica Moderna Práctica, tomo 4, 1995, p. 257).

• RISC: Siglas que significan Computadoras de juego de instrucciones reducido

(Reduced Instruction Set Computers), se identifican por poseer un repertorio de

instrucciones de máquina pequeño y simple, de forma que la mayor parte de las

instrucciones se ejecutan en un ciclo de instrucción (Microcontroladores PIC

Diseño Práctico de Aplicaciones, 1997, p. 6).

Page 116: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

98

• REGISTRO: Números de posiciones de memoria que contienen una información

requerida a un aspecto específico. Dispositivo hardware, cuya función consiste en

retener una información que se ha de tratar a continuación (Microprocesadores y

Microcomputadores, Barcelona-España, 1980, p. 249).

• ROM: Memoria de solo lectura (Read Only Memory). Dispositivo capaz de

retener datos, los cuales no se pueden alterar por instrucciones de programa

(Electrónica Moderna Práctica, tomo 4, 1995, p. 286).

• TORQUE: Es el par desarrollado por el motor, proporcional al producto de la

corriente en la armadura y el flujo en el entrehierro, el que a su vez es

proporcional a la corriente de campo. Katsuhiko Ogata (1993, p.127).

• TRANSDUCTOR: Dispositivo al que se aplica una energía de entrada y

devuelve una energía de salida; esta energía de salida suele ser diferente al tipo de

energía de entrada (Enciclopedia Microsoft® Encarta® 97).

D. SISTEMA DE VARIABLES

Hasta el momento no ha sido encontrada una definición precisa que explique

el término Sistema Robótico, ya que este puede tener diversas connotaciones de

Page 117: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

99

acuerdo a la aplicación y funcionamiento del mismo, así para lo que compete a esta

investigación los autores de este estudio Chacín y Socorro (1999) consideran

pertinente formular una definición apegada a los alcances de la misma.

De esta manera se define Sistema Robótico como una combinación de varios

dispositivos integrados y dispuestos de manera tal que formen una estructura capaz de

relacionarse con su entorno a través de sensores y de tomar decisiones en tiempo real

ejecutando tareas que no sean de simple repetición. En el cuadro, se establecen los

elementos que se utilizan para desarrollar y construir el Robot.

DIMENSIONES INDICADORES

Estructura

Mecánica

Le da forma al Robot y sostiene los demás componentes.

Microcontroladores Dispositivos pequeños, programables y capaces de almacenar

programas de control, le permiten tratar información y realizar

operaciones para controlar algunos de sus dispositivos

Sensores Dispositivos electrónicos que proveen información del

exterior.

PC Esté o no a bordo del Robot, es quien le dota de inteligencia a

través de un Software de Control.

Software de Control Líneas de programa de instrucciones que procesan la

información capturada por los sensores y toma decisiones

Page 118: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

100

adecuadas para el funcionamiento del mismo.

Interfaces En caso de que el PC no forme parte interna del Robot

necesita Interfaces adecuadas para la comunicación entre

ambos.

Es importante destacar que este Sistema Robótico está diseñado para Eludir

Obstáculos, entendiéndose como tal la evasión de los diferentes objetos, paredes o

cualquier otro tipo de elementos que le impidan el paso o bien que se le interpongan

en la ruta, lo que implica que el Robot basándose en los estímulos de su entorno sea

capaz de responder adecuadamente, de manera que pueda movilizarse sin colisionar

con ningún elemento.

Page 119: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

CAPITULO III_____________________________________ MARCO METODOLÓGICO

Page 120: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

A. RECOLECCIÓN DE INFORMACIÓN.

Para la obtención de datos e información necesaria en la realización de esta

investigación se recurrió a publicaciones de diferentes autores, tales como libros

referentes a robótica así como también a tópicos pertinentes al desarrollo de Robots,

tales como: Electrónica, Sistemas de Control, Microcontroladores, Programación,

entre otros, de cuya información se determinaron las bases teóricas de la

investigación.

Por otra parte, para el desarrollo del Sistema Robótico fue necesaria la

búsqueda de información en otros medios tales como revistas, donde se destacan

varias ediciones de las Revistas Especializadas Cekit, en las cuales se indagaron

aspectos tales como: controladores de puertos del computador, interface RS232 y

datos pertinentes a microcontroladores, para los cuales también se utilizaron los

Manuales Operativos del Sistema de Desarrollo PICSTART PLUS.

Así mismo fueron consultados trabajos de grado realizados en la Universidad

Dr. Rafael Belloso Chacín, por Phorlakis y Schwartz (1997) y Contreras y Perdomo

(1996), utilizados como material de apoyo y referencia en aspectos como robótica y

control de puertos, respectivamente.

Page 121: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

103

Finalmente uno de los medios utilizados para la recolección de datos fue el

acceso a diversas Páginas Web de Internet, mencionadas en la bibliografía, de las

cuales se recabó información sobre investigaciones recientes en el campo de la

robótica, e información técnica sobre componentes a utilizar en el desarrollo del

sistema.

B. INSTRUMENTOS

Para el desarrollo de esta investigación se utilizó como instrumento la

información suministrada por los documentales de Discovery Channel: Ultra Science,

Horizons, The New Explorers y Fronteras de la Ciencia, en estos se presentan los más

recientes descubrimientos e innovaciones tecnológicas, y de los cuales se extrajo

información competente a esta investigación, como lo son los últimos avances en las

teorías relacionadas con la Robótica en USA y Japón.

C. TIPO DE INVESTIGACIÓN

Esta investigación se considera del tipo Tecnológico debido a que las

actividades realizadas durante su desarrollo tales como el estudio, diseño y montaje

de los diferentes componentes de la estructura mecánica del Robot, del sistema de

visión, de los circuitos electrónicos y de las interfaces necesarias competentes al

hardware del sistema, así como los programas para los Microcontroladores y el PC

correspondientes al software que lo controla, están orientadas a la generación de

Page 122: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

104

nuevo conocimiento como es la creación de un prototipo de Sistema Robótico para

eludir obstáculos, conocimiento que puede ser aplicado en el estudio y desarrollo de

Robots semi-autónomos o autónomos, para movilizarse en entornos no controlados y

desconocidos, así como en aplicaciones donde se requieran sistemas de visión

alternativos a las cámaras.

Así mismo y en concordancia con los criterios manejados por Sabino, C

(1995:39), la investigación de acuerdo a sus objetivos intrínsecos se considera del

tipo Descriptivo, ya que describe los componentes fundamentales de los Robots,

destacando los elementos esenciales ya mencionados y obteniendo las características

aprovechables en la realidad estudiada, evidenciadas en el desarrollo del Sistema

Robótico capaz de relacionarse con su entorno, evadiendo los posibles obstáculos.

D. FASES DEL DESARROLLO

La metodología del hardware adoptada para la presente investigación se

sustentó en la expuesta por Angulo, J. (1992) y adaptada a las características de este

estudio por Chacín y Socorro (1999).

Fase 1. - Definición de las Especificaciones.

En esta fase se define con la mayor precisión posible el funcionamiento del

sistema a desarrollar, para esto, solo debe establecerse los estímulos de entrada y de

Page 123: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

105

salida, sin detenerse a explicar las razones. Debe especificarse el que y NO el por

qué.

Fase 2. - Esquema General del Hardware.

En esta fase se desarrolla en forma de BLOQUES FUNCIONALES todas las

etapas del sistema interconectadas entre sí de manera lógica. Se asume como bloques

funcionales, cada una de las partes elementales del sistema encargado de hacer un

único trabajo en particular.

Fase 3. - Ordinograma General.

Aquí se establece el diagrama de flujo que se estima será el que regirá el

funcionamiento del circuito. Este diagrama se denomina general porque su propósito

es el de servir como base para el desarrollo del software, el cual está sujeto a

modificación. Este se realiza en forma general pero que ilustre el funcionamiento del

sistema.

Fase 4. - Adaptación entre el Hardware y el Software.

Una vez establecida la forma del hardware y del software se establecen los

diferentes mecanismos para la comunicación entre ambos, garantizando que la

información entra y sale en forma correcta.

Page 124: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

106

Fase 5. - Ordinogramas Modulares y Codificación de Programas.

En esta etapa, cada uno de los diferentes bloques generales del diagrama de

flujo se codifican individualmente, asegurándose que cada parte realiza el trabajo en

forma eficiente y segura. Esto se hace codificando el programa directamente en el

lenguaje seleccionado para tal fin.

Fase 6. - Implementación del Hardware.

Acá, se materializa el circuito. Para ello se estudian las hojas del fabricante de

los diferentes circuitos a utilizar. Debe tenerse especial cuidado en las corrientes de

consumo y las que puede entregar cada una de las salidas, con el fin de no

sobrecargar cada una de las partes. Así mismo, se debe prever el uso de todos y cada

uno de los pines, para no dejar ninguno desconectado.

Fase 7. - Depuración del Software.

En esta, el programa se prueba y se depura hasta que su funcionamiento sea el

adecuado. Es imperativo probar todas y cada una de las diferentes bifurcaciones del

programa, incluso, se determina su funcionamiento bajo condiciones extremas.

Fase 8. - Integración del Hardware con el Software.

Page 125: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

107

Finalmente se prueba la interacción entre ambas partes, confirmando que la

totalidad del sistema interactúa de manera correcta y eficiente.

Fase 9. - Construcción del Prototipo definitivo y pruebas finales.

Si es necesario implantar todo el sistema, en el ámbito de hardware se

materializa con una placa de baquelita o fibra de vidrio y el programa se establece

compilado y se prueba nuevamente la funcionalidad de la totalidad del sistema.

E. MATERIALES Y EQUIPOS

En el desarrollo de la investigación se hizo necesaria la utilización de diversos

dispositivos electrónicos y equipos para la implementación del hardware y el software

del Sistema Robótico.

Para la construcción del hardware se pueden mencionar los componentes

utilizados de acuerdo a las diferentes funciones a cumplir en el sistema, entre ellas

tenemos:

• Procesamiento Central de información:

Computador.

Page 126: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

108

• Estructura del Robot:

Chasis de un Carro Radio-Control.

• Movimientos del Robot:

1 Transmisor FUTABA de 75 MHz.

1 Tarjeta Interna, para la cual se utilizó:

1 Interface programable de periféricos 8255 .

1 Comparador de Magnitud de 8 bits 74CH688.

16 Resistencias de 1.5KΩ.

2 Resistencias de 2.2KΩ.

14 Resistencias de 3KΩ.

8 Resistencias de 10KΩ.

2 Potenciómetros de 5KΩ.

2 Capacitores de 0.1µF.

1 Amplificador operacional LM324.

1 Conector DB25.

1 Receptor FUTABA de 75 MHz.

1 Control electrónico de Velocidad de NOVAK ELECTRONICS INC.

1 Motor de 23000 rpm.

3 Capacitores de 0.1µF.

1 Servomotor FUTABA S3003.

Page 127: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

109

• Comunicación entre el PC y el Robot:

1 Transmisor PARALLAX de 303.82 MHz.

1 Receptor PARALLAX de 303.82 MHz.

1 Transmisor PARALLAX de 418 MHz.

1 Receptor PARALLAX de 418 MHz.

1 PIC16C84.

1 PIC16F84.

2 Capacitores de 0.01µF.

4 Capacitores de 29µF.

2 Cristales de 4MHz.

1 Interface RS232, para la cual se utilizó:

1 MAX232CPE.

1 PIC16C84.

1 Cristal de 4MHz.

1 Capacitor de 0.01µF.

4 Capacitores de 1µF.

1 Capacitor de 10µF.

2 Capacitores de 29µF.

1 DB9.

• Funciones específicas del Robot:

1 ADC0804LCN.

Page 128: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

110

1 Multiplexor Analógico ECG4067.

1 PIC16C84.

2 PIC16F84.

3 Capacitores de 0.01µF.

6 Capacitores de 29µF.

3 Cristales de 4MHz.

1 Servomotor FUTABA S3003.

2 Sensores Ultrasónicos de distancia SENIX Corporation.

2 Relés de 5 Voltios.

1 Celda Fotoconductiva.

1 Resistencia de 10KΩ.

3 Potenciómetros de 10KΩ.

• Alimentación del Robot:

2 Baterías de Nikel Cadmium recargables de 7.5 Voltios.

4 Baterías de 9 Voltios.

. 1 Relé de 5 Voltios.

5 Capacitores de 220µF.

Así mismo para la implementación del software fue necesario la utilización de

los siguientes programas:

• Laboratorio MPLAB 4.1.

• Lenguaje Ensamblador MPASM.

Page 129: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

111

• Programador de Microcontroladores EPIC.

• TURBO PASCAL 7.0.

Por último es importante mencionar los equipos de uso general empleados en

el desarrollo del Sistema Robótico:

• Osciloscopio.

• Multímetro.

• Punta lógica.

Page 130: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

CAPITULO IV______________________________________ RESULTADOS DE LA INVESTIGACIÓN

Page 131: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

RESULTADOS DE LA INVESTIGACIÓN

Los Resultados de la Investigación están dados por la aplicación de las Fases

de la Metodología de Angulo, J (1992) conteniendo los Resultados Obtenidos,

Discusión de los Resultados, Conclusiones y Recomendaciones.

FASE 1. - DEFINICIÓN DE ESPECIFICACIONES

La presente investigación abarca los procesos concernientes al desarrollo de

un Sistema Robótico semi-autónomo, construido a partir de un Carro Radio-Control

adaptado, el cual basándose en los estímulos del entorno es capaz de movilizarse

evadiendo los posibles obstáculos del medio.

El sistema consta de un Sonar (Sound Navigation and Ranging) ubicado en el

Robot, con el cual se obtiene información del exterior, específicamente de los objetos

que puedan rodearlo, esta información es transmitida vía FM al PC, para ser analizada

por un software de control y monitoreo, obteniendo un diagrama de Sonar

representativo al entorno del Robot, luego de ser procesada la información, se toma

una decisión y se generan las órdenes que serán enviadas al Robot indicándole como

moverse.

Page 132: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

114

Para lograr tal propósito, se utiliza un lenguaje de programación de alto nivel

para tener mayor velocidad en el reconocimiento de las trayectorias y toma de

decisiones. Así mismo se emplea una interface dentro del PC para habilitar la

cantidad de puertos de salida necesarios para emitir las órdenes correspondientes al

movimiento del Robot, mientras que la comunicación pertinente al escaneo del

entorno se realiza a través del puerto serial, ambas comunicaciones son inalámbricas

vía FM.

Finalmente para que el sistema maneje variables independientes al

movimiento del Robot, tales como los componentes del Sonar, la alimentación e

iluminación, se hizo necesario el uso de microcontroladores, los cuales trabajan en

forma modular y controlan las acciones pertinentes a dichas variables.

Atendiendo a estas consideraciones el Sistema Robótico desarrollado está

capacitado para realizar sus funciones en un entorno no controlado y sin la

intervención de un operador.

FASE 2. - ESQUEMA GENERAL DEL HARDWARE

El desarrollo del Sistema Robótico cuenta estructuralmente con la disposición

de seis módulos de funcionamiento general (Figura No. 16), encargados de obtener

una señal del exterior, procesarla y responder de manera que el Robot pueda moverse

libremente por el entorno evadiendo los posibles obstáculos.

Page 133: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

115

Figura No. 16: Diagrama General del Sistema

Velocidad

Fotoconductiva

PC

Módulo de Movimiento del Robot

Módulo de Conversión Analógica-Digital y

Transmisión Serial de Datos

Módulo Accionador y Selector de Variables

Módulo Receptor y Direccionador de Ordenes

Módulo de Comunicación entre el PC y el Robot

Multiplexor Batería de los Sensores

Batería Auxiliar

Batería Principal

Celda

Sensor

Sensor

Relé Luces

Servomotor

Motor DC

Servomotor

Rx 75 MHz Control Electrónico de

Tx 418 MHz

ADC0804

PIC16C84

PIC16F84

PIC16F84Rx 303.82 MHz

PIC16C84

PIC16F84

Tx 75 MHzTarjeta Interna Rx 418 MHz Tx 303.82 MHz

PIC16C84Interface RS-232

Módulo de Procesamiento Central

Fuente: Los Autores, Chacín y Socorro (1999)

Page 134: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

116

Estos seis módulos activados e interconectados entre si, tienen a su cargo las

siguientes funciones del sistema que tienen como labor obtener un resultado

satisfactorio para sí mismo:

• Procesamiento de Información del entorno y toma de decisiones.

• Transmisión de órdenes para el movimiento del Robot.

• Interfaz para la comunicación con el Robot.

• Recepción y Direccionamiento de órdenes.

• Posicionamiento del Servomotor.

• Accionar y seleccionar variables.

• Conversión analógica-digital y Transmisión serial de datos.

• Ejecución de órdenes de movimiento.

En primer lugar se encuentra el Módulo de Procesamiento Central, cuya

función es generar todas las órdenes necesarias para el correcto funcionamiento del

sistema. En él reside el algoritmo de toma de decisiones para la sección del sistema

colocada en el área remota (Robot), este analiza la información y decide entre las

posibilidades cual es la mejor manera de reaccionar a los estímulos percibidos por el

SONAR en sus dos estados (escaneo completo del entorno y detección de obstáculos

durante el movimiento) y el sensor de luz, así mismo este módulo es capaz de

monitorear el estado de las baterías.

Page 135: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

117

Una vez realizada esta operación genera un código digital o palabra, que

ejerce una orden sobre las acciones del Robot entre las cuales están implementadas el

movimiento del Robot, el escaneo del entorno en cualquier dirección, el cambio de

batería y el encendido de las luces. La posibilidad de intercambiar órdenes en

palabras de datos de 1 byte de ancho o más, infiere la capacidad de hacer el sistema

flexible a la aplicación que el usuario pueda necesitar solo cambiando el software de

control, como traslado de objetos, exploración semi-autónoma por medio de cámaras,

etc., de igual forma permite la adición de nuevo hardware para lograr mayor

funcionalidad del sistema en general.

Con referencia a las órdenes pertinentes al movimiento del Robot, este

módulo consta de una tarjeta interna conectada a uno de los slots internos del PC,

encargada de convertir el código digital emitido por el programa de control y

monitoreo a valores analógicos que pasan a un transmisor ubicado en el Módulo para

la Comunicación PC-Robot, provocando el posterior movimiento del Robot. La

tarjeta posee una Interface Programable de Periféricos para obtener más líneas de

salida, un comparador de magnitud para darle la dirección al puerto de salida, una red

escalera para convertir la palabra digital en un voltaje analógico y un amplificador

para elevar y calibrar el voltaje de salida al transmisor.

El Módulo de Procesamiento intercambia información con el Robot a través

de los Módulos habilitados para la Comunicación entre ambas partes del sistema.

Page 136: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

118

Como se puede inferir sobre este módulo recae toda la responsabilidad de que el

sistema trabaje de forma óptima y cumpla con su cometido.

Seguidamente se encuentra el Módulo de Comunicación entre el PC y el

Robot, este consta de los dispositivos necesarios para el intercambio de información

entre el PC y el Robot, pertinentes tanto a órdenes para el movimiento como al

control de las variables (Sonar, baterías y luz) que influyen en el comportamiento del

sistema. Con respecto al movimiento del Robot se utiliza un transmisor de Radio-

Control FUTABA a 75 MHz, que obtiene el voltaje de salida analógico proveniente

de la tarjeta interna (correspondiente al módulo anterior) y lo modula en PWM

(Modulación por Ancho de Pulso) para controlar los dispositivos y en FM para

enviarlos inalámbricamente.

De la misma manera, para el intercambio de información serial, este módulo

tiene un transmisor y un receptor para BASIC Stamp II adaptados de DVP Inc., que

trabajan a las frecuencias de 303.82 MHz y 418 MHz respectivamente. Ambos están

conectados a un microcontrolador que posee un programa que se encarga de bajar o

aumentar la velocidad de transmisión y recepción de datos según sea el caso, dado

que la velocidad de transmisión y recepción de datos del PC es de 9600 Baudios y la

velocidad de transmisión y recepción de datos hacia el Robot es de aproximadamente

1000 Baudios. A su vez este microcontrolador se encuentra conectado al PC por

medio de una interface RS232 al puerto serial de la computadora, y de esta manera

transmitir la información correspondiente a las instrucciones del PC, es decir, las

Page 137: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

119

órdenes del escaneo del entorno, las del chequeo de baterías, la luz del ambiente y de

igual manera recibir la información obtenida por el Robot correspondiente a cada

orden para su procesamiento.

El Módulo Receptor y Direccionador de Órdenes está compuesto por un

receptor de 303.82 MHz y un microcontrolador PIC16F84 que decodifica la

instrucción emitida por el PC y la direcciona dependiendo del tipo de orden, de esta

manera se generan códigos de movimiento para el servomotor y chequeo del entorno

o se mantienen actualizados los estados de las demás variables implementadas.

Por otra parte el Módulo Accionador y Selector de Variables está

compuesto de tres microcontroladores de la serie PIC16X84 y un multiplexor

analógico, que se encargan de recibir los códigos del direccionador para accionar los

dispositivos sobre los cuales se ejecutan acciones, como el servomotor, los sensores,

las luces y el relé de conmutación para las baterías, o bien selecciona las variables a

monitorear por el software de control. La salida de este módulo se alimenta al

convertidor Analógico-Digital ADC0804 del Módulo de Conversión Analógica-

Digital y Transmisión Serial de Datos para que el valor de la variable analógica sea

transformado a un valor digital que es captado por un microcontrolador PIC16C84 y

luego es enviado al computador para su procesamiento mediante un transmisor de

418 MHz, que también forma parte de este módulo.

Page 138: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

120

Finalmente se encuentra el Módulo de Movimiento del Robot el cual recibe

las ondas emitidas por el transmisor de 75 MHz, consta de un receptor de FM que

demodula la señal en su forma original de trabajo, es decir, en PWM y las emite por

dos canales separados donde están conectados el control electrónico de velocidad

para el movimiento del motor y el servomotor encargado del cruce de las ruedas para

la dirección, generando así el desplazamiento del Robot.

FASE 3. - ORDINOGRAMA GENERAL

Los microcontroladores que conforman el hardware, tales como el

microcontrolador de la interface serial, el direccionador de datos, el posicionador, los

selectores de variables y el microcontrolador encargado de recibir los datos del

convertidor y enviarlos, así como el software de control del Sistema Robótico

trabajan modularmente según los diagramas de flujo que se presentan a continuación.

Primeramente se tiene el diagrama del microcontrolador encargado de la

comunicación entre el PC y el Robot, el cual reduce o aumenta las velocidades de

transmisión y recepción de datos según sea el caso. Este programa comienza

inicializando las variables y configurando los puertos de entrada y salida,

seguidamente lee el puerto de entrada del PC y de recepción del Robot, si en

cualquiera de estos puertos se presenta alguna variación se procede a recibir los datos

y enviarlos al siguiente dispositivo a la velocidad correspondiente.

Page 139: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

121

Figura No. 17: Interface

Si

No

No

Si

1

1

1

1

Leer Puerto de Entrada

del PC

Leer Puerto de Entrada

del Receptor del Robot

Puerto=1

Puerto=1

Inicio

Configurar Puertos

Recepción de Datos a 1000 Baudios

Recepción de Datos a 9600 Baudios

Transmisión de Datos a 9600 Baudios

Transmisión de Datos a 1000 Baudios

Inicializar Variables

Fuente: Los Autores, Chacín y Socorro (1999)

Page 140: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

122

Existe un segundo diagrama correspondiente al direccionador de datos

ubicado en el Robot, que indica cual es el primer dispositivo a trabajar.

Figura No. 18: Diagrama del Direccionador

2

22

2

No

No

NoSi

Si

Si

Leer Puerto de Entrada

La Respuesta es Recibida

Ultimo Bit = 1

Puerto=1

Inicio

Configurar Puertos

Recepción de Datos Seriales

Colocar Información en

el Puerto

Transmisión de Datos Seriales al Siguiente

Módulo

Enviar Señal de Verificación o Handshaking

Inicializar Variables

Fuente: Los Autores, Chacín y Socorro (1999)

Luego de inicializar las variables y configurar los puertos de entrada y salida

se espera por los datos en el puerto de entrada, una vez recibido el bit de start se

Page 141: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

123

reciben los datos serialmente y se verifica el tipo de dato por el último bit, es decir, si

este bit es uno se envía serialmente al siguiente módulo, si es cero se coloca la señal

en el puerto y se envía la señal de verificación para accionar el Sonar.

Seguidamente el microcontrolador que controla la acción del Sonar se rige por

el siguiente esquema de funcionamiento:

Figura No. 19: Diagrama del Posicionador

A

No

Si

1

1

Leer Data en Puerto

Leer Puerto de Handshaking

Puerto=1

Inicio

Configurar Puertos

Generar PWM

Inicializar Variables

Establecer Duración de Variables de Espera

Page 142: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

124

A

3

Seleccionar Sensor

Comparar Orden Recibida

Colocar Valor

Enviar señal de verificación

Fuente: Los Autores, Chacín y Socorro (1999)

Al igual que en los programas anteriores se inicializan las variables y

configuran los puertos, luego se establece la posición predeterminada y se genera el

PWM para el servomotor mientras se lee el puerto de verificación hasta que una

nueva data llegue, la cual al leerla, se envía la señal de verificación de que la data ha

sido recibida, se compara la orden recibida y se ejecuta.

Uno de los microcontroladores que seleccionan las variables tales como

encendido de luces y estado de baterías, actúa de la siguiente manera:

Page 143: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

125

Figura No. 20: Diagrama del Selector de Variables A

NoB

No4

Si

4

Leer Puerto de Recepción

Puerto=1

Inicio

Configurar Puertos

Inicializar Variables

Recepción de Datos Seriales

4

4

4

4

No

No

No

Si

Si

Si

Si

Enviar Señal de Monitoreo de Batería de

los Sensores

Enviar Señal de Monitoreo de Batería

Principal

Enviar Señal de Monitoreo de Luz

Enviar Señal de Monitoreo de Batería

Auxiliar

Bit 1=1

Bit 2=1

Bit 3=1

Bit 4=1

Page 144: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

126

B

4

4

4

No

No

No

No

Si

Si

Si

4

Apagar Luces

Encender Luces

Desactivar Relé

Activar Relé

Bit 6=1

Bit 5=1

Bit 7=1

Fuente: Los Autores, Chacín y Socorro (1999)

Se inicializan las variables pertinentes, se configuran los puertos de entrada y

salida, se lee el puerto de forma cíclica hasta que llegue el bit de Start, entonces se

reciben los datos serialmente y se chequea uno a uno los bits de la palabra de datos

recibida, dependiendo de cada uno de los bits se ejecuta la orden correspondiente.

El funcionamiento del segundo microcontrolador encargado de la selección de

variables funciona de la siguiente manera: Primeramente se configuran los puertos y

se verifica cual de los puertos ha cambiado su estado para seleccionar la variable

correspondiente directamente en el multiplexor y se envía la señal de inicio para el

Módulo de Conversión Analógica-Digital y Transmisión Serial de Datos.

Page 145: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

127

Figura No. 21: Diagrama del Selector de Variables B

Fuente: Los Autores, Chacín y Socorro (1999)

Si

Si

Si

Si No

No

No

No

No

NoSi

Si

5

5

Enviar señal de Inicio

5

Enviar señal de Inicio

5

Enviar señal de Inicio 5

5

5

5

Enviar señal de Inicio

Seleccionar la Batería de los

Sensores

Puerto 6=0

Seleccionar Batería Principal

Seleccionar Batería Auxiliar

Seleccionar Celda Fotoconductiva

Encender Sensor 2

Seleccionar Sensor 2

Enviar señal de Inicio

Encender Sensor 1

Seleccionar Sensor 1

Enviar señal de Inicio

Puerto 5=0

Puerto 4=0

Puerto 3=0

Puerto 2=0

Puerto 1=0

Inicio

Configurar Puertos

Page 146: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

128

En este módulo se encuentra un microcontrolador cuyo diagrama se presenta a

continuación:

Figura No. 22: Diagrama del Microcontrolador del ADC

7

No

No

Si

Si

6

7

6

6

Puerto=0

Puerto=0

Inicio

Configurar Puertos

Esperar Señal de Fin de Conversión

Colocar Dato en registro Transmisión de Datos a 1000 Baudios

Enviar Señal de Inicio de Conversión

Inicializar Variables

Esperar Señal de Inicio

Fuente: Los Autores, Chacín y Socorro (1999)

Page 147: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

129

Luego de inicializar las variables y configurar los puertos, se espera la señal

de inicio, se envía la señal de inicio de conversión y se espera la de fin de conversión,

luego se coloca el dato en el registro y se transmiten los datos al PC.

Finalmente se presenta el diagrama de flujo del Software de Control del

sistema:

Figura No. 23: Software de Control

C

7

BUSCA_ESCAPES

BUSCA_ESPACIOS

BUSCA_OBSTACULOS

COMUNICACION

BATERIA

LUZ

SENSORES

SCAN

Inicio

Inicializar Variables

Page 148: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

130

C

7

CALCULOS

PANTALLA

Fuente: Los Autores, Chacín y Socorro (1999)

El Software de Control es el encargado de tomar las decisiones referentes a las

acciones del Robot, a partir de información recibida del mismo. Para realizar sus

funciones primeramente inicializa las variables del programa y chequea la

comunicación entre el PC y el Robot, recibiendo la información pertinente al estado

de las baterías del sistema, del estado de las baterías de los sensores, de la luz del

ambiente y del escaneo del entorno. Esta información es procesada por rutinas

correspondientes a cada una de ellas tomando las decisiones adecuadas y emitiendo

las órdenes al Robot.

FASE 4. - ADAPTACIÓN ENTRE EL HARDWARE Y EL SOFTWARE

El hardware electrónico a utilizar se basa principalmente en los

microcontroladores de la serie PIC16CXX de MICROCHIP, por otro lado el software

a utilizar es el laboratorio para microcontroladores MPLAB, en el cual se incluyen un

Page 149: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

131

Editor/Ensamblador (MPASM). Este software de aplicación puede ser encontrado en

la página de Microchip en Internet (ver Bibliografía).

La interacción entre el hardware y el software puede ser observada en 4 de los

6 módulos:

• Módulo de Comunicación entre el PC y el Robot

• Módulo Receptor y Direccionador de órdenes.

• Módulo Accionador y Selector de Variables.

• Módulo de Conversión Analógica-Digital y Transmisión serial de

datos.

Con respecto al primero de los módulos señalados, el Módulo de

Comunicación entre el PC y el Robot, en la tarjeta interna, se colocó un controlador

de periféricos 8255 para conseguir las salidas necesarias para el control del

movimiento, la configuración de los bits en uso:

Tabla No. 2: Configuración de Puertos 8255

BIT CONFIGURACIÓN USO

D0-D7 ENTRADA ENTRADA DE DATOS

PA0-PA7 SALIDA SALIDA DE DATOS

PB0-PB7 SALIDA SALIDA DE DATOS

PC0-PC7 NO UTILIZADO NO UTILIZADO

Fuente: Los Autores, Chacín y Socorro (1999)

Page 150: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

132

En este primer módulo también se encuentra la interface serial del PC, donde

se conectaron los dispositivos al puerto COM1 (DB-9), este puerto se encuentra en la

dirección H3F8 del computador, y se utilizaron los siguientes pines:

Tabla No. 3: Puerto Serial COM1

PIN CONFIGURACIÓN USO

1 COMÚN PIN 4 y PIN 6

TXD (2) SALIDA TRANSMISIÓN DE DATOS

RXD (3) ENTRADA RECEPCIÓN DE DATOS

4 COMÚN PIN 1 y PIN 6

GND (5) TIERRA TIERRA

6 COMÚN PIN 1 y PIN 4

7 COMÚN PIN 8

8 COMÚN PIN 7

9 NO UTILIZADO NO UTILIZADO

Fuente: Los Autores, Chacín y Socorro (1999)

Así mismo para cumplir las tareas de transmisión y recepción de datos entre

los dispositivos remotos, se configuró un microcontrolador, que se encarga de

manejar la información que entra y sale. El PIC16C84 encargado de la transmisión y

recepción serial, posee la siguiente configuración de los bits:

Tabla No. 4: Configuración de bits del Transmisor y Receptor del PC

BIT CONFIGURACION USO

RA0 ENTRADA RECEPCIÓN DE DATOS

Page 151: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

133

RA1 SALIDA TRANSMISIÓN DE DATOS

RA2 ENTRADA RECEPCIÓN DE DATOS

RA3 SALIDA TRANSMISIÓN DE DATOS

RA4 NO UTILIZADO NO UTILIZADO

RB0-RB7 SALIDAS DISPLAY DE ÓRDENES

Fuente: Los Autores, Chacín y Socorro (1999)

Ahora, con respecto al Módulo Receptor y Direccionador de órdenes, está

compuesto solo por un microcontrolador PIC16F84, que recibe las órdenes

serialmente y las direcciona para el dispositivo requerido, su configuración de bits es

la siguiente:

Tabla No. 5: Configuración de bits del Direccionador

BIT CONFIGURACIÓN USO

RA0 ENTRADA RECEPCIÓN DE DATOS

RA1 SALIDA HANDSHAKING

RA2 SALIDA TRANSMISIÓN SERIAL

RA3 ENTRADA HANDSHAKING

RA4 NO UTILIZADO NO UTILIZADO

RB0 SALIDA MENOR BIT DE DATOS

RB1 SALIDA BIT DE DATOS

RB2 SALIDA BIT DE DATOS

RB3 SALIDA MAYOR BIT DE DATOS

RB4 SALIDA SELECCIÓN DE SENSOR

Page 152: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

134

RB5 NO UTILIZADO NO UTILIZADO

RB6 NO UTILIZADO NO UTILIZADO

RB7 NO UTILIZADO NO UTILIZADO

Fuente: Los Autores, Chacín y Socorro (1999)

Seguidamente el Módulo Accionador y Selector de Variables, tiene la tarea de

posicionar el servomotor, seleccionar las variables de entrada y accionar los

dispositivos ordenados por el software de control. Para este fin, se implantaron tres

microcontroladores que se comparten la responsabilidad conectados a varios relés y

un multiplexor analógico CMOS. El primero de estos, se encarga del posicionamiento

de servos y selección de sensores, así por medio del software implantado en el

microcontrolador, se habilitaron los siguientes bits:

Tabla No. 6: Configuración de bits del Posicionador

BIT CONFIGURACIÓN USO

RA0 NO UTILIZADO NO UTILIZADO

RA1 SALIDA HANDSHAKING

RA2 SALIDA SELECTOR DEL SENSOR 1

RA3 SALIDA SELECTOR DEL SENSOR 2

RA4 NO UTILIZADO NO UTILIZADO

RB0 ENTRADA MENOR BIT DE DATOS

RB1 ENTRADA BIT DE DATOS

RB2 ENTRADA BIT DE DATOS

RB3 ENTRADA MAYOR BIT DE DATOS

Page 153: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

135

RB4 ENTRADA SELECCIÓN DE SENSOR

RB5 ENTRADA HANDSHAKING

RB6 SALIDA PWM PARA SERVOMOTOR

RB7 NO UTILIZADO NO UTILIZADO

Fuente: Los Autores, Chacín y Socorro (1999)

El segundo de los microcontroladores puede o no, según sea la orden, recibir

una entrada serial para cumplir las tareas de seleccionar variables para su

actualización en el software de control o puede ejecutar órdenes directamente, como

cambiar la batería del sistema, para este fin se configuró de la siguiente manera:

Tabla No. 7: Configuración del PIC Selector A

BIT CONFIGURACIÓN USO

RA0 ENTRADA RECEPCIÓN SERIAL

RA1 NO UTILIZADO NO UTILIZADO

RA2 NO UTILIZADO NO UTILIZADO

RA3 NO UTILIZADO NO UTILIZADO

RA4 NO UTILIZADO NO UTILIZADO

RB0 SALIDA LUZ DE AMBIENTE

RB1 SALIDA BATERÍA PRINCIPAL

RB2 SALIDA BATERÍA AUXILIAR

RB3 SALIDA BATERÍA DE SENSORES

RB4 SALIDA CAMBIO DE BATERÍA

RB5 SALIDA LUCES DEL ROBOT

Page 154: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

136

RB6 NO UTILIZADO NO UTILIZADO

RB7 NO UTILIZADO NO UTILIZADO

Fuente: Los Autores, Chacín y Socorro (1999)

El tercer microcontrolador se encarga, dependiendo de sus propias entradas de

selección, de seleccionar las entradas al multiplexor analógico para proveer la entrada

al siguiente módulo y enviar el bit de conversión, la disposición de los bits a

continuación:

Tabla No. 8: Configuración del PIC Selector B

BIT CONFIGURACIÓN USO

RA0 ENTRADA BATERÍA DE SENSORES

RA1 SALIDA BIT DE CONVERSIÓN

RA2 SALIDA ENCIENDE SENSOR 1

RA3 SALIDA ENCIENDE SENSOR 2

RA4 NO UTILIZADO NO UTILIZADO

RB0 SALIDA MULTIPLEXOR A

RB1 SALIDA MULTIPLEXOR B

RB2 SALIDA MULTIPLEXOR C

RB3 ENTRADA SELECTOR DEL SENSOR 1

RB4 ENTRADA SELECTOR DEL SENSOR 2

RB5 ENTRADA LUZ DE AMBIENTE

RB6 ENTRADA BATERÍA PRINCIPAL

RB7 ENTRADA BATERÍA AUXILIAR

Page 155: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

137

Fuente: Los Autores, Chacín y Socorro (1999)

Finalmente el Módulo de Conversión Analógica-Digital y Transmisión serial

de datos, compuesto por un microcontrolador y un convertidor analógico-digital

ADC0804. Una vez provista la entrada al convertidor, el microcontrolador espera el

bit de conversión para iniciar sus funciones y enviar los datos al PC, la configuración

del PIC16C84:

Tabla No. 9: Configuración del PIC del Convertidor

BIT CONFIGURACION USO

RA0 ENTRADA BIT DE CONVERSIÓN

RA1 SALIDA TRANSMISIÓN DE DATOS

RA2 SALIDA INICIO DE CONVERSIÓN

RA3 ENTRADA FIN DE CONVERSIÓN

RA4 NO UTILIZADO NO UTILIZADO

RB0 ENTRADA MENOR BIT DE DATOS

RB1 ENTRADA BIT DE DATOS

RB2 ENTRADA BIT DE DATOS

RB3 ENTRADA BIT DE DATOS

RB4 ENTRADA BIT DE DATOS

RB5 ENTRADA BIT DE DATOS

RB6 ENTRADA BIT DE DATOS

RB7 ENTRADA MAYOR BIT DE DATOS

Fuente: Los Autores, Chacín y Socorro (1999)

Page 156: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

138

FASE 5. - ORDINOGRAMAS MODULARES Y CODIFICACIÓN DE

PROGRAMAS

Los códigos completos para cada programa del Sistema Robótico se

encuentran en los Anexos.

FASE 6. - IMPLEMENTACIÓN DEL HARDWARE

En esta fase se explican cada uno de los circuitos que integran el sistema, así

como el funcionamiento de cada uno de los módulos a materializar, siguiendo la

secuencia del diagrama de bloques presentado en la FASE 2.

6.1. INTERFACES CON EL PC

Al momento de la conexión con el PC surgieron dos problemas clásicos, en

primer lugar no se tenían las suficientes salidas para manejar la cantidad de elementos

externos a controlar y en segundo lugar se necesitaban datos de salida paralelos y

datos de salida seriales dada la naturaleza de los dispositivos electrónicos que

integran el Sistema Robótico. Para realizar el módulo de Comunicación entre el PC y

el Robot, fue necesario la construcción de dos interfaces con el PC. Una tarjeta

interna para el módulo de transmisión de movimiento y una interface de intercambio

de información serial externa.

Page 157: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

139

6.1.1 TARJETA INTERNA PARA CONTROL DEL MOVIMIENTO

DEL ROBOT

La Tarjeta Interna (Figura No. 24) está compuesta por una serie de

dispositivos interconectados para lograr una mayor capacidad de líneas de salida que

las encontradas en un puerto paralelo estándar, procesando directamente el bus de

datos del PC mediante un circuito integrado programable 8255 que proporciona 3

puertos de ocho bits programables como entradas o salidas.

Figura No. 24: Tarjeta Interna

Fuente: Los Autores, Chacín y Socorro (1999)

a. IC 8255

Primeramente se tiene la Interface Programable de Periféricos 8255

(Programmable Peripheral Interface PPI), concebida por INTEL y útil en sistemas en

Page 158: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

140

los cuales se requiere el manejo de muchas líneas de entrada/salida. El la figura se

muestra la distribución de pines, el cual contiene tres puertos paralelos programables

de entrada/salida, de ocho bits cada uno.

Figura No. 25: Distribución de Pines del PPI 8255

Fuente: Los Autores, Chacín y Socorro (1999)

Como se observa, 24 de los 40 pines del 8255 son líneas de entrada/salida.

Específicamente, PA0-PA7 corresponden al puerto A, PB0-PB7 al puerto B y PC0-

PC7 al puerto C. Las 8 líneas del puerto C se dividen en dos grupos iguales, cada uno

de 4 líneas (PC7-PC4 y PC3-PC0). Estos grupos de líneas pueden trabajar en

combinación con los puertos A y B o como dos puertos individuales de 4 bits.

En la estructura interna los registros se encuentran divididos en dos grupos el

A y el B, cada uno de los cuales tiene su propio elemento de control. El grupo A está

compuesto por el puerto A y los cuatro bits más significativos del puerto C, mientras

Page 159: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

141

que el grupo B, por el puerto B y los 4 bits menos significativos del puerto C. El

sentido (entrada, salida o bidireccional) y la función (datos o control) de las líneas de

todos los puertos se programan durante la operación normal del dispositivo mediante

una palabra de control de 8 bits que envía el PC al PPI.

Internamente, el 8255 dispone de cuatro registros, tres de los cuales se dedican

a almacenar la información que entra o sale por los puertos A, B y C. El cuarto se

denomina de control y se dedica a realizar las funciones de control; programando este

registro se configuran los grupos A y B, definiéndose el comportamiento de los

puertos y por ende, el funcionamiento general del dispositivo.

Además de las 24 líneas de entrada/salida asociadas a los puertos A, B y C, la

función de las líneas restantes del 8255 se puede resumir en:

• VCC y GND: Líneas de la fuente de alimentación.

• D7 a D0: Líneas de datos que comunican el 8255 con el bus bidireccional

de datos del sistema microprocesador.

• WR (Write): Activa en bajo. Permite que el CPU realice una operación de

escritura sobre el PPI.

• RD (Read): Activa en bajo. Permite que el CPU realice una operación o

ciclo de lectura sobre el PPI.

Page 160: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

142

• CS (Chip Select): Activa en bajo. Se destina para la selección del circuito

integrado. El 8255 se comunica con el CPU cuando CS=0 y se aísla

cuando CS=1.

• Reset: Activa en alto inicializa el PPI y borra (sitúa en 0) todos los

registros internos, incluyendo el de control, configurando como entradas

todas las líneas de los puertos.

• A0 y A1: Estas señales, en combinación a RD y WR, seleccionan el

puerto o registro del 8255 sobre el cual se va a realizar una operación de

lectura o escritura; normalmente, se conectan a las líneas A0 y A1 del bus

de direcciones del sistema. La tabla mostrada a continuación resume el

sentido de las transferencias de información que se realiza entre el bus de

datos del sistema microprocesador y los distintos registros internos del

8255, de acuerdo con el estado lógico de las señales de control A1, A0,

RD, WR y CS.

Tabla No. 10: Transferencia de Información entre el CPU y el PPI 8255

A1 A0 RD WR CS OPERACIÓN

0 0 0 1 0 A→BUS DE DATOS

0 1 0 1 0 B→BUS DE DATOS

1 0 0 1 0 C→BUS DE DATOS

1 1 0 1 0 CONDICIÓN INVÁLIDA

0 0 1 0 0 BUS DE DATOS→A

Page 161: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

143

0 1 1 0 0 BUS DE DATOS→B

1 0 1 0 0 BUS DE DATOS→C

1 1 1 0 0 BUS DE DATOS→CONTROL

X X X X 1 BUS DE DATOS EN Hi-Z

X X 1 1 0 BUS DE DATOS EN Hi-Z

X= no importa

Fuente: Electrónica y Computadores (Año II, No. 4:73)

En el momento de aplicar potencia por primera vez al circuito, el 8255 se

encuentra en estado de reset; es decir con todas las líneas de los puertos y del bus de

datos flotantes o en estado de alta impedancia (Hi-Z). Por esta razón, antes de utilizar

los puertos de entrada y de salida, el circuito integrado se debe inicializar cargando el

registro de control cargando el registro de control con un valor de 8 bits, denominado

Palabra de Control. En la tabla mostrada a continuación se indica la función de cada

uno de los bits que componen el registro de control, el cual solamente puede ser

escrito, ya que no es posible leer su contenido desde el CPU.

Tabla No. 11: Palabra de Control

BIT FUNCIÓN

D0 Puerto C (más bajo). 1=Entrada, 0=Salida

D1 Puerto B. 1=Entrada, 0=Salida

D2 Selección de Modo. 0=Modo 0, 1= Modo 1

D3 Puerto C (más alto). 1=Entrada, 0=Salida

D4 Puerto A. 1=Entrada, 0=Salida

Page 162: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

144

D5

D6

Selección de Modo. 00=Modo 0, 01=Modo 1, 1X=Modo 2

D7 Bandera de Modo. 1=Activa

Fuente: Electrónica y Computadores (Año II, No. 4:74)

La palabra de control configura el funcionamiento general del PPI, el cual

admite tres modos diferentes de funcionamiento denominados Modo 0, Modo 1 y

Modo 2.

En el Modo 0 (entrada/salida básicas), cualquiera de los puertos A, B y C

puede trabajar como entrada o como salida; los datos son escritos o leídos desde un

puerto específico. En este modo, las entradas y salidas tienen 16 configuraciones

posibles. Una característica importante en este Modo es que las salidas tienen latch o

cerrojo, así el dato que se escribe permanece sin cambiar, hasta que se escribe un

nuevo dato; mientras que las entradas no lo tienen, de manera que el dato de interés

debe estar presente al momento de la lectura del puerto.

En el Modo 1 (entrada/salida variadas), los puertos A y B pueden trabajar

como entradas o salidas, mientras las líneas del puerto C controlan la transferencia de

datos entre los periféricos y el PPI. Una parte del puerto C (líneas PC3, PC4 y PC5)

están asociadas con el puerto A, mientras que otras (PC0, PC1 y PC2) proporcionan

señales de control para el puerto B. Las líneas no utilizadas del puerto C (PC6 y PC7)

Page 163: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

145

pueden actuar como líneas I/O convencionales. En este modo las entradas y salidas

tienen cerrojo.

Para configurar los puertos A y B como entradas en este modo, la señal de

control STB (Strobe o validación) sirve para cargar los registros internos del PPI el

dato que el periférico envía hacia el puerto A o B, al cargarse un dato en los puertos

del PPI, se activa la señal de conformidad IBF (Input Buffer Full), la cual indica que

el buffer de entrada de datos está lleno. El CPU explora periódicamente las líneas IBF

y cuando encuentra alguna activa (alta), reconoce que en el puerto hay un dato

disponible. Al leer ese puerto, las líneas IBF y STB se desactivan. Las líneas INTR se

utilizan para interrumpir el CPU cuando el puerto (A o B) dispone de información y

está listo para ser leído.

En el caso de configuración de salida para los puertos A y B en este modo, la

línea OBF (Output Buffer Full), es una señal que el CPU coloca en un nivel lógico

bajo, indicando que escribió un dato en el puerto correspondiente, y este debe ser

leído por el periférico. Esta línea sólo retornará a un estado lógico alto cuando el

periférico responda colocando la línea ACK en un estado lógico bajo, indicando que

recibió el dato. Aquí también las líneas INTR se utilizan para interrumpir el CPU,

pero cuando el periférico aceptó el dato. Los dos grupos pueden ser configurados

independientemente como entradas o salidas, admitiendo cuatro combinaciones

diferentes.

Page 164: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

146

En el Modo 2 (bus bidireccional), el puerto A puede trabajar en forma

bidireccional, es decir actuar como entrada y salida de datos, mientras una parte de

las líneas del puerto C (PC3 a PC7) controlan el diálogo con los periféricos. Las tres

líneas restantes del puerto C pueden actuar como líneas I/O convencionales o como

líneas auxiliares del puerto B. Este último puede actuar en el Modo 0 o en el Modo 1.

En el Modo 2, tantos las entradas como las salidas tienen cerrojo.

b. OPERACIÓN

El 8255 es utilizado para la transferencia de datos en paralelo mediante los

tres puertos que lo conforman, encargándose de recibir la señalización enviada por un

comparador de magnitud 74HC688, a través de los pines CS' (Chip Select del 8255) y

(A=B)' (Comparación del 8255), decidiendo así con cual puerto va a trabajar,

dependiendo de los pines A0 y A1 del comparador, una vez tomada esta decisión

entonces trabaja sobre los puertos de entrada o salida seleccionados. Además este

dispositivo recibe los datos directamente del bus de datos del sistema para la

transferencia de los mismos, de la misma forma es programado por el software bajo el

Modo 0 como entrada y salida básica.

El comparador de magnitud de 8 bits 74HC688 es el encargado de hacer la

comparación de las direcciones y establecer todo lo que es el proceso de

direccionamiento y acceso por parte del PC. De esta manera el dispositivo

comparador recibe las direcciones enviadas por el computador que son 4 direcciones

Page 165: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

147

correctas desde 300h hasta 303h (768 a 771), las compara y establece si la dirección

recibida coincide con la programada en sus pines, si esto ocurre envía la señalización

al 8255 el cual realizará el control que proporcionará las salidas por el puerto

correspondiente.

Para el proyecto se implementaron las salidas del puerto A y B, y

funcionalmente la tarjeta se encuentra ubicada en la dirección 303h. Dado que se

están utilizando los puertos A y B como salida, el software para la configuración de la

tarjeta genera también la palabra de control para el uso del dispositivo, en este caso

debe ser la siguiente:

BIT 8 BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1

1 0 0 0 0 0 0 0

Por lo tanto la línea de configuración para el programa de control debe ir de la

siguiente manera en QBASIC, donde se hicieron casi la totalidad de las pruebas:

OUT &H303, &H80

Donde &H303 es la dirección de la tarjeta en el computador y &H80 es la

palabra de control para la interface de periféricos.

Una vez obtenida la información digital es necesario convertirla a un valor de

voltaje analógico para poder suministrar la orden al transmisor, para tal efecto se

Page 166: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

148

encuentran conectados a todos los pines de los puertos A y B dos redes escaleras

separadas para cada uno de ellos. Estas redes están compuestas por un arreglo de

resistencias colocadas como se muestra en la figura:

Figura No. 26: Red Escalera

Fuente: Los Autores, Chacín y Socorro (1999)

Como se observa claramente las salidas del dispositivo se encuentran

colocadas de manera que el valor del voltaje de salida aumente a medida que se

colocan en alto los bits de mayor peso. Como en un convertidor digital analógico la

salida digital va adquiriendo un peso determinado por salida que se habilita. En la

siguiente tabla se ilustran los valores de voltaje analógico correspondientes a cada

salida:

Tabla No. 12: Valores de las Salidas Analógicas

MSB LSB

BIT 8 BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1

2.49 V 1.28 V 0.625 V 0.313 V 0.156 V 0.078 V 0.039 V 0.019 V

Fuente: Los Autores, Chacín y Socorro (1999)

Page 167: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

149

La red está diseñada para suministrar un voltaje de 5 Voltios en el caso de que

todas las salidas estén en alto, pero este valor varía dependiendo de la configuración

individual de cada PC, pudiendo ocasionar daños al siguiente dispositivo que dependa

de ese voltaje para trabajar. Por lo anteriormente expuesto se hizo necesario diseñar e

instalar dos circuitos amplificadores para cada sección de datos, este se elaboró con

dos amplificadores operacionales LM324 (Figura No. 27), el circuito de

amplificación permite calibrar la salida de la red, a través de un potenciómetro, en

cada caso para PCs distintas. Los amplificadores están conectados a la alimentación

común del slot interno del PC de 12 Voltios para evitar que el voltaje de saturación

nominal provisto por la hoja de especificaciones de las características del dispositivo

interfiera con el circuito de amplificación, suministrando el voltaje necesario para ser

enviado al transmisor que se encuentra en el Módulo de Comunicación.

Figura No. 27: Amplificadores

Fuente: Los Autores, Chacín y Socorro (1999)

El transmisor FUTABA de Radio-Control a 75 MHz (Figura No. 28), capta el

voltaje proveniente del amplificador para modularlo en PWM, donde se hace un

Page 168: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

150

muestreo de la señal en forma periódica a una tasa bastante rápida como para

satisfacer los requisitos del teorema de muestreo. En cada instante de muestreo se

genera un pulso de amplitud fija y ancho proporcional a los valores de muestra de la

señal, con un ancho mínimo asignado al valor mínimo de la señal.

Figura No. 28: Transmisor FUTABA de 75 MHz

Fuente: Los Autores, Chacín y Socorro (1999)

La variación del ancho del pulso a partir del ancho mínimo es proporcional a

dicha señal, definiéndose una constante de proporcionalidad. La duración del pulso

debe ser menor que la porción de tiempo asignada a una muestra en particular,

dejando por lo general un tiempo de guarda adicional. En PWM la modulación puede

ser regulada por flancos de subida, de bajada, o ambos en cada pulso.

La PWM es una elección frecuente cuando se desea el control remoto

proporcional de una posición o cierta razón de posición, por lo cual es ideal para

alterar la posición del servomotor de la dirección y el control electrónico de

velocidad.

Page 169: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

151

6.1.2 INTERFACE DE INTERCAMBIO DE INFORMACIÓN SERIAL

PARA LA COMUNICACIÓN ENTRE EL PC Y EL ROBOT

La información manejada por el PC para el funcionamiento de los dispositivos

en el Robot y los datos obtenidos por los sensores, es enviada por los transmisores y

receptores implementados, pero si bien es cierto que son totalmente compatibles y

pueden comunicarse entre ellos, estos necesitan de una interface que los integre al PC

para poder completar la comunicación, esta interface posee un dispositivo de

transmisión serial que transforma los niveles TTL usados en los circuitos de

transmisión por niveles RS-232 y se encuentra directamente implementada en el PC.

En la comunicación serial, se transmite un bit a la vez, por lo cual es mucho más lenta

que la paralela, pero posee la ventaja de que necesita un menor número de líneas para

la transferencia de información y la distancia a la cual se puede realizar el

intercambio es mayor.

Existen dos formas de comunicación serial: la síncrona y la asíncrona. En la

comunicación síncrona, además de una línea sobre la que se transfieren los datos, se

necesita otra que contenga los pulsos del reloj que indiquen cuando un dato es válido;

la duración del bit está determinada por la duración del pulso de sincronismo.

En la comunicación asíncrona, los pulsos del reloj no son necesarios y se

acude a otros mecanismos para realizar la lectura/escritura de los datos; la duración

Page 170: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

152

de cada bit está determinada por la frecuencia de referencia con la cual se realiza la

transferencia de datos.

En el caso de esta investigación se realizó el tipo de comunicación asíncrona

donde está determinada la duración fija de los pulsos, dado que el PC trabaja a una

velocidad máxima de 9600 Baudios (1 bit/segundo), se realizaron rutinas

compatibles con esa velocidad, además se hizo necesario mantener en rigor un simple

protocolo de transmisión serial, donde debe existir 1 lógico para el estado inactivo, 0

lógico como bit de Start, 8 bits de datos y 0 lógico de bit de parada.

En los computadores tipo PC, se puede tener hasta 4 puertos de comunicación

serial (RS-232), denominados COM1, COM2, COM3 y COM4. Para su uso se debe

realizar una configuración previa de los parámetros de comunicación y aunque el

sistema operativo y los programas utilizan valores por defecto, no siempre son los

mismos. Existen varias formas de establecer los parámetros para la comunicación

serial asíncrona por software con cualquiera de estos puertos.

a. MAX232CPE

Dado que una de las características de la comunicación RS-232 son los rangos

de tensión que utiliza para niveles lógicos, el nivel alto se representa con una tensión

o voltaje comprendido entre -3 Voltios y -15 Voltios, mientras el nivel bajo utiliza el

rango de +3 Voltios y +15 Voltios, para este efecto el dispositivo de MAXIM

Page 171: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

153

MAX232CPE es la parte principal de la interface con el computador, este logra

traducir estos valores a niveles TTL y los niveles TTL a niveles RS-232.

El MAX232CPE dispone de dos canales de entrada para niveles TTL, que son

el T1IN y el T2IN, con sus correspondientes salidas R1OUT y R2OUT. Igualmente,

posee dos canales de entrada para niveles RS-232, R1IN y R2IN y sus

correspondientes salidas TTL, T1OUT y T2OUT.

En el esquema de la figura se observa tanto el circuito de interface con el

puerto correspondiente (COM1) de conector DB-9 como la distribución de pines del

dispositivo:

Figura No. 29: Interface Serial con el PC

Fuente: Los Autores, Chacín y Socorro (1999)

Se nota como uno de los canales disponibles es utilizado para la conversión de

información TTL proveniente del microcontrolador hacia el PC y otro de los canales

Page 172: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

154

es usado para convertir los niveles de voltaje RS-232 procedentes del PC y dirigidos

hacia el microcontrolador.

b. MICROCONTROLADOR PIC16C84

Para poder leer la información suministrada por el computador, es necesario

que el microcontrolador posea un programa que contenga una rutina que permita

captar los datos a la velocidad que se están transmitiendo, para tal fin es necesario

calcular los tiempos de transmisión a los cuales está configurado el programa de

control del PC, como ya se explicó anteriormente la computadora, es capaz de

transmitir datos a una velocidad de 9600 Baudios (9600 bits por segundo), lo que

significa que el tiempo para transmitir un solo bit es dado por el inverso de la

cantidad de bits por segundo, lo que resulta en 104.17 µseg que funcionalmente es

104 µseg. Una vez obtenido el tiempo requerido para recibir un bit se procedió a

calibrar la rutina del programa del microcontrolador para que pueda recibir a esa

velocidad.

Usando la aplicación Stopwatch del programa MPLAB 4.1, la cual permite al

programa simular el tiempo que tarda una subrutina, se logró calibrar el tiempo

necesario para la recepción. El código ensamblador original de esa subrutina de 1 bit

a 9600 Baudios:

MAX MOVLW .31 MOVWF RETARDO

Page 173: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

155

MAXC DECFSZ RETARDO, 1 GOTO MAXC RETURN

Ahora para recibir datos seriales es necesario esperar que la entrada de datos

cambie su estado (protocolo de transmisión serial) de uno lógico para el inactivo a

cero lógico para el bit de Start, una vez percibido ese cambio es conveniente esperar

de bit para comenzar a leer los datos, ya que es mejor leer la señal en el centro que

en uno de sus flancos. Luego hay que encontrar la subrutina que genere el tiempo de

la mitad de un bit, aproximadamente 52µseg. El código ensamblador original para la

rutina de medio bit a 9600 Baudios:

MMAX MOVLW .14 MOVWF RETARDO

MMAXC DECFSZ RETARDO, 1 GOTO MMAXC

RETURN

Es de inferir que esta subrutina debe ser llamada con la línea CALL MMAX

tres veces para lograr un tiempo de casi 156.25 µsegundos y detectar el primero de

los bits de información en el centro de este, de ese punto en adelante se espera el

tiempo completo de 1 bit para leer cada bit posterior al primero. Cuando la orden del

PC ya ha sido recibida la próxima tarea reside en enviar esos datos al Robot a una

velocidad menor, esto es debido a que los dispositivos que permitirán el intercambio

inalámbrico de datos no soportan tal velocidad, para ello es preciso colocar el registro

de los datos recibidos en una rutina de transmisión bajo el mismo protocolo de

recepción, y así enviarlo al transmisor de manera igualmente serial. La lógica de la

Page 174: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

156

transmisión serial cumple el mismo principio de la recepción, es decir, se cambia el

estado del pin de salida, y debe esperar un tiempo compatible con el dispositivo

receptor el cual debe esperar del tiempo del bit de transmisión. Para tal efecto se

tomó un valor de tiempo para la subrutina de espera de un bit que equivale a

aproximadamente 1000 Baudios, el código queda:

UNBIT MOVLW .250 MOVWF RETARDO

REPITUB DECFSZ RETARDO, 1 GOTO REPITUB RETURN

Luego de la interface serial con el microcontrolador se encuentran, conectados

a este último, un transmisor de 303.82 MHz y un receptor de 418 MHz para el

intercambio de la información con el Robot. Ambos dispositivos constituyen un par

complementado por otros similares ubicados en el Robot. Los dos pares de

transmisor-receptor (Figura No. 30) son iguales en arquitectura pero de frecuencia

diferente.

Figura No. 30: Transmisor y Receptor

Fuente: www.dvp.com (1999-06-02)

Las frecuencias de 303.82 MHz y 418 MHz están bastante libres de

interferencia dado el hecho de que son solo para ser usadas en emisiones

Page 175: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

157

intermitentes de baja potencia y es lo suficientemente alta para que la interferencia

por ruido digital no sea un problema mientras el diseño del circuito sea eficiente.

Ambos, el transmisor y el receptor, directamente pueden servir de interface a

microcontroladores o a circuitos electrónicos que necesiten enviar datos de manera

digital o binaria. Funcionalmente poseen tres líneas que son tierra, alimentación (5

Voltios) y datos, el transmisor está activo cuando la entrada de datos está en alto, este

tipo de modulación se llama On-Off Keyed (OOK). Al mismo tiempo la salida de

datos del receptor estará activada con alto, o 5 Voltios, cuando la entrada de datos del

transmisor esté en alto.

El transmisor y el receptor deben ser mantenidos en posición horizontal y lo

más alejado del suelo posible para un rendimiento óptimo, dado que no necesita

ajuste y muy pocos conocimientos de radio-transmisión, se convirtió en la mejor

opción adoptada por los autores de la investigación para asegurar la eficiente

comunicación entre el PC y el Robot en ambos sentidos.

6.2. MICROCONTROLADOR PARA LA RECEPCIÓN Y EL

DIRECCIONAMIENTO DE ÓRDENES PIC16F84

En esta sección, primeramente se encuentran un receptor de RF de 303.82

MHz que complementa el transmisor del PC, este proporciona la palabra u orden a un

Page 176: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

158

microcontrolador PIC16FC84 que se encarga de leer esa información serial y

direccionarla.

Para poder leer la información suministrada por el receptor de RF, es

necesario que el microcontrolador también posea un programa que contenga una

rutina que permita captar los datos a la velocidad de 1000 Baudios a la que se está

transmitiendo, utilizando el mismo protocolo para la recepción.

La sección del programa que realiza la recepción serial trabaja de la misma

manera en que el microcontrolador que envió la orden, es decir, usa los mismos

tiempos de espera para la lectura de datos. Otra vez, bajo el mismo principio es

preciso tener una rutina que permita al reconocer el cambio de la entrada por el Bit de

Start, esperar 1 bit y medio para leer el primer bit de datos y seguidamente cada

lectura se realiza con intervalos del tiempo correspondiente a un bit completo. El

código ensamblador para la subrutina de medio bit de espera:

MBIT MOVLW .125 MOVWF RETARDO

REPITMB DECFSZ RETARDO, 1 GOTO REPITMB RETURN

El programa igualmente debe llamar la subrutina tres veces para lograr el

efecto deseado de un bit y medio. Al haber recibido todos los bits de la orden emitida

por el PC, el registro de 8 bits debe ser direccionado para llevar a cabo la orden del

software de control.

Page 177: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

159

a. EL DIRECCIONAMIENTO DE ÓRDENES

El Direccionamiento de Órdenes es una función básica de microcontrolador

convenientemente implementada por los autores, e infiere que solo una serie de

palabras de control u órdenes pueden ser enviadas al Robot, dependiendo de esas

órdenes el microcontrolador ubicará los dispositivos a los que la orden es emitida.

Utilizando el bit de más peso de la palabra de control se selecciona por medio del

software de control a quien va dirigida la orden entre los dispositivos. Sin embargo,

dentro de cada orden también van incluidas una serie de bits que indican, más

específicamente, a quien va dirigida la orden.

De esta manera se observa en la siguiente tabla de instrucciones, la estructura

de las palabras de control:

Tabla No. 13: Instrucciones del Robot

Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 FUNCIÓN

0 0 0 0 0 0 0 1 Posición 1 Sensor 1

0 0 0 0 0 0 1 0 Posición 2 Sensor 1

0 0 0 0 0 0 1 1 Posición 3 Sensor 1

0 0 0 0 0 1 0 0 Posición 4 Sensor 1

0 0 0 0 0 1 0 1 Posición 5 Sensor 1

0 0 0 0 0 1 1 0 Posición 6 Sensor 1

Page 178: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

160

0 0 0 0 0 1 1 1 Posición 7 Sensor 1

0 0 0 0 1 0 0 0 Posición 8 Sensor 1

0 0 0 0 1 0 0 1 Posición 9 Sensor 1

0 0 0 0 1 0 1 0 Posición 10 Sensor 1

0 0 0 0 1 0 1 1 Posición 11 Sensor 1

0 0 0 0 1 1 0 0 Posición 12 Sensor 1

0 0 0 1 0 0 0 1 Posición 1 Sensor 2

0 0 0 1 0 0 1 0 Posición 2 Sensor 2

0 0 0 1 0 0 1 1 Posición 3 Sensor 2

0 0 0 1 0 1 0 0 Posición 4 Sensor 2

0 0 0 1 0 1 0 1 Posición 5 Sensor 2

0 0 0 1 0 1 1 0 Posición 6 Sensor 2

0 0 0 1 0 1 1 1 Posición 7 Sensor 2

0 0 0 1 1 0 0 0 Posición 8 Sensor 2

0 0 0 1 1 0 0 1 Posición 9 Sensor 2

0 0 0 1 1 0 1 0 Posición 10 Sensor 2

0 0 0 1 1 0 1 1 Posición 11 Sensor 2

0 0 0 1 1 1 0 0 Posición 12 Sensor 2

1 0 0 0 0 0 0 0 APAGAR LUCES

1 0 0 0 0 0 0 1 LUZ DE AMBIENTE

1 0 0 0 0 0 1 0 BATERÍA PRINCIPAL

Page 179: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

161

1 0 0 0 0 1 0 0 BATERÍA AUXILIAR

1 0 0 0 1 0 0 0 BATERÍA DE SENSOR

1 0 0 1 0 0 0 0 ACTIVAR RELÉ

1 0 1 0 0 0 0 0 DESACTIVAR RELÉ

1 1 0 0 0 0 0 0 ENCENDER LUCES

Fuente: Los Autores, Chacín y Socorro (1999)

Se puede observar que el patrón que siguen las palabras de control posee bits

tipo bandera, que funcionan para iniciar el ciclo de trabajo de los dispositivos. Es

importante recalcar que una vez emitida una orden, el resto del sistema del Robot

trabaja de manera dependiente del dispositivo seleccionado, por lo tanto las rutinas y

subrutinas de los programas de los microcontroladores fueron elaboradas de manera

modular, es decir, cada módulo trabaja independientemente de los demás, así las

rutinas se hacen genéricas, con la finalidad de que cualquier orden sea ejecutada de

manera eficaz.

6.3. DISPOSITIVOS PARA ACCIONAR Y SELECCIONAR

VARIABLES

Como ya se ha hecho referencia no existe una relación directa maestro-

esclavo entre los elementos de control del Robot, excepto por la acción del programa

de control, la parte remota del sistema (Robot) trabaja como una unidad, es decir, de

forma modular y en todos los casos los microcontroladores operan de manera

Page 180: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

162

dependiente unos de otros, por lo tanto, la ocurrencia de eventos por parte de unos

microcontroladores concluirá con el inicio del ciclo de trabajo de otros, así

modularmente se traspasan entre ellos la responsabilidad del óptimo funcionamiento

del sistema. De acuerdo a los supuestos anteriores, trabaja el Módulo Accionador y

Selector de Variables, como su nombre lo indica su propósito es accionar las

variables que indiquen las órdenes provenientes del PC como el servomotor, los

sensores, etc. y/o seleccionar las variables de entrada para actualizar el monitoreo

constantemente realizado por el software de control como los estados de las baterías o

luz del ambiente.

Este módulo consta de tres microcontroladores de la serie PIC16X84, un

servomotor, varios relés, un multiplexor analógico CMOS, varios potenciómetros,

una celda fotoconductiva y dos sensores de distancia de ultrasonido. La disposición y

las funciones de los elementos mencionados solo puede explicarse a medida que las

instrucciones del PC son ejecutadas, para este fin se debe explicar el funcionamiento

de las instrucciones más relevantes, o que indican una función diferente para el

sistema del Robot, sin embargo puede dividirse en dos grupos de órdenes:

• Las órdenes para el Sonar.

• Las órdenes para el monitoreo o uso del resto de los dispositivos.

Las estructuras de las palabras de instrucciones provenientes del software de

control, como se observa en la Tabla No. 13, poseen bits que tienen la función de

Page 181: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

163

indicar cual dispositivo será el que ejecutará la orden, una vez indicado dicho

dispositivo será tarea del resto de los bits de control indicar cual será con exactitud la

orden a ejecutar. Para tal efecto, existen prioridades en los programas de los

microcontroladores que indican cual de esos bits tiene más o menos peso sobre los

demás, dándole a cada bit cierto nivel de jerarquía sobre la orden o palabra de control.

a. EL POSICIONAMIENTO DEL SERVOMOTOR

Este es el primero de los casos, ocurre cuando la palabra de control es recibida

y el bit con más peso, es decir, el bit 8 se encuentra en 0 lógico, por lo tanto indica

que la orden es para el movimiento del servomotor del Sonar. Seguidamente esta

orden es traducida a movimientos angulares del servomotor del sistema de

reconocimiento del entorno, conocido por el software de control como Sonar. El tipo

de palabra de control que debe ser emitida por el PC debe cumplir con la siguiente

estructura:

• El último bit (8) debe ser 0.

• Los bits 1,2,3 y 4 deben poseer números binarios entre 1 y 12.

• El quinto bit indica el servomotor a ejecutar la orden 0 para el motor 1

(adelante) y 1 para el motor 2 (atrás).

• Los bits 6 y 7 no están implementados, por consiguiente no importa su

estado para ninguna de estas operaciones relacionadas con el movimiento

del servomotor. Estos son los bits más propensos a utilizar en caso de

Page 182: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

164

incluir nuevo hardware que pueda ser controlado por solo dos estados

lógicos.

Al ser recibida la orden de mover el servomotor, es necesario avisar al

microcontrolador encargado de ejecutar dicha orden que la nueva información ha

llegado para ser procesada y ejecutada, entonces se hace necesario que exista una

señal de verificación o Handshaking que debe ser emitida desde el microcontrolador

direccionador, que indica que nueva información ha llegado, de igual forma esa señal

debe ser realimentada por otra de la misma naturaleza que le indicará al

microcontrolador direccionador que esa nueva información ya ha sido captada, esta

señal debe ser emitida por el microcontrolador posicionador.

Una vez recibida la información es necesario decodificarla para identificar la

posición a la que se debe rotar el servomotor, para realizar esa identificación es

necesario que la orden sea cuidadosamente comparada con los valores

preprogramados en el microcontrolador que corresponde a cada posición.

El servomotor FUTABA (Figura No. 31), utilizado por esta sección del

sistema, es controlado por PWM (Pulse Width Modulation) o Modulación por

Ancho de Pulso y forma parte integral del Sonar. Funcionalmente, para generar el

movimiento de este servomotor es necesario producir en la entrada del mismo un

pulso cuyo ciclo de trabajo y ancho puede variar, la posición del servomotor se

corresponde a la duración del pulso. En este servomotor los ángulos rotatorios están

Page 183: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

165

limitados a únicamente 180°, sin embargo se puede lograr una buena precisión de la

posición que se desea.

Figura No. 31: Servomotor FUTABA S3003

Fuente: Los Autores, Chacín y Socorro (1999)

Para la generación del pulso que dará la posición al servomotor, se recurrió al

estudio de la modulación en PWM, y al entender la lógica de esta, se pudo crear una

rutina de programación para microcontrolador que pueda ejecutarla y servir para tal

propósito.

En PWM la señal es en forma de un ciclo de pulso cuadrado de amplitud

constante, donde se debe variar la duración del ciclo de trabajo para obtener un

movimiento del servomotor, ahora el ciclo de trabajo no es más que la duración del

pulso a lo largo del tiempo. El modelo de servomotor, el S3003, utilizado para la

implementación del Sonar, necesita para trabajar un pulso mínimo de 0.35 ms y uno

máximo de 2.25 ms, para esto se debe trabajar sobre un pulso base de 0.35 ms y el

tiempo restante se debe variar por software dependiendo de la orden recibida desde el

PC. En virtud de lo antes expuesto, se creó una rutina que dependiendo del valor

Page 184: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

166

colocado en el acumulador aumente o disminuya el tiempo de duración del pulso

según lo indique la orden. El código ensamblador de la subrutina de tiempo base:

UMS MOVLW 0X30 VAR MOVWF CONT LAZO NOP

NOP NOP NOP NOP DECFSZ CONT, 1 GOTO LAZO MOVLW 0X30 MOVWF CONT NOP NOP RETURN

Diseñada la rutina del tiempo base, se debe trabajar usando la lógica del PWM

y el control del servomotor. Se debe generar el tiempo base y dependiendo del valor

colocado previamente en el acumulador se repite la rutina de tiempo con la salida

activada, hasta que la subrutina termine su ciclo, ahora es imperativo deshabilitar la

salida del pulso y comenzar a hacer los cálculos para producir el tiempo de guarda

que debe terminar el ciclo de trabajo del servomotor, esto se realiza restando al valor

de tiempo máximo del ciclo de trabajo, supuesto como FF, el valor que se colocó por

segunda vez en el acumulador, así se genera una nueva rutina de tiempo que concluye

el ciclo de trabajo del servomotor.

El código ensamblador genérico para la rutina de movimiento del servomotor:

BSF PORTX, RXY CALL UMS MOVF APRIMA, 0

Page 185: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

167

CALL VAR BCF PORTX, RXY MOVF APRIMA, 0 SUBLW 0XFF CALL VAR

Sí X= A entonces Y= 0, 1, 2, 3, 4 Sí X= B entonces Y= 0, 1, 2, 3, 4, 5, 6, 7

Las dos rutinas de programación anteriores generan un pulso que depende del

valor que se encuentre en el acumulador en el momento necesario, ya existentes estas

rutinas solo basta con diseñar un algoritmo que cambie el valor del acumulador

dependiendo del código emitido por el PC. Para lograr ese propósito, se implementó

un programa de prueba que permitió establecer los valores para las posiciones

deseadas del servomotor, este tomaba los valores del puerto B y los colocaba en uno

de los registros variables APRIMA, así se consiguieron los valores necesarios para

generar el torque correspondiente en cada caso. Luego, se le asignó un valor a cada

orden del software de control, de esta manera el PC solo tiene que enviar 12 valores

binarios desde el 1 hasta el 12, para tal efecto solo se requieren 4 bits y se

implementó que el quinto indique cual de los sensores debe encender.

Los valores binarios correspondientes a cada posición del servomotor con su

respectivo valor asociado hexadecimal para su posicionamiento pueden ser

observados en la siguiente tabla de instrucciones:

Tabla No. 14: Instrucciones del Posicionador

Bit 8 Bit7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Valor Asociado Posición

Page 186: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

168

0 0 0 X 0 0 0 1 06(16) Pos 1

0 0 0 X 0 0 1 0 2C(16) Pos 2

0 0 0 X 0 0 1 1 3E(16) Pos 3

0 0 0 X 0 1 0 0 50(16) Pos 4

0 0 0 X 0 1 0 1 60(16) Pos 5

0 0 0 X 0 1 1 0 70(16) Pos 6

0 0 0 X 0 1 1 1 85(16) Pos 7

0 0 0 X 1 0 0 0 98(16) Pos 8

0 0 0 X 1 0 0 1 B0(16) Pos 9

0 0 0 X 1 0 1 0 C6(16) Pos 10

0 0 0 X 1 0 1 1 D0(16) Pos 11

0 0 0 X 1 1 0 0 E8(16) Pos 12

Sí X=0 la orden es para el sensor 1 Sí X=1 la orden es para el sensor 2

Fuente: Los Autores, Chacín y Socorro (1999)

b. MANIPULACIÓN DE VARIABLES

El segundo caso común entre las órdenes emitidas por el PC, ocurre cuando el

último bit (8) de la palabra de control, posee un 1 lógico, este estado en el bit más

significativo indica que la instrucción es para algún otro dispositivo no relacionado

con el Sonar, por lo tanto el direccionador envía serialmente los 8 bits de la orden

Page 187: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

169

completa utilizando el mismo protocolo de transmisión con el cual se recibieron

inicialmente los datos, la velocidad es de 1000 Baudios.

Una vez recibida en el microcontrolador indicado, la orden no necesita ser

traducida, debido a que estas contienen bits tipo bandera que son chequeados de

menor a mayor para determinar la función que debe ser realizada. El tipo de palabra

de control que debe ser emitida por el PC debe cumplir con la siguiente estructura:

• El último bit (8) debe ser 1.

• Excepto por la primera instrucción de apagar las luces, en la palabra de

control solo dos bits pueden tener un 1 lógico.

La siguiente tabla ilustra las palabras de control que pueden ser manejadas por

el programa del microcontrolador que realiza las funciones de manipulación de las

variables:

Tabla No. 15: Instrucciones del Módulo Accionador

Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 FUNCIÓN

1 0 0 0 0 0 0 0 Apagar Luces

1 0 0 0 0 0 0 1 Luz de Ambiente

1 0 0 0 0 0 1 0 Batería Principal

1 0 0 0 0 1 0 0 Batería Auxiliar

1 0 0 0 1 0 0 0 Batería de los Sensores

1 0 0 1 0 0 0 0 Activar Relé

Page 188: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

170

1 0 1 0 0 0 0 0 Desactivar Relé

1 1 0 0 0 0 0 0 Encender Luces

Fuente: Los Autores, Chacín y Socorro (1999)

De la tabla anterior existen funciones que pueden ser llevadas a cabo por el

mismo microcontrolador, es decir, son funciones directas al dispositivo, como apagar

o encender las luces y activar o desactivar el relé. El relé del que se hace referencia en

esta sección tiene la función de cambiar la batería de alimentación del sistema

completo, de la principal a la batería auxiliar o viceversa, para esto el software debió

ejecutar un previo chequeo de la batería que se desea utilizar, si está en condiciones

de suplir las necesidades del sistema, será cambiada, de lo contrario, aparecerá un

mensaje de alerta en la sección de estado del sistema en la interface gráfica del

programa de control, indicando que ambas baterías están bajas.

Las funciones de conmutación de las baterías del sistema se hacen posibles,

mediante la previa revisión de las baterías, por parte de órdenes anteriores ya

implementadas, todo esto con la ayuda de los demás elementos del Módulo

Accionador y Selector de Variables, donde también se incluye un microcontrolador

que se encarga de seleccionar las variables de entrada al multiplexor analógico.

c. SELECCIÓN DE VARIABLES

Page 189: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

171

Para la tarea de la selección de las variables de entrada del multiplexor, se

implementó un microcontrolador que interacciona con la manipulación de variables y

las órdenes de posicionamiento del servomotor. En ambos casos el sistema necesita

de este microcontrolador para completar la orden.

En el caso de que la palabra de control sea para posicionar algún servomotor,

el microcontrolador posicionador emite una señal que le indica al PIC seleccionador

cual servomotor se movió y que debe encender el sensor correspondiente a dicho

servomotor. El microcontrolador se encargará de encender el relé que le conectará la

alimentación al sensor de ultrasonido en cuestión, además colocará una dirección de

entrada en el multiplexor analógico que provocará como salida del módulo el valor

que más tarde será cambiado a digital para su posterior envío al PC al momento que

se envíe la señal de inicio al siguiente módulo.

Si por el contrario la palabra de control es para el monitoreo de alguna

variable, el microcontrolador correspondiente envía una señal que causará que se

coloque una dirección diferente y correspondiente al dispositivo deseado y luego de

cambiar la salida del multiplexor nuevamente se envía la señal de inicio al siguiente

módulo.

c.1. LAS VARIABLES

Page 190: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

172

Existen 6 variables en el sistema, que pueden ser agrupadas en 3 tipos por su

naturaleza, están son:

- Las baterías principal y auxiliar del sistema y la batería de los sensores.

- Una celda fotoconductiva.

- Los dos sensores de distancia.

Cada una de las variables están conectadas a las entradas de un multiplexor

analógico CMOS 4067 (Figura No. 32), y son conmutadas para cambiar la salida del

multiplexor dependiendo de la orden recibida desde el PC. Para las baterías, cada una

de ellas se encuentran simplemente conectadas a potenciómetros para bajar el voltaje

hasta máximo 5 voltios debido a que la entrada del multiplexor no puede sobrepasar

el valor de la alimentación del sistema.

Figura No. 32: Multiplexor Analógico CMOS 4067

Fuente: Los Autores, Chacín y Socorro (1999)

Con respecto a las Celdas Fotoconductivas, estas cambian de resistencia

como respuesta a los cambios en la intensidad de luz, a medida que aumenta la

Page 191: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

173

iluminación, la resistencia disminuye. Una de las características más resaltantes es la

sensibilidad, ya que su resistencia puede variar de más de 1MΩ a menos de 1KΩ a

medida que cambie la intensidad de la luz. Además pueden conmutarse a frecuencias

de 100 KHz y más.

Figura No. 33: Celda Fotoconductiva

Fuente: Los Autores, Chacín y Socorro (1999)

Finalmente y como última variable, en el eje de torque del servomotor del

Sonar se encuentra una prolongación que se levanta por encima del Carro Radio-

Control (Robot), en los extremos se ubican Sensores de Distancia, seleccionados por

la simplicidad de su uso. Estos sensores son de tipo ultrasónico de la compañía

SENIX CORP y están diseñados para medir la distancia entre el transductor y el

punto de interrupción del cono ultrasónico que emite. La distancia es medida sin

contactar el objeto, esto se logra enviando una frecuencia ultrasónica y midiendo el

tiempo que tarda el pulso eco que retorna tras haber rebotado con un obstáculo. Como

se mencionó anteriormente el tiempo medido es relacionado con la velocidad del

sonido en el aire. Luego que la distancia (tiempo) es medida, el circuito electrónico

del sensor provee una salida analógica de voltaje que es proporcional a la distancia.

El dispositivo está calibrado de fábrica para trabajar con los márgenes de voltaje de 0

Page 192: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

174

Voltios para una distancia menor de 15 cm o 6 pulgadas y 10 Voltios para distancias

mayores a 154 cm o 60 pulgadas y por supuesto cambio proporcional entre esos dos

valores.

Figura No. 34: Sensores de Distancia montados en el Servomotor

Fuente: Los Autores, Chacín y Socorro (1999)

La distancia medida por el sensor es representada por el voltaje colocado entre

los terminales VO- y VO+ del circuito impreso. El manual de uso del sensor provee

una tabla de relación aproximada entre el voltaje y la distancia expresada en

pulgadas, a continuación se encuentran los valores ajustados al sistema internacional

de medición, donde la distancia está expresada en centímetros:

Tabla No. 16: Relación Voltaje-Distancia de los Sensores

DISTANCIA (cm) VOLTAJE (V) DISTANCIA (cm) VOLTAJE (V)

15.24 0.0 86.36 5.2

17.78 0.2 88.9 5.4

20.32 0.4 91.44 5.6

Page 193: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

175

22.86 0.6 93.98 5.7

25.4 0.7 96.52 5.9

27.94 0.9 99.06 6.1

30.48 1.1 101.6 6.3

33.02 1.3 104.14 6.5

35.56 1.5 106.68 6.7

38.1 1.7 109.22 6.9

40.64 1.9 111.76 7.0

43.18 2.0 114.3 7.2

45.72 2.2 116.84 7.4

48.26 2.4 119.38 7.6

50.8 2.6 121.92 7.8

53.32 2.8 124.46 8.0

55.88 3.0 127 8.1

58.42 3.1 129.54 8.3

60.96 3.3 132.08 8.5

63.5 3.5 134.62 8.7

66.04 3.7 137.16 8.9

68.58 3.9 139.7 9.1

71.12 4.1 142.24 9.3

73.66 4.3 144.78 9.4

76.2 4.4 147.32 9.6

Page 194: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

176

78.74 4.6 149.86 9.8

81.28 4.8 152.4 10.0

83.82 5.0

Fuente: Senix Ultrasonic Sensor with Voltage Output User's Guide (1996:7)

En cuanto a las características del sensor, entres las más resaltantes se pueden

citar:

• Su resolución es de aproximadamente 0.1524 centímetros.

• Cono de ultrasonido de 15 grados de amplitud.

• El tiempo de actualización del voltaje de salida es de 50 milisegundos.

• No es sensible a los niveles de luz del ambiente.

• No es sensible al color del objeto.

• No es sensible a la reflectividad o transparencia del objeto.

Sin embargo, se deben tomar algunas consideraciones en cuenta al momento

de su uso, debido a que la orientación del transductor debe ser perpendicular para

mejores resultados, este dispositivo no estará en capacidad de sensar el objeto si la

energía ultrasónica es reflejada lejos del transductor en lugar de volver a él, no

obstante los objetos curvos o esféricos son buenos blancos. Por otro lado, el factor

que afecta más la exactitud de las mediciones es la temperatura, a temperatura

ambiente un cambio de 10 grados resultará en aproximadamente un cambio del 1% de

la velocidad del sonido y por consiguiente el mismo cambio en el voltaje de salida

proporcional a la distancia.

Page 195: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

177

A la vista de los estos inconvenientes asociados a los sensores de ultrasonido,

se puede asegurar que la navegación reactiva de un Robot móvil basada en las

informaciones que proveen los sensores en un único instante de tiempo es poco

confiable, pues zonas consideradas como ocupadas hasta ese momento pueden

aparecer como libres para los ultrasonidos, con el consiguiente riesgo de colisión. Sin

embargo, si se combina la evidencia de muchas lecturas hechas mientras el Robot se

mueve por el entorno o de lecturas desde posiciones estacionarias, y se genera un

modelo del ambiente que lo rodea con la información adquirida hasta ese momento,

la incertidumbre en las medidas y en el conocimiento de las zonas libres y ocupadas

se reduce drásticamente. Bajo este principio trabaja el Sonar del software de control.

Nuevamente se hace necesario conectar la salida de los sensores a

potenciómetros debido a que el voltaje proveniente de estos es demasiado alto con

respecto al valor del voltaje de alimentación y por lo tanto debe ser reducido a un

máximo de 5 voltios.

6.4. CONVERSIÓN Y ENVÍO DE DATOS

Una vez provista la salida analógica del módulo anterior, es necesario

transformarla a un valor digital y enviarlo al PC para su posterior estudio, para tal

efecto inicialmente es necesario utilizar un convertidor analógico-digital compatible

Page 196: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

178

con microcontroladores para poder captar el nuevo valor digital y enviarlo al

programa de control.

De acuerdo a lo anterior el ADC0804 (Figura No. 35) es un circuito integrado

de 20 terminales fabricado con tecnología CMOS y que lleva a cabo la conversión

analógica-digital utilizando el método de aproximaciones sucesivas, en el que se

utilizan un registro paralelo interno y una lógica compleja para llevar a cabo la

conversión, lógica basada en la modificación bit a bit del registro, hasta que se

convierta en el equivalente de la entrada analógica, por supuesto dentro de la

resolución del convertidor, siendo el tiempo de conversión el mismo sin importar cual

sea el valor de la señal de entrada analógica.

Figura No. 35: Distribución de Pines del ADC0804

Fuente: Los Autores, Chacín y Socorro (1999)

Algunas de las características principales del dispositivo son:

• Tiene dos entradas analógicas: VIN(+) y VIN(-) que permiten tener entradas

diferenciales, siendo el voltaje de entrada el diferencial entre los voltajes

Page 197: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

179

aplicados en dichas terminales. En mediciones hechas en un solo punto la entrada

analógica se aplica en VIN(+) mientras que VIN(-) se conecta a tierra analógica.

Durante la operación normal, el convertidor utiliza VCC = + 5 Voltios como

voltaje de referencia y la entrada analógica puede variar desde 0 hasta 5 Voltios,

que es el valor de escala completa.

• Convierte el voltaje de entrada analógico en una salida digital de ocho bits. La

salida es de tres estados, lo que permite conectar el convertidor con facilidad en

canales de datos. Con ocho bits la resolución es de 5V/255= 19.6 mV.

• Tiene un circuito de reloj interno que produce una frecuencia igual con f =

1/(1.1RC), donde R y C son los valores de los componentes conectados al

convertidor de manera externa. Una frecuencia típica de reloj es 606 KHz y se

obtiene con R= 10 KΩ y C = 150 pF. Si se desea también puede utilizarse un reloj

externo; este se conecta a la terminal CLK IN del CI.

• Al utilizar una frecuencia de 606 KHz, el tiempo de conversión es,

aproximadamente igual a 100 µs.

• Tiene conexiones a tierra por separado para los voltajes analógicos y digitales. La

terminal 8 corresponde a la tierra analógica y se conecta al punto común que sirve

como referencia en el circuito analógico que genera el voltaje analógico. La

terminal 10 es la tierra digital, que es la que utilizan todos los dispositivos

digitales que integran el sistema. La tierra digital es inherentemente ruidosa como

consecuencia de los rápidos cambios de corriente que tienen su origen cuando los

dispositivos digitales cambian su estado. Aunque no es necesario utilizar una

Page 198: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

180

tierra analógica aparte, hacerlo asegura que el ruido de la tierra digital no sea la

causa de un cambio prematuro en la salida del comparador analógico que se

encuentra dentro del ADC.

Las funciones de entrada y salida del ADC0804 son las siguientes:

• CS Habilitación del Microcircuito (Chip Select): Esta entrada debe encontrarse

en su estado activo en BAJO para las entradas RD o WR tenga efecto. Con CS en

el estado ALTO, las salidas digitales se encuentran en su estado de alta

impedancia y no se lleva a cabo ninguna conversión.

• RD Habilitación de la Salida (Output Enable): Esta entrada se emplea para

habilitar los buffers de las salidas digitales. Con CS=RD=BAJO, las terminales

correspondientes a las salidas lógicas tienen niveles lógicos que representan el

resultado de la última conversión AD.

• WR Inicio de conversión (Start Conversión): En esta entrada se aplica un pulso

BAJO para dar inicio a un nuevo proceso de conversión.

• INTR Fin de Conversión (End of Conversión): Esta señal cambia hacia el

estado ALTO al inicio de la conversión cuando la conversión termina, regresa al

estado BAJO.

• VREF/2: Esta es una entrada opcional que puede emplearse para disminuir el

voltaje de referencia interno y con ello cambiar el rango analógico de entrada que

el convertidor puede manejar. Cuando esta entrada no está conectada, permanece

en 2.5 Voltios (VCC/2) debido a que en este caso VCC se emplea como referencia.

Page 199: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

181

Si se conecta un voltaje externo en esta terminal, la referencia interna cambia y su

valor es el doble del correspondiente al voltaje externo. La siguiente tabla ilustra

este hecho:

Tabla No. 17: Variación del Rango Analógico de Entrada

VREF/2 RANGO DE ENTRADA ANALÓGICO (V) RESOLUCIÓN (mV)

Abierto 0 - 5 19.6

2.25 0 - 4.5 17.6

2.0 0 - 4 15.7

1.5 0 - 3 11.8

Fuente: Tocci, R (1993:606)

• Salida de Reloj (CLK OUT): Para utilizar el reloj interno, se conecta un resistor

en esta terminal. La señal del reloj interno aparece en esta terminal.

• Entrada de Reloj (CLK IN): Se utiliza como entrada del reloj externo o para

conectar un capacitor cuando se hace uso del reloj interno.

Los ocho pines de salida del dispositivo D0 a D7 son conectados al puerto B

del microcontrolador, este último recibe una señal del módulo anterior que indica que

la entrada al convertidor ya ha sido provista y que debe iniciar su ciclo de trabajo. Al

comenzar el ciclo de trabajo del Módulo de Conversión Analógica-Digital y

Transmisión serial de datos el microcontrolador envía una señal al pin WR del ADC

que inicia la conversión analógica-digital, seguidamente procede a esperar la señal

proveniente de INTR en el ADC que indica que la conversión ya ha sido terminada y

Page 200: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

182

que los datos que están en ese instante en el puerto B del microcontrolador deben ser

recolectados y colocados en un registro para luego ser enviados serialmente bajo el

mismo principio de comunicación serial ya usado anteriormente.

Al momento de ser enviados los datos, estos pasan por un transmisor de 418

MHz (Figura No. 36) ubicado en el terminal RA1 del microcontrolador, dicho

transmisor complementa el que se encuentra en la interface serial del PC ya

anteriormente referida y contribuye a completar el eficiente intercambio de

información entre el PC y el Robot.

Figura No. 36: Transmisor de 418 MHz

Fuente: www.dvp.com (1999-06-02)

6.5. DISPOSITIVOS PARA EL MOVIMIENTO

Las señales provenientes de la tarjeta interna en el PC (FASE 6, sección 6.1.1)

en FM son percibidas por un receptor de 75 MHz FUTABA ubicado directamente en

el Robot móvil, estas al ser alimentadas a través de la antena, son demoduladas en su

forma original en señales de PWM, como se explicó anteriormente, este tipo de

Page 201: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

183

señales presentan una variación del ancho del pulso a partir de un ancho mínimo de

señal. De esta manera la PWM es una elección frecuente cuando se desea el control

remoto proporcional de una posición o cierta razón de posición, esto aunado al hecho

de que el receptor a su vez divide la señal en sus dos componentes de control y las

suministra a los dispositivos actuadores que responden directamente por el

movimiento del Robot.

a. EL CONTROL DE VELOCIDAD Y EL MOTOR DC

El Control Electrónico de Velocidad ROOSTER (Electronic Speed Control

o ESC) de NOVAK ELECTRONICS, INC (Figura No. 37) es un control de

velocidad reversible de carreras que se encarga de proveer, en la medida que sea

necesario, la corriente necesaria para el motor y así dotar de fuerza locomotora al

Robot.

Figura No. 37: Control de Velocidad ROOSTER

Fuente: www.teamnovak.com (1999-03-18)

Page 202: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

184

Este dispositivo fue seleccionado por su sencillez de uso y fácil programación

con poca o ninguna experiencia en el área de las carreras de Carros Radio-Control o

Aeromodelismo. Entre las características funcionales provistas por NOVAK podemos

citar como las más importantes que necesita de una alimentación provista por 6 celdas

de 1.2 Voltios DC y recibe las señales de PWM a una velocidad de 1250 Hertz.

El control de velocidad debe ser instalado con cinta de doble cara y lo más

lejos del receptor para evitar la interferencia en alguno de los dos dispositivos. Las

pruebas del control de velocidad no deben hacerse con el motor conectado.

Con respecto al motor, es un motor stock de 23000 revoluciones por minuto a

velocidad máxima, seleccionado aleatoriamente debido a que el ESC es capaz de

manejar casi cualquier motor DC en cuanto a modelos para R/C (Radio-Control) se

refiere.

El funcionamiento es bastante sencillo, necesita aproximadamente 3 Amperios

para trabajar, los cuales son proporcionados por la pila a través del ESC. Sin embargo

existen también, como con el ESC, algunas consideraciones que deben ser tomadas

en cuenta, entre ellas, los cables del control de velocidad deben estar soldados para

obtener la menor resistencia posible, además el motor debe tener instalados 3

capacitores de 0.1 µF (50 Voltios) para evitar que el ruido electrónico del motor DC

interfiera con el receptor de RF y que se ocasionen daños internos severos al control

Page 203: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

185

de velocidad. En la figura se puede observar la ubicación de los capacitores para su

instalación:

Figura No. 38: Motor DC con los Capacitores

Fuente: www.teamnovak.com (1999-03-18)

Al estar todos los dispositivos dispuestos se procede a su conexión. Para tal

efecto se deben seguir, nuevamente, una serie de pasos o normas para la primera

instalación y su configuración como control de velocidad reversible:

• Instalar el control de velocidad, como se mencionó anteriormente, en un

lugar alejado del receptor y de la antena.

• Conectar el control de velocidad al receptor.

• Conectar el ESC a la batería.

• Encender el transmisor conectado al PC.

• Encender el control electrónico de velocidad.

• Con el valor neutral de velocidad, presionar el botón de Set hasta que el

LED cambie a rojo.

• Colocar el valor máximo de velocidad en el transmisor hasta que el LED

cambie a verde.

Page 204: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

186

• Colocar el valor máximo de velocidad en reversa en el transmisor hasta

que el LED parpadee, luego colocar el valor en la posición neutral de

velocidad.

• Apagar el control de velocidad, luego el transmisor y conectar el motor.

Al completar todos los pasos anteriores el sistema estará listo y configurado,

solo bastará con recordar encender el transmisor primero y luego el control de

velocidad para evitar una desconfiguración. De este punto en adelante no hará falta

volver a realizar el proceso, el sistema está listo para trabajar y brindar movimiento al

Robot. Las conexiones de los dispositivos para la configuración se pueden apreciar en

la siguiente figura:

Figura No. 39: Conexiones del Sistema de Movimiento

Fuente: www.teamnovak.com (1999-03-18)

Page 205: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

187

FASE 7. - DEPURACIÓN DEL SOFTWARE

Para que el sistema realice sus funciones es necesario la implementación del

software de control, el cual realiza la toma de decisiones que rigen al Robot, y por

ende las acciones de los diversos dispositivos que componen el hardware del sistema.

Dicho Software de Control ubicado en el PC fue diseñado inicialmente en

Microsoft QBASIC donde se establecieron los primeros parámetros para el

funcionamiento del sistema como los puertos a usarse y la configuración de la tarjeta

controladora de la velocidad y la dirección. De igual forma, se realizó el primer

prototipo del Sonar que más tarde prevalecería en la versión final del programa,

QBASIC permitió determinar la manera más eficaz de ejecutar las lecturas de los

sensores de distancia, así como sirvió para realizar los programas posteriores que

establecen la comunicación entre los microcontroladores y el PC.

Sin embargo, más adentrada la investigación QBASIC comenzó a presentar

ciertas limitantes en su estructura de programación a medida que el hardware del

sistema se iba desarrollando, debido a que cuando se hizo necesario establecer la

forma de funcionamiento que el sistema tendría el lenguaje no cubría los

requerimientos necesarios para satisfacerlo, en especial la velocidad de

procesamiento.

Page 206: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

188

Por lo expuesto anteriormente fue necesario buscar un nuevo lenguaje que se

adaptara al nuevo método de trabajo, para tal efecto se implementó el programa en

TURBO PASCAL 7.0 que posee estructuras dinámicas de datos que el lenguaje

permite aumentar o reducir durante la ejecución del programa como árboles o listas,

de igual forma la versión utilizada de TURBO PASCAL es capaz de manejar

punteros con los que se pueden manipular las direcciones de memoria, así también

maneja los puertos de entrada y salida lo que hace la comunicación entre el lenguaje y

los puertos del PC más fiable.

TURBO PASCAL 7.0 tiene la ventaja de ser un lenguaje donde la

programación es modular, estructurada y legible, puntos donde QBASIC no cumplía

las expectativas, dado que requería realizar todas las rutinas de programación

modulares como en los microcontroladores siguiendo la metodología de "Dividir y

Vencer", donde la clave del éxito radica en separar el trabajo modularmente y

permitir que los propios dispositivos se compartan la responsabilidad del buen

funcionamiento del sistema. Cabe destacar que ningún lenguaje de programación es

mejor que otro desde todos los puntos de vista, sin embargo TURBO PASCAL es

ideal para aprender a programar y para resolver problemas en el campo tecno-

científico por poseer gran cantidad de funciones matemáticas.

De igual forma el PC se apoya en distintos microcontroladores que poseen un

programa de control que le permite ejecutar las órdenes recibidas de manera modular,

es decir, todas las funciones del sistema repartidas en varios dispositivos. Los

Page 207: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

189

microcontroladores son programados en MPLAB de MICROCHIP, este programa

traduce el código ensamblador o código de máquina en instrucciones hexadecimales

que luego por medio de un programador son introducidas a los microcontroladores.

La versión 4.1 de MPLAB tiene algunas opciones que permiten simular los

programas antes de implementarlos físicamente en los microcontroladores, las

opciones como Stopwatch, Step, Step Over, Change the Program Counter, etc.,

permiten verificar muy acertadamente la fiabilidad del programa para las funciones

que serán ejecutadas. Así mismo, permite ver los registros de funciones especiales

(SFR) y una ventana de registros específicos donde se puede observar el estado de las

variables que están siendo implementadas en el programa.

Es importante señalar que el uso de los microcontroladores PIC16C84 y

PIC16F84 es debido a que tienen memoria EEPROM de programa lo que significa

que se pueden programar hasta un millón de veces, mientras que muchos otros de la

misma familia son OTP o deben ser borrados con luz ultravioleta antes de ser

regrabados, por otra parte son de poco tamaño (18 pines) lo que los convierte en una

alternativa muy solicitada para Sistemas Robóticos y finalmente mas no menos

importante, comercialmente son económicos y muy fáciles de conseguir, a diferencia

de otros de la familia PIC16XXX que ya están fuera del mercado como el PIC16C71

entre otros.

FASE 8. - INTEGRACIÓN DEL HARDWARE CON EL SOFTWARE

Page 208: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

190

Definidos y adaptados cada uno de los módulos integrantes del Sistema

Robótico para eludir obstáculos, con los programas de control en los

microcontroladores, se procede a la depuración total del sistema, determinando y

corrigiendo las posibles fallas del corrido del mismo.

El Sistema Robótico es probado a través de la actuación del mismo, esto es,

tomando como base las señales emitidas y recibidas por cada uno de los módulos, que

son observables con la utilización de un osciloscopio y una punta lógica, para

determinar la exactitud de la información.

Una vez conectados todos los componentes se probó parte por parte que la

información proveniente del PC era recibida fielmente por el Robot, y si la

información que el Robot enviaba al PC correspondía a la que se había pedido

inicialmente.

Partiendo de los supuestos anteriores y debido a que el Software de Control

está estructurado modularmente, se comprobó cada uno de los módulos del programa

mediante su activación y respuesta correcta por parte del Robot. Cada uno de los

módulos del software de control envía un byte de datos, al cual el Robot debe enviar

la información correspondiente a ese byte, dicha información es tomada como

información de actualización para el módulo que la solicitó, así mismo el programa

del PC posee cuatro módulos relevantes que envían información y esperan una

Page 209: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

191

respuesta, estos son (según son nombrados en el código original del programa en

TURBO PASCAL):

• Batería.

• Sensores.

• Luz.

• Scan.

Batería, es el módulo correspondiente a mantener los estados de las baterías

del sistema actualizado para su visualización en la pantalla del programa, de igual

forma se encarga de tomar decisiones acerca del cambio de las baterías en caso de

que alguna de las dos este baja. Para tal efecto se muestra un mensaje en el cuadro del

programa (derecha) que indica cual de las baterías está activa, bien sea PRINCIPAL o

AUXILIAR.

El módulo Sensores, posee la misma función del módulo Batería, de mantener

actualizado el estado de la batería de los sensores para su display, con la diferencia

que no toma ningún tipo de decisión, solo muestra la condición de la batería e indica

cuando está baja.

Luz, se encarga de enviar instrucciones que llevan al programa a obtener el

estado de la luz del ambiente y mostrarla en pantalla. También tiene capacidad de

Page 210: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

192

emitir instrucciones, provenientes de decisiones, que encienden las luces del Robot en

caso de que la iluminación sea baja.

Finalmente, Scan, corresponde al SONAR del Software de Control y es la

parte más importante del sistema, ya que provee de los datos necesarios para provocar

las rutinas de las acciones que serán tomadas por el Robot, de él y de su buen

funcionamiento depende que en el PC se tomen las decisiones correctas al momento

de hacer un movimiento.

Este elemento está compuesto de partes que funcionando coordinadamente

pueden proveer de un entendimiento bastante certero del entorno del Robot, funciona

excelentemente como alternativa a las cámaras y al reconocimiento de patrones

visuales, la mayor de las ventajas de este tipo de dispositivos descansa en el hecho

que puede mejorarse su funcionamiento solo cambiando el software de control del

PC, sin tener que agregar hardware o verse en la posibilidad de tener que modificarlo,

por esta y otras razones se convierte en una herramienta de reconocimiento flexible y

solo capaz de expandirse y hacerse más poderosa dentro de los propios limites de la

habilidad del programador. Asegurando que todas las instrucciones para cada una de

las funciones son recibidas por el Robot y que la información proveniente del Robot

es normalmente comprendida por el PC se comprobó la funcionalidad del sistema.

FASE 9. - CONSTRUCCIÓN DEL PROTOTIPO DEFINITIVO Y

PRUEBAS FINALES

Page 211: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

193

Debido a que el desarrollo del Sistema Robótico cumplió con los objetivos

planteados en la investigación, estableciéndose el software compilado y la total

funcionalidad del sistema, no se consideró pertinente la realización de un prototipo

final de los circuitos electrónicos del Robot en baquelita.

Page 212: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

194

DISCUSION DE LOS RESULTADOS

Una vez realizada la integración del Hardware y el Software anteriormente

mencionada, se procedió a realizar un análisis exhaustivo donde se pudiera

determinar cual había sido el comportamiento del sistema en sí, confrontando los

resultados obtenidos con las teorías más importantes referenciadas en el desarrollo de

la investigación.

De acuerdo a Groover (1989) la información más completa que el Robot

puede disponer, para adaptarse a su entorno y llevar a cabo su misión con el máximo

rigor, consiste en la propia imagen del espacio que le rodea, así la capacidad de visión

dota al Robot de un sofisticado mecanismo de percepción que le permite responder a

su entorno de una forma inteligente y flexible. La visión se considera como una

potente capacidad sensorial del Robot, jugando un papel significativo en su

comportamiento, sin embargo al realizar las pruebas del Sistema Robótico

desarrollado se determinó que un solo tipo de sensor que provea capacidad de visión

a los Robots no es suficiente para adaptarse a su entorno haciéndose, necesarios

diversos tipos de sensores para tener un entendimiento del mundo exterior cambiante.

Al trabajar con el reconocimiento del entorno del Robot se constató la teoría

de Moravec (1981) donde se explica que una única medida tomada por los sensores

de ultrasonido proporciona poca información, así que mediante la acumulación de la

evidencia de una serie de medidas, se incrementa la precisión de la localización de los

Page 213: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

195

diversos obstáculos que hay en el medio. Por tanto, para reducir la incertidumbre

intrínseca a los sensores de ultrasonido se utilizó para esta investigación un mapa del

entorno donde sucesivamente se van plasmando y actualizando las medidas realizadas

de acuerdo a las teorías de Leonar y Durrant-Whyte (1992), que infieren que el Robot

debe hacer su propio mapa del entorno constantemente y no depender de un mapa

generado previamente por el sistema de navegación.

Lógicamente al moverse el Robot por el entorno, la incertidumbre en la

generación del mapa y su actualización se va acrecentando, debido a que el error en la

estimación de la posición del Robot respecto a un sistema de referencia general es

acumulativo y va creciendo con el tiempo. Lo que también concuerda con las teorías

de Moravec, H (1981) las cuales explican que se debe contar con un procedimiento

que permita reducir la incertidumbre de la posición del Robot para mantener la

coherencia espacial de las diferentes medidas, atendiendo a esto el Sistema

desarrollado mantiene un sensado permanente, de manera que el Robot realiza el

chequeo del entorno, traza el mapa, toma la decisión, se desplaza de acuerdo a ella, y

sensa nuevamente repitiendo el ciclo, ratificando así la veracidad de la teoría de

Miller, Winkless y Bosworth (1998).

Con respecto a la programación se demostró que para mejorar la

productividad de un programa se debe utilizar la Programación Modular, en el cual el

programa se divide en módulos, cada uno de los cuales ejecuta una única actividad y

se codifica independientemente de otros módulos, así el programa principal contiene

Page 214: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

196

un módulo que controla todo lo que sucede, transfiriendo el control a submódulos o

subprogramas, de modo que puedan ejecutar sus funciones eficientemente de acuerdo

a la teoría de Joyanes (1995).

Page 215: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

CONCLUSIONES___________________________________

Page 216: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

Las conclusiones derivadas del Desarrollo de un Sistema Robótico para eludir

obstáculos fueron las siguientes:

• Se demostró que un Sistema Robótico basándose en estímulos del entorno es

capaz de eludir los obstáculos del medio usando simples órdenes que conllevan a

generar un comportamiento electrónicamente reactivo.

• Se verificó que con la utilización de sensores, es posible lograr la percepción del

Robot al entorno que le rodea.

• Se comprobó que con un Sistema de Visión basado en dispositivos adaptados,

tales como: Sensores de Ultrasonido, Servomotores, Microcontroladores y una

estructura adecuada para su soporte, le permite al Robot tener su propia imagen

del espacio que lo rodea permitiendo la navegación reactiva en ambientes no

controlados.

• Se constató que los Sensores de Ultrasonido son eficientes para la detección de

objetos, sin embargo tienen como limitante la incertidumbre del sitio en que el

cono acústico fue interrumpido por el mismo, lo que conlleva a imprecisión en las

medidas.

• Se determinó, que con un solo tipo de sensor no es suficiente para que el Robot

tenga total conocimiento de su estado con respecto al exterior, aunque los

sensores de ultrasonido se adaptan a las necesidades del sistema, en cuanto al

reconocimiento del entorno, se hace necesario otros tipos de sensores para

atender aspectos como:

- Posición espacial.

Page 217: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

199

- Reconocimiento de objetos.

- Manipulación de objetos.

- Control de comportamiento.

- Etc.

• Al experimentar con distintos tipos de actuadores se constató que los

servomotores son más efectivos para aplicaciones en Robótica, debido a que se

puede controlar su posición angular mediante PWM, sin embargo este

movimiento es más difícil de generar que las rutinas para otros tipos de motores,

presentándose como única limitación el poseer solo 180 grados de apertura.

• Se corroboró que con la implementación de microcontroladores se simplifica la

cantidad de circuitos que controlan el Sistema Robótico, y que al trabajarlos

modularmente se distribuye más eficientemente el trabajo que cumplen los

programas de control que contienen, disminuyendo de esta manera el trabajo del

programador. Además se determinó que es imprescindible tener en cuenta los

diferentes tipos de microcontroladores para seleccionar eficazmente el que mejor

se ajuste a los requerimientos del sistema como transmisión serial, intercambio de

información paralela, PWM, etc.

• Se ratificó que para dotar a un Robot de inteligencia es necesario un Software de

Control, que le permita tomar decisiones de acuerdo a la información obtenida del

exterior y tener dominio de los diferentes elementos del sistema.

• Se confirmó que para manejar los puertos de salida del PC que controla el

sistema, es necesario implementar interfaces bien sea para regular la velocidad del

Page 218: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

200

intercambio de información, para adaptar los niveles de voltaje o para aumentar

los puertos de salida. De esta manera se asegura que la comunicación es eficiente

y la información pasa de un módulo a otro correctamente.

• Se observó como los circuitos de RF emiten señales que interfieren en los otros

dispositivos, lo cual es perjudicial para el correcto funcionamiento del Sistema

Robótico, haciéndose necesario diseñar circuitos que permitan su ajuste para

evitar este tipo de problema, como es el caso de la tarjeta interna para el

movimiento del Robot.

Page 219: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

RECOMENDACIONES______________________________

Page 220: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

Finalizada la investigación sobre el Desarrollo de un Sistema Robótico para

eludir obstáculos se recomienda:

• Instalar sensores de nivel para indicar al sistema la inclinación de la

superficie donde se encuentra el Robot.

• Instalar sensores de temperatura e incluir una prueba de temperatura del

ambiente en el software de control para obtener una mejor certeza de las

mediciones por ultrasonidos.

• Instalar sensores para monitorear el giro de las ruedas de esta manera el

sistema sabrá cuando el Robot está detenido y poder establecer una certeza

de su posición.

• Instalar brújula digital al Robot para tener una relación espacial de su

ubicación.

• Reemplazar la gran cantidad de microcontroladores de la serie PIC16X84

por un menor número de microcontroladores de la serie PIC16C74 que

con todas sus funciones cumple con todos los requerimientos necesarios

para una menor cantidad de conexiones pese a su tamaño.

• Implementar todos los circuitos en baquelita de doble cara para minimizar

el espacio de los circuitos en el Robot, de esta manera dar cabida a una

mayor cantidad de sensores u otros dispositivos.

• Cambiar el Software de Control a un lenguaje visual corrido desde

Windows para mejorar tanto la presentación visual como las funciones

orientadas a objetos.

Page 221: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

203

• Ampliar y mejorar el Software de Control para hacer la interacción del

Robot con el entorno más rápida y eficiente.

• Incluir en el Plan de Estudios de Ingeniería en Electrónica cátedras como

Robótica donde se enseñe desde un enfoque electrónico el

funcionamiento del hardware comúnmente utilizado y el control por

software, Semiconductores donde se enseñen las diferencias funcionales

entre los distintos dispositivos del mismo tipo existentes en el mercado, y

Microcontroladores en la cual se impartan la arquitectura,

funcionamiento y programación de estos dispositivos.

Page 222: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

BIBLIOGRAFIA

1. LIBROS: Albornoz y Martínez. (1998). Indicadores de Ciencia y Tecnología del Arte y Perspectiva. CYTED. Angulo y Angulo. (1997). Microcontroladores PIC Diseño Practico de Aplicaciones. Madrid. McGraw - Hill. Angulo y Avilés. (1989). Curso de Robótica. Madrid. Editorial Paraninfo. Aracil, Balaguer, Barrientos y Peñín. (1997). Fundamentos de Robótica. Madrid. McGraw - Hill. Bores y Rosales. (1993). Computación Metodología, Lógica Computacional y Programación. McGraw - Hill. Bosworth, Miller y Winklles. (1998). The Personal Robot Navigator. Colorado. Robot Press. Canale y Chapra. (1989). Introducción a la Computación para Ingenieros. México. McGraw - Hill. Craig, Jhon. (1989). Introduction to Robotics. Astro Data. Dale y Weems. (1989). Pascal. Madrid. McGraw - Hill. Distefano, Stubberud y Williams. (1992). Retroalimentación y Sistemas de Control. Bogotá. McGraw - Hill. Dorf, Richard. (1989). Sistemas Modernos de Control. Wilmington. Addison - Wesley Iberoamericana. Foley, Richard. (1993). Turbo Pascal, Introducción a la Programación. Wilmington. Addison-Wesley Iberoamericana. González, Fu y Lee. (1988). Robótica Control, Detección, Visión E Inteligencia. Madrid. McGraw - Hill. Groover, Nogel, Odrey y Weiss. (1989). Robótica Industrial. McGraw - Hill. Hermoso, Joyanes y Zahonero. (1995). Pascal y Turbo Pascal, Un Enfoque Práctico. Madrid. McGraw - Hill.

Page 223: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

205

Jones, Seiger y Flynn. (1999). Mobile Robots Inspiration to Implementation. Naticks, Massachusetts. A K Peters. Lozano, José. (1994). Turbo Pascal Versión 7.0. Maracaibo. Unidata C.A. Maloney, Timothy. (1997). Electrónica Industrial Moderna. México. Prentice Hall. Marquez, Juan. (1992). Introducción a la Programación Estructurada con Basic. Vadell Hermanos Editores. McKerrow, Phillip. (1991). Introduction to Robotics. Astro Data. Ogata, Katsuhiko. (1993). Ingeniería de Control Moderna. México. Prentice Hall. Sabino, Carlos. (1995). El Proceso de Investigación. Editorial Paraninfo. Tamayo y Tamayo, Mario. (1998). El Proceso de Investigación Científica. México. Noriega Editores. Tocci, Ronald. (1993). Sistemas Digitales Principios y Aplicaciones. México. Prentice Hall. 2. ENCICLOPEDIAS: Enciclopedia Microsoft® Encarta® 97. Enciclopedia Microsoft® Encarta® 98. 3. MANUALES: Manuales Operativos del Sistema de Desarrollo PICSTART PLUS. 1994. 4. WEB SITES: Activmedia (1998). [Página Web Fuera de Línea]. Previamente Disponible: http://css.activmedia.com [Consulta: 1998, Octubre 26] Arrick's Robot Information Central (1998). [Página Web en Línea]. Disponible: http://www.robotics.com/robots.html [Consulta: 1998, Noviembre 5] Cool Robot of the Week (1996). Cool Robots of the Week 1996. [Página Web en Línea]. Disponible: http://ranier.hq.nasa.gov/telerobotics_page/coolrobots.html [Consulta: 1998, Noviembre 2]

Page 224: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

206

DVP Inc. Wireless Solutions (1999). [Página Web en Línea]. Disponible: http://www.dvp.com [Consulta: 1999, Junio 2] Diversified Enterprises (1999). [Página Web en Línea]. Disponible: http://www.divent.com [Consulta: 1998, Noviembre 2] Hexplorer (1997). [Página Web en Línea]. Disponible: http://real.uwaterloo.ca/~robot [Consulta: 1998, Noviembre 2] IS Robotics (1998). [Página Web en Línea]. Disponible: http://www.isr.com [Consulta: 1998, Noviembre 2] Jameco Electronics (1999). [Página Web en Línea]. Disponible: http://www.jameco.com [Consulta: 1999, Abril 7] Jameco Electronics (1999). [FTP Web en Línea]. Disponible: ftp://ftp.jameco.com [Consulta: 1999, Abril 7] Mars Pathfinder JPL Web Site (1997). [Página Web en Línea]. Disponible: http://mars.jpl.nasa.gov [Consulta: 1998, Noviembre 2] Mars Missions Web Site (1998). [Página Web en Línea]. Disponible: http://mars.sgi.com [Consulta: 1998, Noviembre 2] Maryland University (1999). Autonomous Mobile Robotics Lab. [Página Web en Línea]. Disponible: http://www.cs.umd.edu/projects/amrl/amrl.html [Consulta: 1999, Marzo 18] Massachusetts Institute of Technology (1999). Robotics Ants Project. [Página Web en Línea]. Disponible: http://www.ai.mit.edu/projects/ants [Consulta: 1999, Marzo 21] Massachusetts Institute of Technology (1999). Artificial Intelligence Lab. [Página Web en Línea]. Disponible: http://www.ai.mit.edu [Consulta: 1999, Marzo 21] Massachusetts Institute of Technology (1999). Research. [Página Web en Línea]. Disponible: http://web.mit.edu/research.html [Consulta: 1999, Marzo 21] Massachusetts Institute of Technology (1999). [Página Web en Línea]. Disponible: http://web.mit.edu [Consulta: 1999, Marzo 21] Massachusetts Institute of Technology (1999). Mobile Robots Lab. [Página Web en Línea]. Disponible: http://www.ai.mit.edu/projects/mobile-robots [Consulta: 1999, Marzo 21]

Page 225: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

207

Microchip (1999). [Página Web en Línea]. Disponible: http://www.microchip.com [Consulta: 1999, Marzo 21] Mondotronics (1999). [Página Web en Línea]. Disponible: http://www.robotstore.com [Consulta: 1999, Abril 9] NASA (1998). [Página Web en Línea]. Disponible: http://www.nasa.gov [Consulta: 1998, Noviembre 2] Newton Labs (1998). [Página Web en Línea]. Disponible: http://www.newtonlabs.com [Consulta: 1998, Noviembre 2] Parallax Inc. BASIC Stamp Technology (1999). [Página Web en Línea]. Disponible: http://www.paralaxinc.com [Consulta: 1999, Junio 26] Real World Interface (1998). [Página Web en Línea]. Disponible: http://www.rwii.com [Consulta: 1998, Noviembre 2] Robotics Institute at Carnegie Mellon University (1999). [Página Web en Línea]. Disponible: http://www.ri.cmu.edu/home.html [Consulta: 1999, Abril 1] Robotics Institute at Carnegie Mellon University (1999). Robotics Frecuently Asked Questions. [Página Web en Línea]. Disponible: http://www.frc.ri.cmu.edu/robotics-faq [Consulta: 1999, Abril 1] South California University (1998). Artilect Research. [Página Web en Línea]. Disponible: http://www.-robotics.usc.edu/brochure/marvin.html [Consulta: 1998, Octubre 26] South California University (1998). Ullanta Robotics. [Página Web en Línea]. Disponible: http://www.-robotics.usc.edu/~barry/ullanta [Consulta: 1998, Noviembre 2] Team Novak (1999). [Página Web en Línea]. Disponible: http://www.teamnovak.com [Consulta: 1999, Marzo 18] 5. REVISTAS ESPECIALIZADAS: Naranjo, J. (1994). Adquisición de datos vía RS-232 con microcontrolador PIC. Electrónica y Computadores (I)11:10-15. Naranjo, J. (1994). PIC16C84. Electrónica y Computadores (I)12:16-21. Naranjo, J. (1995). Tarjeta I/O para Computadores. Electrónica y Computadores (II)16:72-77.

Page 226: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

208

6. TESIS DE GRADO: Contreras, Elsy. Perdomo, Johanna. (1996). Sistema de Control Digital para el desplazamiento de las butacas plegables sobre plataformas telescópicas de la sala de Artes Escénicas del CAM-LB. Universidad Rafael Belloso Chacín. Maracaibo. Phorlakis, Fran. Schwartz, Luis. (1997). Diseño e Implantación de un Robot Autónomo con Movimiento Adaptativo guiado por Microcontrolador. Universidad Rafael Belloso Chacín. Maracaibo.

Page 227: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

ANEXOS__________________________________________

Page 228: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

ANEXO A__________________________________________ FOTOGRAFIAS DEL SISTEMA ROBÓTICO

Page 229: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

ROBOT

Page 230: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

SONAR

Page 231: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

SONAR Y CIRCUITOS

Page 232: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

TRANSMISOR Y RECEPTOR DE 303,82 MHz

TRANSMISOR DE 418 MHz

Page 233: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

RECEPTOR DE 75.670 MHz

Page 234: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

CONTROL ELECTRÓNICO DE VELOCIDAD

SERVOMOTOR DE LA DIRECCION

Page 235: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

MOTOR CON CAPACITORES

CELDA FOTOCONDUCTIVA Y REGULADOR

Page 236: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

ANEXO B__________________________________________ DIAGRAMAS DE LOS CIRCUITOS IMPLEMENTADOS

Page 237: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

ANEXO C__________________________________________ PROGRAMAS DE LOS MICROCONTROLADORES

Page 238: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

ANEXO D__________________________________________ PROGRAMA DEL SOFTWARE DE CONTROL

Page 239: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

INDICE ANALITICO A

Acumulador Algoritmo ALU Arquitectura Autocorrección

B Banda Proporcional Bloques de Memoria Brecha Diferencial

C Cinemática Codificación Código Comentario Contador de Programa Compilador Control

On-Off Proporcional Proporcional-Integral Proporcional-Integral-Derivativo

Convertidor Analógico-Digital Crecimiento por Región Cuerpo de Programa

D Detección de Bordes Diagramas de Flujo Dinámica Direccionamiento Directo Direccionamiento Indirecto Discontinuidad

E EEPROM Efectores Finales Entradas Estructuras

Compuestas Simples

Page 240: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

Estructuras de Control

F Fuentes de Movimiento FSR

G GPR

I Identificadores

Estándar Definidos por el Usuario

Inteligencia Artificial (IA) Interpretación Interprete Interrupción Externa Interrupción por Conversión Analógica-Digital

L Lenguaje

Ensamblador De Alto Nivel De Bajo Nivel Máquina

LIFO

M Mecánica Medio de Transmisión Microcontroladores Memoria

De Datos De Programa

Motores De Corriente Continua Paso a Paso

N Nitinol

O OST

P

Page 241: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

Palabras Reservadas PASCAL Percepción Pixeles Preproceso PCL PIC16C71 PIC16C84 PIC16F84 Pila (Stack) PORTA PORTB Power-On Reset Programa Programa Ejecutable Programación

Estructurada Modular

Pseudocódigo PWRT

R Reconocimiento Reductores Registro

De Funciones Especiales De Propósito General EEADR EEDATA EECON1 EECON2 INTCON OPTION PCLATH STATUS TRISA TRSIB W

Reset Retroalimentación Robot Robótica

S Salida

Page 242: Desarrollo de un Sistema Robotico para eludir · PDF filerepublica de venezuela universidad "rafael belloso chacin" facultad de ingenieria escuela de electronica desarrollo de un sistema

Segmentación Sensores

De Proximidad De rayos Láser Ultrasónicos

Servomotores AC Controlados Digitalmente DC

Similitud Sistema

Operativo Sistema de Control

De Lazo Abierto De Lazo Cerrado

SLEEP Software

De Aplicación De Sistema

Stack

T Técnicas Estructurales Técnicas de Coincidencia de Plantillas Trayectorias

Continuas Coordinadas o Isocronas Punto a Punto

TURBO PASCAL

W WDT (Watchdog Timer)