Diseño y Construcción de 2 Robots Hexápodos HESEEX-UPS para ...

Siempre activar el "Power-Up Timer" en la palabra de configuración, porque produce un .... Las bandas ELF, SLF, ULF y VLF comparten el espectro de la AF.
9MB Größe 41 Downloads 187 vistas
UNIVERSIDAD POLITÉCNICA SALESIANA SEDE GUAYAQUIL FACULTAD DE INGENIERÍAS CARRERA DE INGENIERÍA ELECTRÓNICA Tesis previa a la obtención del Título de: Ingeniero Electrónico - Mención Sistemas Industriales TEMA: Diseño y Construcción de 2 Robots Hexápodos HESEEX-UPS para Laboratorio de Micro Robótica de la UPS.

AUTOR: Sr. José Luis Villarroel

DIRECTOR: Sr. Ing. Luis Córdova

GUAYAQUIL, 2010

1

DECLARATORIA DE RESPONSABILIDAD

Yo, José Luis Villarroel Intriago, declaro bajo juramento que el trabajo aquí descrito es de mi autoría; que no ha sido previamente presentado para ningún grado o calificación profesional; y, que he consultado las referencias bibliográficas que se incluyen en este documento.

A través de la presente declaración cedo mis derechos de propiedad intelectual correspondientes a este trabajo, a la Universidad Politécnica Salesiana Sede Guayaquil, según lo establecido por la Ley de Propiedad Intelectual, por su Reglamento y por la normatividad institucional vigente.

Guayaquil, 02 - 04 - 2010

____________________________ José Luis Villarroel Intriago

II 2

AGRADECIMIENTO

Mi mayor agradecimiento a Dios quien ha sabido guiar cada uno de mis pasos, me ha dado la fuerza, sabiduría, fe y valor para afrontar cada uno de los retos que se han presentado durante toda mi carrera profesional.

Quiero agradecer profundamente a mi madre y a mi padre por haberme dado todo el apoyo posible; no sólo en mis estudios universitarios, sino en cada uno de los proyectos que han pasado por mi vida, seguramente no podré pagar todo lo que ustedes han hecho por mí, pero trataré de hacer todo lo posible para retribuir sus esfuerzos. A ellos agradezco de todo corazón, ya que con su ejemplo han sabido inculcarme todos los valores necesarios para ser un hombre de bien, siempre han estado ahí para extenderme una mano cuando he tropezado y para felicitarme en cada uno de los logros alcanzados.

A mi hermana que siempre han estado junto a mí, con un consejo, un abrazo o simplemente con una sonrisa y con quien he aprendido que cada esfuerzo en esta vida tiene su recompensa.

A mis hermanos que pese a sus ocupaciones supieron sacar tiempo para darme una gran ayuda.

A mis tíos, tías, ejemplos de trabajo incansable en cada una de sus familias y que han formado parte de mi crecimiento y han sido como unos padres mas para mí.

Al Sr. David Intriago, quien con sus clases y ayuda incondicional, no hubo distancia para que no se dé el gran apoyo.

A la Srta. Paola Intriago León, por haberme ayudado en lo que más pudo y deseó de corazón, que realice un excelente trabajo.

Al Ingeniero Luis Córdova, Director del proyecto de titulación por sus grandiosos consejos y su valioso tiempo entregado al proyecto. José Luis Villarroel 3 III

DEDICATORIA

Primeramente dedico este proyecto a Dios, el ser más importante de mi vida, pues aquí comienza una nueva etapa de mi vida profesional y sin él no sería posible por nada del mundo la finalización de este proyecto de mi vida.

Al final de esta etapa de mi vida es necesario recordar a dos personas, las cuales han sido piezas fundamentales para la vida de mi familia, que a pesar de ser muy diferentes y haber tenidos disimiles historias, comparten el hecho de haberse convertido en la piedra angular de sus hogares y haber sacado adelante a sus hijos.

Dedico este proyecto de titulación a mi madre la Sra. Solanda Intriago Zamora y mi padre el Sr. Mauro Villarroel Acurio, quienes han sido mis mayores ejemplos de entrega, lucha, sacrificio y han sabido guiar mis pasos con rectitud y carácter, haciendo de mí un hombre recto y responsable. Han sabido sobrellevar cada una de las situaciones dentro del hogar en una lucha diaria e incansable. Todo el esfuerzo lo obtuve de ustedes, me hicieron un hombre responsable y luchador. Siempre me esforzaré para que estén tan orgullosos de mí como yo lo estoy de ustedes. Ellos quien me ha hecho todo lo que soy y les debo todo lo que tengo.

A mi hermana Rocybel, que siempre han estado junto a mí apoyándome y entregándome todo su cariño y comprensión. Es una parte fundamental en mi vida, y siempre tendrá en mi un hermano en quien confiar plenamente.

A mis hermanos, Alberto y Mauricio que a pesar de estar ocupados ellos en sus tesis y trabajo, supieron extenderme su mano y brindar su ayuda de corazón.

A mis tíos y tías, que han sido como unos padres para mí, nos han brindado un apoyo fraterno e incondicional en nuestros momentos más difíciles.

José Luis Villarroel

IV 4

ÍNDICE GENERAL

Declaratoria de responsabilidad……………………………………………… Agradecimientos……………………………………………………………… Dedicatorias……………………………………………………………….......

II III IV

Índice general………………………………………………………………… Índice de figuras……………………………………………………………… Índice de tablas……………………………………………………………...... Índice de anexos………………………………………………………………

V XIII XX XXI

Introducción I. Planteamiento del problema………………………………………….. II. Formulación del problema……………………………………………. III. Sistematización del problema………………………………………… IV. Objetivos Generales y Específicos…………………………………… V. Justificación………………………………………...............................

XXII XXII XXII XXIII XXIV

CAPÍTULO I 1. Marco Teórico: Introducción a la Robótica 1.1. Introducción…………………………………............................................ 1.2. Evolución histórica……………………………………………………….. 1.3. Ventajas de la aparición de la micro-robótica……………………………. 1.4. Clasificación de robots con extremidades………………………………... 1.4.1 Según el número de extremidades…………………………………… 1.4.1.1 Robots de una sola extremidad…………………………………. 1.4.1.2. Robots bípedos…………………………………………………. 1.4.1.3. Robots de cuatro extremidades………………………………… 1.4.1.4. Robots de seis extremidades…………………………………… 1.4.1.5. Robots más complejos…………………………………………. 1.4.2. Según el medio……………………………………………………… 1.4.2.1. Apodo en el espacio…………………………………………….. 1.4.3. Según el grado de libertad………………………………………….. 1.4.3.1. De 1 grado de libertad…………………………………………. 1.4.3.2. De 2 grados de libertad………………………………………… 1.4.3.3. Estructuras complejas…………………………………………… 1.4.3.4. Estructuras hidráulicas………………………………………… 1.5. Ventajas de Robots Caminantes………………………………………….. 1.5.1. Movilidad…………………………………………………………… 1.5.2. Superación de obstáculos………………………………….............. 1.5.3. Suspensión activa…………………………................................... 1.5.4. Eficiencia Energética……………………………………………….. V5

25 25 27 28 29 29 29 30 30 31 32 32 33 33 33 34 35 36 36 36 37 37

1.5.5. Terreno Natural o Terreno discontinuo……………………………… 1.5.6. Deslizamiento………………………………………………………. 1.5.7. Daño medioambiental……………………………………………… 1.5.8. Velocidad media……………………………………………………. 1.5.9. Mecánica……………………………………………………………. 1.5.10. Electrónica………………………………………………………… 1.5.11. Algoritmos de control……………………………………………… 1.5.12. Velocidad máxima…………………………………………………. 1.5.13. Costo……………………………………………………………….. 1.6. Diferentes materiales empleados en las estructuras……………………… 1.6.1. Estructuras metálicas……………………………………………….. 1.6.2. Estructuras plásticas…………………………………………………. 1.6.3. Estructuras a medida……………………………………………….... 1.7. Construcción de las extremidades y tipos según aplicación……………... 1.8. Locomoción…………....................................................................... 1.9. Tipos de movimiento……………………………………….................... 1.9.1. Ciclo de Movimiento Cuadrúpedo…………………...................... 1.9.2. Ciclo de Movimiento Trípode……………………………………… 1.10. Corrección de error en una extremidad…………………………………. 1.11.1. Tipos de niveles……………………………………………………….. 1.11.1. Nivel de reacción………………………………………………..… 1.11.2. Nivel de control…………………………......................................... 1.11.3. Nivel de inteligencia………………………….................................. 1.11.4. Nivel de comunidad y operación…………………………................ 1.12. Similitudes y diferencias………………………….................................. 1.13. Sectores de la Robótica y sus Aplicaciones……………………………. 1.13.1 Industria de la construcción………………………………………… 1.13.1.1. Introducción…………………………………………………… 1.13.1.2. Obra civil……………………………………………………… 1.13.1.3. Edificación……………………………………………………. 1.13.2. Automatización Industrial……………………………………………. 1.13.2.1. Introducción…………………………………………………….. 1.13.2.2. Transporte de mercancías………………………………………… 1.13.2.2.1. Vehículos de Guiado Automático (AGV)………………….. 1.13.2.2.2. Vehículos Laserguiados (LGV)……………………………... 1.13.2.2.3. Vehículos Filoguiados (RGV)………………………………. 1.13.2.2.4. Automated Material Transport System (AMTS)……………. 1.13.3. Servicios de comunidad………………………………………………. 1.13.3.1. Limpieza…………………………………………………………. 1.13.3.2. Inspección y mantenimiento……………………………………… 1.13.3.3. Robots manipuladores……………………………………………. 1.13.4. Vigilancia y Seguridad………………………………………………... 1.13.4.1. Plataformas de implementación………………………………….. 1.13.4.1.1. Terrestres…………………………………………………….. 6 VI

37 38 38 38 39 39 40 40 40 40 42 42 42 42 44 44 44 45 45 47 47 47 48 48 48 49 49 49 50 52 54 55 55 55 57 59 60 62 62 63 64 65 65 65

1.13.4.1.2. Aéreas……………………………………………………….. 1.13.4.1.3. Náuticas……………………………………………………… 1.13.5. Medicina………………………………………………………………. 1.13.5.1. Introducción……………………………………………………… 1.13.5.2. Categorías de robots……………………………………………… 1.13.5.3 Aplicaciones robóticas quirúrgicas……………………………….. 1.13.6. Ocio y entretenimiento………………………………………………. 1.13.6.1. Introducción…………………………………………………….. 1.13.6.2. Características principales……………………………………….. 1.13.7. Agricultura…………………………………………………………… 1.13.7.1. Tractor Autónomo……………………………………………….. 1.13.7.2. Cosechadora Autónoma…………………………………………. 1.13.8. Sector Automovilístico………………………………………………...

CAPÍTULO II 2. Marco metodológico 2.1. Introducción……….................................................................................. 2.2. Tipo de estudio……….............................................................................. 2.4.1. Tipos de la investigación………..................................................... 2.3. Métodos de investigación……….............................................................. 2.4. Fuentes y técnicas para la recolección de información............................. 2.4.1. La encuesta...................................................................................... 2.5. Población y muestra.................................................................................. 2.5.1. Población......................................................................................... 2.5.2. Muestra............................................................................................ 2.6. Tratamiento de la información ………………………………………….. 2.7. Proyección de resultados esperados …………………………………….. 2.8. Análisis de Resultados ………………………………………………….. 2.9. Recopilación de los resultados …………………………………………..

CAPÍTULO III 3. Arquitectura de los sistemas y sus componentes 3.1. Introducción……………………………………………………………… 3.2. Desarrollo de un Robot Hexápodo listo para ser programado…………… 3.2.1. Datos técnicos generales de un robot hexápodo listo para ser Programado…………………………………………………………... 3.2.2. Dispositivos de Programación………………………………………. 3.2.2.1. Programador GTP-PLUS USB…………………………………. 3.2.3. Dispositivo de Control………………………………………………. 3.2.3.1. PCB Controladora………………………………………………. 3.2.4. Dispositivo de Alimentación…………………………………………. 3.2.4.1. Baterías de Polímero de Litio (Li-Po)…………………………... 7 VII

67 68 69 69 69 70 71 71 71 73 73 74 75

76 76 76 77 78 78 78 78 79 80 80 80 85

86 86 87 88 88 89 89 90 90

3.2.4.1.1. Causas de deterioro de las baterías de Li-Po………………. 3.2.4.1.2. Recomendaciones………………………………………….. 3.2.4.2. Baterías de Níquel - Hidruro Metálico (Ni-MH)……………….. 3.2.4.3. Adaptador de Voltaje 110VAC/10VDC………………………. 3.2.5. Dispositivo de Movimiento…………………………………………. 3.2.5.1. Servomotor HITEC HS-311……………………………………. 3.3. Desarrollo del Robot Hexápodo “Gretel”……………………………….. 3.3.1. Tarjeta Transmisora RF 434Mhz……………………………………. 3.3.2. Tarjeta Receptora RF 434Mhz………………………………………. 3.3.3. Articulación PAL/TILT……………………………………………… 3.3.4. Receptor de cámara inalámbrica de video…………………………… 3.3.5. Capturadora de Video / USB……………………………………….. 3.4. Desarrollo del Robot Hexápodo “Hansel”………………………………. 3.4.1. Tarjeta Controladora de Sensores Ultrasónicos……………………... 3.4.2. Sensor Ultrasónico…………………………………………………... 3.4.3. Tarjeta Grabadora / Reproductora de ISDN2560……………………

91 91 92 93 94 94 97 98 99 100 101 101 102 103 104 105

CAPÍTULO IV 4. El Microcontrolador PIC 4.1. Introducción…………………………………............................................ 4.2. Microcontroladores sistemas microcontrolados………………………….. 4.3. Arquitectura interna del microcontrolador PIC………………………….. 4.3.1. Arquitectura Von Neuman…………………………………………... 4.3.2. Arquitectura Harvard……………………………………………….. 4.4. El procesador o UCP……………………………………………………. 4.5. Memoria de programa……………………………………………………. 4.6. Memoria de datos……………………………………………………….. 4.6.1. RAM estática o SRAM…………………………………………..... 4.6.2. EEPROM…………………………………………............................ 4.7. Microcontrolador PIC 16F628A………………………………………… 4.8. Microcontrolador PIC 16F6877A……………………………………….. 4.9. Cómo programar un PIC 12Fxxx / 16Fxxx……………………………… 4.10. Conexión ICSP………………………………………………………….. 4.11. Conexión ICSP para PIC16F877A…………………………………….. 4.12. Cómo usar ICSP para programar un PIC en el circuito……………….. 4.13. Asignación de las señales ICSP a los pines de un PIC 12Fxxx / 16Fxxx. 4.14. Esquemas de conexión con colocación lateral del conector ICSP………

106 106 109 109 109 110 110 112 112 112 113 113 115 116 118 119 120 122

CAPÍTULO V 5. Radiofrecuencia 5.1. Introducción…………………………………............................................ 123 5.2. Usos de la radiofrecuencia…………………….. ………………………. 125 VIII 8

5.3. Otros usos de la radiofrecuencia………………………………………… 5.4 Frecuencias de radioaficionados…………………………………………. 5.5 Bandas más frecuentemente utilizadas…………………………………… 5.6 Introducción a la Radio Frecuencia con Módulos Híbridos de RF………. 5.7 Características Técnicas de los Módulos Híbridos para Radio Control…... 5.7.1 Transmisor TLP434(A) de Laipac…………………………………… 5.7.2 Receptor RLP434(A) de Laipac……………………………………… 5.7.3 Transmisor FST-4 de SzSaw………………………………………… 5.7.4 Receptor CZS-3 de SzSaw……………………………………………

125 127 127 128 129 129 130 132 133

CAPÍTULO VI 6. Fabricación de PCB (printer circuit board) por transferencia térmica 6.1. Introducción…………………………………............................................ 6.2. Materiales…………………………………….………………………….. 6.2.1. Placa de cobre………………………….……………………………. 6.2.2. Ácido para placas (Cloruro Férrico)………………………………... 6.2.3. Plancha…………................................................................................ 6.2.4 Recipiente de Plástico……………………………………………….. 6.2.5 Diseño de circuito…………………………………………………… 6.2.6 Papel para Transferencia…………………………………………….. 6.2.7 Impresora laser o fotocopiadora……………………………………. 6.2.8 Lija Fina…………………………………………………………….. 6.2.9 Agente Limpiador…………………………………………………… 6.2.10 Lápiz Permanente………………………………………………….. 6.3 Instrucciones……………………………………………………………… 6.4 Técnica para soldar elementos electrónicos………………………………. 6.5 Errores típicos en las soldaduras de componentes electrónicos…………. 6.6 Las Herramientas…………………………………………………………. 6.6.1 Cautín………………………………………………………………... 6.6.2 Estaño……………………………………………………………….. 6.6.3 Succionador de estaño………………………………………………. 6.7 Cuidados a tener en cuenta………………………………………………... 6.8 Placas PCB de los Robots Hexápodos……………………………………

135 135 135 136 136 136 136 136 137 137 137 137 137 143 144 145 145 145 146 147 148

CAPÍTULO VII 7. Diseño estructural del robot hexápodo 7.1. Introducción……………………………………………………………… 7.2. Base Estructural Principal………………………………………………... 7.3. Construcción inicial de las extremidades………………………………… 7.4. Montaje de los Servomotores…………………………………………….. 7.5. Armado de las extremidades…………………………………………….. 7.6. Ensamblaje final de las extremidades…………………………………….

150 150 152 155 156 158

IX 9

7.7. Construcción de base de protección……………………………………… 7.8 Articulación de giro PAN/TILT…………………………………………... 7.8.1 Descripción…………………………………………………………… 7.8.2 Fabricación…………………………………………………………… 7.8.3 Usos…………………………………………………………………..

160 161 161 162 163

CAPÍTULO VIII 8. Programador GTP PLUS USB 2.0 y Software WINPIC 800 8.1. Programador GTP PLUS USB 2.0………………………………………. 8.1.1. Instalación del Driver USB…………………………………………. 8.1.2. Puertos de programación…………………………………………….. 8.1.3. Diseño de la placa PCB del programador GT PLUS USB………….. 8.1.4. Componentes del programador GT PLUS USB…………………….. 8.1.5. Diagrama Electrónico GT PLUS USB……………………………… 8.1.6. Diagramas Esquemáticos GT PLUS USB…………………………... 8.2. Software WINPIC 800…………………………………………………… 8.2.1 Introducción………………………………………………………… 8.2.2 Diagrama de flujo…………………………………………………… 8.2.3 Pantalla del WinPic 800……………………………………………… 8.2.4 Instalación del Software WinPic 800………………………………… 8.2.5 Configurar el GTP Plus USB………………………………………… 8.2.6 Seleccionar dispositivo………………………………………………. 8.2.7 Seleccionado el PIC 16F628A………………………………………. 8.2.8 Configuración………………………………………………………… 8.2.9 Oscilador…………………………………………………………….. 8.2.10 Bits de configuración………………………………………………. 8.2.11 Cargar el archivo .hex al programador……………………………… 8.2.12 Cargado el archivo .hex…………………………………………… 8.2.13 Funciones principales del WinPic800……………………………… 8.2.14 Barra de herramientas del dispositivo……………………………… 8.2.15 Test Hardware……………………………………………………… 8.2.16 Detectar dispositivo………………………………………………… 8.2.17 Programar el PIC…………………………………………………… 8.2.18 Verificar……………………………………………………………. 8.2.19 Error………………………………………………………………… 8.2.20 Utilidades…………………………………………………………… 8.2.20.1 Dis-Assembly y Enumeración Conversor…………………….. 8.2.20.1.1 Dis-assembly……………………………………………… 8.2.20.1.2 Conversor………………………………………………….

164 164 164 165 165 166 167 168 168 168 169 170 172 173 175 175 176 177 178 179 179 181 181 182 182 183 183 185 185 185 186

X 10

CAPÍTULO IX 9. Desarrollo de las aplicaciones para los 2 robots hexápodos. 9.1. Primera Aplicación: Robot Hexápodo Gretel……………………………. 9.1.1. Introducción…………………………………………………………. 9.1.2. Desarrollo del Mando Principal Trasmisor RF 434 MHz…………… 9.1.2.1. Desarrollo del programa del Mando Principal Trasmisor RF 434 MHz……………………………………………………………. 9.1.2.2. Desarrollo del Diseño del Mando Principal Trasmisor RF 434 MHz……………………………………………………………. 9.1.3 Desarrollo del Mando Receptor RF 434 MHz……………………… 9.1.3.1. Desarrollo del programa del Mando Receptor RF 434 MHz…… 9.1.3.2. Sistema de audio y video del robot hexápodo Gretel…………… 9.1.3.2.1. Características técnicas de la cámara………………………. 9.1.3.2.2. Características técnicas de la cámara del receptor de radio 9.1.3.2.3. Características técnicas de la capturadora de tv externa USB 2.0……………………………………………………. 9.1.3.3. Desarrollo del Diseño del Mando Receptor RF 434 MHz….. 9.1.4. Desarrollo de la PCB Controladora de 18 Servomotores Hitec HS-311………………………………………………………………. 9.1.4.1. Cálculo para obtener una tabla de los movimientos de cada servo motor a una resolución de 4Mhz…………………………. 9.1.4.2. Tabla de conversión generada en Excel de valores de Pulsout en PBP (4Mhz)……………………………………………………. 9.1.4.3. Cálculo para obtener una tabla de los valores de movimientos de cada servo motor a una resolución de 20Mhz…………………… 9.1.4.4. Tabla de conversión generada en Excel de valores de Pulsout a (20Mhz)…………………………………………………………. 9.1.4.5. Desarrollo del Diseño de la PCB Controladora de Servos……. 9.1.4.6. Desarrollo del programa de la Tarjeta Controladora Principal…. 9.1.4.7. Sistema de regulación de voltaje de los Servos………………… 9.1.5. Identificación de cada una de las extremidades y distribución (conexión) de cada servo motor hacia la tarjeta de control principal PIC16F877A………………………………………………………… 9.1.6. Esquema total de la Aplicación # 1: Robot Hexápodo Gretel………. 9.2. Segunda Aplicación: Robot Hexápodo Hansel………………………….. 9.2.1. Introducción…………………………………………………………. 9.2.2. Tarjeta controladora de los Sensores Ultrasónicos………………….. 9.2.2.1. Desarrollo del programa de la Tarjeta controladora de los Sensores Ultrasónicos…………………………………………... 9.2.2.2. Desarrollo del Diseño Tarjeta controladora de los Sensores Ultrasónicos…………………………………………………….. 9.2.3. Tarjeta Grabadora / Reproductora de ISDN2560…………………… 9.2.3.1. Etapa de Amplificación del Audio……………………………… 9.2.4. Desarrollo del programa de la Tarjeta controladora Principal del sistema……………………………………………………………….. 9.2.5. Esquema total de la Aplicación # 2: Robot Hexápodo Hansel………

11 XI

187 187 188 189 192 194 196 200 200 201 201 203 205 206 207 208 208 209 211 226

226 228 229 229 230 231 233 235 238 241 256

CAPÍTULO X 10. Análisis Económico 10.1 Introducción 10.2. Determinación del costo del sistema…………………………………… 10.2.1. Cálculo del costo de materiales utilizados en la parte mecánica…… 10.2.2. Cálculo del costo de elementos electrónicos……………………….. 10.2.3. Cálculo del costo de mano de obra utilizada en la parte mecánica... 10.2.4. Cálculo del costo de mano de obra utilizada en la parte electrónica. 10.2.5. Cálculo del costo de gastos varios………………………………… 10.3. Cálculo del costo neto del sistema……………………………………… 10.4. Costo final del proyecto………………………………………………… 10.5. Análisis de los costos versus beneficio………………………………….

12 XII

257 257 257 258 260 260 261 261 262 262

ÍNDICE DE FIGURAS Figura 1.1: Clasificación de robots según sus extremidades……..……………. Figura 1.2: Cuadro estadístico proporcional de la clasificación sus extremidades.…………………………………………………………………… Figura 1.3: Robot de una sola extremidad.......………………………………… Figura 1.4: Robot de una dos extremidades.………………………................... Figura 1.5: Robot de una cuatro extremidades…….………………..…………. Figura 1.6: Robot de una seis extremidades.………………………………….. Figura 1.7: Robot Complejo…...………………………………………………. Figura 1.8: Apodo en el espacio……….............................................................. Figura 1.9: Robot de 1 grado de libertad….…………………………………… Figura 1.10: Robot de 2 grados de libertad……………………………………. Figura 1.11: Robot de estructura compleja 1…………………………………... Figura 1.12: Robot de estructura compleja 2………………………………..…. Figura 1.13: Robot de estructura hidráulica 1…………………………………. Figura 1.14: Robot de estructura hidráulica 2…………………….…………… Figura 1.15: Movilidad.………………………..……………………………... Figura 1.16: Superación de obstáculos………………………………………… Figura 1.17: Suspensión activa………………………………………………… Figura 1.18: Terreno discontinuo.…………....................................................... Figura 1.19: Deslizamientos………………………….………………………. Figura 1.20. Velocidad Media…...…………………………………………….. Figura 1.21: Estructura con Material de aluminio ……..……………………… Figura 1.22. Estructura con material de madera …………………..…………... Figura 1.23. Extremidad con 2 grados de libertad y extremidad con 3 grados de libertad ……………………………………………………………………… Figura 1.24: Diferentes Tipos de Extremidades 1………………………..……. Figura 1.25: Diferentes Tipos de Extremidades 2…………………………..…. Figura 1.26: Movimiento Cuadrúpedo………………………………………… Figura 1.27: Movimiento Trípode………………………………………...…… Figura 1.28: Movimiento robot para subir escaleras.………….......................... Figura 1.29: Robot subiendo escalera……….............................……………… Figura 1.30: Robots para la construcción………………………………………. Figura 1.31: Asfaltadora Cedarapids…………………………………………… Figura 1.32: Scara Pick and Drop……………………………………………… Figura 1.33: LADAR y ejemplos de modelos 3D……………………………… Figura 1.34: Proyecto SMART………………………………………………… Figura 1.35: Láser telémetro y su funcionamiento…………………………….. Figura 1.36: Sistema ROCCO…………………………………………………. Figura 1.37: Elevador de carga………………………………………………… Figura 1.38: Remolcador………………………………………………………. Figura 1.39: Unidad de carga………………………………………………….. Figura 1.40: La foto muestra un AGV laserguiado, el láser es el dispositivo azul situado en la parte superior del vehículo…………………………………. 13 XIII

28 28 29 30 30 31 31 32 33 33 34 34 35 35 36 36 37 37 38 38 41 41 42 43 43 45 45 46 47 50 50 51 52 53 54 54 56 56 57 58

Figura 1.41: AGV filoguiado, observar cómo el cable del suelo realiza la curva para que el AGV pase a través de la puerta…………………………………… Figura 1.42: Estos robots se desplazan por una fábrica sin necesidad de ningún tipo de guía……………………………………………………………………… Figura 1.43: Robot limpiador………………………………………………….. Figura 1.44: Robot oruga (izquierda) y articulación de 2 GDL (derecha)……. Figura 1.45: Desactivador de explosivos………………………………………. Figura 1.46: Robot cuya tracción se basa en ruedas……………………………. Figura 1.47: Robot de oruga……………………………………………………. Figura 1.48: Robot cuya tracción se basa en patas……………………………. Figura 1.49: Robot esférico………………………………………………….. Figura 1.50: Tipos de plataformas aéreas en las que se implementan robots….. Figura 1.51: Plataforma sobre las que se implementan robots acuáticos (lancha)…………………………………………………………………………. Figura 1.52: Plataforma sobre las que se implementan robots acuáticos (minisubmarino)………………………………………………………………………. Figura 1.53: Da Vinci en acción……………………………………………….. Figura 1.54: Robot Aibo de Sony……………………………………………… Figura 1.55: La NREC (National Robotics Engineering Center) convirtió el estándar 6410 de John Deere en un vehículo autónomo capaz de rociar con agua durante 7km………………………………………………………………. Figura 1.56: Maquinaria agrícola autónoma: Cosechadora Autónoma……….. Figura 2.1: Resultado de la pregunta 1…………………………………………. Figura 2.2: Resultado de la pregunta 2…………………………………………. Figura 2.3: Resultado de la pregunta 3…………………………………………. Figura 2.4: Resultado de la pregunta 4…………………………………………. Figura 3.1: Diagrama en bloques de un Robot Hexápodo listo para recibir una aplicación………………………………………………………………………. Figura 3.2: Robot Hexápodo listo para recibir una aplicación…………………. Figura 3.3: Programador GTP-PLUS USB……………………………………. Figura 3.4: PCB Controladora…………………………………………………. Figura 3.5: Batería de Litio Polímero………………………………………….. Figura 3.6: Batería de Níquel – Hidruro Metálico……………………………... Figura 3.7: Adaptador de voltaje 110VA / 10Vdc…………………………….. Figura 3.8: Servomotor HITEC HS-311………………………………………. Figura 3.9: Control de la posición del servomotor mediante PWM…………… Figura 3.10: Partes internas y externas de un Servomotor…………………….. Figura 3.11: Componentes de un Servomotor………………………………… Figura 3.12: Diagrama en bloques del Robot Hexápodo “Gretel”…………….. Figura 3.13: Tarjeta Transmisora RF 434 MHz……………………………….. Figura 3.14: Tarjeta Receptora RF 434 MHz………………………………….. Figura 3.15: Articulación PAL/TILT………………………………………….. Figura 3.16: Receptor de cámara inalámbrica de video……………………….. Figura 3.17: Capturadora de Video / USB…………………………………….. Figura 3.18: Diagrama en bloques del Robot Hexápodo “Hansel”……………. Figura 3.19: Tarjeta Controladora de Sensores Ultrasónicos………………….. 14 XIV

60 61 62 63 64 65 66 66 67 67 68 68 70 72

73 74 81 82 83 84 86 87 88 89 90 92 93 94 95 96 96 97 98 99 100 101 101 102 103

Figura 3.20: Sensor Ultrasónico SRF05………………………………………. Figura 3.21: Tarjeta Grabadora / Reproductora de ISDN2560………………… Figura 4.1: Diagrama de bloques del microcontrolador……………………….. Figura 4.2: Estructura interna del microcontrolador PIC……………………… Figura 4.3: Cristal Oscilador…………………………………………………… Figura 4.4: Circuito resonador con resistencia y capacitor…………………….. Figura 4.5: Diagrama en bloques de arquitectura Von Neuman………………. Figura 4.6: Diagrama en bloques de arquitectura Harvard……………………. Figura 4.7: Diagrama en bloques de memoria de programa de un Microcontrolador PIC………………………………………………………….. Figura 4.8: Diagrama en bloques de memoria de los registros de un Microcontrolador PIC…………………………………………………………… Figura 4.9: Distribución de los pines del PIC 16F628A……………………….. Figura 4.10: Distribución de los pines del PIC 16F628A……………………… Figura 4.11: Conexión RS232-ICSP…………………………………………… Figura 4.12: Esquema del Modulo ICSP para el PIC16F877………………….. Figura 4.14: Conexión ISCP al Microcontrolador PIC………………………… Figura 4.15: Asignación de señales al PIC 12Fxxx / 16Fxxx………………….. Figura 4.16: Conexión ICSP a los diferentes tipos de PIC…………………….. Figura 5.1: Señales de Radiofrecuencia………………………………………... Figura 5.2: Módulo Híbrido Transmisor TLP434(A)………………………….. Figura 5.3: Distribución de pines del Módulo Híbrido Transmisor TLP434(A). Figura 5.4: Módulo Híbrido Receptor RLP434(A)…………………………….. Figura 5.5: Distribución de pines del Módulo Híbrido Receptor RLP434(A)… Figura 5.6: Módulo Híbrido Transmisor FST-4……………………………….. Figura 5.7: Distribución de pines del Módulo Híbrido Transmisor FST-4…….. Figura 5.8: Módulo Híbrido Receptor CZS-3…………………………………. Figura 5.9: Distribución de pines del Módulo Híbrido Receptor CZS-3……… Figura 6.1: Tipos de placas de cobre Pertinax – Fibra de vidrio……………….. Figura 6.2: Imagen del diseño en Ares e impresa en papel de transferencia (papel fotográfico)………………………………………………………………. Figura 6.3: Imagen de la fibra de vidrio antes y después de prepararla para transferencia térmica del diseño………………………………………………… Figura 6.4: Imagen de la fibra de vidrio y papel de transferencia con diseño para iniciar transferencia térmica………………………………………………. Figura 6.5: Imagen de la fibra de vidrio y papel de transferencia con diseño para iniciando transferencia térmica……………………………………………. Figura 6.6: Imagen de la fibra de vidrio con el diseño ya transferido térmicamente……………………………………………………………………. Figura 6.7: Imagen de la fibra de vidrio en recipiente con acido férrico para revelar pista conductivas………………………………………………………… Figura 6.8: Imagen de la fibra de vidrio con circuito impresa listo después del atacado del cobre con acido férrico……………………………………………. Figura 6.9: Imagen perforando agujeros del circuito impreso en la fibra de vidrio……………………………………………………………………………. Figura 6.10: Imagen de PCB lista concluida………………………………….. 15 XV

104 105 106 107 108 108 109 109 111 112 113 114 115 118 118 119 122 125 129 130 131 132 132 133 133 134 135 138 138 139 140 140 141 141 142 142

Figura 6.11: Pasos para soldar elementos electrónicos………………………… Figura 6.12: Tipos de soldaduras incorrectas………………………………….. Figura 6.13: Soldaduras correctas…………………………………………….. Figura 6.14: Cautín para soldar componentes electrónicos en PCB lista………. Figura 6.15: Rollo de suelda de Estaño………………………………………… Figura 6.16: Succionador de suelda mecánico…………………………………. Figura 6.17: Placas Terminadas con elementos electrónicos…………………... Figura 6.18: Placa PCB de la Tarjeta Transmisora RF 434 MHz (Cara Externa)…………………………………………………………………………. Figura 6.19: Placa PCB de la Tarjeta Transmisora RF 434 MHz (Cara Interna) Figura 6.20: Placa PCB de la Receptora RF 434 MHz (Cara Externa)………… Figura 6.21: Placa PCB de la Receptora RF 434 MHz (Cara Interna)………… Figura 6.22: Placa PCB de la Tarjeta Controladora de Servos (Cara Externa)… Figura 6.23: Placa PCB de la Tarjeta Controladora de Servos (Cara Interna) … Figura 7.1: Medidas de la base estructural principal…………………………… Figura 7.2: Acabado de la base estructural principal……………………….. Figura 7.3: Pieza de acero inoxidable de 1mm de espesor a ser doblada en forma de U con sus respectivos agujeros para la instalación de cada servomotor que será el brazo del robot……………………………………………………… Figura 7.4: Pieza de acero inoxidable de 1mm de espesor a ser doblada en forma de U con sus respectivos agujeros para la instalación de cada servomotor que será la rodilla / hombro del robot………………………………………….. Figura 7.5: Pieza para la unión de 2 servomotores en la parte superior con tornillos Allen de 1/8 con sus respectivas tuercas……………………………… Figura 7.6: Pieza para la unión de 2 servomotores en la parte inferior de los mismos, que irá pegada con cinta adherente de doble faz en conjunto de un eje para cada servomotor…………………………………………………………… Figura 7.7: Montaje de la pieza superior e inferior para la unión de los 2 servomotores a conformar una extremidad.…………………………………….. Figura 7.8: Pieza inferior montada con sus respectivos ejes falsos para cada servomotor……………………………………………………………………… Figura 7.9: Vista de la pieza superior del montaje de los 2 servomotores con tornillos Allen inoxidable………………………………………………………. Figura 7.10: Vista superior de la pieza que será el brazo del robot hexápodo…. Figura 7.11: Agujeros superiores para instalar el servomotor………………… Figura 7.12: Agujero inferior que será el eje del servomotor………………….. Figura 7.13: Pieza donde se instalará el servo motor para la articulación de la rodilla y para el hombro………………………………………………………… Figura 7.14: Agujero inferior que será el eje del servomotor………………….. Figura 7.15: Instalación del servomotor con los tornillos Allen y las arandelas para la sujeción…………………………………………………………………. Figura 7.16: Instalación de extremidades con sus respectivas articulaciones en cada base (Vista Frontal)……………………………………………………….. Figura 7.17: Instalación de extremidades con sus respectivas articulaciones en cada base (Vista Lateral)……………………………………………………….. Figura 7.18: Base de protección para los robots hexápodos…………………… Figura 7.19: Vista frontal de la construcción de articulación de giro PAN/TILT con Cámara Inalámbrica………………………………………………………… XVI 16

143 144 144 145 146 146 147 148 148 148 149 149 149 151 152

153

153 154

154 155 155 155 156 156 157 157 158 158 159 159 160 161

Figura 7.20: Vista lateral de la construcción de articulación de giro PAN/TILT con Cámara Inalámbrica………………………………………………………… Figura7.21: Vista lateral y frontal en 3D de la construcción de articulación de giro PAN/TILT con Cámara Inalámbrica………………………………………. Figura 7.22: Vista lateral con su respectiva longitud de articulación de giro PAN/TILT con Cámara Inalámbrica……………………………………………. Figura 7.23: Vista cercana de la construcción de articulación de giro PAN/TILT con Cámara Inalámbrica…………………………………………… Figura 8.1: Diseño de placa PCB del programador GT PLUS USB…………… Figura 8.2: Componentes del programador GT PLUS USB…………………… Figura 8.3: Diagrama electrónico del programador GT PLUS USB………….. Figura 8.4: Diagrama esquemático del programador GT PLUS USB………… Figura 8.5: Programador GT PLUS USB listo para usarse……………………. Figura 8.6: Diagrama de Flujo…………………………………………………. Figura 8.7: Pantalla principal del WinPic 800…………………………………. Figura 8.8: Instalando el WinPic 800…………………………………………. Figura 8.9: Eligiendo el idioma de instalación del WinPic 800……………….. Figura 8.10: Eligiendo el directorio de instalación del WinPic 800…………… Figura 8.11: Instalación completa del WinPic 800……………………………. Figura 8.12: Creación de acceso directo al WinPic 800………………………. Figura 8.13: Instalación del driver para el GTP Plus USB del WinPic 800….. Figura 8.14: Instalación completa del driver para el GTP Plus USB del WinPic 800………………………………………………………………………………. Figura 8.15: Procedimiento para configurar el programador GTP Plus USB….. Figura 8.16: Procedimiento para configurar el programador GTP Plus USB….. Figura 8.17: Procedimiento para seleccionar el Microcontrolador PIC a usar… Figura 8.18: Listado de microcontrolador PIC de gama media de la familia 16FXXX………………………………………………………………………… Figura 8.19: Microcontrolador Pic 16F628A seleccionado para programar…… Figura 8.20: Bits de configuración o Fuses del Microcontrolador Pic 16F628A. Figura 8.21: Tipos de osciladores del Microcontrolador Pic 16F628A……….. Figura 8.22: Bits de configuración del Microcontrolador Pic 16F628A……… Figura 8.23: Botón Abrir para cargar programa a grabar en Microcontrolador Pic 16F628A……………………………………………………………………. Figura 8.24: Programa cargado listo para ser grabado en el Microcontrolador Pic 16F628A……………………………………………………………………. Figura 8.25: Funciones principales del WinPic 800…………………………… Figura 8.26: Herramientas de programación del WinPic 800………………… Figura 8.27: Ventana del proceso Test del Hardware conectado al WinPic 800. Figura 8.28: Ventana del proceso Detección del Dispositivo microcontrolador a programar…………………………………………………………………….. Figura 8.29: Ventana del proceso Programando el microcontrolador del WinPic 800……………………………………………………………………… Figura 8.30: Ventana del proceso Verificando la programación del PIC 16F628A………………………………………………………………………… Figura 8.31: Error de Código de Protección (CP) al leer un Microcontrolador PIC 16F628A…………………………………………………………………… 17 XVII

161 162 162 163 165 166 166 167 167 168 169 170 170 171 171 171 172 172 173 173 174 174 175 175 176 178 178 179 179 181 182 182 183 183 184

Figura 8.32: Datos leídos de un Microcontrolador Pic 16F628A con código de protección………………………………………………………………………. Figura 8.33: Utilidades del WinPic 800……………………………………….. Figura 8.34: Herramienta Conversora del archivo .hex a assembler del WinPic 800…………………………………………………………………………….. Figura 8.35: Herramienta para convertir valor en binario, hexadecimales, decimales, ascii, octal…………………………………………………………… Figura 9.1: Diagrama en bloque de la aplicación # 1…………………………. Figura 9.2: Diagrama esquemático del Mando Principal Transmisor RF 434MHz……………………………………………………………………….. Figura 9.3: Diseño electrónico en Proteus - ISIS de la PCB transmisor RF para el control remoto de los movimientos del hexápodo y de la cámara de A/V…… Figura 9.4: Vista en 3d de Proteus de la PCB transmisor RF…………………. Figura 9.5: Diseño de la PCB en Proteus - ARES de la PCB transmisor RF…. Figura 9.6: Diseño de las pistas electrónicas a imprimir en Proteus - ARES de la PCB transmisor RF………………………………………………………….. Figura 9.7: Diseño de los elementos electrónicos a imprimir en Proteus ARES de la PCB transmisor RF………………………………………………… Figura 9.8: Diagrama esquemático del Mando Secundario Receptor RF 434MHz…………………………………………………………………………. Figura 9.9: Elementos del sistema de la cámara y receptor del robot hexápodo Gretel…………………………………………………………………………… Figura 9.10: Elementos del sistema de A/V del robot hexápodo Gretel……… Figura 9.11: Diseño electrónico en Proteus - ISIS de la PCB receptora RF…… Figura 9.12: Vista en 3d de Proteus de la PCB receptora RF para el control remoto de los movimientos del hexápodo……………………………………… Figura 9.13: Diseño de la PCB en Proteus - ARES de la PCB receptora Figura 9.14: Diseño de las pistas electrónicas a imprimir en Proteus - ARES de la PCB receptora………………………………………………………………… Figura 9.15: Diseño de los elementos electrónicos a imprimir en Proteus ARES de la PCB receptora RF para el control remoto de los movimientos del hexápodo……………………………………………………………………….. Figura 9.16: Diagrama esquemático del la tarjeta controladora de 18 servo motores que comandan los movimientos del hexápodo………………………… Figura 9.17: Diseño electrónico en Proteus - ISIS de la PCB controladora de los 18 servomotores para el movimiento del hexápodo…………………………. Figura 9.18: Vista en 3d de Proteus de la PCB controladora de los 18 servomotores……………………………………………………………………. Figura 9.19: Diseño de la PCB en Proteus - ARES de la PCB controladora de los 18 servomotores para el movimiento del hexápodo………………………… Figura 9.20: Diseño de las pistas electrónicas a imprimir en Proteus - ARES de la PCB controladora de los 18 servomotores para el movimiento del hexápodo Figura 9.21: Diseño de los elementos electrónicos a imprimir en Proteus ARES de la PCB controladora de los 18 servomotores para el movimiento del hexápodo………………………………………………………………………… Figura 9.22: Distribución de Servos para cada una de las extremidades………. Figura 9.23: Esquema total de la aplicación Robot Hexápodo Gretel…………. Figura 9.24: Diagrama en bloque de la Aplicación # 2………………………… Figura 9.25: Diagrama en bloque de la tarjeta controladora de los 2 SFR05….. 18 XVIII

184 185 185 186 187 188 192 193 193 193 194 195 200 201 203 204 204 204

205 205 209 209 210 210

211 227 228 229 230

Figura 9.26: Diagrama esquemático de la tarjeta controladora de los 2 sensores ultrasónicos……………………………………………………………………… Figura 9.27: Vista en 3d de la PCB controladora de los 2 sensores ultrasónicos SFR05…………………………………………………………………………… Figura 9.28: Diseño del Circuito impreso realizado en Proteus Ares………….. Figura 9.29: Diseño del Circuito impreso realizado en Proteus Ares…………. Figura 9.30: Diagrama esquemático del Circuito Integrado ISD2560………… Figura 9.31: Secuencias para la grabación de mensajes en Chip ISD2560……. Figura 9.32: Secuencia para la reproducción de mensajes del Chip ISD2560… Figura 9.33: Diagrama esquemático de la tarjeta reproductora de Voz con el Chip ISD2560………………………………………………………………….. Figura 9.34: Diagrama esquemático de la etapa amplificadora de audio……… Figura 9.35: Vista en 3D del diseño del circuito impreso del modulo reproductor de Voz y Etapa amplificadora……………………………………… Figura 9.36: Vista en 3D del diseño del circuito impreso del módulo reproductor de Voz y Etapa amplificadora……………………………………… Figura 9.37: Diseño del circuito impreso realizado en Proteus Ares del módulo reproductor de Voz y Etapa amplificadora……………………………………… Figura 9.38: Diseño de las pistas electrónicas a imprimir Proteus Ares del módulo reproductor de Voz y Etapa amplificadora…………………………….. Figura 9.39: Esquema total de la aplicación robot Hexápodo Hansel…………

19 XIX

233 234 234 234 235 236 237 237 238 239 240 240 241 256

ÍNDICE DE TABLAS

Tabla 2.1: Distribución de Frecuencias de la Pregunta 1……………………… Tabla 2.2: Distribución de Frecuencias de la Pregunta 2……………………… Tabla 2.3: Distribución de Frecuencias de la Pregunta 3……………………… Tabla 2.4: Distribución de Frecuencias de la Pregunta 4…………………….. Tabla 3.1: Características de un robot hexápodo listo para ser programado…... Tabla 3.2: Características Generales de Programador GT-PLUS USB………. Tabla 3.3: Características Generales de la Tarjeta PCB Controladora……….. Tabla 3.4: Características Generales del Servomotor HITEC HS-311……….. Tabla 3.5: Características Generales de la tarjeta transmisora RF 434 MHz…. Tabla 3.6: Características Generales de la tarjeta receptora RF 434 MHz……. Tabla 3.7: Características Generales de la Articulación PAL/TILT………….. Tabla 3.8: Características Generales del Receptor de cámara inalámbrica de video…………………………………………………………………………… Tabla 3.9: Características Generales de la Capturadora de Video/USB………. Tabla 3.10: Características Generales de la tarjeta controladora de Sensores Ultrasónicos…………………………………………………………………….. Tabla 3.11: Características Generales del Sensor ultrasónico SRF05………… Tabla 3.12: Características Generales de la Tarjeta Grabadora / Reproductora de ISDN2560………………………………………………………………….. Tabla 5.1: Características de bandas de radiofrecuencia………………………. Tabla 5.2: Alcance dependiendo el tipo de banda…………………………….. Tabla 5.3: Características técnicas del Modulo Hibrido Transmisor TLP434(A)…………………………………………………………………….. Tabla 5.4: Características técnicas DC del Módulo Hibrido Transmisor TLP434(A)…………………………………………………………………….. Tabla 5.5: Características eléctricas del Módulo Híbrido Receptor RLP434(A) Tabla 9.1: Valores de Pulsout de los servos oscilando a 4 MHz……………… Tabla 9.2: Valores de Pulsout de los servos oscilando a 20 MHz…………….. Tabla 10.1: Costo de materiales utilizados en parte mecánica………………… Tabla 10.2: Costo de elementos electrónicos………………………………….. Tabla 10.3: Costo de mano de obra de la parte mecánica……………………... Tabla 10.4: Costo de mano de obra de la parte electrónica……………………. Tabla 10.5: Costo de gastos varios……………………………………………. Tabla 10.6: Costo neto del sistema…………………………………………….

XX 20

81 82 83 84 87 88 89 94 98 99 100 101 102 103 104 105 124 127 130 131 131 207 208 258 259 260 260 261 261

ÍNDICE DE ANEXOS

Anexo 1: Encuesta realizada a los estudiantes de la materia de Automatismo V de la UPSG.…………………………………………………………………… Anexo 2: Diferentes tipos de baterías…………………………………………. Anexo 3: Diferentes tipos de motores…………………………………………. Anexo 4: Diferentes tipos de sensores…………………………………………. Anexo 5: Software Microcode Studio Plus (MCSP) y Compilador Pic Basic Pro 2.50B (PBP)………………………………………………………………. Anexo 6: Desarrollo de proyectos en Pic Basic Pro y Microcode Studio Plus.. Anexo 7: Manual de programación de microcontroladores Pic en lenguaje Pic Basic Profesional………………………………………………………………...

21 XXI

265 266 270 275 283 287 291

INTRODUCCIÓN

I. Planteamiento del problema

En la Universidad Politécnica Salesiana Sede Guayaquil, en muchas de las materias impartidas en las diferentes carreras de la Facultad de Ingenierías se observó que los estudiantes tienen pocos conocimientos teóricos - prácticos de robótica por falta de robots didácticos y materiales para la construcción de un pequeño laboratorio de robótica.

En la actualidad la Universidad Politécnica Salesiana Sede Guayaquil no posee este tipo de ayuda didáctica y en el mercado ecuatoriano todavía es difícil encontrar esta tecnología debido a su elevado costo y difícil adquisición, por esta situación antes descrita nos ha generado el interés de crear una herramienta didáctica para que los estudiantes sean competencia con las exigencias de la robótica moderna como lo es la robótica móvil y micro robótica.

II. Formulación del problema

¿Qué es lo que está incidiendo para que los estudiantes de la Facultad de Ingenierías de la Universidad Politécnica Salesiana Sede Guayaquil tengan pocos conocimientos prácticos de robótica móvil y micro-robótica moderna?

III. Sistematización del problema

¿Por qué los estudiantes de la Universidad Politécnica Salesiana Sede Guayaquil tienen un bajo índice de participación en los concursos de robótica móvil y microrobótica a nivel nacional?

¿En qué medida de los pensum de estudio de las diferentes carreras de la Facultad de Ingenierías, aporta con el desarrollo profesional de los estudiantes en el área de la robótica móvil y micro robótica?

22 XXII

¿Cómo los estudiantes de la Facultad de Ingenierías de la Universidad Politécnica Salesiana Sede Guayaquil podrían mejorar sus conocimientos prácticos en el área de la robótica móvil y micro robótica?

IV. Objetivos Generales y Específicos

Objetivo general

Conseguir que los estudiantes de la Universidad Politécnica Salesiana Sede Guayaquil mejoren los conocimientos prácticos de la robótica móvil y micro robótica mediante el uso de los Robots Hexápodos y sus aplicaciones didácticas.

Objetivos específicos 

Involucrar directamente a los estudiantes de las diferentes carreras de la Facultad de Ingenierías a la participación de los diferentes concursos a nivel nacional e internacional en la robótica móvil y micro robótica, mediante la creatividad, el diseño mecánico, electrónico y la utilización de los diferentes componentes existentes en el mercado nacional e internacional.



Aportar al incremento del nivel de conocimiento práctico de la robótica móvil y micro robótica en las diferentes carreras de la Facultad de Ingenierías.



Diseñar y construir un robot hexápodo didáctico en la Universidad Politécnica Salesiana Sede Guayaquil que sea capaz de ser reprogramado para realizar diferentes procesos didácticos, como el movimiento autónomo o por control remoto, integración de los diferentes sensores que podríamos encontrar en el mercado ecuatoriano, reconocimiento de diferentes objetos o imágenes y cualquier aplicación creativa desarrollada por el usuario.

23 XXIII

V. Justificación

Por las razones mencionadas en el párrafo anterior, es urgente solucionar la falta de esta importante tecnología. Se propone como proyecto de tesis crear una ayuda didáctica que permitirá a los estudiantes acceder a prácticas de robótica móvil y micro robótica.

Para lograr esto, se planteó el “Diseño y Construcción de 2 Robots Hexápodos HESEEX (Hexápodo de Seis Extremidades) para Laboratorio de Micro Robótica de la UPS”.

24 XXIV

CAPÍTULO I

MARCO TEÓRICO: INTRODUCCIÓN A LA ROBÓTICA

1.1. Introducción

Desde los años 80 el desarrollo de robots a patas han surgido como una alternativa a los vehículos con ruedas, debido a la gran variedad de terrenos a los que pueden acceder, esto puede observarse en la naturaleza, viendo como los animales han podido adaptarse a terrenos difíciles o inestables.

El sistema de locomoción hexápodo ofrece mayor versatilidad que los robots móviles a ruedas, el desarrollo de este tipo de sistema de locomoción se vio obstaculizado en un principio por la complejidad inherente a la complejidad de las patas, ya sea para mantener el equilibrio de la estructura como para adaptarse, esta complejidad necesita una alta capacidad de cálculo aplicando técnicas de control clásico, sin embargo con el avance de la microelectrónica se ha hecho posible el acceso a recursos computacionales que hacen viable la implementación de este tipo de sistemas.

En el desarrollo de un robot hexápodo debe tenerse en un cuenta aspectos tales como robustez, mantenimiento del equilibrio, coordinación de los movimientos entre otros.

Un sistema que ataque todos los aspectos y resuelva estos problemas resulta de difícil implementación y un estudio muy complejo (inteligencia artificial: algoritmos genéticos), por lo cual el proyecto se centra en problemas puntuales: Construcción de chasis, patas, arquitectura de hardware, tipos de sensores, etc.

1.2. Evolución histórica.

La palabra ROBOT, es de origen checo y tiene como significado siervo o esclavo. El concepto de máquinas automatizadas viene desde la antigüedad donde se tenían mitos de seres mecánicos vivientes. 25

En los relojes de las Iglesias medievales ya se veían máquinas parecidas a una persona, los relojeros en esa época eran famosos por los diseños de estos relojes.

Algunos de los primeros robots empleaban mecanismos de retroalimentación, un ejemplo de estos mecanismos es el flotador para determinar el nivel de agua. El primer controlador retroalimentado fue el regulador de WATT, en 1978 este ingeniero británico construyó un dispositivo que constaba de dos bolas metálicas al eje motor de una máquina de vapor y conectadas con una válvula que regulaba el flujo del vapor.

En el siglo XVIII el desarrollo de máquinas que pudieran realizar tareas pequeñas fueron ingredientes importantes en la automatización de las fábricas en esta época. A medida que mejoraba la tecnología se hacían máquinas con tareas específicas como poner tapones a las botellas, sin embargo ninguna de estas máquinas era tan versátil como el brazo humano para alcanzar objetos y ponerlos en la ubicación deseada.

En 1954 George Devol desarrolló un brazo el cual se podía programar para que hiciera pequeñas tareas.

En 1975 el Ingeniero Víctor Scheinman desarrollo el Brazo Manipulador Universal Programable (PUMA), era capaz de coger un objeto y colocarlo en un lugar deseado en cualquier orientación mientras estuviera dentro de su alcanza. El concepto básico de este brazo multiarticulado es la base de la mayoría de los robots actuales.

Las principales características de un robot son:  Movilidad  Gobernabilidad  Autonomía  Polivalencia  Repetibilidad

A principios de los 90 y motivados por la necesidad de disminuir el peso, volumen, costo y consumo de energía de los productos electrónicos, la creación de 26

componentes electrónicos más pequeños y los microchips se convirtieron en un gran avance tecnológico. En este momento empezaron a ser útiles los micro-robots ya que estos podían realizar tareas específicas y con una precisión del orden de la micra.

1.3. Ventajas de la aparición de la micro-robótica.  Son sistemas de manipulación inmunes a perturbaciones externas.  En cuanto a la producción de la microelectrónica es menos costoso hacerlo con micro robots que con operadores humanos.  El ahorro de energía que supone la utilización de estos micro-robots.

Estos factores han hecho que aparezcan estos micro-robots, estos constituyen microsistemas de fabricación, los cuales están compuestos de micro mecanismo que realizan tareas que no podría cumplir un operario humano.

Algunos de estos micro-mecanismos son: •

Sensores.



Controladores.



Motores o Baterías.

La Robótica y la Automatización siempre han ofrecido al sector industrial un excelente compromiso entre productividad y flexibilidad, una calidad uniforme de los productos, una sistematización de los procesos y la posibilidad de supervisar y/o controlar las plantas según diferentes parámetros y criterios.

Se pueden destacar cuatro ventajas principales de los sistemas robotizados: aumento de la productividad, alta flexibilidad, excelente calidad y mejora de la seguridad.

Como resultado, la robotización permite mejorar la calidad y las condiciones de trabajo, sustituyendo tareas penosas por otras que se efectúan en condiciones mucho más ventajosas. Pero, además, la irrupción de la automatización en los servicios y el ocio permite mejorar la calidad de vida de los ciudadanos.

27

1.4. Clasificación de robots con extremidades

Figura 1.1: Clasificación de robots según sus extremidades. Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

En la figura se puede observar la proporción de robots construidos, siendo el hexápodo el más utilizado.

Figura 1.2: Cuadro estadístico proporcional de la clasificación sus extremidades. Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

28

1.4.1. Según el número de extremidades

1.4.1.1. Robots de una sola extremidad

Este robot desarrollado en el Laboratorio Nacional Sandia (EE.UU) da saltos de hasta 7 metros de altura. El dispositivo va equipado de un compás interno que le permite orientarse correctamente y un pistón accionado por un pequeño motor se encarga de empujar firmemente contra el suelo, consiguiendo un gran impulso.

Según sus diseñadores, puede elevarse hasta 4000 veces y recorrer hasta 7 km antes de acabarse su combustible, puede ser equipado con un micro cámaras y ser lanzado a terrenos difíciles de explorar.

Figura 1.3: Robot de una sola extremidad Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

1.4.1.2. Robots bípedos

Capaces de caminar como los humanos los robots de la serie BIPER, diseñados en la Universidad de Tokyo, pueden caminar lateralmente, avanzar y recolectar, simulando más o menos aproximadamente el modo de andar humano.

29

Actualmente se están desarrollando androides.

Figura 1.4: Robot de 2 extremidades Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

1.4.1.3. Robots de cuatro extremidades

En el instituto de Tokyo fue construido un vehículos de cuatro patas dotado de sensores táctiles y detector de posturas. Cada pata tiene 3 grados de libertad.

El control se realiza desde un microordenador que asegura la existencia de un triángulo de apoyo sobre 3 de las patas continuamente, para no perder el equilibrio.

Figura 1.5: Robot de 4 extremidades Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

1.4.1.4. Robots de seis extremidades

El hexápodo consta de seis patas dispuestas paralelamente en una estructura o chasis, las cuales se mueven dos a dos, gobernadas por un microcontrolador.

30

Estos robots pueden ser más o menos complejos dependiendo de los grados de movilidad de sus patas y de los obstáculos que se quieran sortear, teniendo así que dotar al robot de sensores y crear una aplicación software complejo. Hay muchos modelos diferentes, diferenciándose sobre todo en el tipo de patas empleadas.

Figura 1.6: Robot de 6 extremidades Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

1.4.1.5. Robots más complejos

Este robots cien-pies, se construyó con microcontroladores Basic Stamps, es un ejemplo de aplicación de estos microcontroladores donde se consigue una perfecta coordinación entre la comunicación de los micros y el movimiento de las patas.

Figura 1.7: Robot complejo Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

31

1.4.2. Según el medio

1.4.2.1. Apodo en el espacio

Robot creado para investigación espacial, dispone de seis patas de ruedas, lo que le proporciona una gran movilidad y estabilidad.

Dispone de sensores de navegación como cámaras CCD estereofónicas, un total de tres: al frente, en la parte de atrás y en el mástil, se utiliza para tomar imágenes estereofónicas del paisaje circundante para apoyar el funcionamiento del equipo y para fijar sus tareas.

Además de sensor de posición del sol, 3 acelerómetros y las ruedas con encoders ópticos.

El brazo se guarda contra un lado del chasis y puede excavar, descargar, agarrar piedras, llevar una muestra, contiene un espectrómetro óptico integrado y su blanco de calibración.

Figura 1.8: Apodo en el espacio Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

32

1.4.3. Según grados de libertad.

1.4.3.1. De 1 Grado de libertad

La construcción de un hexápodo de un grado de libertad es la sencilla puesto que las patas serán totalmente rígidas y habrá solo un tipo de movimiento que proporcionará el actuador. La configuración habitual en hexápodos de un grado de libertad es hacer que las patas centrales tengan la capacidad de hacer subir o bajar el robot y que las patas se extremas se ocupen avanzar o retroceder.

Figura 1.9: Robot de 1 grado de libertad Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

1.4.3.2. De 2 Grados de libertad

Los hexápodos con dos grados de libertad son muy utilizados en aplicaciones didácticas puesto que son más complejos, aumentan el número de servomotores, lo que conlleva una programación más dificultosa para coordinarlos adecuadamente. Con este tipo de hexápodos podemos conseguir más movimientos.

Figura 1.10: Robot de 2 grado de libertad Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

33

1.4.3.3. Estructuras Complejas

El diseño de estos hexápodos es muy complejo debido a la sofisticada estructura de las patas, el control de ellas se realiza mediante algoritmos muy complicados (algoritmos genéticos), estos tipos de hexápodos van dotados de diferentes tipos de sensores, que se ocupan de dar información del tipo de terreno que pisan, posibles obstáculos, con el fin de hacer que el robot camine sin dificultad por terrenos muy abruptos.

Figura 1.11: Robot de estructura compleja 1 Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

Figura 1.12: Robot de estructura compleja 2 Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

34

1.4.3.4. Estructuras hidráulicas.

Se utilizan actuadores hidráulicos, estos ejercen presiones aplicando el principio de la prensa hidráulica de Pascal, se controlan mediante servo válvulas que regulan el aceite que circula por el pistón (lineal). El movimiento puede pasarse a rotacional con una biela.

Figura 1.13: Robot de estructura hidráulica 1 Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

Figura 1.14: Robot de estructura hidráulica 2 Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

35

1.5. Ventajas de Robots Caminantes

1.5.1. Movilidad

Los robots con extremidades exhiben mayor movilidad que los que utilizan ruedas por que poseen intrínsecamente mecanismos de dirección omnidireccional. Esto significa que pueden cambiar de dirección sobre el eje principal del cuerpo tan solo moviendo sus apoyos.

También pueden girar sobre los ejes de su cuerpo sin necesidad de levantar las extremidades apoyadas con solo mover sus articulaciones, es decir puede rotar su cuerpo, inclinarlo y cambiar de posición como se indica en la figura 1.15.

Figura 1.15: Movilidad Fuente: http://ccc.inaoep.mx/~emorales/propfin.pdf

1.5.2. Superación de obstáculos

Un robot con extremidades puede superar obstáculos que estén a baja altura en comparación con el tamaño del robot.

Donde un robot con ruedas quedaría atascado si el tamaño del obstáculo fuera mayor que el radio de la rueda.

Figura 1.16: Superación de obstáculos Fuente: http://ccc.inaoep.mx/~emorales/propfin.pdf

36

1.5.3. Suspensión activa

Intrínsecamente un robot con extremidades posee suspensión por adaptación mediante la variación de la altura de su cuerpo con la posición de sus extremidades a un terreno irregular.

De esta manera su movimiento puede ser más suave que un robot con ruedas pues este último siempre estará paralelo al suelo adoptando posiciones similares al relieve del terreno.

Figura 1.17: Suspensión activa Fuente: http://ccc.inaoep.mx/~emorales/propfin.pdf

1.5.4. Eficiencia Energética

Se ha vertido mucha tinta respecto a este tema pero fue Becker quien probó la teoría de Hutchinson que fue el primero en atreverse a decir que un robot con extremidades sería más eficiente energéticamente que uno con ruedas en un terreno altamente irregular.

1.5.5. Terreno Natural o Terreno discontinuo

Los robots con ruedas requieren una superficie continua para desplazarse de manera eficiente. En un principio los robots con extremidades no requieren un terreno continuo y pueden desplazarse por terrenos arenosos, fangoso, escarpado y liso.

Figura 1.18: Terreno discontinuo Fuente: http://ccc.inaoep.mx/~emorales/propfin.pdf

37

1.5.6. Deslizamientos

Una rueda puede deslizar en una superficie por motivos de adherencia, las extremidades de un robot suelen depositar el peso del robot de forma directa sobre el suelo y las posibilidades de que resbale son menores.

Dado que el movimiento siempre va en la dirección de la resistencia como se puede observar en la figura 1.18.

Figura 1.19: Deslizamientos Fuente: http://ccc.inaoep.mx/~emorales/propfin.pdf

1.5.7. Daño medioambiental

Las ruedas erosionan la superficie de la tierra cuando derrapan y la dejan desprotegida. Los robots con extremidades no desgarran la tierra de este modo, ya que se posan sobre esta de forma puntual y discreta.

1.5.8. Velocidad Media

Un robot con extremidades puede superar pequeños obstáculos manteniendo la velocidad del cuerpo constante con un movimiento uniforme y rectilíneo si fuera necesario o si el teleoperador o programador así lo deseara.

Figura 1.20: Velocidad Media Fuente: http://ccc.inaoep.mx/~emorales/propfin.pdf

38

Por supuesto los robots con extremidades no son la solución general a la locomoción robótica.

Presentan una serie de problemas y desventajas que los han mantenido fuera de uso industrial y de servicios.

El primer problema es la complejidad, los robots con extremidades son más complejos que los que utilizan ruedas sobre todo en lo referente a electrónica y control. Otro problema importante es la velocidad y el más crítico, el costo.

1.5.9. Mecánica

La rueda es un mecanismo extremadamente sencillo sin embargo una extremidades consiste en varios enlaces y articulaciones.

Una extremidad requiere al menos tres actuadores para proveerla de dirección y tracción y permitir un movimiento completo. Un robot caminante con equilibrio estático requiere al menos cuatro extremidades, por lo tanto el número mínimo de actuadores para un robot caminante es de doce.

No se está considerando la posibilidad de robots bípedos puesto que el número mínimo de actuadores por pata no está concretamente definido y se pretende definir un robot que pueda realizar movimientos en todas direcciones.

Con lo cual un sistema de locomoción por extremidades es más complejo y más caro que un sistema de locomoción por ruedas.

1.5.10. Electrónica

Cada articulación del robot está asociada a un controlador y debe ser controlada de manera individual. De nuevo, los robots caminantes requieren más sensores que un robot con ruedas dado que las ruedas están en todo momento en contacto con el suelo esto significa que se debe implementar algún mecanismo que permita determinar cuando una extremidad está en contacto con el suelo. 39

1.5.11. Algoritmos de control

Un robot caminante debe coordinar la posición de todas sus articulaciones para realizar cualquier movimiento por lo que un robot caminante es sin duda más complejo que un robot con ruedas o con orugas.

1.5.12. Velocidad máxima

Un mecanismo de locomoción por ruedas en superficie terrestre puede alcanzar una velocidad máxima conocida de 1.228 Km/h alcanzada por el (Thrust SSC, 1997) [18] mientras que el mecanismo de locomoción por extremidades más veloz conocido es el guepardo que alcanza 113Km/h. El único inconveniente es que el guepardo aun no puede ser teleoperado.

1.5.13. Costo

El costo total de cualquier sistema suele ser siempre proporcional a su complejidad. Por tanto un sistema robótico de locomoción por patas será más caro que un sistema de locomoción por ruedas.

Una vez conocidas las ventajas y desventajas de los robots caminantes surge la siguiente cuestión, el número de extremidades.

En los siguientes apartados se tratan los robots comunes con equilibrio estático. El equilibrio estático es aquel en el que el cuerpo del robot puede estar en reposo con velocidad cero.

1.6. Diferentes materiales empleados en las estructuras

La estructura y el material empleado van en función de la aplicación a la que se destine el robot. El aluminio y el metra quilato son los más utilizados, también fibra de carbono, plástico, acero, cobre, madera, etc. 40

Para la construcción de la estructura que se muestra se han empleado básicamente dos tipos de materiales: aluminio y metra quilato. El metra quilato se utiliza en la construcción del chasis y de otra piezas de difícil mecanizado, mientras que el aluminio se ha empleado para la construcción de las patas propiamente dichas. Cada pata formada por un mecanismo del tipo pantógrafo tridimensional, y está situada de forma de araña, es decir, sobresale transversalmente al lado del robot. Las patas están situadas de tal manera que se da simetría respecto del eje central longitudinal del robot.

Figura 1.21: Estructura con Material de aluminio Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

Figura 1.22: Estructura con material de madera Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

41

1.6.1. Estructuras metálicas

Este tipo de estructuras emplean piezas metálicas que son aseguradas con tornillos.

Estas poseen una gran resistencia pero tienen inconvenientes como por ejemplo peso, falta de flexibilidad y dificultad en la mecanización.

1.6.2. Estructuras plásticas

Esto implica que las dimensiones finales del micro robot sean más reducidas.

1.6.3. Estructuras a medida

Estas permiten crear estructuras magnificas. Ejemplos de estas estructuras son madera, metacrilato, cristal, etc.

1.7. Construcción de las extremidades y tipos según aplicación

Las extremidades se diseñan según los terrenos en los que se vaya a mover el robot y también según los grados de libertad. Pudiendo crear unas extremidades totalmente rígidas o curvas en un hexápodo con un grado de movilidad, y una extremadamente compleja si desea una movilidad variada.

Para diseñar unas extremidades o más grados de libertad, lo mejor es ver cómo serán los movimientos que realizará la extremidades con ayuda de un esquema.

Figura1.23: Extremidad con 2 grados de libertad y extremidad con 3 grados de libertad Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

42

Están serían las extremidades a utilizar en un hexápodo con un grado de movilidad, su diseño es específico para el tipo de terreno en el cual se moverá el robot.

La figura 1.20 muestra una pata semicircular, muy utilizada para subir escalones.

Figura 1.24: Diferentes Tipos de Extremidades. Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

Esta es una pata muy sofisticada que utilizada el hexápodo LEMUR creado por la NASA, tiene la particularidad de incorporar una pinza trilateral con una cámara, lo que permite dar información del terreno a él algoritmo de control.

Figura 1.25: Diferentes Tipos de Extremidades 2. Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

43

1.8. Locomoción

La locomoción con patas es un grave problema para la robótica ya que el robot tiene que ser estable estática y dinámicamente.

El grado de dificultad para conseguir que un robot hexápodo camine, depende de la clase de robot que se construya.

Si tenemos un robot de uno o dos grados de libertad, podemos controlar su movimiento con un algoritmo de control relativamente fácil, esto se puede complicar muchísimo si aumentamos la movilidad de sus patas, y lo más importante si queremos que nuestro robot camine de manera autónoma por terrenos abruptos encontrándose obstáculos que pueden desequilibrarlo, para ello se adaptan al robot diferentes tipos de sensores y se utilizan los denominados algoritmos genéticos complejos, ellos calculan y eligen el mejor movimiento de las patas ante muchas posibles soluciones y son capaces de regenerar el código de algoritmo para afrontar distintas situaciones.

Los robots basados en estos sistemas de control consiguen genera los movimientos como resultado de muchos procesos funcionando a la vez, de forma que cada uno aporte algo al sistema, buscando una interacción mutua entre ellos, por el o para crear estos robots hace falta un buen equipo hardware y un complicado Software.

1.9. Tipos de movimientos

Los tipos de movimientos básicos de los robots hexápodos son dos: Movimiento Cuadrúpedo y Movimiento Trípode.

1.9.1. Ciclo de Movimiento Cuadrúpedo.

La característica principal de este movimiento es que el robot siempre mantiene cuatro patas en el suelo, consiguiendo un grado elevado de equilibrio, siendo las dos restantes las que levantan la estructura del robot. 44

Figura 1.26: Movimiento Cuadrúpedo Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

1.9.2. Ciclo de Movimiento Trípode

En este tipo de movimientos, el robot mantiene siempre tres patas en el suelo, estas se mueven hacia atrás para impulsan el robot hacia adelante, mientras que las que están al aire buscan la posición adecuada hacia adelante para después poder impulsar al robot.

Figura 1.27: Movimiento Trípode Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

1.10. Corrección de error en una extremidad.

Si tenemos un robot lo suficientemente equipado podemos utilizar esta técnica, para mantener la estabilidad del robot. Si nuestro robot utiliza un movimiento trípode y lo equipamos con sensores en las extremidades podemos detectar cuando una de ellas no llega a tocar al suelo, pasando entonces a modo cuadrúpedo. 45

Ejemplo de un hexápodo construido para subir escaleras.

Figura 1.28: Movimiento robot para subir escaleras. Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

El robot empieza con los tres pares de patas en la tierra. Las piernas posteriores y medias inclinan el cuerpo adelante, y hay un barrido de las patas delanteras para coger el primer paso.

Fase1: El par delantero y las patas posteriores izquierdas están levando acabo la posición, la pierna posterior derecha está haciendo pivotar alrededor a la escalera siguiente, y las piernas medias están acabando su barrido posterior.

Fase2: El par delantero y el medio, y las patas posteriores derechas están levando a cabo la posición, después la pata posterior izquierda hace pivotar a la escalera siguiente.

El escalonamiento de oscilación posterior de la pierna asegura la buena ayuda.

Fase3: Las patas delanteras y posteriores levantan el cuerpo durante la escalera siguiente, las piernas medias acaban contra pesando sobre la escalera siguiente.

Fase4: Las piernas delanteras acaban esta fase hacia arriba en el aire, a medio camino con la recirculación, el empuje medio de las patas traseras hace caer en la escalera siguiente, y las patas posteriores continúan su barrido posterior.

46

Fase5: Las patas delanteras se contrapesan sobre la escalera siguiente, la posición de asentamiento de las patas centrales, y las patas posterior es acaban su barrido posterior.

Fase6: Posición de asentamiento de las patas delantera y posterior mientras que las patas medias continúa su barrido posterior.

Figura 1.29: Robot subiendo escalera Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

1.11. Tipos de niveles

1.11.1. Nivel de reacción

Está formado por el conjunto de sensores, así como por sistemas básicos para su funcionamiento.

Estos sensores juegan el papel de “sentidos” para este robot, como por ejemplo: Infrarrojos, detectores de proximidad, radares, sonar, equipos de visión y de sonido.

1.11.2 Nivel de control

Permite interpretar información que proveen los sensores para poder realizar ciertas tareas. Por ejemplo desplazarse sin chocar contra una pared. 47

En estos circuitos se incluye un microcontrolador que tiene una memoria en donde se aloja un programa que se encarga del comportamiento del robot.

1.11.3. Nivel de inteligencia

El programa que se aloja en la memoria del microprocesador es el encargado del comportamiento de un robot. En los micro robots debido a la memoria limitada (256 bytes), no se pueden utilizar lenguajes de alto nivel, generalmente el lenguaje utilizado es C o ensamblador, el sistema operativo utilizado es Linux.

1.11.4. Nivel de comunidad y cooperación

El nivel de comunidad consiste en colocar varios micro-robots en un mismo entorno, y sin que ninguno de ellos tenga conocimientos de los otros robots. El nivel de cooperación consiste en programar a los robots para que tengan conocimientos de otros micro-robots que están en el mismo entorno.

1.12 Similitudes y diferencias

No se puede pensar que un micro robot es simplemente un robot pequeño. Existen diferencias en cuanto al concepto, la arquitectura y la aplicación.

Una micro-máquina es un dispositivo capaz de realizar una tarea sin disponer de un control interno.

Una similitud es que los micro-robots pueden reprogramar su comportamiento como los robots industriales o con adaptabilidad a circunstancias como robots avanzados en entornos no estructurados o robots de servicios, o control habilidad remota como robots teleoperadores.

La diferencia fundamental entre un macro robot y un micro robot además de su tamaño es el campo de acción. Los micro robots no fueron diseñados para reemplazar ni competir contra los macro robots estos fueron diseñados para cumplir tareas pequeñas y con gran precisión. 48

1.13. Sectores de la Robótica y sus Aplicaciones

1.13.1 Industria de la construcción

1.13.1.1. Introducción

En la industria de la construcción, el nivel de automatización sigue siendo uno de lo más bajos entre los sectores productivos. La automatización llega fundamentalmente a algunas máquinas, siendo todo el proceso muy convencional y manual.

La alta importancia económica y la baja capacidad para captar mano de obra, podrían suponer una tendencia elevada a la automatización. Sin embargo, es destacable la comparativamente baja tecnificación del sector, no habiendo experimentado los procedimientos

constructivos

grandes

avances

tecnológicos

en

cuanto

a

automatización se refiere, pues si bien se han incorporado máquinas como grúas, excavadoras, etc. Su empleo es fuertemente dependiente del ser humano.

La explicación a este bajo nivel de automatización, a pesar de las ventajas que aportaría, se encuentra en gran medida en la baja repetibilidad de las tareas involucradas y en la agresividad del entorno. Por lo tanto, para poder abordar la automatización y, en particular, la robotización de la construcción, es preciso realizar una cierta sistematización en todas las fases del proceso de la construcción.

La idea fundamental es tratar las obras, sobre todo los edificios, no como singulares, sino como elementos fabricados (o prefabricados) en serie. En este sentido, los desarrollos actuales están encaminados a la integración de todos los actores que participan en la construcción: arquitectos, estructuralistas, interioristas, empresas constructoras, suministradores, empresas de transporte, etc.

Ésta es la base sobre la que se asienta el concepto CIC (Computer Integrated Construction), cuyo objetivo es conseguir un adecuado grado de automatización en la obra, y no abarcar sólo la prefabricación.

49

Se puede decir que los esfuerzos de modernización de los últimos años han estado centrados fundamentalmente en dos campos: obra civil y edificación. Con obra civil nos referimos a la automatización de la construcción de carreteras, túneles, puentes, movimientos de tierra, etc.

1.13.1.2. Obra civil

En la construcción de carreteras en los últimos años se ha alcanzado un alto nivel de automatización. Las apisonadoras y asfaltadoras están gobernadas por GPS y sensores de densidad y compactación, lo que les permite efectuar las operaciones con una gran precisión. De hecho, estas máquinas se convierten en robots móviles autónomos con guiado sensorial.

Figura 1.30: Robots para la construcción. Fuente: IEEE Robotics & Automation Magazine, TOURBOT and WebFAIR

Figura 1.31: Asfaltadora Cedarapids Fuente: IEEE Robotics & Automation Magazine, TOURBOT and WebFAIR

50

Otras aplicaciones de gran importancia en la ingeniería civil son la construcción de túneles y puentes. El guiado automático de las tuneladoras (mediante láser y giróscopos) y el manipulado y ensamblado robotizado de los revestimientos interiores del túnel, son posibles aplicaciones.

Como también lo son el posicionamiento automático de los segmentos de los puentes, el control correcto del posicionamiento vertical de los pilares y la proyección de cemento o asfalto de grandes dimensiones, con brazos robotizados, tipo Scara.

Figura 1.32: Scara Pick and Drop Fuente: IEEE Robotics & Automation Magazine, TOURBOT and WebFAIR

A la automatización de las máquinas de movimiento de tierras se le está prestando cada vez más atención. Las modernas excavadoras tienen cada vez más sistemas automáticos y de asistencia. Mediante el control cinemático y dinámico de las mismas, con realimentación de sensores de fuerza en los cilindros de las articulaciones, se puede realizar una excavación automática o asistida.

En este tipo de control tiene una gran importancia el modelado correcto del suelo, tanto desde el punto de vista geométrico como de textura y densidad. Los actuales sensores tipo LADAR (Láser Radar) permiten realizar modelos 3D de gran precisión con medidas de hasta 50.000 puntos a distancias de hasta 1.000 metros. 51

El control automático de fuerza y su monitorización en dragadoras de gran tamaño (de hasta 100 metros) también ha mejorado sustancialmente la calidad de la excavación y su productividad. El guiado de flotas de grandes camiones y de bulldozers que se encargan de transportar la tierra removida mediante guiado automático basado en GPS, es una de las aplicaciones que está en fase de implementación masiva.

Figura 1.33: LADAR y ejemplos de modelos 3D Fuente: IEEE Robotics & Automation Magazine, TOURBOT and WebFAIR

1.13.1.3. Edificación

Otro gran campo de aplicaciones es la edificación. El impulso de_nitivo a la automatización de este sector lo dio el proyecto japonés SMART (Shimizu Manufacturing System by Advanced Robotics Technology). Se trata de una factoría automatizada cubierta, situada en la última planta del edificio.

El sistema convierte en un taller la planta del edificio que soporta sobre cuatro columnas maestras y queda cubierta por una estructura plástica quedando protegida de las inclemencias atmosféricas. En su interior, se trabaja en condiciones similares a las de un taller, lo que junto con el adecuado diseño y planificación de acuerdo al concepto CIC, facilita la automatización, empleándose grúas robotizadas para el transporte y ensamblado de pilares y vigas de estructura metálica, robots de soldadura y de reparto y compactación del cemento de los forjados.

52

Una vez terminada la construcción de la planta, toda la factoría se eleva y se continúa con la construcción de la siguiente. Este sistema, que hoy ha sido adoptado y modificado por numerosas empresas, permite reducir sustancialmente el tiempo de la construcción, sobre todo en edificios de cierta altura tipo oficinas.

Figura 1.34: Proyecto SMART Fuente: http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobotsMoviles.pdf

La automatización en la construcción pasa por la necesidad de estandarización. En este sentido, la prefabricación juega un papel muy importante. Para edificios residenciales de menor altura, construidos normalmente con ladrillos, bloques o piezas prefabricadas, han sido desarrollados varios robots de ensamblado.

Estos robots pueden construir paredes de bloques silicocalcáreos de hasta 500 kilos de peso. Las dimensiones de los robots, de hasta 10 metros de largo, permiten que se puedan construir paredes de gran tamaño y altura, sobre todo para naves industriales.

La mayoría de estos robots cuentan con una flexión estructural importante, lo que hace difícil que puedan tener un buen posicionamiento. Para corregir este error, algunos robots cuentan con sensores que miden las deformaciones en los eslabones (galgas extensiométricas) o con un sistema externo (láser telémetro con autoseguimiento del extremo autotracking) que permite medir la flecha en el extremo.

53

Otro aspecto importante de este tipo de robots es la programación y la interfaz hombre-máquina, que debe ser lo más sencilla posible.

Figura 1.35: Láser telémetro y su funcionamiento. Fuente: http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobotsMoviles.pdf

Un ejemplo de este tipo es el sistema ROCCO, orientado a la construcción de viviendas familiares, utilizando elementos exteriores e interiores (bloques) prefabricados. Estos bloques de material silíceo calcáreo, son suministrados a la obra en pallets de una manera perfectamente estructurada, al objeto de que los robots especiales tengan ciertas facilidades para su localización y aplicación en el lugar correcto.

Figura 1.36: Sistema ROCCO Fuente: http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobotsMoviles.pdf

54

1.13.2. Automatización Industrial

1.13.2.1. Introducción

La utilización de robots industriales está ampliamente extendida en todo tipo de fábricas y empresas industriales, obteniendo con ellos reducción de costes, aumento de la productividad, mejora de la calidad en la producción y eliminación de condiciones peligrosas de trabajo o mejora de las mismas.

De este modo, la empresa industrial, a través de inversiones tecnológicas en el campo de la automatización industrial, podrá aumentar su competitividad en el mercado, corriendo el riesgo de quedarse rezagada en el mercado si descartase la utilización de la robótica en sus procesos de fabricación.

El principal papel de los robots es articular diferentes máquinas y funciones productivas; transporte, manejo de materiales, maquinado, carga y descarga, etc. mediante su capacidad para desempeñar diversas tareas u operaciones. El robot industrial ha sido descrito como el elemento más visible de la fabricación asistida por computador y como la base técnica para la mayor automatización de la producción.

La inmensa mayoría de los robots industriales se componen de un brazo articulado, a través del cual desempeñan su tarea en una cadena de producción. Este tipo de robots se sale del marco de nuestra asignatura, por no ser ni 'micro-robots', ni 'móviles', de modo que dejaremos de lado esta amplia familia para indagar en robots más próximos a los tratados en clase, en busca de cierta inspiración para el posterior diseño de nuestros 'micro-robots móviles'.

1.13.2.2. Transporte de mercancías

1.13.2.2.1. Vehículos de Guiado Automático (AGV)

Los AGV están diseñados, normalmente, para transportar grandes cargas (hasta varias toneladas), pudiendo consistir en piezas (carrocerías de coches, motores, etc.) o productos (palés de bricks, bobinas de papel, cajas de discos, etc.). 55

Existen varias tecnologías de guiado de vehículos: a) Por seguimiento de rayas (blancas) pintadas en el suelo. b) Filoguiados por seguimiento del hilo enterrado en suelo y que irradia un campo magnético. c) Por balizas de radiofrecuencia, etc.

El guiado por láser es el más novedoso y da lugar a los AGV de tipo LGV (Laser Guided Vehicle). El vehículo incorpora un láser que efectúa su guiado mediante reflectores colocados en el entorno. Algunos fabricantes han diseñado carretillas con tecnología AGV, que no solamente controlan su guiado (navegación), sino también la elevación de la carga.

En función de la tarea que desempeñen, los AGV se pueden clasificar en: 1.- Toros o elevadores de carga:

Figura 1.37: Elevador de carga Fuente: http://www.cassioli.com/eng/agvlgv.htm

2.- Remolcadoras o tuggers:

Figura 1.38: Remolcador Fuente: http://www.agvp.com/

56

3-. Unidades de carga:

Figura 1.39: Unidad de carga Fuente: http://www.logismarket.es/empresas/carretillas-transpaletas-otros-vehiculos/vehiculosguiadoautomatico-agv/4441912

Uno de los puntos clave de los AGV es el sistema de transferencia de cargas, que obliga a contar con un sistema de posicionamiento exacto (normalmente enclavamiento mecánico en el puesto de parada) y un mecanismo bidireccional de movimiento de la carga (rodillos motorizados o similares).

1.13.2.2.2. Vehículos Laserguiados (LGV)

El AGV cuenta con una especia de pequeña torreta giratoria, emisora y receptora de láser. La fábrica o almacén debe estar dotada de reflectantes, situados en postes o máquinas. El láser será transmitido por el AGV, reflejado por el reflectante (que pueden estar colocados hasta 30 m por encima del AGV), y recibido de nuevo por el robot. .

Para moverse, el AGV necesita detectar un mínimo de estos tres reflectores. La distancia que le separa con ellos y el ángulo que forman son analizadas para obtener coordenadas X e Y de posición absoluta.

Actualmente, el láser realiza el chequeo de la posición unas 20 veces por segundo, obteniéndose unas coordenadas con una tolerancia de +/- 2 mm. 57

Esta información se complementa con una base de datos en la que el AGV, almacena a modo de rejilla, las trayectorias posibles dentro del entorno de trabajo del robot.

De esta forma, el AGV puede desplazarse por su rejilla virtual, actualizada constantemente

mediante

la

información

preveniente

del

láser,

estando

constantemente posicionado dentro del almacén o fábrica, para poder desplazarse según la voluntad de los operarios.

El inconveniente del sistema es que dichos operarios deben ser buenos programadores, residiendo en ellos la misión de marcar la trayectoria del AGV dentro de su rejilla. Esto incrementa el coste de utilización de cada robot, al precisar de un equipo de programadores.

Como gran ventaja, simplemente reprogramando el AGV puede llevarse el robot de un almacén a otro.

Figura 1.40: La foto muestra un AGV laserguiado, el láser es el dispositivo azul situado en la parte superior del vehículo. Fuente: http://www.logismarket.es/empresas/carretillas-transpaletas-otros-vehiculos/vehiculosguiadoautomatico-agv/4441912

58

1.13.2.2.3. Vehículos Filoguiados (RGV)

El guiado por cable es el más extendido actualmente, debido principalmente a que fue el primero que se usó, y todavía sigue siendo el método más simple y preciso. La trayectoria está _jada por un cable que va por debajo del suelo (normalmente a unos 20 mm).

Alrededor de este cable se genera un campo electromagnético cuando por él circula una corriente alterna, siendo este campo más fuerte cuanto más próximo se está al conductor, y más débil cuanto más se aleja uno de él. Si este campo atraviesa una bobina, se generará un voltaje entre los terminales de ésta.

El AGV circula por encima del cable, y lleva una antena consistente en dos bobinas situadas a ambos lados del cable. La diferencia de potencial entre los terminales de ambas bobinas es la tensión de alimentación amplificada del motor de rotación del AGV.

Si éste avanza centrado sobre el cable, las tensiones generadas en las bobinas serán iguales, y por lo tanto su diferencia es cero. Si el AGV se desvía de la trayectoria, la diferencia de potencial que se crea entre las bobinas le indicará cuánto debe girar y en qué sentido hacerlo.

Además de esta antena, los AGVs incorporan otra antena transversal para detectar cables perpendiculares al cable de guiado. Estos cables transversales se usan para actualizar la posición del AGV.

Este sistema es el más sencillo y eficaz. La desventaja está en la necesidad de levantar el suelo para instalar el cable y en la cantidad de metros de cable necesarios para el rutado.

59

Figura 1.41: AGV filoguiado, observar cómo el cable del suelo realiza la curva para que el AGV pase a través de la puerta Fuente: http://www.logismarket.es/empresas/carretillas-transpaletas-otros-vehiculos/vehiculosguiadoautomatico-agv/4441912

1.13.2.2.4. Automated Material Transport System (AMTS)

Este sistema de percepción permite que los robots se desplacen por una fábrica sin necesidad de ningún tipo de guía. Es un salto más en los AGV: elimina la necesidad de una infraestructura para el movimiento del robot, lo que conlleva elevados costes de instalación y configuración, además de la dificultad de 'reprogramar' la trayectoria del robot; solventa la incapacidad de los AGV para percibir su entorno y reduce la dependencia humana en estos vehículos no tripulados.

Cada vehículo está equipado con cámaras y visión por barridos sucesivos de un láser utilizados en tareas de navegación y control. El robot cuenta con una base de datos preestablecida con imágenes del suelo, formando una especie de mapa. Así, se añade una cámara situada en la cara inferior del vehículo, que a través de la toma de muestras e imágenes del suelo, permite al vehículo posicionarse dentro de su particular mapa del entorno. 60

Una nueva cámara se coloca en el frontal del robot, su misión es encontrar palets y localizar los agujeros por donde el toro tendrá que introducir las uñas.

Figura 1.42: Estos robots se desplazan por una fábrica sin necesidad de ningún tipo de guía Fuente: http://www.rec.ri.cmu.edu/index.html

Este AGV de tipo remolcadora, incorpora vagones con los que transportar mayor cantidad de mercancías.

La cámara inferior del robot se encarga de situar al toro al lado del vagón en el que depositará la carga, eleva la carga con sus uñas y la depositará sobre el vagón.

En este último paso el láser tiene la misión de vigilar la estrecha separación entre el palet y el trailer.

Hoy en día ya están disponibles los AMTS, empleándose en industrias y almacenes, como solución eficiente al transporte de mercancías, presentando como principal ventaja la no necesidad de modificaciones en la infraestructura.

61

1.13.3. Servicios de comunidad

1.13.3.1. Limpieza

En el apartado de robots de servicios a infraestructuras y equipos, la aplicación de limpieza es una de las más demandadas. La limpieza de grandes superficies interiores (hipermercados, metro, aeropuertos, ferias) se efectúa con robots móviles autónomos equipados con las herramientas de limpieza necesarias y con el mapa del local.

Normalmente, por razones de seguridad la limpieza se efectúa cuando el establecimiento está cerrado y vacío. No obstante, algunos robots funcionan en entornos con personas por lo que requieren unas medidas de seguridad muy altas.

Dado que los sistemas GPS no son aplicables a interiores, es necesario desarrollar otros caminos para la solución del problema SLAM (Simultaneous Localization and Mapping).

Las soluciones más exitosas están basadas en técnicas de memorización y probabilísticas, fundamentadas por lo tanto en el Filtro de Bayes. Un ejemplo de este tipo de robots son los robots móviles recientemente introducidos en Alemania en algunas cadenas de supermercados. Para su funcionamiento, lo único que necesitan es realizar un tour para aprender el mapa de la superficie.

Figura 1.43: Robot limpiador Fuente: http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobotsMoviles.pdf

62

En el caso de la limpieza de grandes superficies de gran valor añadido, es obligado citar los ejemplos de los robots de limpieza exterior de los aviones. Con su ayuda el tiempo de limpieza se reduce a la mitad. Uno de estos robots es de más de 15 metros de alcance y tiene 11 GDL, integrando sensores de localización 3D, sensores táctiles, modelado 3D de superficies y pre-generación automáticas de trayectorias. Sin embargo, dado que el precio del robot es muy elevado, sus ventas son muy limitadas.

Otra alternativa para el mismo problema ha sido desarrollada por algunas compañías áreas. En este caso se han empleado múltiples robots manipuladores convencionales situados en raíles móviles, que permiten la limpieza de un Boeing 747 en un tiempo inferior a cuatro horas.

1.13.3.2. Inspección y mantenimiento

Otra aplicación interesante relacionada con el mantenimiento de grandes infraestructuras, es la de inspección de las mismas. La inspección de puentes de estructura metálica u hormigón puede ser realizada con robots, algunos de ellos fabricados en España.

Son robots escaladores de 6 ó 5 GDL (grados de libertad) con estructura simétrica y con una movilidad por el puente tipo oruga, encogiendo y estirando el cuerpo. De esta manera, el robot recorre toda la superficie enviando a 'tierra' la información que adquiere mediante los sensores instalados en él: visión y láser.

Figura 1.44: Robot oruga (izquierda) y articulación de 2 GDL (derecha) Fuente: http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobotsMoviles.pdf

63

Alguno de estos robots permite analizar y clasificar las muestras de los puentes de hormigón, con el fin de poder efectuar un rápido y seguro control de calidad; otros robots escaladores pueden inspeccionar la superficie de los tanques de almacenamiento de líquido, las superficies de los reactores nucleares u otras estructuras similares.

1.13.3.3. Robots manipuladores

Durante la época de la guerra fría, las investigaciones desarrolladas entorno a la energía nuclear, motivaron la aparición de los primeros tele-manipuladores destinados a la manipulación de elementos radioactivos sin riesgo para el operario.

En la actualidad, los robots se continúan utilizando para la manipulación de probetas y residuos radioactivos. Estos robots de intervención suelen consistir en un vehículo con mano remota mediante cable que lleva una o varias cámaras de televisión y un manipulador también tele-operado.

Asimismo, puede incorporar una serie de herramientas auxiliares adecuadas para poder superar las tareas que se pretende lleve a cabo (elementos de corte, instrumentos de medida, etc.).

Similares a estos robots son los utilizados en tareas de rescate y seguridad ciudadana (desactivación de explosivos por ejemplo).

Figura 1.45: Desactivador de explosivos Fuente: http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobotsMoviles.pdf

64

1.13.4. Vigilancia y Seguridad

1.13.4.1. Plataformas de implementación

Como plataforma nos referimos al soporte, objeto, aparato o vehículo sobre el cual están montados los sensores y el control si el robot es autónomo.

Estas plataformas dependen directamente del medio donde vaya a trabajar el robot, pues dependiendo del medio, tendrán una superficie sobre la que apoyarse, navegar o directamente no tendrá nada sobre lo que apoyarse y tendría que flotar o volar.

Por ello, clasificamos las plataformas en función del medio sobre el que vayan a actuar, ya sea tierra, mar o aire.

1.13.4.1.1. Terrestres

En esta categoría los robots están adaptados a circular por superficie firme, ya sea esta más o menos abrupta, por lo que se utilizarán unos soportes u otros.

Para superficies poco rugosas sin necesidad de demasiada tracción, lo que haremos será usar ruedas. Este tipo de robots se pueden usar sin problemas en entornos con un suelo sin demasiadas imperfecciones, como por ejemplo el de una oficina, una nave industrial, un museo, etc. El tipo más común de robots con este tipo de tracción son los que se asemejan a un coche.

Figura 1.46: Robot cuya tracción se basa en ruedas Fuente: http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobotsMoviles.pdf

65

Para terrenos exteriores en los que se quiera tener tracción en el mayor parte del tiempo, se utilizarán sistemas de tracción por cinta u oruga, con lo que nos podemos adaptar con facilidad a esas rugosidades donde las ruedas pueden fallar. Este tipo de tracción es muy útil en casos de vigilancia en campo abierto donde la rugosidad del terreno es grande, o simplemente en la calle, donde hay que superar distintos niveles de alturas en el terreno.

Figura 1.47: Robot de oruga Fuente:http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobots Moviles.pdf

Para terrenos tan abruptos que las orugas no puedan funcionar, o las alturas a salvar son demasiado elevadas, se pueden usar robots con patas, pues estas patas se flexionarán en función de la altura que necesitemos (siempre con limitaciones, claro).

Podríamos utilizar este sistema si el robot concreto necesita de subir y bajar escaleras altas, para evitar obstáculos que no sea del todo posible _anquear con orugas, etc.

Este tipo de tracción se utilizará en edificios con varias plantas en los que no sea posible tener como mínimo un robot por planta.

El resto del robot se monta normalmente sobre estas patas, no en los laterales como en el caso anterior.

Figura 1.48: Robot cuya tracción se basa en patas Fuente: http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobotsMoviles.pdf

66

La última forma en la que un robot se puede montar, que en realidad es todo él el soporte, serían los robots esféricos. Estos se pueden utilizar en los mismos entornos que los de ruedas pues ruedan sobre la superficie.

Normalmente para dirigir y mover este tipo de robots se utiliza un péndulo, además que también sirve para estabilizarlo en el caso de que se desvíe de su trayectoria.

Figura 1.49: Robot esférico Fuente: http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobotsMoviles.pdf

1.13.4.1.2. Aeréas

En este caso podemos dividir las plataformas sobre las que está implementado en helicópteros y aviones. Los mecanismos de sustentación son ligeramente diferentes según utilicemos uno u otro, pues el uno comprime el aire girando unas aspas para empujar hacia abajo el aire que tiene, mientras que el otro lo hace a través del movimiento lineal.

Los helicópteros tenemos una cierta ventaja por la maniobrabilidad en poco espacio, en cambio los aviones serán más aventajados en velocidad lineal recorriendo mucho espacio en poco tiempo.

Figura 1.50: Tipos de plataformas aéreas en las que se implementan robots Fuente: http://www.saic.com/products/aviation/vigilante/vig.html

67

1.13.4.1.3. Náuticas

En este caso los soportes sobre los que se puede soportar son subacuáticos o por superficie.

En el caso de los que utilizan vehículos de superficie podemos destacar las lanchas motoras, que se caracterizan por su velocidad. Este tipo de robots se podrían utilizar para vigilar puertos, detectar obstáculos, minas de superficie, etc.

En el caso de los vehículos subacuáticos tenemos sobre todo submarinos que se pueden ir a mayor profundidad.

Se podrían usar en el caso de tener que hacer misiones de inspección submarina, detección (y desactivación) de minas submarinas, submarinos y proyectiles enemigos, así como misiones de reconocimiento del fondo del mar.

Tanto este tipo de plataformas como las aéreas son más bien experimentales, aunque en algunos casos se han llevado a la práctica como se verá en la sección de proyectos.

Figura 1.51: Plataforma sobre las que se implementan robots acuáticos (lancha) Fuente: http://www.nosc.mil/robots/land/mdars/mdars.html

Figura 1.52: Plataforma sobre las que se implementan robots acuáticos (mini-submarino) Fuente: http://www.depeca.uah.es/docencia/LibreEleccion/IDMRM/trabajos0607/AplicacionesRobotsMoviles.pdf

68

1.13.5. Medicina

1.13.5.1. Introducción

En medicina, los robots se han desarrollada principalmente en el área de la cirugía, además de otras áreas como la de rehabilitación, traumatología, oftalmología, telemedicina.

Desde los años 80, los cirujanos no necesitan colocar sus manos dentro del cuerpo humano para realizar la operación, y se apoyan más en los avances de la tecnología de imágenes e instrumental endoscópico adecuado.

Con el avance de los robots se potencian aun más las capacidades de la cirugía moderna, permitiendo realizar cirugías con mayor precisión y llegar a lugares en los que la mano humana tiene limitaciones.

Hoy en día, sin embargo, se puede ver a los robots como una 'extensión o mejoramiento de las capacidades humanas', más que un reemplazo a los cirujanos.

1.13.5.2. Categorías de robots

Podemos destacar tres categorías de Robots, los cuales varían unos de otros en función de su objetivo en el campo de la quirúrgica: a) Robots Pasivos: manejo limitado, bajo riesgo. Por ejemplo: ubica y mantiene en posición algunos instrumentos quirúrgicos. b) Robots Restringidos: mayor autonomía y realizan tareas más invasivas, es decir, no dañan ni se diseminan a otros órganos y tejidos, pero aun restringidos a la parte esencial del procedimiento. c) Robots Activos: el robot está íntimamente involucrado en el procedimiento, con responsabilidad supervisada y riesgo. Dentro de estos últimos, existe lo que se conoce como los sistemas 'maestro - esclavo', en los que el robot manipula los instrumentos, pero es el cirujano el que le indica cómo hacerlo.

69

1.13.5.3 Aplicaciones robóticas quirúrgicas

Se pueden destacar dos como las principales aportaciones que puede dar la robótica en la cirugía. Por un parte la gran precisión de sus movimientos, superior a la de las manos del cirujano (temblor fisiológico) o errores de posicionamiento por falta de visibilidad, cansancio, etc. Además de la posibilidad de separar al cirujano de la sala de operaciones, pudiendo así llegar a pacientes situados en lugares alejados o inaccesibles.

Desde el punto de vista de la técnica quirúrgica, las aplicaciones de los robots en cirugía pueden agruparse en aquellas basadas en la cirugía por imagen: disponer de manera previa información que permita hacer una planificaron detallada de cómo acceder a la zona de trabajo. Y la cirugía invasiva: se busca producir el mínimo daño en los tejidos del paciente, disminuyendo el tiempo de recuperación y el riesgo de infección del paciente.

Existen Robots de una nueva generación que encajan en sistemas maestro-esclavo, como los robots Da Vinci y Zeus (Intuitive Surgical). Estos sistemas permiten realizar lo que conocemos como 'cirugía asistida por robot', en la cual el cirujano utiliza brazos mecánicos que repiten los movimientos que él realiza en una consola.

Figura 1.53: Da Vinci en acción Fuente: http://www.klinikum.uni-heidelberg.de/Surgical-robot.4792.0.html?&L=1

70

1.13.6. Ocio y entretenimiento

1.13.6.1. Introducción

Uno de los campos con mayor potencial de crecimiento en el sector de robots de servicios es el de la educación y el del entretenimiento. El interés en estas aplicaciones es tan grande que ha dado lugar a un nuevo término anglosajón: edutainment.

Sus aplicaciones potenciales son enormes: cuidado y vigilancia de niños, revisión de deberes escolares, juegos educativos, consultas didácticas, juego con 'mascotas', etc. En este último caso, la movilidad del robot no es lo más decisivo, pero sí su aspecto y realismo de actuación.

Un ejemplo destacado de este tipo de robots son las diferentes mascotas: perros, gatos, loros, focas. Sus ventas han sobrepasado todas las expectativas, como es el caso del perro AIBO de Sony.

Los modelos más recientes cuentan con sistemas de reconocimiento de voz, caras y signos, y tienen comportamiento emocional (tristeza, euforia, etc.).

1.13.6.2. Características principales

Un robot orientado al entretenimiento, es aquel que de forma semiautomática o totalmente automática proyecta actividades en beneficio y el bienestar hacia los humanos.

De manera que se puede armar que las características más importantes de estos robots pueden ser: a) Movilidad: Permite al robot moverse libremente en el entorno común, emulando el comportamiento de los humanos. Para ello el robot debe estar provisto de un sistema de propulsión basado en ruedas, orugas, patas, etcétera, o una combinación de éstas. 71

b) Manipulabilidad: La capacidad de manipular el robot por parte de aquellos que interactúen con él, el robot debe ser capaz de proporcionar una sensación naturalidad y fácil manejo para cumplir los objetivos de ocio y diversión para los cuales ha sido diseñado. c) Percepción: Deben estar provistos de un sistema sensorial, que interprete en lo posible el entorno de los humanos. La obtención de la información visual, espacial, táctil, etc., debe producirse de forma rápida y precisa. d) Inteligencia: Los robots deben estar provistos de un índice de inteligencia apropiado a sus objetivos. Su comportamiento debe estar basado en habilidades de todo tipo: motrices, afectivas, auto-aprendizaje, etc. La toma de decisiones en línea, el control por impulsos (reactivo) y la planificación mejoras que permiten una mejor relación maquina humano. e) Interface amigable: La interacción con el robot y su programación deben ser muy amigables a través de interfaces gráficas o por voz. Deben ser excluidos todos los tecnicismos posibles, con el objeto de convertir al robot en un dispositivo común y, si es posible, gobernado a distancia de forma sencilla e intuitiva mediante voz o gestos. f) Relativamente de bajo costo: El éxito de los robots dedicados al ocio y al entretenimiento depende en gran medida a su precio, sin embargo, no siempre es así, y algunos robots el coste es mas comparable a un electrodoméstico de gama alta.

Figura 1.54: Robot Aibo de Sony Fuente: http://www.eu.aibo.com

72

1.13.7. Agricultura

Podría decirse que no se están desarrollando nuevos robots con aplicaciones agrícolas, sino que toda la maquinaria ya existente está recibiendo las innovaciones tecnológicas que aporta la robótica móvil.

Los avances en este sector no sólo están encaminados a la automatización de las labores agrícolas, también buscan incrementar la seguridad de los operarios mediante el uso de sistemas de percepción y posicionamiento.

1.13.7.1. Tractor Autónomo

Figura 1.55: La NREC (National Robotics Engineering Center) convirtió el estándar 6410 de John Deere en un vehículo autónomo capaz de rociar con agua durante 7km. Fuente: http://www.rec.ri.cmu.edu/projects/safeguarding/index.htm

Este tractor utiliza un software desarrollado por la NREC que permite un control preciso y estimación de posición, el cual permite seguir autónomamente una trayectoria. Esta trayectoria es recordada por el tractor simplemente conduciendo el vehículo por ella.

La idea de un tractor autónomo surgió debido al peligro asociado a la fumigación de los cultivos al que se exponen los agricultores. 73

Además, si dicho tractor fuese capaz de desenvolverse en la noche, momento en el cual se incrementa la actividad de los bichos e insectos, se reduciría la cantidad de productos químicos fumigados produciendo el mismo efecto.

1.13.7.2. Cosechadora Autónoma

Se muestra a continuación otro ejemplo de maquinaria agrícola autónoma. La siguiente cosechadora basa su posicionamiento y navegación en un sistema GPS diferencial basado en la técnica teach/playback (enseñanza/repetición).

El GPS diferencial se basa en dos receptores, uno de ellos es estacionario, mientras el otro deambula realizando mediciones de posicionamiento. Gracias al sistema teach/playback, la cosechadora memoriza el campo de cultivo en el que está trabajando, para poder ser después programada para repetir la trayectoria almacenada.

Un sistema de segmentación de color, distingue entre el color verde del cereal sin cosechar, y el color marrón del rastrojo ya cosechado. De este modo la cosechadora conoce donde está la línea de corte y puede dirigir su trayectoria y posición.

Figura 1.56: Maquinaria agrícola autónoma: Cosechadora Autónoma Fuente: http://www.rec.ri.cmu.edu/projects/safeguarding/index.htm

74

1.13.8. Sector Automovilístico

La Robótica y la Automatización ocupan un importante lugar en el sector automovilístico. De hecho, es el primer consumidor de robots y de sistemas de automatización. Es el sector de mayor nivel de automatización y robotización, y motor de la innovación en este campo.

La automatización en este sector está orientada a maximizar la productividad, la calidad y la seguridad. A la vez, es el mejor ejemplo de sustitución de trabajos penosos y duros por otros de mejor calidad. La carga de herramientas pesadas y la permanencia en entornos peligrosos han sido sustituidas por trabajos de supervisión y mantenimiento.

De hecho, es uno de los sectores con menor grado de siniestrabilidad. En este sector se pueden distinguir dos grandes áreas de automatización: a) El diseño del producto (automóvil). b) El proceso de fabricación de automóviles.

En la primera área, las multinacionales del sector fijan el producto, realizándose el diseño en las casas matrices y no permitiendo ningún cambio sustancial, de manera que la automatización del producto es exclusividad de la marca.

En la segunda área, el proceso de fabricación, se da más autonomía a los fabricantes.

Este hecho, unido a que España es un destacado fabricante de automóviles, permite una mayor introducción de sistemas de automatización en la industria nacional de automoción.

Debido a que en dicho sector prácticamente en su totalidad la robótica y automatización que se emplea son los llamados 'brazos robóticos' y como su tratamiento y desarrollo está fuera de los objetivos de este trabajo, no daremos mayor relevancia ni haremos mas referencias a dicho sector.

75

CAPÍTULO II

MARCO METODOLÓGICO

2.1. Introducción

De acuerdo a nuestro tema la modalidad para investigar que hemos utilizado es de campo, ya que nos ha permitido hacer el estudio sistemático de los hechos en el lugar en el que se producen, el cual es en las aulas de la UPS-G en donde se encuentra nuestro problema de estudio.

Además como parte de la investigación de campo, también es documental ya que para efectuar nuestra investigación nos hemos apoyado en fuentes como libros de consultas, revistas, informes técnicos, internet, etc.

2.2. Tipo de estudio

2.2.1. Tipos de la Investigación

Nuestra investigación en cuanto al propósito, amplitud y profundidad, se aplicó base a los planteamientos de algunos autores de textos actualizados.

Los tipos de investigación aplicados son: descriptiva, de campo y explicativa.

a) Tipo de investigación descriptiva Comprende la descripción, registro, análisis e interpretación de la naturaleza actual, y la composición o procesos de los fenómenos. La investigación descriptiva trabaja sobre realidades de hechos, y su característica fundamental es la de presentarnos una interpretación correcta.

b) Tipo de investigación de campo Se apoya en informaciones que provienen entre otras, de entrevistas, cuestionarios, encuestas y observaciones. 76

c) Tipo de investigación explicativa

Es aquella que tiene relación causal, no sólo persigue describir o acercarse a un problema, sino que intenta encontrar las causas del mismo.

2.3. Métodos de investigación

En el proceso de nuestra investigación proyecto utilizamos el método hipotéticodeductivo, ya que planteamos una hipótesis que se puede analizar deductiva o inductivamente y posteriormente comprobarlo experimentalmente, es decir que la parte teórica no pierda su sentido, por ello la teoría se relaciona posteriormente con la realidad.

Como notamos una de las características de este método es que incluye otros métodos, el inductivo o el deductivo y el experimental.

La deducción, tiene a su favor que sigue pasos sencillos, lógicos y obvios que permiten el descubrimiento de algo que hemos pasado por alto.

La inducción, encontramos en ella aspectos importantes a tener en cuenta para realizar nuestra investigación como la cantidad de elementos del objeto de estudio, que tanta información podemos extraer de estos elementos, las características comunes entre ellos, tomando en cuenta las causas y caracteres necesarios que se relacionan con nuestro objeto de estudio.

La experimentación, muchos de nuestros conocimientos nos lo proporciona la experiencia y es un método que te permite sentirnos más seguros de lo que se estamos haciendo. A demás admite la modificación de variables, lo cual nos da vía libre para la corrección de errores y el mejoramiento de nuestra investigación.

También podríamos agregar que como futuros ingenieros, aplicaremos mucho este método, puesto que debemos buscar una solución de calidad, efectiva, funcional y de satisfacción a las necesidades en donde apliquemos nuestros conocimientos. 77

La reunión de todas estas fortalezas conforman los argumentos de nuestra elección del método hipotético deductivo.

2.4. Fuentes y técnicas para la recolección de información

Para recolectar los datos utilizaremos las técnicas como la encuesta, la cual será aplicada a los alumnos de la Facultad de Ingenierías y a los profesores de la misma.

2.4.1. La encuesta

La encuesta se proporciona directamente a los respondientes, quienes lo contestan. No hay intermediarios y las respuestas las hacen ellos mismos, se acudirá directamente a los alumnos y profesores de la Facultad de Ingenierías y se les entregará el cuestionario, quienes son la muestra del universo de nuestra población.

2.5. Población y muestra

2.5.1. Población

Cuando la investigación tiene que recurrir al trabajo de campo para conocer, clasificar y luego interpretar las características u opiniones de un cierto conjunto de personas, respecto de una o algunas variables, debe entonces delimitar ese conjunto.

El conjunto o universo de estudio está integrado por: Alumnos:

25

Profesor:

1

Total:

26

78

2.5.2. Muestra

En la mayoría de los casos no es factible (por limitación de recursos) recoger información sobre todas y cada una de las unidades de observación (individuos) de una población, en la investigación se diseña la recolección de datos respecto de una parte representativa de la población, el subconjunto se denomina muestra.

Consideramos a los alumnos de décimo ciclo como población de la Facultad de Ingenierías, en nuestro caso la población total es de 25 alumnos de la materia de Automatismo V, en donde para realizar un muestreo con una selección del 72% de 25 alumnos, correspondiente a un numero de 18 estudiantes.

Considerando que el universo de los estudiantes es amplio, vamos a extraer una muestra representativa, bajo la siguiente fórmula 2.1 considerando un margen de error del 6%: n=

PQ ⋅ N (E)2 + PQ ( N − 1) (K )2

n = Tamaño de muestra N = Población Total PQ = 0.25 E 2 = Error (6% = 0.06) K 2 = Constante de 1 al cuadrado.

n =

n =

0.25 x 25 (0.06) 2 + 0.25 (25 − 1) (1) 2

0.25 x 25  0.0036  24  + 0.25  1 

n =

6.25 24(0.0036) + 0.25

n =

6.25 = 18 alumnos. 0.34 79

(2.1)

2.6. Tratamiento de la información

A continuación se tabularon y organizaron los datos, los respectivos cuadros y gráficos con su respectiva descripción de los resultados, los modelos estadísticos, la justificación del por qué se usaron y cómo se efectuaron las pruebas de hipótesis realizadas.

2.7. Proyección de resultados esperados

La investigación será muy positiva para los estudiantes de la Facultad de Ingenierías que toman la materia de Automatismo V, porque al realizar prácticas de robótica y micro robótica moderna, se verán motivados a desarrollar sus conocimientos en este nuevo ámbito que está creciendo en nuestro país como es la Robótica.

Los robots hexápodos permitirán a todos los alumnos enriquecer sus conocimientos teóricos al poder realizar prácticas con un robot didáctico.

2.8. Análisis de Resultados

Las encuestas se realizaron a los alumnos del décimo ciclo que toman la materia de Automatismo V de la carrera de Ingeniería Electrónica de la UPSG, quienes junto a los futuros estudiantes serán los más beneficiados con el diseño y construcción de los robots hexápodos, generando una gran competitividad en el conocimiento de la robótica y micro robótica moderna con respecto a las demás universidades.

Actualmente la falta de material didáctico no permite a los estudiantes de la materia puedan desarrollar sus prácticas de robótica o micro robótica moderna, para lo cual se realizaron las siguientes preguntas por medio de la encuesta 1:

1

VER EN ANEXO 1

80

Pregunta 1. ¿Usted cree que el bajo incentivo a la creatividad y diseño electrónico es uno de los motivos para que los estudiantes no se involucren con la robótica y a su vez no sean competentes con las nuevas exigencias de la micro robótica moderna?

ALTERNATIVA FRECUENCIA

%

Si

17

94,44

No

1

5,56

TOTAL

18

100

Tabla 2.1: Distribución de Frecuencias de la Pregunta 1 Fuente: Autores

Pregunta 1

No 6%

Si No

Si 94%

Figura 2.1: Resultado de la pregunta 1 Fuente: Autores

El resultado demuestra que la falta de incentivo a la creatividad y diseño electrónico influye en la motivación que se requiere para que los estudiantes se involucren con la robótica y se sientan más competitivos con las nuevas exigencias de la micro robótica moderna.

81

Pregunta 2. ¿Cree usted que la falta de material didáctico para realizar prácticas de robótica influye en el desarrollo de los conocimientos de la micro robótica moderna?

ALTERNATIVA FRECUENCIA

%

Si

17

94,44

No

1

5,56

TOTAL

18

100

Tabla 2.2: Distribución de Frecuencias de la Pregunta 2 Fuente: Autores

Pregunta 2

No 6%

Si No

Si 94%

Figura 2.2: Resultado de la pregunta 2 Fuente: Autores

El 94% de los alumnos consideran que la falta de material didáctico para realizar prácticas de robótica es un problema para adquirir los conocimientos prácticos.

82

Pregunta 3. ¿Piensa usted que la falta de robots didácticos en la UPS-G incide a que los estudiantes no tengan prácticas de robótica o micro robótica moderna?

ALTERNATIVA FRECUENCIA

%

Si

18

100,00

No

0

0,00

TOTAL

18

100

Tabla 2.3: Distribución de Frecuencias de la Pregunta 3 Fuente: Autores

Pregunta 3

No 0%

Si No

Si 100%

Figura 2.3: Resultado de la pregunta 3 Fuente: Autores

Este resultado esperado demuestra que la falta de robots didácticos en la UPS-G no permite que los alumnos de la Facultad de Ingenierías puedan realizar prácticas de robótica o micro robótica moderna y a su vez puedan desarrollar todos los conocimientos teóricos.

83

Pregunta 4. ¿Piensa usted que la construcción de robots didácticos para la UPS-G ayudará a mejorar sus conocimientos de robótica y micro robótica moderna?

ALTERNATIVA FRECUENCIA

%

Si

18

100,00

No

0

0,00

TOTAL

18

100

Tabla 2.4: Distribución de Frecuencias de la Pregunta 4 Fuente: Autores

Pregunta 4

No 0%

Si No

Si 100%

Figura 2.4: Resultado de la pregunta 4 Fuente: Autores

De igual manera este resultado demuestra que el 100% de los alumnos están de acuerdo que sería de gran utilidad la construcción de robots didácticos para la UPS-G, el cual permitirá afianzar más los conocimientos teóricos y prácticos de los alumnos de la Facultad de Ingenierías, y sea una pauta para que los alumnos empiecen a involucrarse en el diseño y construcción de robots o micro robots los cuales no lo serían didácticos sino también para aplicaciones verdaderas.

84

2.9. Recopilación de los resultados.

De acuerdo a los resultados obtenidos se verifica que la hipótesis planteada al inicio de nuestra investigación, que por ser una hipótesis afirmativa, con planteamiento de dos variables se comprobará de manera descriptiva, la misma que es verificada en sus resultados tomando como referencia el análisis e interpretación de los resultados de las encuestas aplicadas a los alumnos de la UPS, por las siguientes razones:

a) El incentivo a la creatividad y diseño electrónico induce a que los estudiantes se involucren con la robótica haciendo que ellos sean competentes a las nuevas exigencias de la micro robótica moderna.

b) El material didáctico para realizar prácticas de robótica o micro robótica moderna influye en el desarrollo de los conocimientos necesarios para que los alumnos sean competentes.

c) Unos robot hexápodos didácticos en la Universidad Politécnica Salesiana de Guayaquil incide a que los estudiantes tengan prácticas de robótica o micro robótica moderna y así participen en los torneos a nivel nacional como internacional representando a su institución universitaria.

85

CAPÍTULO III

ARQUITECTURA DE LOS SISTEMAS Y SUS COMPONENTES

3.1. Introducción Este proyecto de tesis tiene como nombre: Diseño y Construcción de 2 Robots Hexápodos HESEEX-UPS (Hexápodo de Seis Extremidades) para Laboratorio de Micro Robótica de UPS. Los sistemas del proyecto son dos robots hexápodos llamados Hansel y Gretel cada uno con una aplicación específica.

3.2. Desarrollo de un Robot Hexápodo listo para ser programado

Inicialmente se ha desarrollado cada robot hexápodo para que reciba una aplicación tal como se muestra en la siguiente figura:

Figura 3.1: Diagrama en bloques de un Robot Hexápodo listo para recibir una aplicación Fuente: Autores

86

3.2.1. Datos técnicos generales de un robot hexápodo listo para ser programado

Características Generales Software Utilizados: MicroCode Studio y Compilador Pic Basic Pro Lenguajes de Programación: ICSP (Programación Serial en Circuito) Voltaje de Alimentación: 8 VDC (Batería de Litio Recargable) 10 VDC (Adaptador de Voltaje) 9 VDC (Bateria de Niquel-Hidruro) Corriente de Alimentación 3000 mA (Batería de Litio Recargable) 850 mA (Adaptador de Voltaje) 170 mA (Bateria de Niquel-Hidruro) Interfaz: Tarjeta Controladora, Cable USB Motores: 18 servomotores Grados de Libertad: 3 grados por cada extremidad Construcción: Estructura de hierro, aluminio, PVC, fibra de vidrio, nylon, entre otras. Aplicación: Educación e Investigación Tabla 3.1: Características de un robot hexápodo listo para ser programado Fuente: Autores

A continuación se muestra la construcción de un Robot Hexápodo el cual posee una tarjeta controladora la misma que comanda a los servomotores y es programada mediante el compilador GTP-PLUS USB.

Figura 3.2: Robot Hexápodo listo para recibir una aplicación Fuente: Autores

87

3.2.2. Dispositivos de Programación

3.2.2.1. Programador GTP-PLUS USB

Este programador permite su uso sin alimentarlo externamente ya que se alimenta por USB, permite grabar micros de microchip (pics) y micros de Atmel y además es actualizable su firmware.

Figura 3.3: Programador GTP-PLUS USB Fuente: http://www.cirware.com.ar/blog/?p=58

A continuación mostramos las especificaciones generales:

Especificaciones Generales del Programador GT-PLUS USB Requerimiento de Energía: Entrada de voltaje 5VDC Software de Compilación: WinPic800 Interfaz con la PC: USB 2.0 Hardware: Programador Universal (PIC, ATMEL, EEPROM) PIC de programación PIC2650 Máxima Velocidad 12 Mb/s Firmware Actualizable Interfaz con el Zócalo: Cinta Flex Tabla 3.2: Características Generales de Programador GT-PLUS USB Fuente: http://www.cirware.com.ar/blog/?p=58

88

3.2.3. Dispositivo de Control

3.2.3.1. PCB Controladora

La tarjeta PCB Controladora controla los movimientos de los 18 servomotores que poseen las extremidades del robot.

Figura 3.4: PCB Controladora Fuente: Autores

A continuación mostramos las especificaciones generales:

Especificaciones Generales de la Tarjeta PCB Controladora Alimentación: 5 Vdc, 13Vdc Sistema de Regulación de Voltaje: 2 Transistores 78R05 (Cada uno para un grupo de 9 servomotores) Microcontrolador: PIC 16F877A Puertos Utilizados: Puerto B, Puerto C y Puerto D. Memoria de programa: 8k Enceramiento: Pulsante (P1) Frecuencia: 4 MHz Material: PCB Tabla 3.3: Características Generales de la Tarjeta PCB Controladora Fuente: Autores

89

3.2.4. Dispositivo de Alimentación

3.2.4.1. Baterías de Polímero de Litio (Li-Po)

La tarjeta PCB Controladora es alimentada por una batería de Polímero de Litio de de 7.4 V a 3000 mAh, es una revolución en el vuelo eléctrico y robótico.

Figura 3.5: Batería de Litio Polímero Fuente: Autores

Realmente este invento maravilloso que cuenta con las siguientes ventajas: • Alta densidad de energía, prácticamente dobla a las Ni-Mh. • Escaso volumen y en un formato plano. Apenas ocupan espacio. • Alta tasa de descarga, cercana a las Ni-Cd. • Alto voltaje por célula, lo que nos permite voltajes de 14v sin ocupar volúmenes exagerados. • Escasa resistencia interna, lo cual permite aprovechar casi el 100% de la energía.

Desgraciadamente también tienen sus inconvenientes: • No admiten carga rápida. Tardaremos un mínimo de una hora en cargarlas. • Se necesita un cargador específico, incluso para carga lenta. Afortunadamente ya son económicos. • No toleran cortocircuitos, sobrecargas o excesiva temperatura. En estos casos se hinchan pudiendo llegar a inflamarse. • No toleran abusos, como descargas profundas o sobreconsumo. En esos casos quedan inutilizadas o se acorta su vida.

90

3.2.4.1.1. Causas de deterioro de las baterías de Li-Po

Los factores del porque se deterioran o estropean las baterías de Li-Po son los siguientes: 1.- Por envejecimiento: Las Li-Po no son estables y van perdiendo sus características con el tiempo, aunque no las usemos. Se supone que "caducan" a los tres años. 2.- Por uso: Cuando descargamos una Li-Po y la volvemos a cargar, no queda igual que al principio. Por eso las Li-Po tienen un número limitado de cargas (unas 350 según el fabricante). 3.- Por sobrecarga: Cuando cargamos las Li-Po con parámetros no especificados por el fabricante estas se deterioran. Intensidades o voltajes inadecuados fastidian las baterías y pueden hacerlas reventar. 4.- Por sobredescarga: Descargar Li-Po por encima de cierta intensidad acorta sensiblemente la vida de estas. De nuevo puede hacer que revienten. 5.- Por temperatura: Si las Li-Po superan cierta temperatura, tanto en carga, descarga o almacenamiento, se estropean. De nuevo pueden reventar. 6.- Por autodescarga: Cuando las Li-Po están cargadas, sus componentes se encuentran en un estado muy reactivo. Poco a poco las baterías se van descargando, deteriorándose en el proceso. 7.- Por descarga profunda: Si se baja de determinado voltaje las baterías se dañan.

Los teléfonos móviles u ordenadores supervisan el voltaje y cortan la alimentación cuando la situación es peligrosa. Nosotros usamos las baterías "sin circuitos de corte" y no contamos con esa protección.

3.2.4.1.2. Recomendaciones

1.- Nada podemos hacer con el envejecimiento. Pero sí podemos evitar comprar las baterías en lugares donde vendan pocas.

Seguramente esta batería llevara un año a la venta, con lo que ya ha gastado el 30% de su vida útil. Tampoco compres ofertas por finalización de stock. Suelen ser baterías viejas. 91

2.- El tema de la temperatura podemos hacer mucho: • No cargar las baterías en sitios cerrados, como dentro de un coche. Tampoco hacerlo al sol. • No cargar las baterías justo después de usarlas. Esperar a que se enfríen. • No dejar las baterías en el maletero del coche (especialmente en el verano).

3.- Las baterías no se deben guardar cargadas a tope. Tampoco deben estar completamente descargadas, pues por autodescarga corremos el peligro de que bajen de 2.7V por celda. Si vamos a estar mucho tiempo sin usarlas (meses), almacenarlas a media carga.

4.- Según el fabricante nunca se ha de descargar la batería por debajo de 2.7V por celda.

Debido a que entre 2.7 y 2.9 hay muy poca energía (apenas para volar 30 segundos mas) y la carga por debajo de 2.9 es muy lenta, es recomendable no bajar de 2.9 voltios por celda.

3.2.4.2. Baterías de Níquel - Hidruro Metálico (Ni-MH)

Este tipo de baterías ofrecen en torno a una mejor de un 40% de capacidad (autonomía) suplementaria respecto a las de NiCd de un volumen equivalente (MAh). Son un poquitín más ligeras y no están sujetas al efecto memoria y tienen una vida media de unas 600 a 700 ciclos de carga. Se usan habitualmente portátiles y teléfonos móviles.

Figura 3.6: Batería de Níquel – Hidruro Metálico Fuente: Autores

92

Recargables. Reemplazó rápido al níquel-cadmio porque no sufre de los problemas que tiene la anterior.

Son pilas secundarias como las de níquel/cadmio, pero donde el cadmio ha sido reemplazado por una aleación metálica capaz de almacenar hidrógeno, que cumple el papel de ánodo. El cátodo es óxido de níquel y el electrolito hidróxido de potasio.

La densidad de energía producida por las pilas Ni/Mh es el doble de la producida por las Ni/Cd, a voltajes operativos similares, por lo que representan la nueva generación de pilas recargables que reemplazará a estas últimas.

Existen muchos tipos de baterías las cuales pueden alimentar a cualquier robot o dispositivo que lo requiera2.

3.2.4.3. Adaptador de Voltaje 110VAC/10VDC

Existe otra opción que no sean las baterías, la cual pueden ser los adaptadores de voltaje, el inconveniente de estos es que necesitan estar conectados a la red eléctrica. La siguiente figura muestra un adaptador de voltaje que transforma 110 VAC a 10 VDC y nos proporciona una corriente de 850 mA.

Figura 3.7: Adaptador de voltaje 110VA / 10Vdc Fuente: Autores

2

VER EN ANEXO 2 93

3.2.5. Dispositivo de Movimiento

3.2.5.1. Servomotor HITEC HS-311

El servomotor es el encargado de realizar los movimientos para cada extremidad del robot hexápodo, el modelo utilizado es el HITEC HS-311.

Figura 3.8: Servomotor HITEC HS-311 Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

A continuación mostramos las especificaciones generales:

Especificaciones Generales del Servomotor HITEC HS-311 Voltaje de operación: 4.8 a 6.0 Vdc Sistema de control: Control de Ancho de Pulso 1500usec Pulso requerido: 3.5 Vpp (Ondas cuadradas) Temperatura de operación: -20 a 60ºC Velocidad de operación (4.8 V) 0.19sec/60 ° sin carga Velocidad de operación (6.0 V) 0.15sec/60 ° sin carga Torque (4.8V): 42 g / (3,0 kg / cm) Torque (6.0V): 49 g / (4,5 kg / cm) Consumo de corriente (4.8V): 7.4mA/idle, 160mA en carga Consumo de corriente (6.0V): 7.7mA/idle, 180mA en carga Ancho de banda en reposo: 5usec Ángulo de funcionamiento: 45 ° de un lado pulso que viaja 450usec Dirección: Multi-direccional Tipo de motor: Metal tubular Conector de cable Longitud: 11.81 "(300mm) Peso: 1.52 oz (43g) Dimensiones: 41 x 20 x 37 mm (L x An x Al) Tabla 3.4: Características Generales del Servomotor HITEC HS-311 Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

94

Los servomotores se mueven a diferentes posiciones, se componen básicamente de un motor de corriente continua, engranajes, un sensor de posición y electrónica para controlar el motor.

Suelen estar limitados a 180 grados. Se controlan con una onda de serie de pulsos modulados en anchura de pulsos. La anchura (longitud) marca la cantidad de giro el control de la anchura es crítica en cambio a separación de los pulsos no es importante.

El servo puede incorporar acoplado un reductor de velocidad, de manera que obtenemos un motor con un par de giro bastante potente como para poder hacer mover las patas de nuestro hexápodo.

El recorrido de salida es de 180º, pero se puede modificar hasta obtener un giro de 360º para actuar como un motor convencional, dependiendo de nuestra aplicación. Estos motores traen incorporado retroalimentación de posición. Su rango típico de movimiento de es 90º o 180º. Son capaces de entregar gran precisión en su control.

Figura 3.9: Control de la posición del servomotor mediante PWM. Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

Este se realiza en base a pulsos que van de 1 a 2 milisegundos para motores cuyo rango de movimiento es de 90º y de 0.5 a 2.5 milisegundos para los que tienen un rango de 180º, repetidos 60 veces por segundo.

95

La posición del servo motor es proporcional al ancho del pulso. Por convención para pulsos de 1.5 milisegundos estos se sitúan en su posición central.

El servomotor está conformado por:

Figura 3.10: Partes internas y externas de un Servomotor Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

Figura 3.11: Componentes de un Servomotor.

Fuente: http://e-md.upc.edu/diposit/material/26459/26459.pdf

El rango de voltajes de estos motores va desde los 4.8 voltios hasta los 7.2 voltios. Los robots según su aplicación pueden utilizar cualquier tipo de motor 3.

3

VER EN ANEXO 3 96

3.3. Desarrollo del Robot Hexápodo “Gretel”

La aplicación del robot Hexápodo “Gretel” radica en el control del desplazamiento lineal mediante un control en base a diferentes pulsantes para cada uno de los movimientos que controlará al robot hexápodo y también a la cámara de A/V que trasmitirá señales de video de lo que ocurre en su entorno, la comunicación entre el mando y el robot será mediante un transmisor de radiofrecuencia 433.92 MHz RF transmisor – receptor y microcontroladores PIC de MicroChip.

Figura 3.12: Diagrama en bloques del Robot Hexápodo “Gretel” Fuente: Autores

97

3.3.1. Tarjeta Transmisora RF 434Mhz

Es la encargada de gestionar los movimientos del robot hexápodo y de la cámara que lleva incorporada.

Figura 3.13: Tarjeta Transmisora RF 434 MHz Fuente: Autores

A continuación mostramos las especificaciones generales de la tarjeta transmisora RF 434 MHz:

Especificaciones Generales de la Tarjeta Transmisora RF 434 MHz. Alimentación: 9 Vdc Comunicación: Inalámbrica Módulo Inalámbrico: FST-4 Frecuencia Inalámbrica: 434 MHz Sistema de Regulación de Voltaje: 1 Transistor 78R05 Microcontrolador: PIC 16F628A Puertos Utilizados: Puerto A y Puerto B Control de Movimientos del robot: Pulsantes (P2 a P5) Control de Movimiento de cámara: Pulsantes (P6 a P9) Frecuencia del PIC: 4 MHz Enceramiento: Pulsante (P1) Memoria de programa: 2K Material: PCB Dimensiones: 9,5 x 7 cm (Largo x Ancho) Tabla 3.5: Características Generales de la tarjeta transmisora RF 434 MHz. Fuente: Autores

98

3.3.2. Tarjeta Receptora RF 434Mhz

Es la encargada de receptar los mandos de control y gestionar los movimientos del robot hexápodo y de la cámara de audio video.

Figura 3.14: Tarjeta Receptora RF 434 MHz Fuente: Autores

A continuación mostramos las especificaciones generales de la tarjeta receptora RF 434 MHz:

Especificaciones Generales de la Tarjeta Receptora RF 434 MHz. Alimentación: 9 Vdc Comunicación: Inalámbrica Módulo Inalámbrico: CZS-3 Frecuencia Inalámbrica: 434 MHz Sistema de Regulación de Voltaje: 1 Transistor 78R05 Microcontroladores: 2 PIC 16F628A (uno para movimientos del robot y cámara A/V y otro para conectar con la tarjeta controladora). Puertos Utilizados: Puerto A y Puerto B Indicadores movimiento hexápodo Led 1 a Led 4 Indicadores movimiento cámara Led 5 a Led 8 Frecuencia del PIC: 4 MHz Memoria de programa: 2K Material: PCB Dimensiones 9,5 cm x 7 cm Tabla 3.6: Características Generales de la tarjeta receptora RF 434 MHz. Fuente: Autores

99

3.3.3. Articulación PAL/TILT

Es la encargada de gestionar el audio y video el cual va a ser visualizado mediante una PC, los movimientos de esta articulación son controlados por la tarjeta receptora inalámbrica. La articulación consta de una cámara espía infrarroja y 2 micro-servos que se realizan el movimiento horizontal y vertical.

Figura 3.15: Articulación PAL/TILT Fuente: Autores

A continuación mostramos las especificaciones generales de la articulación PAL/TILT:

Especificaciones Generales de la Articulación PAL/TILT. Alimentación de cámara espía: 9 Vdc Comunicación de cámara espía: Inalámbrica Potencia de cámara espía: 50 mW Resolución de cámara espía: Alta resolución (+ de 380 líneas en TV) Alimentación adicional de cámara: Adaptador de voltaje de 8 V Iluminación mínima de cámara: 3 lux Frecuencia de salida: 900 MHz – 1200 MHz Sistema de movimiento de cámara: 2 micro-servos (movimiento x - y) Alimentación de micro-servos Movimiento plano horizontal: 180º Movimiento plano vertical: 90º Tabla 3.7: Características Generales de la Articulación PAL/TILT. Fuente: http://www.superinventos.com/S130347.htm

100

3.3.4. Receptor de cámara inalámbrica de video

Se encarga de gestionar la transmisión de video que proviene de la cámara espía inalámbrica infrarroja.

Figura 3.16: Receptor de cámara inalámbrica de video Fuente: http://www.superinventos.com/S130347.htm

Especificaciones Generales del Receptor de cámara inalámbrica de video. Alimentación: 9 y 12 Vdc Frecuencia de trabajo: 900Mhz-1200Mhz Salida: RCA (Video) Dimensiones: 20 x 80 x 140 mm Peso: 145g Tabla 3.8: Características Generales del Receptor de cámara inalámbrica de video. Fuente: http://www.superinventos.com/S130347.htm

3.3.5. Capturadora de Video / USB

Se encarga de capturar la imagen de video y permite visualizarla en una PC.

Figura 3.17: Capturadora de Video / USB Fuente: http://www.superinventos.com/S130347.htm

101

A continuación mostramos las especificaciones generales de la Capturadora de Video con puerto USB:

Especificaciones Generales de la Capturadora de Video/USB. Interface: USB 2.0 compatible USB 1.1 Consumo de energía: Alimentado por puerto USB (No necesita fuente de energía externa). Entrada de Video: TV, S-Video, Compuesto (RCA) Video Captura: Tasa de 25 Cuadros/segundo (PAL) Tasa de 30 Cuadros/segundo (NTSC) Estándares de TV: NTSC_M, PAL_I/D/B Resolución de Video: 720*576 (PAL), 720*480 (NTSC) Entrada de audio: Estéreo audio (L) (R) Soporte de audio: Estéreo, Mono Dimensiones: 13.5cm*8.0cm*3.2cm Peso: 204g Tabla 3.9: Características Generales de la Capturadora de Video/USB. Fuente: http://www.superinventos.com/S130347.htm

3.4. Desarrollo del Robot Hexápodo “Hansel”

La aplicación del robot hexápodo “Hansel” será la integración de 2 sensores ultrasónicos SRF05 y la PCB controladora principal la cual consistirá en el desplazamiento previo el reconocimiento de obstáculos a una cierta distancia y además también emitirá un sonido previamente grabado en el robot.

Figura 3.18: Diagrama en bloques del Robot Hexápodo “Hansel” Fuente: Autores

102

3.4.1. Tarjeta Controladora de Sensores Ultrasónicos

Es la encargada de gestionar los movimientos del robot hexápodo para detectar algún tipo de interrupción durante su trayecto y que este tome decisiones de desplazamiento por sí solo.

Figura 3.19: Tarjeta Controladora de Sensores Ultrasónicos Fuente: Autores

A continuación mostramos las especificaciones generales de la tarjeta controladora de Sensores Ultrasónicos:

Especificaciones Generales de la Tarjeta Controladora de Sensores Ultrasónicos. Alimentación: 9 Vdc Comunicación: Ultrasónico Módulo Ultrasónico: SRF05 Frecuencia Ultrasónica: 40 KHz Sistema de Regulación de Voltaje: 1 Transistor 78R05 Microcontrolador: PIC 16F628A Puertos Utilizados: Puerto A y Puerto B Frecuencia del PIC: 4 MHz Enceramiento: Pulsante (P1) Memoria de programa: 2K Material: PCB Dimensiones: 9,5 x 7 cm (Largo x Ancho) Tabla 3.10: Características Generales de la tarjeta controladora de Sensores Ultrasónicos Fuente: Autores

103

3.4.2. Sensor Ultrasónico

El módulo SRF05 es una evolución del módulo SRF04 y está diseñado para aumentar la flexibilidad, aumentar el rango de medida y reducir costos. Es totalmente compatible con el SRF04 y el rango de medida se incrementa de 3 a 4 metros.

Figura 3.20: Sensor Ultrasónico SRF05 Fuente: http://www.msebilbao.com/tienda/images/SRF05.jpg

A continuación mostramos las especificaciones generales de la tarjeta del Sensor Ultrasónico SRF05:

Especificaciones Generales del Sensor Ultrasónico SRF05 Alimentación: + 5 Vcc Comunicación: Ultrasónico Frecuencia Ultrasónica: 40 KHz Rango Máximo: 4m Rango Mínimo: 1.7 cm Duración mínima del pulso de 10 micro segundos disparo (nivel TTL) Duración del pulso de eco de salida 100-25000 micro segundos (nivel TTL) Tiempo mínimo de espera entre 20 milisegundos una medida y el inicio de otra Material de la placa: PCB Dimensiones: 43 x 20 x 17 mm (Largo x Ancho) Tabla 3.11: Características Generales del Sensor ultrasónico SRF05 Fuente: Autores

Según la aplicación el robot hexápodo puede tener una amplia gama de sensores4. 4

VER EN ANEXO 4 104

3.4.3. Tarjeta Grabadora / Reproductora de ISDN2560

Es la encargada de gestionar los mensajes de voz que serán reproducidos cuando el robot se encuentre con algún obstáculo.

Figura 3.21: Tarjeta Grabadora / Reproductora de ISDN2560 Fuente: Autores

A continuación mostramos las especificaciones generales de la Tarjeta Grabadora / Reproductora de ISDN2560:

Especificaciones Generales de la Tarjeta Grabadora / Reproductora de ISDN2560 Alimentación: + 5 Vcc Duración de grabación: 60 segundos Operación en bajo consumo: 1 micro amperio Fuente de reloj: Interno Reproducción de voz/audio: Alta calidad Retención de memoria: 100 años Encapsulados: DIP, SOIC y TSOP Temperatura de operación: -40ºC a 80ºC Material de la placa: PCB Dimensiones: 43 x 20 x 17 mm (Largo x Ancho) Tabla 3.12: Características Generales de la Tarjeta Grabadora / Reproductora de ISDN2560 Fuente: Autores

105

CAPÍTULO IV

EL MICROCONTROLADOR PIC

4.1 Introducción

Existen varias empresas que actualmente se encuentran fabricando estas microcomputadoras, las cuales poseen variedad de modelos que nos facilitan la implementación de proyectos que se pueden realizar, entre las cuales podemos destacar MICROCHIP TECHNOLOGY Inc.

Microchip es una empresa que esta liderando las ventas de este dispositivo, por su bajo costo, por tener una gran variedad de modelos, y por su programación muy sencilla, la que hace que el microcontrolador PIC se este estudiando en diversas universidades de gran prestigio a nivel mundial.

4.2 Microcontroladores - Sistemas microcontrolados

El diagrama de un sistema microcontrolador sería algo así:

Figura 4.1: Diagrama de bloques del microcontrolador. Fuente: http://perso.wanadoo.es/luis_ju/pic/pic01.html

Los dispositivos de entrada pueden ser un teclado, un interruptor, un sensor, etc. Los dispositivos de salida pueden ser LED’s pequeños parlantes, zumbadores, interruptores de potencia (tiristores, optoacopladores), u otros dispositivos como relés, luces, etc. Aquí tienes una representación en bloques del microcontrolador, para que te des una idea, y puedes ver que lo adaptamos tal y cual es un ordenador, con su fuente de alimentación, un circuito de reloj y el chip microcontrolador, el cual dispone de su

106

CPU, sus memorias, y por supuesto, sus puertos de comunicación listos para conectarse al mundo exterior.

Figura 4.2: Estructura interna del microcontrolador PIC Fuente: http://perso.wanadoo.es/luis_ju/pic/pic01.html

Es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica, sus partes o componentes principales son: •

Memoria ROM (Memoria de sólo lectura)



Memoria RAM (Memoria de acceso aleatorio)



Líneas de entrada/salida (I/O) También llamados puertos



Lógica de control Coordina la interacción entre los demás bloques

En la figura 2 se puede observar la estructura interna de un microcontrolador, y como se puede apreciar posee un circuito externo de reloj, el cual indica al micro la velocidad a la que debe trabajar.

Este circuito, que se conoce como oscilador o reloj, es muy simple pero de vital importancia para el buen funcionamiento del sistema, ya que sin el no podríamos ejecutar las órdenes o las líneas de instrucciones que se encuentran programadas en el mismo.

Los diferentes tipos de cristal más comunes para un microcontrolador PIC son: •

RC. Oscilador con resistencia y condensador. 107



XT. Cristal.



HS. Cristal de alta velocidad.



LP. Cristal para baja frecuencia y bajo consumo de potencia.

En el momento de programar o grabar el microcontrolador se debe especificar que tipo de oscilador se usa. Esto se hace a través de unos fusibles llamados “de configuración” o fuses. Aquí utilizaremos el cristal de 4 MHz, porque garantiza mayor precisión y un buen arranque del microcontrolador. Internamente esta frecuencia es dividida por cuatro, lo que hace que la frecuencia efectiva de trabajo sea de 1 MHz, por lo que cada instrucción se ejecuta en un microsegundo. El cristal debe ir acompañado de dos condensadores y el modo de conexión es el siguiente:

Figura 4.3: Cristal Oscilador Fuente: http://perso.wanadoo.es/luis_ju/pic/pic02.html

Si no requieres mucha precisión en el oscilador, puedes utilizar una resistencia y un condensador, como se muestra en la figura 4 donde OSC2 queda libre entregando una señal cuya frecuencia es la del OSC/4.

Figura 4.4: Circuito resonador con resistencia y capacitor Fuente: http://perso.wanadoo.es/luis_ju/pic/pic02.html

Según las recomendaciones de Microchip R puede tomar valores entre 5k y 100k, y C superior a 20pf.

108

4.3 Arquitectura interna del Microcontrolador PIC

Hay dos arquitecturas conocidas; la clásica de Von Neuman, y la arquitectura Harvard:

4.3.1 Arquitectura Von Neuman

Dispone de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control).

.

Figura 4.5: Diagrama en bloques de arquitectura Von Neuman Fuente: http://perso.wanadoo.es/luis_ju/pic/pic02.html

4.3.2 Arquitectura Harvard

Dispone de dos memorias independientes, una que contiene sólo instrucciones, y otra que contiene sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias, ésta es la estructura para los PIC's.

Figura 4.6: Diagrama en bloques de arquitectura Harvard Fuente: http://perso.wanadoo.es/luis_ju/pic/pic02.html

109

4.4 El procesador o UCP (Unidad central de proceso)

Es el elemento más importante del microcontrolador. Se encarga de direccionar la memoria de instrucciones, recibir el código OP de la instrucción en curso, decodificarlo y ejecutarlo.

También realiza la búsqueda de los operandos y almacena el resultado.

4.5 Memoria de programa

Esta vendría a ser la memoria de instrucciones, aquí es donde almacenaremos nuestro programa o código que el micro debe ejecutar.

No hay posibilidad de utilizar memorias externas de ampliación. Son 5 los tipos de memoria pero sólo describiremos dos: •

Memorias EEPROM: (Electrical Erasable Programmable Read Only Memory - Memoria de sólo lectura Programable y borrable eléctricamente).

Común en el PIC 16C84. Ésta tarea se hace a través de un circuito grabador y bajo el control de un PC. El número de veces que puede grabarse y borrarse una memoria EEPROM es finito aproximadamente 1000 veces. Este tipo de memoria es relativamente lenta. •

Memorias FLASH: Disponible en el PIC16F84. Posee las mismas características que la EEPROM, pero ésta tiene menor consumo de energía y mayor capacidad de almacenamiento, por ello está sustituyendo a la memoria EEPROM.

110

La memoria de programa se divide en páginas de 2.048 posiciones.

Figura 4.7: Diagrama en bloques de memoria de programa de un Microcontrolador PIC Fuente: http://perso.wanadoo.es/luis_ju/pic/pic02.html

Cuando ocurre un Reset, el contador de programa (PC) apunta a la dirección 0000h, y el micro se inicia nuevamente.

Por esta razón, en la primera dirección del programa se debe escribir todo lo relacionado con la iniciación del mismo (por ej: la configuración de los puertos...).

Ahora, si ocurre una interrupción el contador de programa (PC) apunta a la dirección 0004h, entonces ahí escribiremos la programación necesaria para atender dicha interrupción.

Algo que se debe tener en cuenta es la pila o Stack, que consta de 8 posiciones (o niveles), esto es como una pila de 8 platos el último en poner es el primero en sacar, si seguimos con este ejemplo, cada plato contiene la dirección y los datos de la instrucción que se está ejecutando, así cuando se efectúa una llamada (CALL) o una interrupción, el PC sabe donde debe regresar (mediante la instrucción RETURN, RETLW o RETFIE, según el caso) para continuar con la ejecución del programa.

111

4.6 Memoria de datos

Tiene dos zonas diferentes:

4.6.1 RAM estática ó SRAM

Donde residen los Registros Específicos (SFR) con 24 posiciones de tamaño byte, aunque dos de ellas no son operativas y los Registros de Propósito General (GPR) con 68 posiciones.

Figura 4.8: Diagrama en bloques de memoria de los registros de un Microcontrolador PIC Fuente: http://perso.wanadoo.es/luis_ju/pic/pic02.html

4.6.2 EEPROM

De 64 bytes donde, opcionalmente, se pueden almacenar datos que no se pierden al desconectar la alimentación.

112

4.7 Microcontrolador PIC 16F628A El microcontrolador PIC 16f28a, soporta 1000 ciclos de escritura en su memoria FLASH y 1.000.000 de ciclos en su memoria EEPROM, la memoria de programa que posee es de 2048 words, memoria de datos EEPROM es de 128 bytes, la memoria RAM es de 224 bytes, 16 pines de entrada y salida y posee 2 comparadores.

A mas de esto posee grandes ventajas como son: Comunicación AUSART, oscilador interno de 4 MHz, Master Clear (MCLR) programable, etc

La alimentación del microcontrolador PIC en general es de Vss=GND=0v y de Vdd=Vcc=5v, este valor de Vdd puede variar desde 3v hasta 5.5v. Posee a más de ello 2 puertos de I/O el puerto A y el puerto B, los cuales trabajan a 8 bits cada uno y entregan 25mA por cada PIN, y en modo sumidero pueden soportar hasta 25mA por cada PIN.

Figura 4.9: Distribución de los pines del PIC 16F628A Fuente: http://www.caveo.com.ar/images/16f628-48.gif

4.8 Microcontrolador PIC 16F877A

El microcontrolador PIC 16F877A, posee una memoria de programa de 8192 words, memoria de datos EEPROM de 256 bytes, memoria RAM de 368 bytes y 33 pines. 113

Los pines de entrada y salida, los cuales se dividen en los siguientes puertos:

1.- Puerto A trabaja a 6 bits 2.- Puerto B trabaja a 8 bits 3.- Puerto C trabaja a 8 bits 4.- Puerto D trabaja a 8 bits 5.- Puerto E trabaja a 3 bits

Además de ello posee 8 conversores análogo – digital A/D, una de las principales diferencias frente a los otros pic es la capacidad que posee, y por esta razón es el más utilizado en proyectos avanzados que requieren mayor número de entradas y/o salidas, como automatización de procesos industriales, alarmas residenciales, etc.

Una desventaja es que debe ser conectado a un cristal externo, ya que no tiene incorporado el mismo y necesita también en el Master Clear una resistencia Pull-Up, ya que no hay forma de deshabilitar esta opción.

Figura 4.10: Distribución de los pines del PIC 16F628A Fuente: http://derbytimer.com/diy/images/PIC16F877A_sm.gif

114

4.9 Cómo programar un PIC 12Fxxx / 16Fxxx Estos PIC se programan usando un protocolo serial propio. No es posible conectarlos directamente a una interface "usual". Afortunadamente, las exigencias de timing son poco estrictas. Esto da la posibilidad de usar algunos pines de un puerto paralelo o serie de la PC para generar la secuencia de programación con un software especializado.

Figura 4.11: Conexión RS232-ICSP Fuente: http://webs.uolsinectis.com.ar/nancy/pic/icsp_es.html

Además del voltaje operativo, se necesitan otras tres señales: el voltaje de programación Vpp (aprox. 13V), la señal de reloj (clk = PGC = ICSPCLK) y la señal de datos (data = PGD = ICSPDAT).

Como la mayoría de los PIC tolera un voltaje de programación Vpp algo menor que el de la especificación, se pueden aprovechar los niveles de señales de ±12V del puerto serie de una PC y grabar el PIC sin necesidad de una fuente de alimentación adicional.

La conversión de niveles puede ser lograda con pocos componentes, sin embargo, este circuito simple tiene sus limitaciones y permite sólo lectura y programación del PIC. No hay garantía de que funcione con todos los controladores, ya que cumple con las especificaciones de programación sólo parcialmente.

115

4.10 Conexión ICSP

A la hora de programar un microcontrolador, y sobre todo cuando se necesitan hacer pruebas por medio de ensayo y error, la programación ICSP (In-Circuit Serial Programming, o Programación Serial en el Circuito) es la opción más adecuada y eficiente para hacerlo.

ICSP ofrece la posibilidad de programar un microcontrolador en un circuito de aplicación.

La facilidad que nos provee la programación ICSP de los microcontroladores PIC es una herramienta que se debe conocer para mejorar la efectividad y rapidez a la hora de hacer pruebas en un circuito con estos integrados. Se puede aprovechar la programación ICSP para que, después de armada alguna placa, modificar, borrar y mejorar el código guardado en el PIC.

Esto es especialmente ventajoso en ámbitos educativos o de desarrollo, donde es necesario pasar repetidamente de programar el PIC a testear el circuito, y viceversa.

Además de ahorrar tiempo, ICSP evita riesgos al mover el PIC entre zócalos distintos, como doblar los pines o dañar el PIC por descargas electroestáticas.

Para poder usar ICSP, el circuito no debe distorsionar las señales de programación, ni las señales de programación deberían afectar el circuito. Las condiciones principales para programar un PIC son: 1.- El voltaje de programación Vpp aplicado a /MCLR debe cambiar entre cero y 13 voltios en pocos microsegundos. 2.- Las señales de reloj y de datos deben alcanzar los niveles extremos (Vdd o GND) en menos de un microsegundo. 3.- Algunos PIC usan un pin (RB3 o RB4) como señal PGM para el modo LVP (Low Voltage Programming). Este pin debe permanecer en Low durante la programación. 116

4.- Algunos PIC requieren que el voltaje de programación Vpp se aplique antes del voltaje operativo Vdd. En este caso Vdd debe ser controlado por el módulo de programación.

La manera más simple de satisfacer las dos primeras condiciones es no usar los pines correspondientes para el circuito de aplicación. Si se quiere usar el depurador, esto es incluso una necesidad.

Pero antes de utilizar esta herramienta, presente en prácticamente la totalidad de los microcontroladores PIC, debemos saber cómo funciona.

En principio, existen dos maneras de hacer que el microcontrolador entre en estado de programación:

a) La primera de ellas es utilizando la HVP (High Voltaje Programming, o Programación por Alto Voltaje) que consta de aplicar un voltaje VIHH, especificado en la hoja de datos, al pin Vpp/MCLR.

b) La segunda es mediante la LVP (Low Voltaje Programming o Programación por Bajo Voltaje), que se logra por medio de la activación del bit LVP de la palabra de configuración del microcontrolador. Cabe destacar que en este último caso, no se necesita llevar el voltaje aplicado al pin Vpp/MCLR hasta VIHH.

Luego de llevar el PIC al estado de programación, se comienza la transmisión serial por medio de los pines PGC (Señal de reloj para la programación serial) y PGD (Señal de datos para la programación serial).

Aparte de las patillas ya mencionadas, se necesita energizar el microcontrolador por medio de los pines VDD y VSS. Esta tensión puede provenir directamente del programador o de una fuente de alimentación externa.

117

4.11 La conexión ICSP para PIC16F877A

Se debe saber que los pasos descritos arriba para la programación ICSP son seguidos automáticamente por el software y el hardware de todos los grabadores de PICs.

Nosotros solo nos debemos preocupar por la conexión del programador al PIC y por avisar al grabador y al software que se utilizara programación ICSP.

Este paso varía de acuerdo a cada hardware y software de programación.

Figura 4.12: Esquema del Modulo ICSP para el PIC16F877. Fuente: http://www.ucontrol.com.ar/wiki/index.php/M%C3%B3dulo_ICSP_para_PIC16F877

Como se puede observar en el esquema, se trata de un circuito extremadamente sencillo cuyos únicos componentes son unos pines SIL con ángulo de 90º para conectarlo directamente de la placa programadora en nuestro caso GTP-PLUS+ al circuito controlador.

Figura 4.13: Pines SIL en ángulo de 90º. Fuente: http://www.ucontrol.com.ar/wiki/index.php/M%C3%B3dulo_ICSP_para_PIC16F877

Entonces los pines que provienen del programador se conectan directamente con los pines que corresponden en el PIC, evitándonos así hacer el cableado en el protoboard cada vez que queramos utilizar ICSP.

118

4.12 Cómo usar ICSP para programar un PIC en el circuito

Figura 4.14: Conexión ISCP al Microcontrolador PIC Fuente: http://webs.uolsinectis.com.ar/nancy/pic/icsp_es.html

Recomendaciones: •

Nunca conectar circuitos activos al pin /MCLR.



Si /MCLR es usado para resetear el PIC, debería conectarse un resistor más grande de 56kΩ entre /MCLR y Vdd. Se puede combinar con un capacitor pequeño de menos de 100 pF conectado a GND (Vss).



No debe haber ninguna carga inductiva o capacitiva en los pines de las señales de programación. Se puede conectar un circuito de alta impedancia (>10kΩ).



Cuando el voltaje operativo Vdd está controlado por el módulo de programación, eventualmente se debe aislar el pin Vdd del PIC, del resto del circuito de aplicación durante la programación. Este puede ser el caso, por ejemplo, cuando el circuito de aplicación: o

Contiene su propia regulación de voltaje para Vdd.

o

Posee un capacitor grande de desacople, que el módulo de programación no puede cargar lo suficientemente rápido.

o

Está diseñado para un voltaje operativo de 3,3V y el PIC necesita por lo menos 4,5V para la programación.

o

En lugar de un aislamiento completo, posiblemente se pueda usar también un diodo Schottky. 119



Para mantener el pin PGM en Low durante la programación, conectarlo con un resistor de aprox. 2,2kΩ a 10kΩ a GND.



Siempre activar el "Power-Up Timer" en la palabra de configuración, porque produce un retardo de más de 40ms que da suficiente tiempo para alcanzar un Vdd estable antes del inicio de cualquier operación en el PIC, y evita la ejecución no deseada del programa antes de entrar en el modo de programación.



Durante la programación, los demás pines de puertos permanecen en el modo de entrada, es decir, tienen una impedancia muy alta. El circuito de aplicación debe tolerar este estado y permanecer lo más inactivo posible. Para evitar "efectos colaterales" no deseados se pueden poner resistores a Vdd o GND.



Para poder re-programar un PIC con un Vdd inferior a 4,5V, la memoria no debe estar protegida, ya que el "Chip Erase" – que es la única manera de remover la protección de código o datos – requiere de un Vdd superior a 4,5V en casi todos los PIC.

4.13 Asignación de las señales ICSP a los pines de un PIC 12Fxxx / 16Fxxx. El número bajo el nombre de la señal corresponde al pin del conector ICSP del módulo de programación. Prestar atención: el orden de las señales del conector ICSP de este módulo de programación difiere del que tienen otros programadores de PIC. Para usarlo con placas de prueba de terceros se necesita un adaptador.

Controlador

Vpp GND Vdd Data Clk

PGM

Rango de Vdd

@

para

"Low"

programación

(1)

(2)

(3)

(4)

(5)

12F629/675

4

8

1

7

8

-

4,5V - 5,5V

demás 12Fxxx

4

8

1

7

8

-

2,0V - 5,5V

14-

12F630/676

4

14

1

13

12

-

4,5V - 5,5V

pin

demás 16F6xx

4

14

1

13

12

-

2,0V - 5,5V

18-

16F62x(A),

pin

16F648A

4

14

5

13

12

10

4,5V - 5,5V

8-pin

120

Controlador

Vpp GND Vdd Data Clk

PGM

Rango de Vdd

@

para

"Low"

programación

(1)

(2)

(3)

(4)

(5)

16F716

4

14

5

13

12

-

4,5V - 5,5V

16F818/819

4

14

5

13

12

9

2,0V - 5,5V

16F84(A)

4

14

5

13

12

-

4,5V - 5,5V

16F87/88

4

14

5

13

12

9

2,0V - 5,5V

16F6xx, 16F785

4

20

1

19

18

-

2,0V - 5,5V

16F7x

1

8, 19

20

28

27

24

4,75V - 5,25V

16F7x7

1

8, 19

20

28

27

-

4,75V - 5,25V

28-

16F87x

1

8, 19

20

28

27

24

2,5V - 5,5V

pin

16F87xA

1

8, 19

20

28

27

24

2,0V - 5,5V

16F88x

1

8, 19

20

28

27

24

2,0V - 5,5V

16F91x

1

8, 19

20

28

27

24

2,0V - 5,5V

16F7x

1

12,

11,

31

32

40

38

36

4,75V - 5,25V

16F7x7

1

12,

11,

31

32

40

38

-

4,75V - 5,25V

16F87x

1

12,

11,

31

32

40

38

36

2,5V - 5,5V

16F87xA

1

12,

11,

31

32

40

38

36

2,0V - 5,5V

16F88x

1

12,

11,

31

32

40

38

36

2,0V - 5,5V

16F91x

1

12,

11,

31

32

40

38

36

2,0V - 5,5V

20pin

40pin

Figura 4.15: Asignación de señales al PIC 12Fxxx / 16Fxxx. Fuente: http://webs.uolsinectis.com.ar/nancy/pic/icsp_es.html

121

4.14 Esquemas de conexión con colocación lateral del conector ICSP Los siguientes esquemas muestran cómo se conectan las señales de programación a los PIC 12Fxxx/16Fxxx.

Figura 4.16: Conexión ICSP a los diferentes tipos de PIC Fuente: http://webs.uolsinectis.com.ar/nancy/pic/icsp_es.html

122

CAPÍTULO V

RADIOFRECUENCIA

5.1. Introducción

El término radiofrecuencia, también denominado espectro de radiofrecuencia o RF, se aplica a la porción menos energética del espectro electromagnético, situada entre unos 3 Hz y unos 300 GHz. Las ondas electromagnéticas de esta región del espectro se pueden transmitir aplicando la corriente alterna originada en un generador a una antena.

La radiofrecuencia se puede dividir en las siguientes bandas del espectro: Nombre

Abreviatura

Banda

inglesa

ITU

Frecuencias Inferior a 3 Hz

Extra baja frecuencia Extremely low

Super low frequency Ultra baja frecuencia Ultra low frequency Muy baja frecuencia Very low frequency Baja frecuencia Low frequency Media frecuencia Medium frequency Alta frecuencia High frequency

onda > 100.000 km 100.000 km –

ELF

1

3-30 Hz

SLF

2

30-300 Hz

ULF

3

300–3000 Hz

VLF

4

3–30 kHz

LF

5

30–300 kHz

10 km – 1 km

MF

6

300–3000 kHz

1 km – 100 m

HF

7

3–30 MHz

100 m – 10 m

frequency Super baja frecuencia

Longitud de

123

10.000 km 10.000 km – 1000 km 1000 km – 100 km 100 km – 10 km

Muy alta frecuencia Very high frequency Ultra alta frecuencia Ultra high frequency Super alta frecuencia Super high frequency

VHF

8

30–300 MHz

10 m – 1 m

UHF

9

300–3000 MHz

1 m – 100 mm

SHF

10

3-30 GHz

EHF

11

30-300 GHz

Extra alta frecuencia Extremely high

100 mm – 10 mm 10 mm – 1 mm

frequency Por encima de los 300 GHz

< 1 mm

Tabla 5.1: Características de bandas de radiofrecuencia Fuente: http://es.wikipedia.org/wiki/Radiofrecuencia

A partir de 1 GHz las bandas entran dentro del espectro de las microondas.

Por encima de 300 GHz la absorción de la radiación electromagnética por la atmósfera terrestre es tan alta que la atmósfera se vuelve opaca a ella, hasta que, en los denominados rangos de frecuencia infrarrojos y ópticos, vuelve de nuevo a ser transparente.

Las bandas ELF, SLF, ULF y VLF comparten el espectro de la AF (audiofrecuencia), que se encuentra entre 20 y 20000 Hz aproximadamente. Sin embargo, éstas se tratan de ondas de presión, como el sonido, por lo que se desplazan a la velocidad del sonido sobre un medio material. Mientras que las ondas de radiofrecuencia, al ser ondas electromagnéticas, se desplazan a la velocidad de la luz y sin necesidad de un medio material.

Los conectores eléctricos diseñados para trabajar con frecuencias de radio se conocen como conectores RF. RF también es el nombre del conector estándar de audio/video, también conocido como BNC (BayoNet Connector).

124

5.2. Usos de la radiofrecuencia

Figura 5.1: Señales de Radiofrecuencia Fuente: http://es.wikipedia.org/wiki/Radiofrecuencia

Uno de sus primeros usos fue en el ámbito naval, para el envío de mensajes en código Morse entre los buques y tierra o entre buques.

Actualmente, la radio toma muchas otras formas, incluyendo redes inalámbricas, comunicaciones móviles de todo tipo, así como la radiodifusión.

Antes de la llegada de la televisión, la radiodifusión comercial incluía no solo noticias y música, sino dramas, comedias, shows de variedades, concursos y muchas otras formas de entretenimiento, siendo la radio el único medio de representación dramática que solamente utilizaba el sonido.

5.3. Otros usos de la radiofrecuencia • Audio 

La forma más antigua de radiodifusión de audio fue la radiotelegrafía marina, ya mínimamente utilizada. Una onda continua (CW), era conmutada on-off por un manipulador para crear código Morse, que se oía en el receptor como un tono intermitente.



Música y voz mediante radio en modulación de amplitud (AM).



Música y voz, con una mayor fidelidad que la AM, mediante radio en modulación de frecuencia (FM).



Música, voz y servicios interactivos con el sistema de radio digital DAB empleando multiplexación en frecuencia OFDM para la transmisión física de las señales. 125



Servicios RDS, en sub-banda de FM, de transmisión de datos que permiten transmitir el nombre de la estación y el título de la canción en curso, además de otras informaciones adicionales.



Transmisiones de voz para marina y aviación utilizando modulación de amplitud en la banda de VHF.



Servicios de voz utilizando FM de banda estrecha en frecuencias especiales para policía, bomberos y otros organismos estatales.



Servicios civiles y militares en alta frecuencia (HF) en la banda de Onda Corta, para comunicación con barcos en alta mar y con poblaciones o instalaciones aisladas y a muy largas distancias.



Sistemas telefónicos celulares digitales para uso cerrado (policía, defensa, ambulancias, etc). Distinto de los servicios públicos de telefonía móvil.



Telefonía



Vídeo



Navegación



Radar



Servicios de emergencia



Transmisión de datos por radio digital



Calentamiento



Fuerza mecánica



Comunicaciones:





radionavegación



radiodifusión AM y FM



televisión



radionavegación aérea



radioaficionados

Metalúrgica: 

templado de metales



soldaduras



Alimenticia: esterilización de alimentos



Medicina: 

Implante Coclear



diatermia 126

5.4. Frecuencias de radioaficionados

El rango de frecuencias permitido a los radioaficionados varía según el país y la región del territorio de ese país.

Las bandas de frecuencia de los radioaficionados son afectadas por la UIT (Unión Internacional de Telecomunicaciones), y se dividen de manera diferente según la región de la tierra.

La UIT distingue tres regiones: •

Región 1: Europa y África



Región 2: América



Región 3: Asia y Oceanía

Las bandas de frecuencia asignadas por la UIT son obligatorias. Ninguna persona, física o jurídica, tiene derecho a usar las bandas sin autorización.

5.5 Bandas más frecuentemente utilizadas

Las bandas de frecuencia más comúnmente utilizadas por los radioaficionados son las que siguen a continuación. Los límites de esas frecuencias cambian con el tiempo y con las reglamentaciones particulares de cada país, por lo que nos referiremos a ellas por su longitud de onda. En onda larga, encontramos (solo en algunos países) la banda de 2200 metros (135,7-137,8 kHz) y en onda media, la banda de 160 metros. Bandas HF

Banda

Banda

Banda

Banda

Banda

Banda

Banda

de 80m de 40m de 30m de 20m de 17m de 15m de 12m de 10m

Bandas

Banda

Banda

VHF

de 6m

de 2m

Bandas

Banda

Banda

UHF

Banda

de 70cm de 23cm Tabla 5.2: Alcance dependiendo el tipo de banda Fuente: http://es.wikipedia.org/wiki/Radiofrecuencia

127

Algunos países permiten también otras bandas: •

La banda de 60 metros (5258 a 5403 kHz) está autorizada en el Reino Unido, Estados Unidos, Dinamarca, Irlanda, Islandia, Noruega y Finlandia.



La banda de VHF de 1,25 metros (220 a 225 mHz) está autorizada en Estados Unidos, México, Canadá, Jamaica, Somalía y algunos países insulares del Caribe.

Estas bandas no deben usarse desde un país que no las autorice explícitamente.

5.6 Introducción a la Radio Frecuencia con Módulos Híbridos de RF.

El término radiofrecuencia, también denominado espectro de radiofrecuencia o RF, se aplica a la porción del espectro electromagnético en el que se pueden generar ondas electromagnéticas aplicando corriente alterna a una antena.

Seleccionar los dispositivos al momento de transmitir datos por RF, era hacía muy difícil en un pasado, pues empezando por la circuitería que en muchas ocasiones las inductancias han sido un tema difícil, ya que aquí en Ecuador, no se las consigue fácilmente, por otra parte el tamaño del circuito demasiado grande para aplicaciones pequeñas, pero cuando conocí los pequeños módulos de Laipac, SzSaw, etc, quedé sorprendido, básicamente por su reducido tamaño, su fácil uso y alcance de transmisión.

Son dispositivos de precio accesible, y destaca su facilidad para usarlos, sólo se deben enviar y recibir los datos de forma serial.

Entre estos transmisores RF, existen muchos como los de Laipac como el TLP434(A) / Transmisor y RLP434(A) / Receptor, la “A” que está entre los paréntesis son modelos mejorados, pero la distribución de pines en los dos casos es la misma.

128

Se pueden trabajar con cualquiera de los dos tipos, no es necesario que los dos sean “A”, es decir, se puede enviar datos con el TLP434A y recibirlos con el RLP434 sin ningún problema, lo único que se debe tener en cuenta, es la velocidad a la que se están transmitiendo los datos.

También tenemos los de SzSaw como el Receptor CZS-3 y Transmisor FST-4 los cuales tienen el mismo funcionamiento de los Laipac en lo que se refiera q la transmisión de datos, pero con la diferencia que los de Laipac utilizan para transmitir Amplitude Shift Keyink (ASK) que en español sería Modulación por desplazamiento de amplitud y los módulos híbridos de SzSaw utilizan Amplitud Modulada (AM).

5.7 Características Técnicas de los Módulos Híbridos para Radio Control

5.7.1 Transmisor TLP434(A) de Laipac.

El TLP434(A), es el módulo transmisor, con únicamente 4 pines, y el tamaño de 3.3x10.3 mm, Detalles: • Rango de Frecuencia: 433.92 MHz • Modulación: ASK • Voltaje de alimentación: 3 – 12 V • Voltaje 5V: Corriente 8.4 mA

Figura 5.2: Módulo Híbrido Transmisor TLP434(A) Fuente: http://www.laipac.com/images/tlp434a_s.jpg

129

En la siguiente tabla tomada del Datasheet, podemos ver más características:

Tabla 5.3: Características técnicas del Modulo Hibrido Transmisor TLP434(A) Fuente: http://www.laipac.com/Downloads/Easy/tlp434a.pdf

La distribución de pines extraída de la hoja de datos del TLP434(A), es la que se muestra en la figura:

Figura 5.3: Distribución de pines del Módulo Híbrido Transmisor TLP434(A) Fuente: http://www.laipac.com/Downloads/Easy/tlp434a.pdf

5.7.2 Receptor RLP434(A) de Laipac.

El RLP434(A), es el módulo receptor, tiene 8 pines, y el tamaño de 11.5x43.42mm, la forma de transmitir es la misma que en el caso del emisor Amplitude Shift Keyink (ASK), es un poco más grande que el emisor, pero sigue siendo un tamaño pequeño que puede caber sin ningún problema en cualquier circuito que se desee realizar. El rango de Frecuencia es: 433.92 MHz

130

Una de las aplicaciones para estos dispositivos, puede ser el control de robots, sistemas de alarma, control remoto de puertas, luces, etc. A diferencia de la serie “A”, este receptor sólo puede usarse a un nivel de tensión, en tanto que los otros se los puede alimentar con un rango desde 3 - 12V.

En la siguiente tabla tomada del Datasheet, podemos ver más características:

Tabla 5.4: Características técnicas DC del Módulo Hibrido Transmisor TLP434(A) Fuente: http://www.laipac.com/Downloads/Easy/RLP434A.pdf

Tabla 5.5: Características eléctricas del Módulo Híbrido Receptor RLP434(A) Fuente: http://www.laipac.com/Downloads/Easy/RLP434A.pdf

Figura 5.4: Módulo Híbrido Receptor RLP434(A) Fuente: http://www.laipac.com/images/rlp418_s.jpg

131

La distribución de pines para el RLP434, es la misma que la del RLP434A, normalmente, el RLP434 tiene una pequeña bobina, para distinguir bien los pines, esa bobina debe estar al frente, dicha bobina se representa con el círculo negro la siguiente figura:

Figura 5.5: Distribución de pines del Módulo Híbrido Receptor RLP434(A) Fuente: http://www.laipac.com/Downloads/Easy/RLP434A.pdf

5.7.3 Transmisor FST-4 de SzSaw

Detalles: • Dimensiones (Largo, Ancho, Alto): 19mm x 19mm x 8mm. • Voltaje de trabajo (V): DC 3-12. • Corriente de trabajo (mA): 5-45. • Frecuencia de trabajo (MHz): 315 (se pueden escoger más de 20 frecuencias entre: 260MHz y 440MHz). • Distancia de transmisión (m): 1000. • Corriente de reposo: 20uA. • Velocidad de transmisión máx.: 9.6K. • Modulación: AM

Figura 5.6: Módulo Híbrido Transmisor FST-4 Fuente: http://electronicahifi.com/index.php/home/producto_detalle/204

132

Figura 5.7: Distribución de pines del Módulo Híbrido Transmisor FST-4 Fuente: http://www.icabots.com/foro/index.php?topic=166.0

5.7.4 Receptor CZS-3 de SzSaw

Detalles: • Sensibilidad de recepción: -103dBm. • Frecuencia: 315MHz. • Tamaño: 30*14*7 mm. • Consumo de Corriente: 5mA. • Voltaje de operación: 5v DC. • Temperatura de trabajo: -20 ~ 70 °C. • Velocidad de transmisión: 4.8K • Modulación: AM • Tipo de salida: TTL • Frecuencia de operación: 315 MHz ó 433 MHz

Figura 5.8: Módulo Híbrido Receptor CZS-3 Fuente: http://electronicahifi.com/index.php/home/producto_detalle/204

133

Figura 5.9: Distribución de pines del Módulo Híbrido Receptor CZS-3 Fuente: http://www.icabots.com/foro/index.php?topic=166.0

Especificaciones: • Circuito Oscilador LC, la salida es TTL y se puede aplicar directamente a un decodificador. • El módulo tiene un ancho de banda ancho de +/-10MHz. • Trabaja desde 3VDC a 8 VDC, el uso general es en 5 VDC. • El rango de frecuencia para este módulo es de 315MHz. • La corriente de consumo es normalmente de 5mA.

134

CAPÍTULO VI

FABRICACIÓN DE PCB (PRINTER CIRCUIT BOARD) POR TRANSFERENCIA TÉRMICA

6.1. Introducción

El método propuesto en esta guía es una alternativa a la elaboración profesional de PCB’s, más económica e ideal para personas que estén aprendiendo electrónica o la tomen como hobbies. Si se siguen las instrucciones con rigurosidad, se pueden lograr excelentes resultados.

6.2. Materiales

6.2.1. Placa de cobre Puede ser cualquiera de Pertinax (Baquelita) o Fibra de vidrio. La de fibra de vidrio es más cara, pero tiene propiedades mecánicas mejores que el Pertinax y además es más bonita, normalmente de un color blanco frente al café opaco del Pertinax, como se observa en la imagen. Lo que recomiendo es el Pertinax para versiones de prueba y para aprender, y la fibra de vidrio para las versiones definitivas de los circuitos.

Figura 6.1: Tipos de placas de cobre Pertinax – Fibra de vidrio Fuente: Autores

135

6.2.2. Ácido para placas (Cloruro Férrico)

Lo venden en forma granulada en las tiendas electrónicas. Entre más concentración de ácido férrico con agua exista en el recipiente más rápido es el revelado del diseño electrónico.

6.2.3. Plancha

Se la utiliza para la transferencia térmica del tóner del papel de transferencia o fotográfico del diseño electrónico a la placa de Pertinax o fibra de vidrio.

6.2.4. Recipiente de Plástico

Como el ácido es irritante de la piel (sin asustarse, la irrita no la derrite) se debe hacer uso del mismo. Ideal que sea de tamaño reducido (lo más ajustado posible a tu placa) y de plano manera de ahorrar ácido.

6.2.5. Diseño de circuito

Es un tanto obvio, pero no está de más decirlo. Puede ser alguno obtenido de internet o algún libro o manual, o bien diseñado en un software. Para este fin yo recomiendo Ares de Proteus, el cual es bastante intuitivo y muy fácil de utilizar.

6.2.6. Papel para Transferencia

Depende del método a usar, el de las transparencias o el del papel fotográfico. En transparencias, una marca que me ha dado excelentes resultados es el Transparency Film para Inkjet de Canon, y lo pueden encontrar en cualquier librería.

Se pueden usar otras marcas, pero se debe tener cuidado en que se imprima bien el circuito y que el tóner se pueda desprender al rasparlo con la una. En cuanto a papel fotográfico, el EPSON PHOTO PAPER SO41141 es muy bueno.

136

6.2.7. Impresora laser o fotocopiadora.

Se la utiliza para imprimir el diseño del esquema electrónico previamente realizado en Ares de Proteus en papel fotográfico o de transparencia.

6.2.8. Lija Fina Cualquier lija muy fina (de alto gramo) como las que se utilizan para metales. En su defecto se puede utilizar una escobilla metálica.

6.2.9. Agente Limpiador

Lo que se utiliza normalmente en circuitos es el alcohol ISO propílico (diluyente) ya que posee la cualidad de ser un buen limpiador y no conducir la electricidad. También se puede usar algún tipo de abrasivo como por ejemplo la acetona.

6.2.10. Lápiz Permanente

Bastante útil a la hora de reparar errores, en general cualquier lápiz que sea permanente sirve. Deben preocuparse eso si de que sea de punta fina, es muy difícil dibujar líneas delgadas y rectas con un plumón.

6.3 Instrucciones

Para comenzar, se debe traspasar el diseño de nuestro circuito (PCB) a nuestro papel para transferencia.

Lo mejor es hacerlo con una impresora laser, si es que se posee el diseño de forma electrónica (y se dispone de una impresora laser). Se debe imprimir con la máxima resolución posible de manera que quede la mayor cantidad de tóner sobre las pistas.

Incluso se puede imprimir dos veces, una encima de otra, si se tiene un buen sistema para alinear las hojas. 137

En caso de no tener una impresora laser a mano o no tener un diseño en el PC, se puede imprimir el diseño en un papel cualquiera (con máxima resolución y contraste). Luego, se debe ir a sacar una fotocopia a este papel, asegurándose que la copia se haga en nuestro papel para transferencia.

Cualquiera sea el método utilizado, se debe tener cuidado de la impresión del circuito, se haga a escala real en el lado imprimible del papel para transferencia y que el circuito este para el lado correcto, ya que en algunos software se debe imprimir el espejo de la placa diseñada (esto no pasa en ARES, se imprime el circuito tal cual sale en pantalla). No recomiendo demasiado imprimir la PCB en fotocopiadora ya que estas suelen ser muy sucias (llenas de puntitos indeseados) y salir manchada.

Figura 6.2: Imagen del diseño en Ares e impresa en papel de transferencia (papel fotográfico). Fuente: Autores

Con el diseño ya impreso en nuestro papel especial (fotográfico o transparencia), es hora de preparar la placa de cobre. Para la mejor transferencia del tóner, conviene lijar un poco la placa de cobre con la lija fina de manera de limpiarla y dejarla rayada, como se aprecia en la figura 7.3:

Figura 6.3: Imagen de la fibra de vidrio antes y después de prepararla para transferencia térmica del diseño. Fuente: Autores

138

Se debe recordar, limpiar continuamente la placa después de lijarla ya que el polvillo de cobre es un temible enemigo para nuestro sistema de fabricación de placas, ya que impide la transferencia del tóner. También lo son las huellas digitales, así que manejen con cuidado la placa limpia y usen el alcohol o acetona o incluso agua con jabón para liberar a la placa de cobre de cualquier impureza. Para la etapa siguiente, la placa de cobre limpia debe quedar bien seca.

Ahora viene la parte más importante del sistema, la transferencia del circuito a la placa de cobre. En primer lugar se debe calentar la plancha con la opción de ropa de algodón (lo más caliente) y sin vapor. Luego, se coloca la transferencia con el circuito impreso sobre la placa de cobre, asegurándola con un poco de cinta adhesiva. La placa la pueden colocar sobre alguna superficie que aguante el calor como puede ser un pedazo de baldosa o material similar.

A continuación, se coloca una hoja blanca sobre el reverso de la transferencia adherida a la placa, de manera de no aplicar la plancha directamente sobre el plástico de la transparencia. Deben chequear también asegurándose que la parte con tóner quede tocando la superficie de la placa.

Figura 6.4: Imagen de la fibra de vidrio y papel de transferencia con diseño para iniciar transferencia térmica. Fuente: Autores

139

Listo lo anterior, ya solo queda planchar el papel sobre la placa de cobre. Se debe tener cuidado de abarcar toda la parte con el circuito impreso, tanto el centro como los bordes, presionando bien la plancha sobre la placa y pasando el centro de la plancha por todos lados ya que es el sector más caliente.

Si la plancha es de buena calidad, el tóner debería empezar a pegarse a la placa en un par de minutos. De todos modos, es posible ir chequeando de tanto en tanto cómo va la transferencia levantando un poco la transparencia de la placa, como se aprecia en la imagen 7.4.

Figura 6.5: Imagen de la fibra de vidrio y papel de transferencia con diseño para iniciando transferencia térmica. Fuente: Autores

Si se siguieron los pasos anteriores correctamente, el tóner del papel de transferencia quedara pegado ahora en la placa, formando las líneas y pistas de nuestro circuito final. Normalmente en esta etapa quedan algunas líneas borrosas (sobre todo en alguna esquina), lo cual puede ser corregido usando un lápiz permanente preferentemente de punta final y una mano con buen pulso.

Figura 6.6: Imagen de la fibra de vidrio con el diseño ya transferido térmicamente. Fuente: Autores

140

Ya con el circuito transferido a la placa de cobre, lo que queda es sencillo. En primer lugar se debe poner la placa en un recipiente de plástico con las características descritas anteriormente, y comenzar a echar el acido y diluirlo con cuidado (mancha feo la ropa) hasta tapar la placa.

Luego se debe esperar que el ácido haga su trabajo y se coma todo el cobre excepto el cubierto por el tóner. El proceso es relativamente lento (como 20 minutos) pero se puede acelerar agitando el recipiente o poniéndolo a baño maría.

Figura 6.7: Imagen de la fibra de vidrio en recipiente con ácido férrico para revelar pista conductivas. Fuente: Autores

Cuando se observe que no quedan restos de ácido en los sectores libres de tóner, se puede extraer la placa del recipiente. Se debe lavar con abundante agua para eliminar los restos del ácido.

En la figura 6.8 se aprecian los resultados de esta etapa.

Figura 6.8: Imagen de la fibra de vidrio con circuito impresa listo después del atacado del cobre con ácido férrico. Fuente: Autores

141

Lo último que queda es limpiar la placa resultado de la etapa anterior con la ayuda de la lija fina y un poco de alcohol. Se debe tener cuidado de no raspar mucho la placa, para no disminuir demasiado el grosor de las pistas.

Figura 6.9: Imagen perforando agujeros del circuito impreso en la fibra de vidrio. Fuente: Autores

Si se tiene a mano un taladro pequeño (como un dremell o similar) es posible hacer los hoyos a la placa antes de rasparla, ya que es más fácil ver las pistas negras que el color brillante del cobre para poder hacer los hoyos con precisión. En cuanto a la broca a usar, una de 0.8 mm es ideal para la mayoría de los componentes (resistencias, bases, condensadores pequeños), y una de 1.0mm basta para el resto (pines, Tips, etc.).

Figura 6.10: Imagen de PCB lista concluida. Fuente: Autores

Este es el resultado del proceso completo. Como se ve se pueden lograr muy buenos resultados incluso con pistas delgadas, aunque en general es bueno mantener las pistas de un espesor no menor que 0.6 mm.

142

Para que se mantenga el cobre y no se oxide, después de soldar los componentes (y probar la placa por errores) conviene pintar la placa con algún esmalte que no conduzca la electricidad.

6.4 Técnica para soldar elementos electrónicos.

Figura 6.11: Pasos para soldar elementos electrónicos Fuente: http://www.forosdeelectronica.com/f16/tutorial-soldar-estano-9753/

Pasos para soldar componentes en una placa: 1.- Introducir la patilla del componente por el orificio de la placa y sujetar el componente en su lugar evitando que pueda moverse en el proceso de soldadura.

2.- Con la punta del soldador calentado previamente, tocar justo en el lugar donde se desea hacer la soldadura, en este caso, la punta del soldador debe hacer contacto con la patilla del componente y con la pista de cobre de la placa.

3.- Una vez estén suficientemente calientes la patilla del componente y la superficie de cobre de la placa, se le aplica el estaño justo para que se forme una especie de cono de estaño en la zona de soldadura sin separar la punta del soldador.

4.- Se mantiene unos instantes la punta del soldador para que le estaño con el fin de que se distribuya uniformemente por la zona de soldadura y después retirar la punta del soldador. 143

5.- Mantener el componente inmóvil unos segundos hasta que se enfrié y solidifique el estaño. No se debe forzar el enfriamiento del estaño soplando porque se reduce la resistencia mecánica de la soldadura.

6.- Con la herramienta adecuada se corta el trozo de patilla que sobresale de la soldadura, procurando que el corte sea lo más estético posible.

6.5 Errores típicos en las soldaduras de componentes electrónicos.

a) Soldadura con forma de bola: es cuando el estaño se encuentra en forma de bola en las patillas del componente electrónico.

b) Soldadura fría: es cuando no se ocupa la suficiente cantidad de estaño para soldar el componente electrónico.

c) Soldadura “sucia”: cuando se ocupa estaño de mala calidad.

Figura 6.12: Tipos de soldaduras incorrectas Fuente: http://www.forosdeelectronica.com/f16/tutorial-soldar-estano-9753/

Figura 6.13: Soldaduras correctas Fuente: http://www.forosdeelectronica.com/f16/tutorial-soldar-estano-9753/

144

6.6. Las Herramientas.

6.6.1. Cautín

No es necesario comprarse uno carísimo de punta de platino o alguna extravagancia parecida.

En general basta con uno delgado que sea fácil de maniobrar, que tenga ojala una goma para protegerse del calor y, muy importante, una punta fina. Cuando estén soldando, no raspen la punta para limpiarla de soldadura.

Esto la limpia, si, pero también daña irreparablemente la punta de tu cautín, que en general tiene algún tipo de revestimiento (de plata o similar) para el mejor manejo del estaño.

Se puede limpiar con algún papel suave (llámese papel confort) o con una esponja mojada (incluso venden esponjas especiales para esto).

Figura 6.14: Cautín para soldar componentes electrónicos en PCB lista. Fuente: Autores

6.6.2. Estaño

Compren un estaño para la soldadura de piezas pequeñas, un estaño delgado. En las electrónicas vende en royos o por metros.

145

Usar pasta para soldar componentes electrónicos ya no se usa ya que el estaño ahora la trae incorporada.

Figura 6.15: Rollo de suelda de Estaño. Fuente: Autores

6.6.3. Succionador de estaño:

No indispensable pero si muy útil al momento de desoldar componentes o corregir algún error.

Figura 6.16: Succionador de suelda mecánico. Fuente: Autores

Y finalmente algunos puntos a considerar: • Echen un poco de estaño en la punta del cautín antes de calentar la pata de la pieza a soldar. Esto ayuda a la transferencia de calor y facilita la soldadura. • Apoyen el cautín en la pieza y apliquen el estaño en la pieza misma, no sobre el cautín. El calor de la pieza calentada debería ser suficiente para fundir el estaño y soldar la pieza a la placa. 146

• Preocúpense de que las patas de los componentes queden bien cubiertas y adheridas a la placa con el estaño, que no sean visibles los hoyos por donde pasan los componentes. Muevan un poco la pieza después de soldarla si no quedan seguros de que está bien firme. • Dejen las piezas con patas cortas y los más pegadas a la placa posible, de manera de evitar cortocircuitos indeseados por la manipulación del circuito.

A continuación se puede apreciar la placa usada como ejemplo terminada, con todos sus componentes soldados.

Figura 6.17: Placas Terminadas con elementos electrónicos. Fuente: Autores

Espero que estos humildes consejos les sean de utilidad, y que logren un buen trabajo haciendo sus placas.

6.7 Cuidados a tener en cuenta • Evitar tocar los productos químicos. Se recomienda usar guantes de látex y pinzas. • Ventilar la habitación donde estés llevando a cabo el proceso de elaboración del circuito impreso.

• Lavar con abundante agua todo el material utilizado tras finalizar el proceso.

147

6.8 Placas PCB de los Robots Hexápodos

Figura 6.18: Placa PCB de la Tarjeta Transmisora RF 434 MHz (Cara Externa) Fuente: Autores

Figura 6.19: Placa PCB de la Tarjeta Transmisora RF 434 MHz (Cara Interna) Fuente: Autores

Figura 6.20: Placa PCB de la Receptora RF 434 MHz (Cara Externa) Fuente: Autores

148

Figura 6.21: Placa PCB de la Receptora RF 434 MHz (Cara Interna) Fuente: Autores

Figura 6.22: Placa PCB de la Tarjeta Controladora de Servos (Cara Externa) Fuente: Autores

Figura 6.23: Placa PCB de la Tarjeta Controladora de Servos (Cara Interna) Fuente: Autores

149

CAPÍTULO VII

DISENO ESTRUCTURAL DEL ROBOT HÉXAPODO

7.1. Introducción

En el presente capítulo se desarrollará el diseño de cada una de las partes que conforman el robot hexápodo, como también el armado del mismo.

Cabe mencionar que en la parte del diseño del robot se tomo modelos de varios hexápodos que se encuentran a la venta en el mercado internacional y se decidió realizar la presente estructura por su fácil fabricación y gran movilidad de cada una de sus articulaciones y extremidades, como también el alcance de torque que se tiene en cada una de sus extremidades debido que utilizan 3 servomotores en cada extremidad, es decir, 1 servomotor por cada articulación.

El hexápodo constara de 18 servomotores los mismos que trabajaran a 5 voltios con una fuente independiente de la del control, por lo tanto si el rango de voltaje de trabajo de cada servo es de 4.8 a 6.0 v. con un rango de torque proporcional de 3.0 kg/cm a 4.5 kg/cm, entonces cada servo del hexápodo trabajara al 83,3% de su torque total.

7.2. Base Estructural Principal

Primeramente se elaboró la base estructural donde se instalarán cada una de las extremidades con sus respectivas articulaciones, esta estructura es de aluminio de 2 mm de espesor con sus respectivos cortes y agujeros para la instalación de cada extremidad.

Se decidió utilizar el aluminio como materia prima de la base del hexápodo por sus características de peso, durabilidad, fácil utilización y también por su excelente disipación del calor debido a que la base trabajara como refrigerante de cada una de los reguladores de la etapa de potencia que suministra un voltaje constante de 5v a cada uno de los 18 servomotores que conforman el hexápodo. 150

A continuación se detalla en la siguiente figura las medidas correspondientes a la base estructural principal que soportara a cada una de las extremidades:

Figura 7.1: Medidas de la base estructural principal Fuente: Autores

151

Para la construcción de la misma se utilizó herramientas como sierras, caladoras, taladro de banco con sus diferentes brocas para aluminio y lijas para metal para su acabado final.

Una vez terminada esta estructura pasamos a la fase de pintura, donde utilizamos pintura para altas temperaturas marca Pintuco de color negra, debido a su gran adherencia y penetración en el aluminio y gran acabado.

Finalmente tendremos un acabado como la siguiente figura:

Agujeros para instalar cada articulación

Figura 7.2: Acabado de la base estructural principal Fuente: Autores

Como podemos observar tenemos cada uno de los agujeros para instalar a cada una de las 6 extremidades que conformarán el robot hexápodo.

7.3. Construcción inicial de las extremidades

Primeramente para la construcción de cada extremidad se utilizó acero inoxidable de 1mm de espesor, ya que al inicio se diseñó la pieza con aluminio pero este por sus propiedades del material se quebraba en las esquinas al doblar para formar la U que conforma cada extremidad, por ello se tomó esta medida. 152

Además también se pretendía utilizar aluminio de 2mm para cada extremidad pero utilizando una balanza electrónica se obtuvo que tenía el mismo peso con respecto a la pieza de acero inoxidable de 1mm de espesor, por ello se decidió utilizar este material.

A continuación se detalla cada una de las dimensiones de las piezas a doblar en forma de U para de esta manera adaptar al servomotor, esto se puede apreciar en las figuras:

Figura 7.3: Pieza de acero inoxidable de 1mm de espesor a ser doblada en forma de U con sus respectivos agujeros para la instalación de cada servomotor que será el brazo del robot. Fuente: Autores

Figura 7.4: Pieza de acero inoxidable de 1mm de espesor a ser doblada en forma de U con sus respectivos agujeros para la instalación de cada servomotor que será la rodilla / hombro del robot. Fuente: Autores

153

Cabe mencionar que la primera pieza es la que hará de pie donde se agregará un eje de tubo cromado de 1cm de diámetro, previamente cortado de una longitud soldado con cobre para de esta manera instalar un caucho para su estabilidad y su fácil desplazamiento en la superficie de todo tipo.

Para diseñar el brazo del hexápodo se ideó juntar 2 servomotores mediante una técnica agregando una pieza de aluminio en la parte superior y otra en la parte inferior la misma que ira pegada con cinta adherente de doble faz.

A continuación se detalla cada una de las dimensiones de cada pieza a ser elaboradas en aluminio de 2 mm de espesor con sus respectivos agujeros y luego de igual manera serán pintadas con pintura de altas temperaturas por las características ya mencionadas:

Figura 7.5: Pieza para la unión de 2 servomotores en la parte superior con tornillos Allen de 1/8 con sus respectivas tuercas. Fuente: Autores

Figura 7.6: Pieza para la unión de 2 servomotores en la parte inferior de los mismos, que irá pegada con cinta adherente de doble faz en conjunto de un eje para cada servomotor Fuente: Autores

154

7.4. Montaje de los Servomotores

Como se puede apreciar a continuación en las siguientes figuras se muestra como se debe realizar el montaje de la unión de los 2 servomotores que conformarán el brazo de la extremidad del robot hexápodo: Pieza de aluminio para unir en la parte superior

Pieza de aluminio para unir en la parte inferior

Tornillos Allen inoxidable de 1/8 con tuercas

Cinta adhesiva de doble cara

Figura 7.7: Montaje de la pieza superior e inferior para la unión de los 2 servomotores a conformar una extremidad. Fuente: Autores

Eje para servomotor

Eje para servomotor

Pieza de aluminio para unir parte inferior de servomotores

Figura 7.8: Pieza inferior montada con sus respectivos ejes falsos para cada servomotor. Fuente: Autores

Figura 7.9: Vista de la pieza superior del montaje de los 2 servomotores con tornillos Allen inoxidable. Fuente: Autores

155

7.5. Armado de las extremidades

Luego después del montaje de cada uno de los 6 brazos con sus respectivos servomotores se procede al montaje de la U que fue previamente cortada, doblada, esmerilada, lijada, tratada con los líquidos anticorrosivos para el metal, y pintada de color gris.

En esta pieza, se soldó el eje que será de brazo del robot hexápodo para su desplazamiento, además se instaló del caucho para el movimiento y agarre en la superficie. Pieza para instalación de servo motor brazo

Eje para desplazamiento del Hexápodo

Caucho para fácil movimiento

Figura 7.10: Vista superior de la pieza que será el brazo del robot hexápodo. Fuente: Autores

Agujeros para instalación del servomotor brazo con tornillos milimétricos

Figura 7.11: Agujeros superiores para instalar el servomotor. Fuente: Autores

156

Eje para fácil movimiento de servo motor brazo

Figura 7.12: Agujero inferior que será el eje del servomotor. Fuente: Autores

Una vez culminada con el armado de los 6 brazos, continuamos con la instalación de los servos motores de la rodilla y hombro de cada extremidad.

Para ello hacemos uso de las piezas dobladas en forma de U previamente las mismas que disponen de agujeros en su parte interna para formar una sola pieza mediante tornillos Allen de 1/8 con su respectiva tuerca y arandela para mayor sujeción.

Cabe recalcar que esta pieza será la que sostendrá a los servos motores de la articulación de la rodilla y del hombro, que conformaran la extremidad en unión del brazo ya anteriormente armando. Agujeros para instalación del servomotor hombro con tornillos milimétricos

Eje para fácil movimiento de servo motor

Agujeros para instalación del servomotor rodilla con tornillos milimétricos

Figura 7.13: Pieza donde se instalará el servo motor para la articulación de la rodilla y para el hombro. Fuente: Autores

157

Agujeros para unir pieza de rodilla y hombro con tornillos Allen de 1/8

Figura 7.14: Agujero inferior que será el eje del servomotor. Fuente: Autores

7.6. Ensamblaje final de las extremidades Luego del montaje de cada una de las 6 extremidades con sus respectivos servos motores para el brazo, rodilla y hombro respectivamente, procedemos al ensamblaje de todas las extremidades en la base la cual soportará y será de columna vertebral del robot hexápodo.

En cada extremidad se instalará con tornillos Allen de acero inoxidable de 1/8 con tuerca 3mm x 16-50 y Arandelas de bronce de 1/8 para su sujeción, como se puede apreciar en las siguientes figuras:

Tornillo Allen 1/8 con su respectiva tuerca y arandela de bronce

Tornillo Allen 1/8 con su respectiva tuerca y arandela de bronce

Figura 7.15: Instalación del servomotor con los tornillos Allen y las arandelas para la sujeción. Fuente: Autores

158

Figura 7.16: Instalación de extremidades con sus respectivas articulaciones en cada base (Vista Frontal). Fuente: Autores

Figura 7.17: Instalación de extremidades con sus respectivas articulaciones en cada base (Vista Lateral). Fuente: Autores

159

7.7. Construcción de base de protección

Esta es la estructura que será cortada en metacrilato (acrílico) de 2 mm de espesor en color blanco para su proteger el cableado y demás componentes electrónicos del robot, además donde irán pegadas el nombre respectivo de cada uno de los robots en papel adhesivo previamente realizado en diseño e impreso el mismo en serigrafía.

Figura 7.18: Base de protección para los robots hexápodos. Fuente: Autores

160

7.8 Articulación de giro PAN/TILT

7.8.1 Descripción

El siguiente montaje es una articulación capaz de mover una mini cámara sobre 2 ejes. Esta está ideada en base a 2 micro - servos y la parte mecánica es de muy fácil realización.

El montaje tiene una longitud total de unos 8cm (aunque puede acortarse aun más), y es capaz de apuntar una micro cámara 180º en el plano horizontal y 90º en el vertical.

Figura 7.19: Vista frontal de la construcción de articulación de giro PAN/TILT con Cámara Inalámbrica Fuente: http://www.xrobotics.com/montaje.htm#Articulaci%C3%B3n%20de%20giro%20PAN/TILT

Figura 7.20: Vista lateral de la construcción de articulación de giro PAN/TILT con Cámara Inalámbrica Fuente: http://www.xrobotics.com/montaje.htm#Articulaci%C3%B3n%20de%20giro%20PAN/TILT

161

7.8.2 Fabricación

La fabricación es muy sencilla de realizar tal como puede verse en las siguientes figuras:

Figura7.21: Vista lateral y frontal en 3D de la construcción de articulación de giro PAN/TILT con Cámara Inalámbrica Fuente: http://www.xrobotics.com/montaje.htm#Articulaci%C3%B3n%20de%20giro%20PAN/TILT

La articulación se fijará al cuerpo del robot por medio de un ángulo o cualquier otro perfil adecuado para el libre movimiento del primer servo que será el encargado de mover el conjunto en el plano horizontal con una libertad de movimiento de 90º a un lado y a otro formando un radio de acción total de 180º.

El plato de este servo ira atornillado directamente al ángulo de sujeción principal con lo cual el servo quedara en el aire y al girar se moverá sobre si mismo.

Figura 7.22: Vista lateral con su respectiva longitud de articulación de giro PAN/TILT con Cámara Inalámbrica Fuente: http://www.xrobotics.com/montaje.htm#Articulaci%C3%B3n%20de%20giro%20PAN/TILT

162

A un costado de este servo y aprovechando su aleta perforada de sujeción, atornillaremos un pequeño tubito con el propósito de prolongar hacia adelante un soporte para el segundo servo que será el encargado de mover la micro cámara adosada a su cuerpo en el plano vertical consiguiendo un mayor o menor ángulo de movimiento según dispongamos este servo mas cerca o mas lejos del servo de movimiento horizontal, evitando así que colisionen entre ellos, en el montaje de las fotos se consigue un ángulo de unos 90º suficiente para casi cualquier aplicación.

El segundo servo ira colgando en el aire y usaremos la palanca del eje de salida del servo para sujetarse al tubito prolongador que viene del primero.

El tubito que he usado es un perfil de aluminio de 8mm que se usa en los vidrios y es muy ligero aunque puede usarse cualquier perfil que cumpla los requisitos.

Figura 7.23: Vista cercana de la construcción de articulación de giro PAN/TILT con Cámara Inalámbrica Fuente: http://www.xrobotics.com/montaje.htm#Articulaci%C3%B3n%20de%20giro%20PAN/TILT

Por último la micro cámara inalámbrica se fijara con cinta adhesiva de doble cara al costado del último servo por el lado externo de este.

7.8.3 Usos

Este montaje puede usarse con cualquier sensor que necesite de un desplazamiento angular sobre 2 ejes.

163

CAPÍTULO VIII

PROGRAMADOR GTP PLUS USB 2.0 Y SOFTWARE WINPIC 800

8.1. Programador GTP PLUS USB 2.0

Este programador es casi universal ya que es capaz de programar mediante un zócalo o directamente con ICSP prácticamente toda la serie PIC, AVR y también las memorias I2C.

La gran ventaja de éste es la gran cantidad de dispositivos que soporta ya que incluye prácticamente toda la serie PIC de 8 bits (10F, 12F, 16F, 16C y 18F) y PIC de 16 bits, dsPIC (24F, 24H, 30F, 33F). También soporta la programación de AVR (AT90Sx, ATmega y ATtiny) y una amplia gama de memoria serie I2C.

8.1.1. Instalación del Driver USB

La instalación del driver es muy sencilla ya que viene incluido en el software programador WinPic800 la cuál veremos más adelante.

El GTP-USB dispone de un LED bicolor en la placa que permanecerá en rojo mientras no se instale correctamente el driver. Tras seguir esta simple guía de instalación, el programador quedará listo para su uso e indicará su correcto funcionamiento poniendo su LED en verde.

8.1.2. Puertos de programación

El programador GTP-USB dispone de dos puertos de salida para conectar, o bien un zócalo ZIP y programar los microcontroladores directamente, o bien una salida ICSP (In Circuit Serial Programming) para programar los distintos dispositivos en su placa final.

164

8.1.3. Diseño de la placa PCB del programador GT PLUS USB

Figura 8.1: Diseño de placa PCB del programador GT PLUS USB Fuente: http://www.scribd.com/doc/6661035/ PCB_GTP-USB

8.1.4. Componentes del programador GT PLUS USB

Figura 8.2: Componentes del programador GT PLUS USB Fuente: http://www.scribd.com/doc/6661035/ PCB_GTP-USB

165

8.1.5. Diagrama Electrónico GT PLUS USB

Figura 8.3: Diagrama electrónico del programador GT PLUS USB Fuente: http://www.scribd.com/doc/6661035/ PCB_GTP-USB

166

8.1.6. Diagramas Esquemáticos GT PLUS USB

Figura 8.4: Diagrama esquemático del programador GT PLUS USB Fuente: http://www.scribd.com/doc/6661035/ PCB_GTP-USB

Figura 8.5: Programador GT PLUS USB listo para usarse Fuente: http://www.scribd.com/doc/6661035/ PCB_GTP-USB

167

8.2. Software WINPIC 800

8.2.1. Introducción

Cualquier programa que hagamos en el código fuente en ensamblador (ASM), lo compilamos y transformamos en un archivo de extensión .hex que es el que vamos a grabar con el WinPic800 a los microcontroladores de la familia PIC a través del GTP PLUS USB.

8.2.2 Diagrama de flujo

Compilador Pic

Archivo .HEX

Programador WinPic 800

Grabación al PIC

Figura 8.6: Diagrama de Flujo Fuente: http://www.madboxpc.com/foro/topic/83354-manual-basico-de-winpic800-en-pdf/

168

8.2.3. Pantalla del WinPic 800

Winpic800 es un programa grabador de microcontroladores muy usado y fácil que puedes descargar libremente en www.winpic800.com.

En este caso se usa la versión Winpic800 3.64 bajo el sistema operativo Windows Xp y Windows Vista. Elegimos el PIC 16F628A para grabar los programas ya que es el más usado y encontrar más información sobre él. Lo instalamos y luego lo ejecutamos.

Por primera vez nos aparecerá esta ventana.

Figura 8.7: Pantalla principal del WinPic 800. Fuente: Software grabador de Microcontroladores

169

8.2.4. Instalación del Software WinPic 800

Primero

descargamos

el

software

WinPic

800

versión

3.64

del

web http://www.winpic800.com/, en el área de descargas.

Luego ejecutamos en instalador donde aparecerá la siguiente ventana:

Figura 8.8: Instalando el WinPic 800. Fuente: Software grabador de Microcontroladores

Luego elegimos el idioma del software a instalar y aceptamos presionando Next:

Figura 8.9: Eligiendo el idioma de instalación del WinPic 800. Fuente: Software grabador de Microcontroladores

Después elegimos el directorio a instalar en nuestro disco duro y damos Start: 170

sitio

Figura 8.10: Eligiendo el directorio de instalación del WinPic 800. Fuente: Software grabador de Microcontroladores

Luego saldrá una ventana donde muestra que la instalación se ha realizado con éxito y presionamos Ok.

Figura 8.11: Instalación completa del WinPic 800. Fuente: Software grabador de Microcontroladores

Después nos da la opción de crear un acceso directo en el escritorio de Windows y presionamos OK.

Figura 8.12: Creación de acceso directo al WinPic 800. Fuente: Software grabador de Microcontroladores

A continuación instalaremos el driver o controlador para que exista la comunicación con la interface de programación GTP Plus USB, donde presionamos Next. 171

Figura 8.13: Instalación del driver para el GTP Plus USB del WinPic 800. Fuente: Software grabador de Microcontroladores

Una vez terminada la instalación de controlador presionamos OK y listo operación finalizada con éxito, pues ya aquí podemos conectar nuestro programador GTP Plus USB.

Figura 8.14: Instalación completa del driver para el GTP Plus USB del WinPic 800. Fuente: Software grabador de Microcontroladores

8.2.5. Configurar el GTP Plus USB

La primera vez que ejecutamos WinPic800 debemos configurar el programador GTP Plus USB para comunicar con el USB.

En la barra de herramientas pulsa “Configuración” y luego “Hardware”.

172

Figura 8.15: Procedimiento para configurar el programador GTP Plus USB Fuente: Software grabador de Microcontroladores

Saldrá la ventana “WinPic800 [Hardware Configuración]” en el cual debemos seleccionar en el “Selección del Hardware”, “GTP USB PLUS”.

También se debe tener conectado el cable USB con el programador GTP Plus USB. Cuando acabemos de configurar pulsa “Confirmar cambios”.

Figura 8.16: Procedimiento para configurar el programador GTP Plus USB Fuente: Software grabador de Microcontroladores

8.2.6. Seleccionar dispositivo

Aquí elegimos la gama media de los PIC 16F. Como pueden ver, hay muchas familias que crece con cada versión y en este caso elegimos esta gama para el PIC 16F628A.

173

Figura 8.17: Procedimiento para seleccionar el Microcontrolador PIC a usar Fuente: Software grabador de Microcontroladores

Después de seleccionar la gama media 16F, elegimos la familia más popular y famoso PIC 16F628A para principiantes.

Figura 8.18: Listado de microcontrolador PIC de gama media de la familia 16FXXX Fuente: Software grabador de Microcontroladores

174

8.2.7. Seleccionado el PIC 16F628A

Figura 8.19: Microcontrolador Pic 16F628A seleccionado para programar. Fuente: Software grabador de Microcontroladores

Modo configuración para elegir tipo de oscilador entre otras opciones de configuración de bits e incluso el ID.

8.2.8. Configuración

Figura 8.20: Bits de configuración o Fuses del Microcontrolador Pic 16F628A. Fuente: Software grabador de Microcontroladores

175

8.2.9. Oscilador

Los PIC16F87X pueden funcionar con 4 modos distintos de oscilador. El usuario puede programar dos bits de configuración para seleccionar uno de estos 4 modos:

• LP Low Power Crystal (cristal de cuarzo ó resonador cerámico hasta 200KHz) • XT Crystal/Resonator (cristal de cuarzo ó resonador cerámico hasta 4MHz) • HS High Speed Crystal/Resonator (cristal de cuarzo entre 4MHz y 20MHz) • RC Resistor/Capacitor (red RC externa hasta 4MHz) Otros PIC de la familia PIC16 tienen un número mayor de modos para el oscilador y, por tanto, un número mayor de bits para seleccionar. Estos otros modos son: • EXTRC External Resistor/Capacitor • EXTRC External Resistor/Capacitor with CLKOUT • INTRC Internal 4 MHz Resistor/Capacitor • INTRC Internal 4 MHz Resistor/Capacitor with CLKOUT

Elegir un oscilador LP, XT, HS y RC que el más usado y preciso es el XT (Oscilador de cristal de cuarzo).

Figura 8.21: Tipos de osciladores del Microcontrolador Pic 16F628A. Fuente: Software grabador de Microcontroladores

176

8.2.10. Bits de configuración

Todos los microcontroladores PIC tienen una posición de memoria denominada palabra de configuración (posición 0x2007), en la que cada bit tiene un significado y configura las características especiales.

Los bits de configuración pueden ser programados (puestos a 0) o dejados sin programar (quedan a 1, estado que tienen cuando están “limpios”), con objeto de seleccionar varias configuraciones del microcontrolador: tipo de oscilador, protección o no del programa, uso ó no del watchdog, etc.

El valor no programado de la palabra de configuración es 0x3FFF (todo “1”). Al estar los bits de configuración en la posición 0x2007 de la memoria de programa (fuera del espacio de memoria de programa de usuario) es únicamente accesible durante la programación del micro y no durante la ejecución de un programa.

Por tanto es especialmente importante cargar correctamente esos bits durante la programación para conseguir que el microcontrolador pueda funcionar luego en su estado de ejecución normal.

En los bits de configuración podemos seleccionar varias configuraciones para el PIC16F628A. • WDT: (WatchdogTimer). • PWRT (Power-up Timer). • CP (CodeProtect). Protección del código del programa. • LVP: Low Voltage In-Circuit Serial Programming Enable bit. • BOREN: Brown-out Reset Enable

177



PWRTE: Power-up Timer Enable

Figura 8.22: Bits de configuración del Microcontrolador Pic 16F628A. Fuente: Software grabador de Microcontroladores

8.2.11. Cargar el archivo .hex al programador

Vamos a cargar un archivo .hex al programador WinPic800 para prepararlo a cargar en el grabador GTP Plus USB.

Figura 8.23: Botón Abrir para cargar programa a grabar en Microcontrolador Pic 16F628A. Fuente: Software grabador de Microcontroladores

178

8.2.12. Cargado el archivo .hex

Figura 8.24: Programa cargado listo para ser grabado en el Microcontrolador Pic 16F628A. Fuente: Software grabador de Microcontroladores

En este manual sólo vamos a explicar las funciones más utilizadas.

8.2.13. Funciones principales del WinPic800

Figura 8.25: Funciones principales del WinPic 800 Fuente: Software grabador de Microcontroladores

179

a) Abrir archivos .hex. Si pulsa la flecha aparecen los archivos recientes.

b) Actualizar archivo.

c) Guardar archivo .hex en caso de ser recuperado del PIC.

d) Configuración y opciones generales del Software.

d) Configuración y opciones del Hardware.

f) Lee el contenido del PIC conectado al TE20x.

g) Programa los datos al PIC por el TE20x.

h) Verifica los datos comparando los datos .hex que hay cargados en la ventana del WinPic800 con lo que hay en el PIC16F84A que nos indica el resultado.

i) Borra el contenido del programa del PIC.

j) Información y características del dispositivo seleccionado.

k) Tipos y marcas de los dispositivos.

l) Selección de dispositivos.

m) Detector de dispositivos.

n) Test del Hardware que comprueba la comunicación con el programador TE20x.

n) Configuración de los dispositivos.

o) Muestra datos de la EEPROM.

p) Muestra los datos del programa. 180

No olvides que: a) Para sustituir el PIC 16F84A al programarlo antes debes desconectar el GTP Plus UBS, en caso contrario puedes dañar la placa base y/o el propio microcontrolador. b) WinPic800 debe reconocer el microcontrolador antes de programar. c) Colocar bien el PIC en su zócalo antes de programarlo.

8.2.14. Barra de herramientas del dispositivo.

Figura 8.26: Herramientas de programación del WinPic 800. Fuente: Software grabador de Microcontroladores

8.2.15. Test Hardware

En la barra de herramientas, pulsa “Dispositivo”, “Test Hardware”. También puedes pulsar el icono directamente de la barra o simplemente pulsando “Control + T” y comprobarás si el GTP Plus USB está conectado.

181

Figura 8.27: Ventana del proceso de Test del Hardware conectado al WinPic 800. Fuente: Software grabador de Microcontroladores

8.2.16. Detectar dispositivo

En la barra de herramientas, pulsa “Dispositivo”, “Detectar dispositivo”. También puedes pulsar el icono directamente de la barra o simplemente pulsando “Control + D” y comprobarás que detecta el 16F628A.

Figura 8.28: Ventana del proceso Detección del Dispositivo microcontrolador a programar. Fuente: Software grabador de Microcontroladores

8.2.17. Programar el PIC

En la barra de herramientas, pulsa “Dispositivo”, “Programar Todo”. También puedes pulsar el icono directamente de la barra o simplemente pulsando “Control + P” y comprobarás el resultado de la operación.

182

Figura 8.29: Ventana del proceso Programando el microcontrolador del WinPic 800. Fuente: Software grabador de Microcontroladores

8.2.18. Verificar

En la barra de herramientas, pulsa “Dispositivo”, “Programar Todo”. También puedes pulsar el icono directamente de la barra o simplemente pulsando “Control + V”.

Figura 8.30: Ventana del proceso Verificando la programación del PIC 16F628A. Fuente: Software grabador de Microcontroladores

8.2.19. Error

Si el PIC está protegido o está activado la configuración bits con CP (CodeProtect), los datos grabados no se pueden leer, con lo cual, muestra un mensaje de error.

183

Figura 8.31: Error de Código de Protección (CP) al leer un Microcontrolador PIC 16F628A Fuente: Software grabador de Microcontroladores

Si está protegido con CP, los datos se leen como ceros.

Figura 8.32: Datos leídos de un Microcontrolador Pic 16F628A con código de protección. Fuente: Software grabador de Microcontroladores

184

8.2.20. Utilidades

8.2.20.1. Dis-Assembly y Enumeración Conversor

Figura 8.33: Utilidades del WinPic 800. Fuente: Software grabador de Microcontroladores

8.2.20.1.1. Dis-assembly

Dis-assembly o desamblador es una utilidad muy bien si tienes sólo el archivo fuente .hex y quieres ver el código fuente para entenderlo y/o modificarlo.

Figura 8.34: Herramienta Conversora del archivo .hex a assembler del WinPic 800. Fuente: Software grabador de Microcontroladores

185

8.2.20.1.2 Conversor

El conversor es una buena herramienta para saber al mismo tiempo cualquier valor sea en binario, hexadecimal, decimal, octal y la tabla ascii entre elegir 8, 16, 32 y 64 bits.

Figura 8.35: Herramienta para convertir valor en binario, hexadecimales, decimales, ascii, octal. Fuente: Software grabador de Microcontroladores

186

CAPÍTULO IX

DESARROLLO DE LAS APLICACIONES PARA LOS 2 ROBOTS HEXÁPODOS.

9.1. Primera Aplicación: Robot Hexápodo Gretel

9.1.1. Introducción

La primera aplicación radica en el control del desplazamiento (x, y) del hexápodo # 1 mediante un control en base a diferentes pulsantes para cada uno de los movimientos que controlará al robot hexápodo y también a la cámara de A/V que trasmitirá señales de video de lo que ocurre en su entorno, la comunicación entre el mando y el robot será mediante un transmisor de radiofrecuencia 433.92 MHz RF transmisor – receptor y microcontroladores PIC de MicroChip, además tendrá una tarjeta controladora de 18 servomotores comandada por un PIC16F877A el cual tendrá la facultad de controlar el desplazamiento de cada uno de los servos que conforman al hexápodo. Control Remoto Desplazamiento Cámara (X, Y)

PCB Controladora de 18 servos PIC16F877A y Movimientos del Robot y Cámara

Receptor RF 434 MHz

Mando Control Remoto Desplazamiento Principal Hexápodo

Robot Hexápodo de 18 servomotores Transmisor RF 434 MHz

Articulación de Giro en (X,Y) de Cámara

PC (A/V del entorno del robot)

Capturadora de Video / USB

Cámara de Audio y Video Inalámbrica

Receptor de Cámara de Audio y Video Inalámbrica

Figura 9.1: Diagrama en bloque de la aplicación # 1 Fuente: Autores

187

9.1.2. Desarrollo del Mando Principal Trasmisor RF 434 MHz.

El mando principal se desarrollo mediante interruptores los cuales comandan a cada una de los desplazamientos (izquierda, derecha, arriba, abajo) tanto del robot como de la cámara de audio y video la cual transmitirá imagen a color de lo que ocurre en el entorno del hexápodo.

Transmisor de radiofrecuencia 433.92 MHz

Indicador LED de envío de datos

Mando Para movimiento en Plano X y Y Cámara A/V

U

U R

L

L

R D

D

Mando Para movimiento de Hexápodo

Regulador de Voltaje 78R05 Batería de 9v recargable Ni/Cd

Figura 9.2: Diagrama esquemático del Mando Principal Transmisor RF 434MHz. Fuente: Autores

Para la elaboración se utilizó un microcontrolador PIC16F628A debido a sus características y aprovechando cada una de las entradas y salidas que dispone.

También se utilizó un módulo de radio frecuencia de 434 MHz modelo FST-4 de la marca SzSaw. 188

Sus características técnicas las detallamos en el Capítulo V (Cfr. Supra) de Módulos de Radio Frecuencia.

9.1.2.1. Desarrollo del programa del Mando Principal Trasmisor RF 434 MHz.

La programación del microcontrolador PIC16F628 se desarrollo en el lenguaje de programación PIC BASIC PROFESSIONAL y se detalla a continuación:

CMCON = 7

; para cambiar los puertos de analógico a I/O

INCLUDE "MODEDEFS.BAS"

; librería para trabajar datos seriales

TRISB.1 = %1

; bit b1 como entrada

TRISB.2 = %1

; bit b2 como entrada

TRISB.3 = %1

; bit b3 como entrada

TRISB.4 = %1

; bit b4 como entrada

TRISA.0 = %1

; bit a0 como entrada

TRISA.1 = %1

; bit a1 como entrada

TRISA.2 = %1

; bit a2 como entrada

TRISA.3 = %1

; bit a3 como entrada

PORTB = 0

; puerto b encerado

PORTA = 0

; puerto b encerado

INICIO: ; señales para el control # 1 ; interruptor adelante del control de cámara inalámbrica IF PORTB.1 = 0 THEN

; si se presiona el interruptor se envía el

SEROUT PORTB.0, T1200, [0,"A"] ;caracter “A” del Puerto serie hacia el modulo RF PAUSE 200

; tiempo para envío de datos al receptor

HIGH PORTB.5

; led indicador para envío de datos al receptor

PAUSE 200 LOW PORTB.5 ELSE SEROUT PORTB.0, T1200, [0,"1"]

;si no se presiona nada envíe el carácter

189

ENDIF

; “1” para estar siempre comunicado con el ; receptor y evitar que le ingrese

;

interferencia. IF PORTB.4 = 0 THEN

; interruptor derecha del control de cámara

inalámbrica SEROUT PORTB.0, T1200, [0,"B"] PAUSE 200 HIGH PORTB.5 PAUSE 200 LOW PORTB.5 ELSE SEROUT PORTB.0, T1200, [0,"1"] ENDIF IF PORTB.3 = 0 THEN

; interruptor izquierda del control de cámara

inalámbrica SEROUT PORTB.0, T1200, [0,"C"] PAUSE 200 HIGH PORTB.5 PAUSE 200 LOW PORTB.5 ELSE SEROUT PORTB.0, T1200, [0,"1"] ENDIF IF PORTB.2 = 0 THEN

; interruptor atrás del control de cámara

inalámbrica SEROUT PORTB.0, T1200, [0,"D"] PAUSE 200 HIGH PORTB.5 PAUSE 200 LOW PORTB.5 ELSE SEROUT PORTB.0, T1200, [0,"1"] ENDIF 190

; señales para el control # 1 IF PORTA.0 = 0 THEN

; interruptor adelante del control del robot

hexápodo SEROUT PORTB.0, T1200, [0,"E"] PAUSE 200 HIGH PORTB.5 PAUSE 200 LOW PORTB.5 ELSE SEROUT PORTB.0, T1200, [0,"1"] ENDIF IF PORTA.1 = 0 THEN

; interruptor atrás del control del robot hexápodo

SEROUT PORTB.0, T1200, [0,"F"] PAUSE 200 HIGH PORTB.5 PAUSE 200 LOW PORTB.5 ELSE SEROUT PORTB.0, T1200, [0,"1"] ENDIF IF PORTA.2 = 0 THEN

; interruptor derecha del control del robot hexápodo

SEROUT PORTB.0, T1200, [0,"G"] PAUSE 200 HIGH PORTB.5 PAUSE 200 LOW PORTB.5 ELSE SEROUT PORTB.0, T1200, [0,"1"] ENDIF IF PORTA.3 = 0 THEN

; interruptor derecha del control del robot hexápodo

SEROUT PORTB.0, T1200, [0,"H"] PAUSE 200 HIGH PORTB.5 PAUSE 200 191

LOW PORTB.5 ELSE SEROUT PORTB.0, T1200, [0,"1"] ENDIF GOTO INICIO END

9.1.2.2. Desarrollo del Diseño del Mando Principal Trasmisor RF 434 MHz.

A continuación se presentarán cada una de las fases del diseño del transmisor realizado en Proteus ISIS.

Figura 9.3: Diseño electrónico en Proteus - ISIS de la PCB transmisor RF para el control remoto de los movimientos del hexápodo y de la cámara de A/V. Fuente: Autores

192

Figura 9.4: Vista en 3d de Proteus de la PCB transmisor RF Fuente: Autores

Figura 9.5: Diseño de la PCB en Proteus - ARES de la PCB transmisor RF Fuente: Autores

Figura 9.6: Diseño de las pistas electrónicas a imprimir en Proteus - ARES de la PCB transmisor RF Fuente: Autores

193

Figura 9.7: Diseño de los elementos electrónicos a imprimir en Proteus - ARES de la PCB transmisor RF Fuente: Autores

9.1.3 Desarrollo del Mando Receptor RF 434 MHz.

En el mando receptor también se utilizó un microcontrolador PIC16F628A tanto para el control (desplazamiento X y Y) de la cámara inalámbrica como también los movimientos del robot (adelante, atrás, izquierda, derecha).

Cabe recalcar que este control o mando, suministra 4 señales para el desplazamiento del robot (adelante, atrás, izquierda, derecha) a la tarjeta controladora de 18 servo motores comandada por un PIC16F877A.

En lo que respecta a la estructura giratoria PAN/TILT de la cámara inalámbrica se detalla más su construcción y elaboración en el capítulo de Diseño Estructural del Robot, donde se observa cada una de las fases de su construcción y los elementos utilizados para su acabado final.

En esta estructura irá montada una cámara inalámbrica, la misma que transmitirá audio y video en tiempo real de lo que ocurra en el entorno del hexápodo durante el desplazamiento del mismo a una computadora mediante un receptor inalámbrico de audio / video y una capturadora de video a USB previamente conectada a la PC.

194

Señales para desplazamiento de hexápodo Receptor de radiofrecuencia 433.92 MHz

Estructura PAN / TILT

PCB Controladora 18 Servos con 16F877A Y I/O DIGITALES Micro Servo Motor

Cámara espía inalambrica infraroja Receptor Inalámbrico de Audio y Video Capturadora De Audio y Video / USB

Figura 9.8: Diagrama esquemático del Mando Secundario Receptor RF 434MHz. Fuente: Autores

De igual manera en la elaboración se utilizó un microcontrolador PIC16F628A debido a sus características técnicas y aprovechando cada una de las entradas y salidas que dispone, para el control de la cámara y del robot.

195

Para la recepción de los datos también se utilizó un módulo Híbrido Receptor de radio frecuencia de 434 MHz Modelo CZS-3 de la marca SzSaw.

Todas sus características técnicas se detallan en el Capítulo V (Cfr. Supra) de Módulos de Radio Frecuencia.

9.1.3.1. Desarrollo del programa del Mando Receptor RF 434 MHz.

La programación del microcontrolador receptor PIC16F628 se desarrollo en el lenguaje de programación PIC BASIC PROFESSIONAL

y se detalla a

continuación:

INCLUDE "MODEDEFS.BAS"

; librería para trabajar con datos seriales

CMCON=7

; para cambiar los puertos de analógico a I/O

TRISB.1=%0

; bit b3 como salida

TRISB.2=%0

; bit b1 como salida

TRISB.3=%0

; bit b2 como salida

TRISB.4=%0

; bit b2 como salida

TRISA.0=%0

; bit b3 como salida

TRISA.1=%0

; bit b1 como salida

TRISA.2=%0

; bit b2 como salida

TRISA.3=%0

; bit b2 como salida

PORTB=0

; puerto b encerado

PORTA=0

; puerto b encerado

TRISA=0 DATOS VAR BYTE ; variable para recibir los caracteres enviados desde el

; transmisor

INICIO: SERIN PORTB.0, T1200, DATOS ; lee el dato recibido del puerto b.0 serial en la ; variable datos ; Señales recibidas para el control del desplazamiento del robot IF DATOS="A" THEN ; si el carácter recibido es A envía una señal por el pinb.1 HIGH PORTB.1 196

PAUSE 200 LOW PORTB.1 ENDIF IF DATOS = "B" THEN HIGH PORTB.2 PAUSE 200 LOW PORTB.2 ENDIF IF DATOS = "C" THEN HIGH PORTB.4 PAUSE 200 LOW PORTB.4 ENDIF IF DATOS = "D" THEN HIGH PORTB.3 PAUSE 200 LOW PORTB.3 ENDIF

; Señales recibidas para el control del desplazamiento de la cámara X y Y IF DATOS = "E" THEN HIGH PORTA.0 PAUSE 200 LOW PORTA.0 ENDIF IF DATOS = "F" THEN HIGH PORTA.1 PAUSE 200 LOW PORTA.1 ENDIF IF DATOS = "G" THEN HIGH PORTA.2 PAUSE 200 LOW PORTA.2 197

ENDIF IF DATOS = "H" THEN HIGH PORTA.3 PAUSE 200 LOW PORTA.3 ENDIF GOTO INICIO END

La programación del microcontrolador que controla la posición de la cámara inalámbrica PIC16F628 se desarrollo en el lenguaje de programación PIC BASIC PROFESSIONAL y se detalla a continuación:

cmcon = 7

; para cambiar los puertos de analógico a I/O

control1 var portb.0 control2 var portb.1 incrementar1 var porta.0

'Pin de pulsador para incremento

disminuir1 var porta.1

'Pin de pulsador para decremento

incrementar2 var porta.2

'Pin de pulsador para incremento

disminuir2 var porta.3

'Pin de pulsador para decremento

x var byte 'x de tamaño 256 y var byte 'x de tamaño 256 servo1 var byte servo2 var byte trisb = 0 portb = 0 x = 150

; Posición inicial del servo motor

y = 150

; Posición inicial del servo motor

INICIO: IF servo1 = 1 then pulsout control1, x

'Envía x por el pin portb.1 (control)

IF servo2 = 1 then pulsout control2, y

'Envía x por el pin portb.1 (control)

gosub timer

'Subrutina de chequeo del pulsador

goto inicio 198

timer: if incrementar1 = 0 then gosub mas1

'Si el p esta a tierra, ir a subir "mas"

if disminuir1 = 0 then gosub menos1

'Si el p esta a tierra, ir a subir "menos"

if incrementar2 = 0 then gosub mas2

'Si el p esta a tierra, ir a subir "mas"

if disminuir2 = 0 then gosub menos2

'Si el p esta a tierra, ir a subir "menos"

return mas1:

'Subrutina de aumento de posición

pause 10 servo1 = 1 x = x+1 if x > 250 then x = 250

'Aumento del pulso de salida 'Determina un valor máximo de 250

return

menos1:

'Subrutina de disminución de posición

pause 10 servo1 = 1 x = x-1 if x < 50 then x = 50

'Disminución del pulso de salida 'Determina un valor mínimo de 50

return

mas2:

'Subrutina de aumento de posición

servo2 = 1 pause 10 y = y+1 if y > 250 then y = 250

'Aumento del pulso de salida 'Determina un valor máximo de 250

return

menos2:

'Subrutina de disminución de posición

servo2 = 1 pause 10 y= y-1 if y < 50 then y = 50

'Disminución del pulso de salida 'Determina un valor mínimo de 50

return END 199

9.1.3.2. Sistema de audio y video del robot hexápodo Gretel.

A continuación se detalla las características técnicas de la cámara, del receptor y de la capturadora de TV.

Figura 9.9: Elementos del sistema de la cámara y receptor del robot hexápodo Gretel. Fuente: http://www.mipila.com/mercadolibre/camara%20inalambrica%20copia.jpg

9.1.3.2.1. Características técnicas de la cámara •

Gran calidad de imagen en color gracias a su sensor CMOS de nueva tecnología, que ofrece más de 380 líneas de resolución con un mínimo consumo, pudiendo dejarse conectada a la pila de 9v continuamente.



Sistema de Vídeo: PAL y NTSC



Emisor de radio incorporado, para transmisión de imágenes a color y a distancia.



Número de pixeles reales: 628 x 582 (PAL) 510 X 492 (NTSC)



Obturador electrónico: 1 60 - 1 15000



Iluminación mínima: 3 lux a F1.2



Sensibilidad: (+18dB) ACG on-off



Corrección de gamma: (0.45) -On Off



Lente Pinhole: 5.6 mm F2.0 60º



La cámara Mide tan solo 2 x 2 x 2 cm y el lente 1 mm de diámetro. 200



Alimentación: 5v-12v de CC sólo con su clavija de alimentación incluida.

• Receptor de radiofrecuencia de banda 1200 MHz con salida de video RCA análogica para TV, video o PC •

Movimiento total en tiempo real de la transmisión audio y video

• Visión nocturna, incorpora 4 LEDS infrarrojos para grabar en la oscuridad • La cámara lleva incorporado su propio emisor de radio capaz de alcanzar los 100 metros sin obstáculos.

9.1.3.2.2. Características técnicas de la cámara del receptor de radio

Frecuencia de trabajo 900Mhz-1200Mhz • Salida RCA (Video) • Dimensiones 20mm x 80mm x 140mm • Peso 145g • Alimentación +9 -12 v.

Figura 9.10: Elementos del sistema de A/V del robot hexápodo Gretel. Fuente: http://www.mipila.com/mercadolibre/camara%20inalambrica%20copia.jpg

9.1.3.2.3. Características técnicas de la capturadora de tv externa USB 2.0

Interface: USB 2.0 compatible USB 1.1 •

Consumo de energía: Alimentado por puerto USB (No necesita fuente de energía externa).



Entradas y salidas: 201

 Entrada de Video: TV, S-Video, Compuesto (RCA)  Antena de TV por Coaxial o Conexión de Cable, puede conectarse también por esta entrada un DVD o una Videocasetera  Video Captura a una tasa de 25 Cuadros/segundo (PAL), 30 cuadros/segundo (NTSC)  Standars de TV: NTSC_M, PAL_I/D/B  Resolución de Video: 720*576 (PAL), 720*480 (NTSC)  Entrada de audio: Estéreo audio (L) (R)  Soporte de audio: Estéreo, Mono  Dimensiones: 13.5cm*8.0cm*3.2cm  Peso: 204g •

USB 2.0 de alta velocidad que no requiere de fuente de poder externa.



Soporta estándar NS-High Speed, que alcanza velocidades de transferencia de datos de hasta 480M bps.



Graba la TV a una resolución de NTSC 704x480.



Entrada S-VHS y Compuesta. para una alta resolución de captura de video. NTSC 704x480.



Video Ajustable Saturación / Contraste / Brillo.



Captura y graba en formatos estándar (AVI, MPEG1, MPEG4 etc.).



Control automático de adaptación de banda para una mejor recepción.



Función de sincronización de captura de audio y Video para evitar desfases es la banda sonora y de video.



Recibe hasta 125 canales de TV con función de escaneo completo.



Soporta TV, Video, DVD/VCD, puedes escuchar música, y ver imágenes.



Soporte multilenguaje



Función de grabado por tiempo en el que tu escoges la hora y el canal y automáticamente graba en el tiempo programado



Control remoto inalámbrico incluido



Incluye el programa WINDVR3 con el que podrás grabar todos tu programas favoritos y verlos cuando tu quieras, tu computadora se convertirá en un a videograbadora digital por lo que puedes ver TV grabarla y quemarla a disco todo al mismo tiempo, no necesitas estar ahí el programa grabara los programas que quieras y una vez terminado apaga tu computadora para que esta no este prendida innecesariamente. 202



Cuenta con muchas funciones excitantes: Puedes fácilmente programar y grabar tus programas favoritos a diferentes horas, Time Shifting que te permite pausar tus programas de tv y saltar comerciales por completo, soporte para video cámaras captura tu video directamente desde la video cámara o videocasetera desde tu dispositivo USB convierte entre diferentes tipos de archivos MPEG, VDC, SVCD, DVD y DV.



Requerimientos  Windows 2000/XP/Vista.  CPU: Pentium III 800 MHz o mejor.  Memoria: 64 MB o más.  Tarjeta de video VGA con al menos 8MB de memoria.  Puerto USB.  Drive CD-ROM

9.1.3.3. Desarrollo del Diseño del Mando Receptor RF 434 MHz.

A continuación se presentarán cada una de las fases del diseño del receptor RF:

Figura 9.11: Diseño electrónico en Proteus - ISIS de la PCB receptora RF Fuente: Autores

203

Figura 9.12: Vista en 3d de Proteus de la PCB receptora RF para el control remoto de los movimientos del hexápodo Fuente: Autores

Figura 9.13: Diseño de la PCB en Proteus - ARES de la PCB receptora Fuente: Autores

Figura 9.14: Diseño de las pistas electrónicas a imprimir en Proteus - ARES de la PCB receptora Fuente: Autores

204

Figura 9.15: Diseño de los elementos electrónicos a imprimir en Proteus - ARES de la PCB receptora RF para el control remoto de los movimientos del hexápodo. Fuente: Autores

9.1.4. Desarrollo de la PCB Controladora de 18 Servomotores Hitec HS-311

En la elaboración de esta PCB Controladora de 18 servomotores de marca HITEC HS-311 se utilizo un microcontrolador PIC16F877A por sus prestaciones en la cantidad de entradas y salidas que dispone este circuito integrado, además como de su amplia cantidad de memoria de programa de 8k.

Mediante esta tarjeta nosotros grabamos todos las rutinas y pasos previamente calculados en para luego cargar estos parámetros en el microcontrolador mediante un una interface ICSP del hardware GTP-USB Plus con la ayuda del WinPic 800. Plataforma de Programación MCSP / Compilador PBP

ICSP (Programación Serial En Circuito)

Programador USB GTP-Plus

PCB Controladora 18 Servos con 16F877A Y I/O DIGITALES

Hexápodo de 18 Servo Motores HITEC HS-311

Figura 9.16: Diagrama esquemático del la tarjeta controladora de 18 servo motores q comandan los movimientos del hexápodo. Fuente: Autores

205

Como trabajamos con la instrucción de Pulsout de Pic Basic Profesional, debemos calcular los movimientos de cada servo motor ya que esta sentencia o instrucción genera un pulso por un terminal de un puerto (Terminal va de 0 a 7) cuyo Período se especifica en unidades de 10 us. Período es un word, por lo que se pueden generar pulsos de hasta 655350 us. El terminal especificado se configura automáticamente como salida.

La resolución de Pulsout depende de la frecuencia del oscilador. Si se usa un oscilador de 4 MHz, el periodo del pulso generado estará en incrementos de 10us, pero si se usa un oscilador de 20MHz, el periodo será de una resolución de 2us. Definir un valor de OSC no tiene efectos sobre Pulsout.

Ejemplos: PULSOUT 1, 50 (envía un pulso de 500 us. pin 1 del puerto B a 4 MHz) PULSOUT PORTB.5, 100 (envía un pulso de 1mseg. a pin 5 a 4 MHz)

9.1.4.1. Cálculo para obtener una tabla de los movimientos de cada servo motor a una resolución de 4Mhz 4Mhz ------> 10 useg ------> 0,01 mseg x 100 = 1 mseg. 100 ------>1 mseg

P Out

Valores para el motor 0,5 mseg ------> 50 ------> 0 º

250

1,5 mseg ------> 150 ------>90 º

150

2,5 mseg ------> 250 ------> 180 º

5

0 Y = mx + b P1 (90,150); P2 (180,250) Pout = mθ + 50 m = (y2 – y 1) /(x2 – x 1) m = (250 – 150) / (180 – 90) m = 10 / 9 ------> Pout = (10 / 9) θ + 50

206

90

180

θº

9.1.4.2. Tabla de conversión generada en Excel de valores de Pulsout en PBP (4Mhz)

Pulsout Grados Mseg Pulsout Grados mseg 50

0

0,5

150

90

1,5

55

4,5

0,55

155

94,5

1,55

60

9

0,6

160

99

1,6

65

13,5

0,65

165

103,5

1,65

70

18

0,7

170

108

1,7

75

22,5

0,75

175

112,5

1,75

80

27

0,8

180

117

1,8

85

31,5

0,85

185

121,5

1,85

90

36

0,9

190

126

1,9

95

40,5

0,95

195

130,5

1,95

100

45

1

200

135

2

105

49,5

1,05

205

139,5

2,05

110

54

1,1

210

144

2,1

115

58,5

1,15

215

148,5

2,15

120

63

1,2

220

153

2,2

125

67,5

1,25

225

157,5

2,25

130

72

1,3

230

162

2,3

135

76,5

1,35

235

166,5

2,35

140

81

1,4

240

171

2,4

145

85,5

1,45

245

175,5

2,45

250

180

2,5

Tabla 9.1: Valores de Pulsout de los servos oscilando a 4 MHz. Fuente: Autores

A continuación se realizará los cálculos para los valores de Pulsout de los servos motores pero utilizando un oscilador de 20MHz en la PCB controladora.

Cabe recalcar que en nuestro proyecto se utilizó un oscilador de 4 MHz para ambas aplicaciones. 207

9.1.4.3. Cálculo para obtener una tabla de los valores de movimientos de cada servo motor a una resolución de 20Mhz. 20Mhz ------> 2 useg ------> 0,01 mseg x 100 = 1 mseg. 500 ------>1 mseg

P Out

Valores para el motor 0,5 mseg ------> 250 ------> 0 º

1250

1,5 mseg ------> 750 ------>90 º

750

2,5 mseg ------> 1250 ------> 180 º

250

0

90

180

θº

Y = mx + b P1 (90,750); P2 (180,1250) Pout = mθ + 50 m = (y2 – y 1) /(x2 – x 1) m = (1250 – 750) / (180 – 90) ------>

m = 50 / 9 ------> Pout = (50 / 9) θ + 50

9.1.4.4. Tabla de conversión generada en Excel de valores de Pulsout a (20Mhz). Pulsout Grados mseg Pulsout Grados mseg Pulsout Grados mseg 250

0

0,5

550

54

1,1

950

126

1,9

275

4,5

0,55

575

58,5

1,15

975

130,5

1,95

300

9

0,6

600

63

1,2

1000

135

2

325

13,5

0,65

625

67,5

1,25

1025

139,5

2,05

350

18

0,7

650

72

1,3

1050

144

2,1

375

22,5

0,75

675

76,5

1,35

1075

148,5

2,15

400

27

0,8

800

99

1,6

1100

153

2,2

425

31,5

0,85

825

103,5

1,65

1125

157,5

2,25

450

36

0,9

850

108

1,7

1150

162

2,3

475

40,5

0,95

875

112,5

1,75

1175

166,5

2,35

500

45

1

900

117

1,8

1200

171

2,4

525

49,5

1,05

1425

211,5

2,85

1225

175,5

2,45

1250

180

2,5

Tabla 9.2: Valores de Pulsout de los servos oscilando a 20 MHz. Fuente: Autores

208

9.1.4.5. Desarrollo del Diseño de la PCB Controladora de Servos

Figura 9.17: Diseño electrónico en Proteus - ISIS de la PCB controladora de los 18 servomotores para el movimiento del hexápodo. Fuente: Autores

Figura 9.18: Vista en 3d de Proteus de la PCB controladora de los 18 servomotores Fuente: Autores

209

Hexápodo.

Figura 9.19: Diseño de la PCB en Proteus - ARES de la PCB controladora de los 18 servomotores para el movimiento del hexápodo. Fuente: Autores

Figura 9.20: Diseño de las pistas electrónicas a imprimir en Proteus - ARES de la PCB controladora de los 18 servomotores para el movimiento del hexápodo. Fuente: Autores

210

Figura 9.21: Diseño de los elementos electrónicos a imprimir en Proteus - ARES de la PCB controladora de los 18 servomotores para el movimiento del hexápodo. Fuente: Autores

9.1.4.6. Desarrollo del programa de la Tarjeta Controladora Principal. TRISB = %00000000

'Selecciona puertos para salidas

TRISC = %00000000 TRISD = %11110000 temp var byte

' inicializa las variables

freq var byte lazo1 var byte T VAR BYTE

brazoPDA var byte rodillaPDA var byte hombroPDA var byte

brazoPDC var byte rodillaPDC var byte hombroPDC var byte

211

brazoPDD var byte rodillaPDD var byte hombroPDD var byte

brazoPIC var byte rodillaPIC var byte hombroPIC var byte

brazoPIA var byte rodillaPIA var byte hombroPIA var byte

brazoPID var byte rodillaPID var byte hombroPID var byte

portb = 0

' Estado lógico de inicio a 0

portc = 0 portd = 0

freq = 16

' valor de la pausa ; posición de comienzo

inicio: hombroPDA = 137

;INICIO 113

hombroPDC = 125

;INICIO 112

hombroPDD = 120

;INICIO 124

brazoPDA = 110

;110

brazoPDC = 113

;113

brazoPDD = 109;

110

rodillaPDA = 202

;200

rodillaPDC = 200

;200

rodillaPDD = 190

;190 212

hombroPiA = 110

;INICIO 133

hombroPiC = 120

;INICIO 138

hombroPiD = 135

;INICIO 127

brazoPiA = 160

;158

brazoPiC = 155

;156

brazoPiD = 147

;150

rodillaPiA = 74

;72

rodillaPiC = 68

;68

rodillaPiD = 74

;77

gosub servo

inicio2: if PORTD.4 = 1 THEN GOSUB ADELANTE if PORTD.7 = 1 THEN GOSUB ATRAS if PORTD.5 = 1 THEN GOSUB DERECHA if PORTD.6 = 1 THEN GOSUB IZQUIERDA GOSUB SERVO goto inicio2

ADELANTE: 'alza pie derecho 'movimiento derecho 1 hombroPDA = 137

;110

' Derecha 10 (120-10) OK

hombroPiC = 120

;155

' Izquierda 10 (145+10) OK

hombroPDD = 120

;140

' Derecha 10 (150-10) OK

brazoPDA = 95

'Sube 20

(130-20)

brazoPiC = 175

'sube 20

(175+20)

brazoPDD = 94

'Sube 20

(140-20)

213

rodillaPDA = 182

'Encoje 20 (215-20)

OK

rodillaPiC = 88

'Encoje 20 (85+20)

OK

rodillaPDD = 170

'Encoje 20 (215-20)

OK

gosub servo

'paso adelante izquierdo hombroPiA = 130

'Izquierda (150-10) OK

hombroPDC = 110

'Derecha (130+10)

hombroPiD = 150

'Izquierda (120-10) OK

OK

brazoPiA = 160

'Sube 20

(170+20) OK

brazoPDC = 113

'Sube 20

(130-20) OK

brazoPiD = 147

'Sube 20

(170+20) OK

rodillaPiA = 74

'Encoje 20 (85+20)

OK

rodillaPDC = 200 'Encoje 20 (210-20)

OK

rodillaPiD = 74

OK

'Encoje 20 (85+20)

gosub servo

'baja el pie derecho hombroPDA = 137

' Izquierda 10 (120+10) OK

hombroPiC = 120

' Derecha 10

hombroPDD = 120

' Izquierda 10 (150+10) OK

(145-10) OK

brazoPDA = 110

' Posicion tocando suelo

brazoPiC = 155

' Posicion tocando suelo

brazoPDD = 109

' Posicion tocando suelo

rodillaPDA = 202

' Posicion tocando suelo OK

rodillaPiC = 68 rodillaPDD = 190

' Posicion tocando suelo OK ' Posicion tocando suelo OK

Gosub servo

214

'eleva pie izquierdo hombroPiA = 110

' Izquierda 10 (150-10) OK

hombroPDC = 125

' Derecha 10 (130+10) OK

hombroPiD = 135

' Izquierda 10 (120-10) OK

brazoPiA = 180

' Sube 20 (170+20)

brazoPDC = 93

' Sube 20 (130-20)

brazoPiD = 167

' Sube 20 (170+20)

rodillaPiA = 94

' Encoje 20 (85+20)

rodillaPDC = 180 rodillaPiD = 94

OK OK OK

OK

' Encoje 20 (210-20) OK ' Encoje 20 (85+20)

OK

gosub servo

; paso pie derecho hombroPDA = 117

' Izquierda 10 (120+10) OK

hombroPiC = 135;135 hombroPDD = 105

brazoPDA = 110 brazoPiC = 155

' Derecha 10

(145-10) OK

' Izquierda 10 (150+10) OK

' Posicion tocando suelo ' Posicion tocando suelo

brazoPDD = 109

' Posicion tocando suelo

rodillaPDA = 202

' Posicion tocando suelo OK

rodillaPiC = 68 rodillaPDD = 190

' Posicion tocando suelo OK ' Posicion tocando suelo OK

Gosub servo

'baja pie izquierdo hombroPiA = 110 hombroPDC = 125 hombroPiD = 135

' Izquierda 10 (150-10) OK ' Derecha 10 (130+10) OK ' Izquierda 10 (120-10) OK

215

brazoPiA = 160

' Sube 20 (170+20)

OK

brazoPDC = 113

' Sube 20 (130-20)

OK

brazoPiD = 147

' Sube 20 (170+20)

OK

rodillaPiA = 74 rodillaPDC = 200 rodillaPiD = 74

' Encoje 20 (85+20)

OK

' Encoje 20 (210-20) OK ' Encoje 20 (85+20)

OK

gosub servo goto INICIO2

ATRAS: hombroPid = 135

' Izquierda 10 (120+10)

hombroPdc = 125

;135 ' Derecha 10

hombroPia = 100

' Izquierda 10 (150+10)

OK

(145-10) OK OK

brazoPid = 147

' Posición tocando suelo

brazoPdc = 113

' Posicion tocando suelo

brazoPia = 160

' Posición tocando suelo

rodillaPid = 74

'Posición tocando suelo OK

rodillaPdc = 200

'Posición tocando suelo OK

rodillaPia = 74

'Posición tocando suelo OK

Gosub servo

' baja pie izquierdo hombroPdd = 100

' Izquierda 10 (150-10) OK

hombroPiC = 135

' Derecha 10 (130+10) OK

hombroPda = 137

' Izquierda 10 (120-10) OK

brazoPdd = 109

' Sube 20 (170+20)

brazoPic = 155

' Sube 20 (130-20)

brazoPda = 110

' Sube 20 (170+20)

216

OK OK OK

rodillaPdd = 190

' Encoje 20 (85+20)

OK

rodillaPic = 68

' Encoje 20 (210-20) OK

rodillaPda = 202

' Encoje 20 (85+20)

OK

gosub servo

'alza pie derecho ' movimiento derecho 1 hombroPid = 155

;110

' Derecha 10 (120-10) OK

hombroPdC = 110

;155

' Izquierda 10 (145+10) OK

hombroPia = 110

;140

' Derecha 10 (150-10) OK

brazoPid = 167

' Sube 20

brazoPdc = 93

' sube 20

brazoPia = 180

' Sube 20

rodillaPid = 94

(130-20) (175+20) (140-20)

' Encoje 20 (215-20)

rodillaPdc = 180

OK

' Encoje 20 (85+20)

rodillaPia = 94

OK

' Encoje 20 (215-20)

OK

gosub servo

'paso adelante izquierdo hombroPdd = 120

' Izquierda (150-10) OK

hombroPiC = 120

' Derecha (130+10)

hombroPda = 147

' Izquierda (120-10) OK

OK

brazoPdd = 109

' Sube 20

(170+20) OK

brazoPic = 155

' Sube 20

(130-20) OK

brazoPda = 110

' Sube 20

(170+20) OK

rodillaPdd = 190

' Encoje 20 (85+20)

rodillaPic = 68 rodillaPda = 202

' Encoje 20 (210-20) ' Encoje 20 (85+20)

gosub servo 217

OK OK OK

'baja el pie derecho hombroPid = 155

' Izquierda 10 (120+10)

OK

hombroPdc = 110

' Derecha 10

(145-10)

OK

hombroPia = 110

' Izquierda 10 (150+10)

OK

brazoPid = 147

' Posicion tocando suelo

brazoPdc = 113

' Posicion tocando suelo

brazoPia = 160

' Posicion tocando suelo

rodillaPid = 74

' Posicion tocando suelo OK

rodillaPdc = 200

' Posicion tocando suelo OK

rodillaPia = 74

' Posicion tocando suelo OK

Gosub servo

'eleva pie izquierdo hombroPdd = 100

' Izquierda 10 (150-10) OK

hombroPic = 135

' Derecha 10 (130+10) OK

hombroPda = 137

' Izquierda 10 (120-10) OK

brazoPdd = 89

' Sube 20 (170+20)

OK

brazoPic = 175

' Sube 20 (130-20)

OK

brazoPda = 90

' Sube 20 (170+20)

OK

rodillaPdd = 170 rodillaPic = 88 rodillaPda = 182

' Encoje 20 (85+20)

OK

' Encoje 20 (210-20) OK ' Encoje 20 (85+20)

OK

gosub servo

hombroPid = 135

' Izquierda 10 (120+10)

hombroPdc = 125

;135 ' Derecha 10

hombroPia = 100

' Izquierda 10 (150+10)

218

OK

(145-10) OK OK

brazoPid = 147

' Posición tocando suelo

brazoPdc = 113

' Posición tocando suelo

brazoPia = 160

' Posición tocando suelo

rodillaPid = 74

' Posición tocando suelo OK

rodillaPdc = 200

' Posición tocando suelo OK

rodillaPia = 74

' Posición tocando suelo OK

Gosub servo

'baja pie izquierdo hombroPdd = 100

' Izquierda 10 (150-10) OK

hombroPiC = 135

' Derecha 10 (130+10) OK

hombroPda = 137

' Izquierda 10 (120-10) OK

brazoPdd = 109

' Sube 20 (170+20)

OK

brazoPic = 155

' Sube 20 (130-20)

brazoPda = 110

' Sube 20 (170+20)

OK

rodillaPdd = 190

' Encoje 20 (85+20)

OK

rodillaPic = 68

' Encoje 20 (210-20) OK

rodillaPda = 202

' Encoje 20 (85+20)

OK

OK

gosub servo GOTO INICIO2

DERECHA: hombroPDA = 117

;150

' Derecha 10 (120-10) OK

hombroPiC = 125

;135

' Izquierda 10 (145+10) OK

hombroPDD = 105

;120

' Derecha 10 (150-10) OK

brazoPDA = 90

' Sube 20

(130-20)

brazoPiC = 175

' sube 20

(175+20)

brazoPDD = 89

' Sube 20

(140-20)

219

rodillaPDA = 182

' Encoje 20 (215-20)

OK

rodillaPiC = 88

' Encoje 20 (85+20)

OK

rodillaPDD = 170

' Encoje 20 (215-20)

OK

gosub servo

'paso adelante izquierdo hombroPiA = 120

' Izquierda (150-10) OK

hombroPDC = 125 hombroPiD = 150

' Sube 20

brazoPDC = 113

' Sube 20

brazoPiD = 147

' Sube 20

(170+20) OK (130-20) OK (170+20) OK

' Encoje 20 (85+20)

rodillaPDC = 200 rodillaPiD = 74

OK

' Izquierda (120-10) OK

brazoPiA = 160

rodillaPiA = 74

' Derecha (130+10)

OK

' Encoje 20 (210-20) ' Encoje 20 (85+20)

OK OK

gosub servo

'baja el pie derecho hombroPDA = 117 hombroPiC = 125 hombroPDD = 105

' Izquierda 10 (120+10) OK ' Derecha 10

(145-10)

OK

' Izquierda 10 (150+10) OK

brazoPDA = 110

' Posición tocando suelo

brazoPiC = 155

' Posición tocando suelo

brazoPDD = 109

' Posición tocando suelo

rodillaPDA = 202

' Posición tocando suelo OK

rodillaPiC = 68

' Posición tocando suelo OK

rodillaPDD = 190

' Posición tocando suelo OK

Gosub servo

220

'eleva pie izquierdo hombroPiA = 100

' Izquierda 10 (150-10) OK

hombroPDC = 110 hombroPiD = 130

' Derecha 10 (130+10) OK ' Izquierda 10 (120-10) OK

brazoPiA = 180

' Sube 20 (170+20)

brazoPDC = 93

' Sube 20 (130-20)

brazoPiD = 167

' Sube 20 (170+20)

rodillaPiA = 94

' Encoje 20 (85+20)

rodillaPDC = 180 rodillaPiD = 94

OK OK OK

OK

' Encoje 20 (210-20) OK ' Encoje 20 (85+20)

OK

gosub servo

'paso pie derecho hombroPDA = 147

' Izquierda 10 (120+10) OK

hombroPiC = 145

;135

hombroPDD = 125

' Izquierda 10 (150+10) OK

' Derecha 10

(145-10) OK

brazoPDA = 110

' Posicion tocando suelo

brazoPiC = 155

' Posicion tocando suelo

brazoPDD = 109

' Posicion tocando suelo

rodillaPDA = 202

' Posicion tocando suelo OK

rodillaPiC = 68

' Posicion tocando suelo OK

rodillaPDD = 190

' Posicion tocando suelo OK

Gosub servo

'baja pie izquierdo hombroPiA = 100 hombroPDC = 110 hombroPiD = 130

' Izquierda 10 (150-10) OK ' Derecha 10 (130+10) OK ' Izquierda 10 (120-10) OK

221

brazoPiA = 160

' Sube 20 (170+20)

OK

brazoPDC = 113

' Sube 20 (130-20)

OK

brazoPiD = 147

' Sube 20 (170+20)

OK

rodillaPiA = 74

' Encoje 20 (85+20)

OK

rodillaPDC = 200

' Encoje 20 (210-20) OK

rodillaPiD = 74

' Encoje 20 (85+20)

OK

gosub servo GOTO INICIO2

IZQUIERDA: hombroPiA = 120

' Izquierda (150-10) OK

hombroPDC = 125 hombroPiD = 150

' Derecha (130+10)

OK

' Izquierda (120-10) OK

brazoPiA = 180

' Sube 20

(170+20) OK

brazoPDC = 93

' Sube 20

(130-20) OK

brazoPiD = 167

' Sube 20

(170+20) OK

rodillaPiA = 94

' Encoje 20 (85+20)

OK

rodillaPDC = 180

' Encoje 20 (210-20)

OK

rodillaPiD = 94

' Encoje 20 (85+20)

OK

gosub servo

'movimiento derecho 1 hombroPDA = 117;150 hombroPiC = 125;135 hombroPDD = 105;120

brazoPDA = 110 brazoPiC = 155 brazoPDD = 109

' Derecha 10 (120-10) OK ' Izquierda 10 (145+10) OK ' Derecha 10 (150-10) OK

' Posición tocando suelo ' Posición tocando suelo ' Posicion tocando suelo

222

rodillaPDA = 202

' Posición tocando suelo OK

rodillaPiC = 68

' Posición tocando suelo OK

rodillaPDD = 190

' Posición tocando suelo OK

gosub servo

'baja pie izquierdo hombroPiA = 120

' Izquierda 10 (150-10) OK

hombroPDC = 125 hombroPiD = 150

' Derecha 10 (130+10) OK ' Izquierda 10 (120-10) OK

brazoPiA = 160

' Sube 20 (170+20)

OK

brazoPDC = 113

' Sube 20 (130-20)

OK

brazoPiD = 147

' Sube 20 (170+20)

OK

rodillaPiA = 74 rodillaPDC = 200 rodillaPiD = 74

' Encoje 20 (85+20)

OK

' Encoje 20 (210-20) OK ' Encoje 20 (85+20)

gosub servo

'baja el pie derecho hombroPDA = 137

' Izquierda 10 (120+10) OK

hombroPiC = 145

' Derecha 10

hombroPDD = 120

' Izquierda 10 (150+10) OK

(145-10)

brazoPDA = 90

' Sube 20

(130-20)

brazoPiC = 175

' sube 20

(175+20)

brazoPDD = 89

' Sube 20

(140-20)

rodillaPDA = 182 rodillaPiC = 88 rodillaPDD = 170

' Encoje 20 (215-20) ' Encoje 20 (85+20) ' Encoje 20 (215-20)

Gosub servo

223

OK

OK OK OK

' eleva pie izquierdo hombroPiA = 100 hombroPDC = 105 hombroPiD = 130

' Izquierda 10 (150-10) OK ' Derecha 10 (130+10) OK ' Izquierda 10 (120-10) OK

brazoPiA = 160

' Sube 20 (170+20)

OK

brazoPDC = 113

' Sube 20 (130-20)

OK

brazoPiD = 147

' Sube 20 (170+20)

OK

rodillaPiA = 74

' Encoje 20 (85+20)

OK

rodillaPDC = 200 rodillaPiD = 74

' Encoje 20 (210-20) OK ' Encoje 20 (85+20)

gosub servo

'paso pie derecho hombroPDA = 137 hombroPiC = 145 hombroPDD = 120

' Izquierda 10 (120+10) OK ;135 ' Derecha 10

(145-10) OK

' Izquierda 10 (150+10) OK

brazoPDA = 110

' Posición tocando suelo

brazoPiC = 155

' Posición tocando suelo

brazoPDD = 109

' Posición tocando suelo

rodillaPDA = 202

' Posición tocando suelo OK

rodillaPiC = 68

' Posición tocando suelo OK

rodillaPDD = 190

' Posición tocando suelo OK

Gosub servo GOTO INICIO2

' subrutina de posicionamiento de servos servo: for temp = 1 to 4

;retardo de pasos de cada pata

pulsout portD.0,rodillaPIC pulsout portB.6,rodillaPDA 224

pulsout portC.6,rodillaPDD pulsout portC.1,rodillaPIA pulsout portB.3,rodillaPDC pulsout portD.3,rodillaPID pulsout portB.7,brazoPDA pulsout portC.3,brazoPIC pulsout portC.7,brazoPDD pulsout portC.0,brazoPIA pulsout portB.4,brazoPDC pulsout portC.4,brazoPID pause freq

' Frecuencia fija entre 50 - 60 Hz

next temp

for temp = 1 to 10 pulsout portD.0,rodillaPIC pulsout portB.6,rodillaPDA pulsout portC.6,rodillaPDD pulsout portC.1,rodillaPIA pulsout portB.3,rodillaPDC pulsout portD.3,rodillaPID pulsout portB.7,brazoPDA pulsout portC.3,brazoPIC pulsout portC.7,brazoPDD pulsout portC.0,brazoPIA pulsout portB.4,brazoPDC pulsout portC.4,brazoPID pulsout portB.5,hombroPDA pulsout portD.1,hombroPIC pulsout portB.2,hombroPDC pulsout portD.2,hombroPID pulsout portC.5,hombroPDD pulsout portC.2,hombroPIA next return 225

9.1.4.7. Sistema de regulación de voltaje de los Servos

En el sistema de alimentación de los servos motores se uso reguladores de 5v (78R05) como también en cada una de las tarjetas como son: • Tarjeta De Control Remoto RF Transmisora. • Tarjeta De Control Remoto RF Receptora del Desplazamiento de cámara inalámbrica y del hexápodo. • Tarjeta Principal De Control del Desplazamiento del Robot Hexápodo.

Para la alimentación de los servos motores se dividió en 2 grupos, de 9 servo motores cada uno, pues en total tenemos 18 servo motores que conforman el hexápodo.

A cada grupo se alimenta con un regulador de 5v (78R05) pues la tensión máxima de cada servo motor es de 6.2v.

El primer grupo lo conforma las variables o salidas D1, D2, D3, B2, B3, B4, B5, B6, B7 y en el segundo grupo están C0, C1, C2, C3, D0, C4, C5, C6, C7.

9.1.5. Identificación de cada una de las extremidades y distribución (conexión) de cada servo motor hacia la tarjeta de control principal PIC16F877A.

Como podemos apreciar allí tenemos cada una de las extremidades del hexápodo cada una con su respectivo movimiento o desplazamiento mediante el servo motor de cada articulación.

226

Además también podemos apreciar el sistema de distribución a conexión a cada uno de los puertos del microcontrolador PIC16F877A de la tarjeta de control principal.

Figura 9.22: Distribución de Servos para cada una de las extremidades Fuente: Autores

227

9.1.6. Esquema total de la Aplicación # 1: Robot Hexápodo Gretel

Figura 9.23: Esquema total de la aplicación Robot Hexápodo Gretel Fuente: Autores

228

9.2. Segunda Aplicación: Robot Hexápodo Hansel

9.2.1. Introducción

La segunda aplicación será la integración de 2 sensores ultrasónicos SRF05 y la PCB controlada por el PIC16F877A la cual será la encargada del movimiento del hexápodo #2 en una aplicación didáctica la cual consistirá en el desplazamiento previo el reconocimiento de obstáculos a una cierta distancia y además también emitirá un sonido previamente grabado en el robot, todos los elementos a aplicar son de la familia de MicroChip y el desarrollo de las tarjetas con los métodos y software ya conocidos.

Cabe recalcar que los mensajes fueron previamente grabados en la PC en formato .wav para luego mediante una interface se procedió a ser insertados en el chip ISD2560 el cual graba 60 segundos de audio. Sensor Ultrasónico # 1 SFR05 Parlante 8 ohmios

Sensor Ultrasónico # 2 SFR05

Tarjeta Controladora de SFR05 Amplificador

PCB Controladora de 18 servos PIC16F877A

Reproductor de Sonido ISD2560

Robot Hexápodo de 18 servomotores

Figura 9.24: Diagrama en bloque de la Aplicación # 2 Fuente: Autores

229

9.2.2. Tarjeta controladora de los Sensores Ultrasónicos

Para evitar los obstáculos se utilizaron 2 sensores ultrasónicos modelo SFR05 de alcance de 5 metros.

Se utilizó un microcontrolador PIC16F628 para el control de los 2 sensores y para detectar algún tipo de interrupción al robot durante su trayecto y que este tome decisiones de desplazamiento por sí solo. Sensor Ultrasonico # 1

Sensor Ultrasonico # 2

Regulador de Voltaje 78R05 Batería de 9v recargable Ni/Cd

Figura 9.25: Diagrama en bloque de la tarjeta controladora de los 2 SFR05 Fuente: Autores

Esta tarjeta envía 2 señales digitales hacia la tarjeta controladora principal de los movimientos del robot, estas señales indican si existe obstáculos ya sea a la derecha, izquierda del robot y le permite al hexápodo tomar decisiones por si solo para si movimiento.

En el caso que se detecten las 2 señales ultrasónicas activadas, el robot procederá a retroceder algunos pasos hasta poder tomar otra decisión acertada.

230

9.2.2.1. Desarrollo del programa de la Tarjeta controladora de los Sensores Ultrasónicos

La programación del microcontrolador PIC16F628 se desarrolló en el lenguaje de programación PIC BASIC PROFESSIONAL y se detalla a continuación:

; Sensor 1 CMCON = 7

; digitalizamos los puertos analógicos

TRISA = %00000110

; A0(salida),A1(entrada),A2(entrada),A3(salida)

PULSAR1

VAR PORTA.2

; variable para activación de medición

DISPARO1

VAR PORTA.0

; PORTA.2 = SRF04 pin de activación

ECO1

VAR PORTA.1

; PORTA.3 = SRF04 pin de eco

SONACONTROL1 VAR PORTA.3 DISTANCE1

; PORTB.6 = sonar pin de control

VAR WORD

WIDTH1

VAR WORD

ACTIVE1

CON 1

INACTIVE1

CON 0

; encender el transistor ; apagar el transistor

ESCALA1 VAR WORD ESCALA1=17

; Sensor 2 TRISB = %00010010 ; B0(salida),B1(entrada),B2(salida),B3(salida),B4(entrada) PULSAR2

VAR PORTB.4

; variable para activación de medición

DISPARO2

VAR PORTB.0

; PORTA.2 = SRF04 pin de activación

ECO2

VAR PORTB.1

SONACONTROL2 VAR PORTB.2 DISTANCE2

; PORTA.3 = SRF04 pin de eco ; PORTB.6 = sonar pin de control

VAR WORD

WIDTH2

VAR WORD

ACTIVE2

CON 1

INACTIVE2

CON 0

; encender el transistor ; apagar el transistor

ESCALA2 VAR WORD ESCALA2=17

231

; Sensor 1 INICIO: PAUSE 100 GOSUB PING1 PAUSE 100 GOSUB PING2 GOTO INICIO END

PING1: SONACONTROL1=ACTIVE1 DISPARO1=0 PULSOUT DISPARO1,2 PULSIN ECO1,1,WIDTH1 WIDTH1=WIDTH1 * ESCALA1 DISTANCE1=WIDTH1/100 SONACONTROL1=INACTIVE1 GOSUB DATO1 RETURN

PING2: SONACONTROL2=ACTIVE2 DISPARO2=0 PULSOUT DISPARO2,2 PULSIN ECO2,1,WIDTH2 WIDTH2=WIDTH2 * ESCALA2 DISTANCE2=WIDTH2/100 SONACONTROL2=INACTIVE2 GOSUB DATO2 RETURN

DATO1: IF DISTANCE1 > 3

'Desplazar Sum 3 posiciones a la derecha

ABS

El operador ABS devuelve el valor absoluto de un número. En el siguiente ejemplo, se devuelve el valor absoluto de la variable p: p = ABS p

'Devolver el valor absoluto

295

COS

Devuelve el coseno de un número. El resultado se da en formato de complemento de 2 en el rango de -127 a +127. El número debe estar en radianes en el rango de 0 a 255. En el siguiente ejemplo, se devuelve el valor del coseno de 8 radianes: Angle = COS 8

'Devuelve el coseno de 8

DCD

Este operador se usa para poner a 1 a un bit de un byte o de una palabra. El resto de los bits se ponen a 0. Por ejemplo, para poner el bit 4 de un byte, se puede escribir:

B4 = DCD 4

'Poner a 1 el bit 4 de la variable B4

Después de la operación, la variable B4 tomará el valor binario %00010000.

DIG

Este operador devuelve un dígito de un número. El número puede ser de hasta 4 dígitos con el dígito de la derecha igual a 0. Por ejemplo, si la variable Suma es igual a 678, el primer dígito (número 7) puede extraerse como: Suma = 678

'Suma = 678

P = Suma DIG 1

'P = 7

NCD

El operador NCD se usa para encontrar el bit de mayor significación que está a 1 en un número. Los números del bit pueden ir de 1 a 16. Si no hay ningún 1 se devuelve un cero. En el siguiente ejemplo, la variable P = 6 ya que el bit más significativo que está puesto a 1 es el sexto bit (empezando por el 1 de la derecha).

P = NCD %00101011

'El bit más significativo en 1 es el 6

296

SIN

Este operador es similar al operador COS y devuelve el seno de un número. El número debe expresarse en radianes y debe estar entre 0 y 255. Por ejemplo, para encontrar el seno de 10 radianes, se escribe: P = SIN 10

'Devuelve el sin de 10

SQR

Este operador devuelve la raíz cuadrada de un número. El resultado es un número entero. Por ejemplo, para encontrar la raíz cuadrada de la variable Total, se emplea: N = SQR Total

'Calcular la raíz cuadrada de Total

Instrucciones de Pic Basic Profesional

Pic Basic Profesional tiene algo más de 80 instrucciones. En este apartado, sólo se verán las instrucciones más empleadas y más específicas del lenguaje Pic Basic Profesional.

BRANCHL BRANCHL Index, (Label, label,.....)

La instrucción BRANCHL permite realizar saltos más largos en la memoria de programa (hasta 8k). La instrucción BRANCHL es lenta y genera un código de ensamblaje mayor.

CLEAR CLEAR

Esta instrucción borra (pone a cero) todos los registros RAM de cada banco.

CLEARWDT CLEARWDT 297

Si se habilita al temporizador perro guardián, éste puede desbordarse y reiniciar el programa desde el principio (dirección 0). La instrucción CLEARWDT se usa para disparar al perro guardián de forma que no se desborde.

COUNT COUNT Terminal, Período, Var

Esta instrucción permite contar el número de pulsos que ocurren en el Terminal durante un Período de tiempo y guardar el resultado en Var. El Terminal puede tomar valores entre 0 y 15, sin embargo se recomienda el formato Nombre_del_Puerto.Terminal (por ejemplo PORTB.0).

La frecuencia máxima que se puede contar con un reloj a cristal de 4 MHz es de 25 kHz, y con otro de 20 MHz se alcanza hasta 125 kHz. En el ejemplo siguiente, se cuentan los pulsos por el bit 0 del puerto B durante 100 ms y se guardan en la variable Cnt: COUNT PORTB.0, 100, Cnt

DATA DATA @Localización , Constante, Constante,..... Esta instrucción permite almacenar varias Constantes en la memoria EEPROM interna, durante la programación del dispositivo (no cuando se ejecuta el programa). En consecuencia esta instrucción, sólo puede usarse en microcontroladores PIC que tengan la EEPROM integrada. La Localización indica la dirección de inicio de la EEPROM y si se omite, se asume la dirección 0.

El ejemplo siguiente muestra cómo almacenar los números 5, 10, 15 y 20 a partir de la dirección 6 de la EEPROM: DATA @6, 5, 10, 15, 20

298

DEC

La palabra DEC sirve para mostrar el número de la variable en decimal, también se lo puede representar por el signo (#), además existe las palabras BIN y HEX el siguiente es un ejemplo de cómo mostraría el LCD si puls = 105. LCDOUT $FE, $C5, DEC puls, “Hz”

; muestra en el LCD asi: 105 Hz

También se lo puede utilizar el signo #, que equivale a DEC. LCDOUT $FE, $C5, # puls, “Hz”

; muestra en el LCD asi: 105 Hz.

Si deseamos ver la variable en hexadecimal pondríamos así: LCDOUT $FE, $C5, HEX puls, “Hz”

; muestra en el LCD asi: 69 Hz.

Y si queremos verlo en binario: LCDOUT $FE, $C5, BIN puls, “Hz”

; muestra en el LCD asi: 1101001 Hz.

Si no colocamos ninguna instrucción nos mostrara el ASCII que representa en número 105, es decir la letra i: LCDOUT $FE, $C5, puls, “Hz”

; muestra en el LCD asi: i Hz

DTMFOUT DTMFOUT Terminal, T_On, T_Off, [Tono, Tono,.....]

Esta instrucción produce tonos intermitentes, similares a los empleados en teclados y teléfonos móviles. El Terminal, en este caso, es de salida y puede tomar un valor entre 0 y 15 (o también Nombre_del_Puerlo.Terminal). T_On es la duración de cada tono en milisegundos y T_Off la duración en milisegundos de la pausa entre tonos. Los valores asumidos de T_On y T_Off (en el caso que no se especifiquen) son 200 ms y 50 ms, respectivamente.

El Tono puede tomar un valor entre 0 y 15. Los tonos del 0 al 9 son los que se emplean en un teclado telefónico. El Tono 10 corresponde a la tecla *, el Tono 11 a la tecla # y los tonos 12-15 a las teclas A-D. Para suavizar el sonido generado por la instrucción DTMFOUT se emplea un filtro R-C. 299

Se recomienda usar una frecuencia de reloj alta (por ejemplo 20 MHz) para obtener una señal bien suavizada después del filtrado.

En el ejemplo siguiente, se envían por el bit 0 del puerto B, los tonos DTMF correspondientes a la secuencia de números 886 empleando la duración por defecto para T_On y T_Off: DTMFOUT PORTB.0 , [8, 8, 6]

EEPROM EEPROM Localización, (constante, constante,....., constante)

Esta instrucción almacena las constantes en bytes consecutivos de la memoria EEPROM interna. Esta instrucción sólo se emplea en microcontroladores PIC que tengan EEPROM, tales como el PIC16F84, PIC16F877A, etc. La Localización es opcional y si se omite se asume que es la primera localización EEPROM. Las constantes pueden ser constantes numéricas o cadenas. Las cadenas se almacenan en bytes consecutivos como valores ASCII. A continuación se pone un ejemplo: EEPROM 3, (5, 2, 8) 'Almacenar 5 en la localización 3, '2 en la localización 4, y 8 en la localización 5

END END

Detiene la ejecución y entra en el modo de bajo consumo. La instrucción no tiene ningún parámetro.

FREQOUT FREQOUT Terminal, T_On, Frecuencia1, [,Frecuencia2]

Esta instrucción permite generar por el Terminal especificado, una o dos frecuencias diferentes, durante un tiempo de T_On milisegundos. El Terminal se convierte automáticamente en salida y puede ser entre 0 y 5 o se puede especificar mediante el formato Nombre_del_Puerto.Terminal. La señal generada es una onda cuadrada y se filtra para suavizarla. 300

En el siguiente ejemplo, se genera una señal de 1 kHz a través del bit 0 del puerto B, durante 3 s: FREQOUT PORTB.0, 3000, 1000

HIGH HIGH Terminal

Configura al Terminal especificado como salida y lo pone en 1 lógico. Terminal sólo se refiere a los terminales del puerto B y puede tomar los valores de 0 a 7.

En el siguiente ejemplo, el bit 1 del puerto B se configura como salida y se pone a 1 lógico: HIGH 1

HPWM HPWM Canal, Ciclo_de_trabajo, Frecuencia

Algunos microcontroladores PIC tienen uno o más circuitos internos para generar señales cuadradas moduladas por la duración del pulso (PWM). Por ejemplo, el PIC16F877 tiene dos canales PWM. El canal 1 se conoce como CCP1 (PORTC.2) y el canal 2 como CCP2 (PORTC.l).

El ciclo de trabajo puede variar de 0 a 255, correspondiente al 0% (todo el tiempo en bajo) y al 100% (todo el tiempo en alto), respectivamente. El valor 127 corresponde con el 50% del ciclo de trabajo. La Frecuencia máxima es de 32767 Hz, y en los microcontroladores de 2 canales, la Frecuencia debe ser igual en ambos canales.

Esta señal PWM se genera continuamente por el terminal especificado mientras el programa ejecuta otras instrucciones. En el ejemplo siguiente, se genera una señal PWM de un 1 kHz con un 50% del ciclo de trabajo, por el canal 1 (CCP1) de un microcontrolador PIC16F877: HPWM 1, 127, 1000

301

I2CWRITE - I2CREAD I2CWRITE DataPin, ClockPin, Control, Direccion, Label I2CREAD DataPin, ClockPin, Control, Direccion, Label

Estas declaraciones sirven para escribir y leer datos en un chip EEPROM serial usando una interfaz I2C de 2 hilos, funcionan en modo I2C Máster y también puede ser utilizado para comunicarse con otros dispositivos de interfaz I2C, como sensores de temperatura, reloj calendarios, conversores A/D, etc.

Los 7 bits de control contienen el código de fábrica del chip y la selección del chip A2, A1, A0 el último bit es una bandera interna

que indica si es un comando de

lectura o escritura y no se debe usar. Por lo tanto el control para nuestro caso en lectura o escritura es %10100000.

Debido a que los pines SDA y SCL de la memoria 24LCXX son de colector abierto, estas deben ir conectadas con resistencias de 4,7k ohmios, sin embargo existe una línea de comando que hace que no se necesite la resistencia pull-up del SCL, esta se debe agregar al comienzo del programa: DEFINE I2C_SCLOUT 1

; no es necesario resistencia pull-up en SCL

(reloj)

También cabe indicar que existen algunas memorias que necesitan de un período de tiempo para poder ser grabadas, por lo que se adiciona un PAUSE 10 después de cada grabación.

302

Su estructura es de la siguiente manera: I2CWRITE portb.6, portb.7, %10100000,0,[65]

;almacenar en la dirección 0 el

dato 65 PAUSE 10

;pausa necesaria para completar la grabación

INPUT INPUT Terminal

Configura al Terminal especificado de puerto B, como una entrada. Terminal va de 0 a 7. Por ejemplo: INPUT 2

'Configura a RB2 como terminal de entrada

IF..THEN..ELSE

Estas instrucciones son súper flexibles cuando se desea realizar más de una comparación. Estas instrucciones emplean los siguientes formatos:

Formato 1: IF Condición [Comparación AND / OR ...] THEN Etiqueta

Formato 2: IF Condición [Comparación AND / OR...] THEN Declaración...

Formato 3: IF Condición [Comparación AND / OR ...] THEN Declaración.... ELSE Declaración ENDIF

A continuación se muestran algunos ejemplos del uso de esta instrucción:

303

Declaración Condicional: IF PORTB.0 = 0 THEN Lea = 7

Salto condicional: IF (PORTB.0 = 0) AND (PORTB.l = 1) THEN Lazo

Declaraciones múltiples: IF Cnt < 10 THEN A = A + 1 : B = B + 1

Declaraciones multiples: IF SUM < 10 THEN Cnt = Cnt + l Tot = Tot + l ENDIF

IF...THEN…ELSE IF Total = 100 THEN Bandera = 1 ELSE Bandera = 0 ENDIF

LOOKDOWN LOOKDOWN Elemento, (Constante, Constante,...), Var

Esta instrucción proporciona una tabla de búsqueda, que explora en una lista de Constantes y compara cada una con el valor del Elemento de búsqueda. Si aparece una constante que sea igual, la posición de la constante se almacena en Var. Se asume que la primera Constante se encuentra en la posición 0. Las constantes pueden ser de tipo numérico o cadena. En el siguiente ejemplo, si se asume que la variable B0 es igual a 5 entonces la variable Bl tendrá un valor igual a 3, que es la posición que ocupa el 5 en la tabla: LOOKDOWN B0, (0, 8, 9, 5, 12, 0, 1), Bl 304

LOOKUP LOOKUP Indice, (Constante, Constante,....), Var

Esta instrucción permite extraer datos de una tabla. Si índice es 0, Var se carga con la primera Constante; si índice es 1, Var se carga con la segunda Constante. En el siguiente ejemplo, si se asume que la variable B0 tiene el valor 3, la variable Bl se cargará con 8, que es el tercer elemento de la tabla (comenzando por 0): LOOKUP B0, (0, 9, 0, 8, 12, 32), Bl

LOW LOW Terminal

Esta instrucción configura el Terminal especificado como salida y lo pone en 0 lógico. El campo Terminal sólo es aplicable a los terminales del puerto B y puede tornar valores de 0 a 7. En el siguiente ejemplo, se configura el bit 2 como salida y se pone a 0 lógico: LOW 2

NAP NAP Periodo

La instrucción NAP pone al microcontrolador PIC en el modo de bajo consumo durante un Periodo de tiempo. Esto permite ahorrar energía en aplicaciones que usen baterías. El campo Periodo es una variable con valores entre 0 y 7. Período

Retraso (aprox.)

0

18ms

1

36 ms

2

72 ms

3

144 ms

4

288 ms

5

576 ms

6

1.152 s

7

2.304 s 305

En el siguiente ejemplo se pone al microcontrolador en el modo de bajo consumo por un tiempo ligeramente mayor que 1 s (1.152 s): NAP 6

OUTPUT OUTPUT Terminal

Esta instrucción configura el Terminal especificado del puerto B como salida. El Terminal puede tomar valores de 0 a 7. En el siguiente ejemplo, el bit 2 del puerto B (RB2) se configura como terminal de salida: OUTPUT 2

PAUSE PAUSE Periodo

Esta es una de las instrucciones más usadas normalmente para retrasar un programa en un valor deseado. El Periodo se da en milisegundos y puede ir de 1 a 65.535 ms (es decir, por encima de un minuto). PAUSE no pone al microcontrolador en el modo de bajo consumo. En el siguiente ejemplo, el programa se retrasa por 1 s: PAUSE 1000

PAUSEUS PAUSEUS Período

Esta instrucción detiene la ejecución del programa durante un tiempo en microsegundos dado en Período. Período es una palabra en el rango de 1 a 65535. Por lo tanto, la espera máxima es de 65535 ms. La instrucción PAUSEUS presupone que se emplea un reloj de 4 MHz. La espera mínima que puede lograrse con esta instrucción, empleando un reloj de 4 MHz, es de 24 us.

PEEK PEEK Dirección, Var

306

Esta instrucción se usa para leer el dato en una Dirección específica de un registro en la memoria RAM y luego depositarlo en la variable Var. La instrucción PEEK se puede usar para acceder a todos los registros del microcontrolador PIC, incluyendo a los registros de los puertos, registros del conversor A/D, etc.

En el siguiente ejemplo, el dato de 8 bits del puerto B se lee y se almacena en la variable B0: Symbol PORTE = 6

'Dirección del registro PORTB

PEEK PORTB, B0

'Leer del PORTB hacia B0

POKE POKE Dirección, Var

Esta instrucción permite enviar los datos a la Dirección específica de un registro en la memoria RAM. La instrucción POKE se puede usar para enviar los datos a todos los registros accesibles del microcontrolador PIC, incluyendo los registros de datos de los puertos, los registros de dirección de puertos, los registros del conversor A/D, etc.

En el siguiente ejemplo, se pone a 0 al registro TRISE de forma que todos los terminales del puerto B son salidas. Luego se envía el dato 24 hexadecimal al puerto B. Symbol TRISB = $86

'Registro de dirección TRISE

Symbol PORTB = 6

'Dirección del registro Puerto B

POKE TRISB,

'Limpiar a TRISB

POKE PORTB, $24

'Enviar $24 al Puerto B

POT POT Terminal, Escala, Var

Esta instrucción podría ser útil para leer una tensión analógica si el microcontrolador no tiene ningún conversor A/D integrado. Terminal es alguna patilla del puerto B y puede tomar un valor entre 0 y 7. 307

Para que esta instrucción funcione se debe conectar un resistor y un capacitor en serie a un terminal del puerto, como se muestra en la figura de abajo. Al aplicar una tensión al circuito resistor - capacitor, la tensión en el condensador aumenta exponencialmente conforme se carga el capacitor a través del resistor. El tiempo de carga depende del valor del resistor y del capacitor.

Cuando se usa la instrucción POT, el terminal de E/S se pone en modo de salida y el capacitor se descarga inicialmente por dicho terminal. Luego, el puerto del E/S se cambia al modo de entrada y comienza a contarse el tiempo de carga del capacitor hasta que su tensión alcance la tensión de umbral del puerto de E/S. Cuando esto ocurre, el tiempo de carga calculado se convierte a un número entre 0 y 255 y se guarda en Var.

El valor de Escala se fija experimentalmente. Para esto, se pone al resistor en su valor de máxima resistencia y se fija Escala a 255. El valor devuelto en Var dará el valor de Escala correspondiente para los valores de los componentes externos seleccionados. A continuación, se da un ejemplo en el cual se conecta un resistor capacitor al terminal 1 del puerto B, el valor de Escala se pone a 255 y el valor de salida se guarda en B0. POT 1, 255, B0

PULSIN PULSIN Terminal, Estado, Var

La instrucción PULSIN mide la amplitud del pulso de cualquier señal conectada a un terminal del puerto B. Si se emplea un cristal o un resonador a 4 MHz, la amplitud del pulso se medirá en unidades de 10 us. Si Estado es igual a 0, se mide la amplitud del pulso en nivel bajo; si Estado es 1, se mide la amplitud del pulso en nivel alto. 308

El valor medido en unidades de 10 us se guarda en la variable Var, Var puede ser un byte o una palabra. Si es una palabra, esta puede tomar valores entre 1 y 65535, es decir la amplitud mínima del pulso que se puede medir es de 10 us y la máxima es de 655350 us. Si es un byte, el rango de medida va de 10 a 2550 us.

PULSOUT PULSOUT Terminal, Período

Esta instrucción genera un pulso por un terminal del puerto B (Terminal va de 0 a 7) cuyo Período se especifica en unidades de 10 us. Período es un word, por lo que se pueden generar pulsos de hasta 655350 us. El terminal especificado se configura automáticamente como salida. Por ejemplo, para generar un pulso de 500 us en el terminal 1 del puerto B, se emplea la instrucción: PULSOUT 1, 50

PWM PWM Terminal, Ciclo, Repeticiones

Esta instrucción genera una señal modulada por la amplitud de pulso o PWM (PulseWidth-Modulated) en el terminal del puerto B especificado (Terminal va de 0 a 7). Ciclo es el ciclo de trabajo y puede ir de 0 a 255. El valor 0 se corresponde con un ciclo de trabajo del 0% y el 255 se corresponde con un ciclo de trabajo del 100%. El pulso PWM generado se repite el número de veces que se pone en el campo Repeticiones. El Terminal especificado del puerto se configura como salida justo antes de que se ejecute la instrucción y se convierte en entrada después que se genera el pulso.

En el siguiente ejemplo, se genera por el bit 0 del puerto B, una señal PWM de 200 repeticiones, con un ciclo de trabajo del 50%: PWM 0, 127, 200

Esta instrucción también se usa para generar una señal analógica enviando la señal PWM de salida a un circuito resistor – capacitor. 309

En este circuito, la tensión a través del capacitor variará en función del Ciclo de trabajo y del número de Repeticiones de los pulsos.

REPEAT…UNTIL REPEAT Declaración... UNTIL Condición

Esta instrucción permite crear bucles en los programas. Las declaraciones entre el REPEAT y el UNTIL se ejecutan hasta que se cumpla la Condición especificada.

En el siguiente ejemplo, se repiten 10 veces las declaraciones entre REPEAT y UNTIL: k=0 REPEAT Suma = Suma + 1 Cont = Suma k=k+l UNTIL k < 10

RANDOM RANDOM Var

Esta instrucción genera un número aleatorio y lo almacena en la variable Var de tipo palabra. La siguiente instrucción muestra un ejemplo en el que se genera un número aleatorio y se almacena en Wl: RANDOM Wl 310

READ READ Dirección, Var

Esta instrucción permite leer un Byte de una Dirección especificada de la memoria EEPROM interna. El Byte leído se almacena en la variable Var. Esta instrucción sólo puede usarse en microcontroladores PIC con memoria EEPROM integrada (por ejemplo PIC16F84, PIC16F877).

En el ejemplo siguiente, se lee el Byte de la dirección 10 de la EEPROM y se almacena en la variable Bl: READ 10, Bl

'Leer Byte de la dirección 10 y almacenar en Bl

REVERSE REVERSE Terminal

Esta instrucción invierte el modo del terminal especificado del puerto B (Terminal va de 0 a 7). Si el terminal es una entrada, se convierte en salida y viceversa.

En el siguiente ejemplo, el bit 2 del puerto B, primeramente se programa como salida y luego se cambia a entrada: OUTPUT 2

'RB2 es un terminal de salida

REVERSE 2

'RB2 es un terminal de entrada

SELECT…CASE SELECT CASE Var CASE Expresion1 [,Expresión...] Declaraciones... CASE Expresion2 [,Expresión...! Declaraciones... [CASE ELSE Declaración...] END SELECT

311

Esta instrucción evita tener que usar varias instrucciones IF...THEN. La instrucción compara la variable Var con diversos valores (o rangos de valores) y en función de su valor, se realiza una acción determinada: Si Var no coincide con ninguna de las condiciones, entonces se ejecutan las declaraciones a continuación del CASE ELSE. La palabra reservada IS se usa después del CASE para realizar otra tipo de comparación que no sea "igual a".

En el siguiente ejemplo, si x es igual a 1, B se pone a 100. Si x es igual a 2, B se pone a 6. Si x es igual a 3 o 4, B se pone a 50. Si x es mayor que 120, B se pone a 1. Si x no es igual a ninguna de las condiciones anteriores, entonces B se pone a 0. SELECT CASE x CASE 1 B = 100 CASE 2, 3 B = 50 CASE IS > 220 B=1 CASE ELSE B=0 END SELECT

SHIFTIN SHIFTIN Terminal_de_Datos,

Terminal_de_Reloj,

Modo,

[Var{\bits},

Var{\bits},...]

La instrucción SHIFTIN se usa para leer datos (bit a bit) conforme se envía la señal de reloj al dispositivo que los emite. El dato recibido se guarda en la variable Var. El Terminal_de_Datos puede ser cualquiera entre 0 y 15 o expresarse en el formato Nombre_del_Puerto. Terminal que especifica el número del terminal por el cual se reciben los datos. Los campos "\bits" son opcionales y especifican el número de bits de desplazamiento de los datos; si se omiten, se asume que el desplazamiento es de 8 bits.

312

El Terminal_de_Reloj puede ser cualquiera entre 0 y 15 o expresarse en el formato Nombre_del_Puerto.Terminal. Aquí se especifica el número del terminal por dónde se envía la señal de reloj. El campo Modo toma un valor entre 0 y 7, y especifica el modo del funcionamiento del reloj como se observa en la tabla 4.10. Para los Modos del 0 al 3, la señal de salida de reloj está normalmente en bajo, cuando pasa a nivel alto, el bit de datos entra y luego retorna a nivel bajo. Para los Modos del 4 al 7, la señal de reloj está normalmente en alto, cuando va a nivel bajo, el bit de datos entra y luego retorna a nivel alto.

Modo

Funcionamiento

No. 0

Desplazar primero al MSB. Leer antes de enviar el reloj. Reloj normalmente en bajo.

1

Desplazar primero al LSB. Leer antes de enviar el reloj. Reloj normalmente en bajo.

2

Desplazar primero al MSB. Leer después de enviar el reloj. Reloj normalmente en bajo.

3

Desplazar primero al LSB. Leer después de enviar el reloj normalmente en bajo.

4

Desplazar primero al MSB. Leer antes de enviar e] reloj. Reloj normalmente en alto.

5

Desplazar primero a LSB. Leer antes de enviar el reloj. Reloj normalmente en alto.

6

Desplazar primero a MSB. Leer después de enviar el reloj. Reloj normalmente en alto.

7

Desplazar primero al LSB. Leer después de enviar el reloj. Reloj normalmente en alto.

En el siguiente ejemplo, los bits de datos se reciben por el bit 0 del puerto B, primeramente el bit menos significativo (LSB) seguidos de los 8 bits de datos, y luego se almacenan en la variable Bl. En este caso se emplea el Modo 0 y la señal de reloj se envía por el bit 1 del puerto B. SHIFTIN PORTB.0, PORTB.l, 0, [Bl \ 8] 313

SHIFTOUT SHIFTOUT Terminal_de_Datos, Terminal_de_Reloj, Modo, [Var{\bits}, Var{\bits},...]

Esta instrucción es similar a SHIFTIN, pero en este caso, se transmiten los bits de datos hacia el exterior. El Terminal_de_Datos puede estar entre 0 y 15 o especificarse con el formato Nombre_del_Puerto.Terminal. El campo "\bits" es opcional y especifica el número de bits a desplazar en la dirección de salida de los datos; si se omite, se asume que el desplazamiento es de 8 bits. El Modo especifica el primer bit que se envía, En el Modo 0, el LSB se envía primero seguido de los otros bits de datos. En el Modo 1, el bit más significativo (MSB) se envía primero seguido por los restantes bits de datos.

En el siguiente ejemplo, los contenidos de la variable Bl se transmiten como 8 bits por el bit 0 del puerto B, primeramente el LSB. El bit 1 del puerto B se usa como terminal de reloj. SHIFTOUT PORTB.0, PORTB. 1, 0, Bl

SERIN SERIN Terminal, Modo, (Calificador, Calificador,,), Dato, Dato

Esta instrucción se usa para recibir los datos de forma asincrónica serie a través de un terminal del puerto B (Terminal está entre 0 y 7), empleando 8 bits de datos, ningún bit de paridad y un bit de parada. Como se muestra en la tabla 4.6 el Modo define la velocidad de transmisión en baudios y si el terminal de datos está invertido o no. Por ejemplo, si el Modo es N9600, los datos son invertidos y la velocidad de transmisión seleccionada es de 9600 baudios.

Símbolo

Valor

Veloc. de transmisión

Modo

T2400

0

2400

Verdadero

T1200

1

1200

Verdadero

T9600

2

9600

Verdadero

314

T300

3

300

Verdadero

N2400

4

400

Invertido

N1200

5

1200

Invertido

N9600

6

9600

Invertido

N300

7

300

Invertido

Corno las señales RS232 tienen niveles de ±1.2 V, es necesario emplear circuitos conversores de niveles (por ejemplo MAX232) para convertir las señales RS232 a señales TTL y viceversa. Las especificaciones de E/S de los microcontroladores PIC permiten conectar directamente las señales RS232 a cualquier terminal de entrada de puerto. Como se observa en la figura 4.5, sólo se necesita un simple resistor para recibir las señales RS232 por un terminal. Cuando se empica este modo, los datos serán invertidos (versiones N de la tabla 4.6)

Los Calificadores, puestos entre paréntesis, son Bytes de datos que sirven como una especie de validación previa a la recepción de los datos en las variables Datos, de la instrucción SERIN, es decir, la instrucción espera a que se reciba por la línea el dato especificado en el primer calificador, y luego almacena el próximo Byte en la primera variable Dato, a continuación espera por el segundo calificador, y lo introduce en la segunda variable Dato, y así sucesivamente. Las variables de datos pueden ir precedidas del símbolo de número (#). Este convierte el número decimal recibido a su equivalente en código ASCII y lo almacena en Dato.

En el siguiente ejemplo, el terminal 1 del puerto B (RB1) se define como E/S serie y se conecta con un resistor a la línea serie RS232. Se asume que la velocidad de transmisión es 4800 baudios. El microcontrolador espera hasta que se reciba por la línea el carácter X y luego guarda el próximo Byte en la variable B0: SERIN 1, N4800, ("X"), B0

SEROUT SEROUT Terminal, Modo, (Dato, Dato,...)

315

Esta instrucción es parecida a la instrucción SERIN pero se usa para transmitir datos asincrónicos serie (RS232) a través de un terminal del puerto B (Terminal puede estar entre 0 y 7). Como se vio anteriormente, el campo Modo se usa para definir la velocidad de transmisión en baudios. Además de contar con el modo invertido y no invertido, se dispone de los modos de drenador abierto y de colector abierto donde se usa un resistor de pull-up a la salida del terminal. En la tabla 4.7 se muestra una relación de los modos disponibles.

Símbolo

Valor Veloc. de transmisión

Modo

T2400

0

2400

Verdadero

T1200

1

1200

Verdadero

T9600

2

9600

Verdadero

T300

3

300

Verdadero

N2400

4

2400

Invertido

N1200

5

1200

Invertido

N9600

6

9600

Invertido

N300

7

300

Invertido

T2400

8

2400

Drenador abierto

T1200

9

1200

Drenador abierto

T9600

10

9600

Drenador abierto

T300

11

300

Drenador abierto

N2400

12

2400

Surtidor abierto

N1200

13

1200

Surtidor abierto

N9600

14

9600

Surtidor abierto

N300

15

300

Surtidor abierto

Los Bytes de datos son enviados de forma serie al terminal del puerto especificado. El Dato puede ser un valor numérico o una constante de tipo cadena. Las cadenas están formadas por caracteres y se envían carácter a carácter. Por ejemplo, la cadena "COMPUTADORA" se transmite corno 8 caracteres simples. Para el valor numérico se enviará el carácter ASCII correspondiente. Por ejemplo, 13 es el carácter "retomo de carro" (carriage-return), 65 es el carácter "A" y así sucesivamente.

316

Cuando el símbolo de número # precede a un número, se envía la representación ASCII de su valor decimal. Por ejemplo, #345 se transmite de forma equivalente a "3", "4" y "5".

En el siguiente ejemplo, se asume que se empleará, para transmitir los datos en forma serie, al terminal 1 del puerto B (RB1), el cual se configura para 4800 baudios. El código ASCII del dato existente en la variable B0 se envía por este terminal, seguido por el carácter "retorno de carro". SEROUT I, N4800, (#B0, 13)

SLEEP SLEEP Período

La instrucción SLEEP se usa para poner al microcontrolador en el modo de reposo (bajo consumo) y detener la ejecución de su programa por un determinado Período. El Período es un dato palabra que puede ir de 1 a 65535, con incrementos de 2.3s. Por ejemplo, un 1 pondrá al microcontrolador en reposo durante 2.3s; un 2 lo hará durante 4.6s y así sucesivamente. El valor máximo de 65535 pondrá en reposo al microcontrolador algo más de 18h.

En el siguiente ejemplo, el microcontrolador permanecerá en reposo durante 23 s: SLEEP 10

SOUND SOUND Terminal, (Sonido, Duración, Sonido, Duración,...)

Esta instrucción se usa para generar un sonido (tono o ruido blanco) a través de un terminal del puerto B del microcontrolador (Terminal está entre 0 y 7). Al sonido se le pueden asignar valores entre 0 y 255 que no se corresponden con las notas musicales.

Un 0 representa silencio. Los valores del 1 al 127 se emplean para generar tonos (el 1 es de menor frecuencia que el 127), y los valores del 128 al 255 se usan para generar ruido blanco (el 128 es de menor frecuencia que el 255). 317

El sonido permanece durante un tiempo especificado en Duración. Duración se mide en milisegundos y sus valores se encuentran entre 0 y 255. La instrucción SOUND produce ondas cuadradas con niveles TTL, por lo que es posible conectar un altavoz al terminal de salida, como se observa en la figura.

En el siguiente ejemplo, se genera un tono (Sonido = 20) por el terminal 0 del puerto B que dura 100 ms. Luego, por el mismo terminal del puerto, se genera otro tono (Sonido = 23) que dura 200 ms. SOUND 0, (20, 100, 23, 200)

SWAP SWAP Var, Var

Esta instrucción permite intercambiar los contenidos de dos variables. Puede usarse con variables de tipo bit, byte y palabra.

En el siguiente ejemplo, se intercambian los valores de las variables Bl y B2: SWAP Bl, B2

TOGGLE TOGGLE Terminal

Esta instrucción configura el Terminal especificado corno salida y luego invierte su nivel lógico (Terminal puede tomar valores entre 0 y 7).

En el siguiente ejemplo, el bit 0 del puerto B (RB0) se pone inicialmente a nivel bajo y luego se cambia a nivel alto empleando la instrucción TOGGLE: LOW 0 TOGGLE 0 318

WHILE…WEND WHILE Condición Declaraciones... WEND

Esta es otra instrucción que se usa para crear bucles en los programas. Las declaraciones entre el WHILE y el WEND se repiten mientras sea cierta la Condición.

En el siguiente ejemplo, se repiten 10 veces las declaraciones entre WHILE y WEND: k=0 WHILE k < 10 Suma = Suma + 1 B0 = B0 + 2 k=k+1 WEND

WRITE WRITE Dirección, Valor

La instrucción WRITE escribe el Byte Valor en la Dirección de EEPROM especificada. Esta instrucción sólo es válida para microcontroladores PIC con memorias EEPROM integradas.

En el siguiente ejemplo, se escribe el Byte de la variable B0 hacia la dirección 2 de la EEPROM: WRITE 2, B0

Manejo de un Módulo LCD (Display de Cristal Líquido)

Los módulos LCD (Display de Cristal Líquido), son utilizados para mostrar mensajes que indican al operario el estado de la máquina, o para dar instrucciones de manejo, mostrar valores, etc. El LCD permite la comunicación entre máquinas y los humanos, este puede mostrar cualquier carácter ASCII y consumen mucho menos que los displays de 7 segmentos. 319

Existen de varias presentaciones por ejemplo de 8 caracteres, 2x16, 2x20, 4x20, 4x40, etc. Sin backlight (14 pines) o con backlight (16 pines, iluminado de pantalla), el LCD más popular es el 2x16 líneas de 16 caracteres cada una.

Pin

Símbolo

Descripción

1

Vss

Tierra de alimentación GND

2

Vdd

Alimentación de 5v CC

3

Vo

Alimentación del contraste del cristal líquido (0 a 5v)

4

RS

Selección del registro control / datos RS=0 reg. control RS=1 reg. Datos

5

R/W

Lectura / Escritura en LCD R/W=0 (Write) R/W=1 (Read)

6

E

Habilitación E=0 desconectado E=1 conectado

7

D0

Bits menos significativo (bus de datos bidireccional)

8

D1

9

D2

10

D3

11

D4

12

D5

13

D6

14

D7

Bits mas significativo (bus de datos bidireccional)

15

A

Alimentación del backlight 3.5v a 5v

16

K

Tierra GND del backlight

LCDOUT

La declaración LCDOUT, sirve para mostrar ítems en una pantalla de cristal líquido, se utiliza escribiendo: LCDOUT, luego escribiendo $FE y seguido por el comando a utilizar, el siguiente cuadro muestra los comandos más utilizados.

320

Comando

Operación

$FE, 1

Limpia el visor del LCD

$FE, 2

Vuelve al inicio (comienzo de la primera línea)

$FE, $0C

Apagar el cursor

$FE, $0E

Subrayado del cursor activo (-)

$FE, $0F

Parpadeo del cursor activo ( █ )

$FE, $10

Mover el cursor una posición a la izquierda

$FE, $14

Mover el cursor una posición a la derecha

$FE, $80

Mover el cursor al comienzo de la primera línea

$FE, $C0

Mover el cursor al comienzo de la segunda línea

$FE, $94

Mover el cursor al comienzo de la tercera línea

$FE, $D4

Mover el cursor al comienzo de la cuarta línea

Los LCD se puede conectar con el PIC con un bus de 4 u 8 bits, la diferencia está en el tiempo que se demora, pues la comunicación a 4 bits, primero envía los 4 bits más altos y luego los bits más bajos, mientras que la de 8 bits envía todo al mismo tiempo, esto no es un inconveniente

si consideramos que el LCD trabaja en

microsegundos. Pero la gran ventaja de hacer conexión a 4 bits, son los pocos cables que se deben conectar, solo debemos conectar en bit de Registro, el Enable y los 4 bits más altos del LCD, con esto es suficiente para enviar los mensajes.

El compilador Pic Basic Profesional soporta módulos LCDs con controlador Hitachi 44780 o equivalente y por defecto, asume que se conecto en el pin A4 de Registro, en el pin B3 el Enable y en el puerto A empezando desde A0 hasta A3, los bits más altos del LCD. Esta configuración predefinida, se lo puede cambiar de acuerdo a la necesidad, como veremos más adelante.

Un ejemplo de lo descrito anteriormente es el siguiente: PAUSE 200

; retardo para esperar que funcione el LCD

LCDOUT $FE, 1, “Hola”

; limpiar pantalla y sacar el texto Hola

LCDOUT $FE, $C0, “microPIC”

; pasar al comienzo de la segunda línea y escribir microPIC

END

; fin de instrucciones 321

Algunos LCD no requieren PAUSE al inicio, pero existen otros modelos que necesitan unos pocos milisegundos para estar listos, por eso colocamos un PAUSE 200 el comienzo del programa.

En ocasiones especiales se debe cambiar la configuración de los pines del PIC hacia el LCD, por ejemplo para utilizar los comparadores de voltaje que se encuentran en el puerto A, necesitamos dejar disponibles estos pines, esto se logra adicionando el principio lo siguiente:

DEFINE LCD_DREG

PORTB

; define pines del LCD B4 a b7

DEFINE LCD_DBIT

4

; empezando desde el puerto B4 hasta el

DEFINE LCD_RSREG

PORTB

; define pin para conectar el bit RS

DEFINE LCD_RSBIT

3

; en el puerto B3

B7

DEFINE LCD_EREG PORTB

; define pin para conectar el bit Enable

DEFINE LCD_EBIT

; en el puerto B2

2

Una vez que se define la nueva configuración de pines para el LCD, programamos de la misma forma que las ocasiones anteriores, es importante además saber que los 4 bits de datos solo se pueden configurar en los 4 bits más bajos (B.0 al B.3) o los bits más altos (B.4 al B.7) de un puerto del PIC. 322

Si deseamos hacer una comunicación a 8 bits con el LCD, estos deben estar en un solo puerto, además debemos definir en el PBP que vamos a utilizar un bus de 8 bits, esto es de la siguiente manera: DEFINE LCD_BITS 8

; define comunicación a 8 bits con el LCD

Y si nuestro LCD posee 4 líneas, también debemos definirlo de la siguiente forma: DEFINE LCD_LINES 4

; define un LCD de 4 líneas

323