100
UNIVERSIDAD SIMÓN BOLÍVAR Decanato de Estudios Profesionales Coordinación de Ingeniería Electrónica DESARROLLO DE UN SOFTWARE PARA LA PROGRAMACIÓN DE RUTINAS DE MOVIMIENTO PARA ANIMATRÓNICOS Por Br. Carín Talero Sartenejas, Enero - Marzo 2005

Diseño de Software de Rutinas Para Animatronics

Embed Size (px)

DESCRIPTION

Diseño de Software de Rutinas Para Animatronics

Citation preview

Page 1: Diseño de Software de Rutinas Para Animatronics

UNIVERSIDAD SIMÓN BOLÍVAR Decanato de Estudios Profesionales

Coordinación de Ingeniería Electrónica

DESARROLLO DE UN SOFTWARE PARA LA PROGRAMACIÓN DE RUTINAS DE MOVIMIENTO PARA ANIMATRÓNICOS

Por

Br. Carín Talero

Sartenejas, Enero - Marzo 2005

Page 2: Diseño de Software de Rutinas Para Animatronics

- 2 -

UNIVERSIDAD SIMÓN BOLÍVAR Decanato de Estudios Profesionales

Coordinación de Ingeniería Electrónica

DESARROLLO DE UN SOFTWARE PARA LA PROGRAMACIÓN DE RUTINAS DE MOVIMIENTO PARA ANIMATRÓNICOS

Por Br. Carín Talero

Realizado con la Asesoría de Prof. Juan Carlos Grieco Ingeniero Victor Chang

PROYECTO DE GRADO Presentado ante la Ilustre Universidad Simón Bolívar

como requisito parcial para optar al título de Ingeniero Electrónico

Sartenejas, Enero - Marzo 2005

Page 3: Diseño de Software de Rutinas Para Animatronics

- 3 -

UNIVERSIDAD SIMÓN BOLÍVAR Decanato de Estudios Profesionales

Coordinación de Ingeniería Electrónica

DESARROLLO DE UN SOFTWARE PARA LA PROGRAMACIÓN DE RUTINAS DE MOVIMIENTO PARA ANIMATRÓNICOS

Presentado por: Br. Carín Talero

Realizado bajo la asesoría de: Tutor Académico: Prof. Juan Carlos Grieco Tutor Industrial: Ing. Victor Chang RESUMEN Se desarrolló un software para realizar la programación de las rutinas de movimientos de los animatrónicos de la empresa Millenium Park Technology, dedicada a las atracciones de parques temáticos y espectáculos. Este software ofrece una gran cantidad de ventajas frente a su programa antecesor, el DMA desarrollado por la empresa DDI Solutions. El software desarrollado en este proyecto es llamado y permite la grabación de memorias Flash FM24C64 a través del PIC 16F627 sin la necesidad de tener al animatrónico conectado a la computadora, cosa que era imprescindible con el DMA. Ofrece múltiples ventajas al permitir una programación en frío como realizar movimientos sincronizados y de intervalos de tiempo exactos, además de permitir guardar las rutinas para grabarlas posteriormente. Todo de forma gráfica, el usuario no necesita saber de programación de PICS ni de memorias Flash. Junto al software también se fabricó el hardware del grabador de forma que los empleados de la empresa no tengan la necesidad de armar uno cada vez que necesiten hacer una programación. El hardware contiene todos los circuitos que intervienen en el proceso interconectados entre si y protegidos por las tapas de la caja donde se encuentran contra golpes y polvo, es fácil de usar, liviano y transportable. En este libro se presenta todo el proceso que se llevó a cabo para lograr el desarrollo e implementación de de forma que cubrir todos los objetivos planteados motivados por las necesidades de la empresa. PALABRAS CLAVES Animatrónico, PIC, 16FC627, Memoria Flash, FM24C64, Programación, Interfaz gráfica.

Aprobado con mención:_______ Postulado para el premio:______

Sartenejas, Enero – Marzo 2005

Page 4: Diseño de Software de Rutinas Para Animatronics

- 4 -

A mi familia.

A mis Padres.

Por ser mi punto de apoyo incondicional. Por hacerme la vida más sencilla y feliz.

Por haberme brindado consejos, ayuda, consuelo y regaños que hicieron que hoy esté aquí, graduándome de Ingeniero.

A mi hermana.

Por obligarme a darle un buen ejemplo a seguir.

Por las peleas que hicieron que hoy seamos inseparables. Por la camaradería que nos hace más que hermanas, amigas.

Sigamos Siempre Juntos.

LOS AMO

Carín

Page 5: Diseño de Software de Rutinas Para Animatronics

- 5 -

AGRADECIMIENTOS A mis papás y mi hermana, por apoyarme y ayudarme durante todo el tiempo de la realización de este proyecto. A los profesores Juan Carlos Grieco y Gerardo Fernández, un especial agradecimiento por ayudarme a salir adelante cuando más lo necesité y orientarme a largo de esta vivencia. Al Señor Victor Chang, por permitirme realizar la pasantía en su empresa y darme la oportunidad de vivir mi primera experiencia laboral. A mis amigos de Millenium Park Technology, por hacer que mis días de pasantía allá en el taller fueran gratos. A Stanislav Dalence y Jeremías Pestana, por su valiosa y desinteresada ayuda en diferentes aspectos de este proyecto. A mis amigos y compañeros, por estar siempre ahí en las buenas y en las malas.

Page 6: Diseño de Software de Rutinas Para Animatronics

ÍNDICE GENERAL

ÍNDICE GENERAL..................................................................................................................i ÍNDICE DE FIGURAS............................................................................................................iii ÍNDICE DE TABLAS..............................................................................................................iii LISTA DE SÍMBOLOS Y ABREVIATURAS ..........................................................................iv CAPÍTULO 1: INTRODUCCIÓN...................................................................................1

1.1 Planteamiento del problema ............................................................................................3 1.2 Justificación.......................................................................................................................5 1.3 Requerimientos del Software...........................................................................................6 1.4 Objetivos ............................................................................................................................6

1.4.1 Objetivo General........................................................................................................6 1.4.2 Objetivos Específicos ................................................................................................7

CAPÍTULO 2: DESCRIPCIÓN DE LA EMPRESA........................................................8

2.1 Misión y Visión .................................................................................................................9 2.2 Reseña Histórica de la Empresa ...................................................................................10 2.3 Estructura Organizacional de la Empresa ...................................................................11

CAPÍTULO 3: MARCO TEÓRICO ................................................................................12

3.1 Los Parques Temáticos ..................................................................................................12 3.1.1 Historia De Los Parques Temáticos ......................................................................13 3.1.2 Parques Temáticos En Venezuela..........................................................................15

3.2 La Robótica.....................................................................................................................17 3.2.1 Historia De Los Robots...........................................................................................18 3.2.2 Clasificación De Los Robots ..................................................................................19

3.3 Sistemas Electromecánicos ...........................................................................................20 3.3.1 Sistemas Neumáticos ..............................................................................................21

3.3.1.1 Principio De Funcionamiento..........................................................................22 3.3.1.2 Compresor .........................................................................................................23 3.3.1.3 Secador...............................................................................................................24 3.3.1.4 Reguladores.......................................................................................................25 3.3.1.5 Válvulas..............................................................................................................26 3.3.1.6 Cilindros ............................................................................................................26

3.3.2 Motores DC..............................................................................................................27 3.3.2.1 Motor Lineal Con Solenoide............................................................................28

3.4 Sistemas Electrónicos ....................................................................................................28 3.4.1 Microcontroladores ..................................................................................................29

3.4.1.1 Procesador .........................................................................................................30 3.4.1.2 Memoria.............................................................................................................30 3.4.1.3 Microcontrolador 8085 Y PIC 16F627..............................................................32

Page 7: Diseño de Software de Rutinas Para Animatronics

ii

CAPÍTULO 4: SISTEMA ACTUAL.................................................................................34 4.1 Estudio de los animatrónicos........................................................................................34 4.2 Estudio del DMA............................................................................................................36

4.2.1 Programa del PIC ....................................................................................................36 4.2.2 Software DMA..........................................................................................................41 4.2.3 Hardware DMA .......................................................................................................43

CAPÍTULO 5: DISEÑO E IMPLEMENTACIÓN DE ...............................47

5.1 Software ...........................................................................................................49 5.1.1 Gráficos .....................................................................................................................49

5.1.1.1 Duración del pulso............................................................................................51 5.1.1.2 Generación y Edición de pulsos.......................................................................52

5.1.2 Base de Datos...........................................................................................................56 5.1.2.1 Funciones con la Base de Datos ......................................................................56

5.1.3 Simulación ................................................................................................................58 5.1.4 Generación del Código............................................................................................60 5.1.5 Comunicación Serial................................................................................................63

5.2 Hardware ........................................................................................................66 5.2.1 Tarjeta 1. Circuito RS-232........................................................................................68 5.2.2 Tarjeta 2. Circuito del PIC ......................................................................................69 5.2.3 Tarjeta 3. Circuito Darlington ................................................................................70 5.2.4 Tarjeta 4. Circuito de leds.......................................................................................70

5.3 Pruebas y Documentación.............................................................................................71 CAPÍTULO 6: PRUEBAS Y RESULTADOS .................................................................73

6.1 Pruebas Realizadas.........................................................................................................73 6.1.1 Tiempo de Espera....................................................................................................73 6.1.2 Osciladores...............................................................................................................75 6.1.3 Pruebas finales.........................................................................................................77

6.2 Comparación entre el DMA y ........................................................................78 CAPÍTULO 7: CONCLUSIONES Y RECOMENDACIONES...................................82 REFERENCIAS BIBLIOGRÁFICAS ......................................................................................86 ANEXOS...................................................................................................................................88

Page 8: Diseño de Software de Rutinas Para Animatronics

iii

ÍNDICE DE FIGURAS

Figura 1.1. Animatrónico Aibo de Sony......................................................................................2 Figura 2.1. Organigrama de MPT..............................................................................................11 Figura 3.1. Ley de Boyle-Mariotte ............................................................................................22 Figura 3.2. Ley de Gay-Lussac ..................................................................................................22 Figura 3.3. Sistema Neumático usado en MPT .........................................................................23 Figura 3.4. Movimiento de los cilindros neumáticos ................................................................26 Figura 3.5. Motor lineal a base de solenoides. ..........................................................................28 Figura 4.1. Comando de escritura..............................................................................................37 Figura 4.2. Software DMA ........................................................................................................42 Figura 4.3. Tarjeta del PIC. .......................................................................................................44 Figura 4.4. Circuito Darlington. ................................................................................................45 Figura 5.1. Proceso de Grabación de la Memoria. ....................................................................48 Figura 5.2. Módulos del software. .............................................................................................49 Figura 5.3. Las líneas de tiempo de módulo de gráficos. ..........................................................50 Figura 5.4. Algoritmo del dibujo del pulso................................................................................53 Figura 5.5. Edición de un pulso. ................................................................................................55 Figura 5.6. Barra de Menú y Herramientas. ..............................................................................57 Figura 5.7. Vista en pantalla de la simulación. ..........................................................................58 Figura 5.8. Algoritmo de la Simulación. ...................................................................................59 Figura 5.9. Algoritmo de Generación de Código (a). ................................................................61 Figura 5.9. Algoritmo de Generación de Código (b). ................................................................62 Figura 5.10. Cuadro de Grabación en la Interfaz. ......................................................................66 Figura 5.11. Kit de programación. .............................................................................................67 Figura 5.12. Esquema del hardware. .........................................................................................68 Figura 5.13. Circuito RS-232.....................................................................................................68 Figura 5.14. Tarjeta RS-232. .....................................................................................................69 Figura 5.15. Circuito de leds......................................................................................................71 Figura 6.1. Ejemplos de rutinas diseñadas.................................................................................74 Figura 6.2. Esquema de los retrasos de transmisión. .................................................................75 Figura 6.3. Función del oscilador. .............................................................................................77 Figura 6.4. Movimiento de los brazos de Merlín.......................................................................78

ÍNDICE DE TABLAS Tabla A. Comparación entre microcontroladores 8085 de Intel y PIC 16F627 de Microchip ..32 Tabla B. Funciones de ...............................................................................................57 Tabla C. Generación del código ................................................................................................63 Tabla D. Códigos del protocolo de comunicación.....................................................................64 Tabla E. Comparación entre el DMA y .....................................................................79

Page 9: Diseño de Software de Rutinas Para Animatronics

iv

LISTA DE SÍMBOLOS Y ABREVIATURAS ACTI: Asociación Civil Tierra Increíble. Asociación ligada a la empresa MPT. Animatrónicos: Robots con forma de humanos o animales. API: lenguaje C dirigido a Windows. Assembler: Lenguaje de bajo nivel para la programación de microcontroladores. Baudios: Unidad de medida del ancho de banda. BD: Base de Datos. Bit: Unidad lógica. BJT: Bipolar Junction Transistor. bps: Bits por segundo. Byte: Unidad lógica (8bits). CD: Compact Disk. Chip: Circuito integrado. CISC: Computadores de Juego de Instrucciones Complejo. Click: pulsar el botón del mouse. CLK: Señal de reloj. CTS: Señal de autorización de envío. Darlington: Configuración de transistores que permite obtener una mayor corriente. DB-9: Conector de 9 pines para comunicación serial. DC: Corriente Directa, corriente constante. DDI: DDI Solution. Empresa contratada por MPT para realizar un software de programación de animatrónicos. Delay: retardo. DMA: Dispositivo de Memoria para Animatrónicos desarrollado por DDI Solutions. EEPROM: Electrical Erasable Programmable Read Only Memory. Émbolo: Disco móvil dentro del cuerpo de una bomba. En frío: Programación no en tiempo real. EPROM: Erasable Programmable Read Only Memroy. Memoria reprogramable. Flash: Memoria EEPROM de gran velocidad. Flip Flop: Circuito biestable. FM24C64: Memoria flash desarrollada por la casa Ramtron. GND: Tierra digital. Hardware: Parte física del programador. Hexadecimal: tipo de codificación de datos. Humanoide: Que tiene forma humana. Hz: Unidad de frecuencia. Jack: tipo de conector hembra. Kb: Kbytes = 1.024 bytes. Kit: Conjunto de accesorios. LAPTOP: Computadora personal portátil. Latch: Seguidor. Mantiene su estado de salida hasta que llegue otra entrada. LDC: señal de Latido del Corazón. Led: Light Emisor Diode. Mb: Mbytes = 1.024.000.000 bytes. MPT: Empresa Millenium Park Technology.

Page 10: Diseño de Software de Rutinas Para Animatronics

v

npn: Estructura electrón-hueco-electrón en los transistores. OTP: One Time Programmable.

: Grabador de PICS desarrollado en este proyecto. PC: Personal Computer. Computadora. PIC: Tipo de microcontrolador. PIN: Terminal de un circuito integrado. pnp: Estructura hueco-electrón-hueco en los transistores. PROM: Programmable Read Only Memory. Memoria programable. RAM: Random Access Memory. Memoria temporal. Recordset: variable de almacenamiento de un registro en una BD. RISC: Computadores de Juego de Instrucciones Reducido. ROM: Read Only Memory. Memoria permanente de solo lectura. RS-232: Interfaz de comunicación serial entre el PC y un chip. SISC: Computadores de Juego de Instrucciones Específico. Software: Programa del computador. SQL: Structured Query Language. Lenguaje de programación para manejar BD. Timer: Módulo del PIC que genera una interrupción cada cierto período de tiempo específico. Torque: Fuerza rotacional. Trimmers: potenciómetros de presición. TTL: nivel lógico de alimentación. Twips: unidad interna de medición de VB. Vástago: Varilla. VB: Visual Basic. Vcc: Voltaje de Corriente Continua, voltaje de alimentación. 16FC627: Microcontrolador desarrollado por la casa Microchip. 3D: En tres dimensiones. 8085: Microcontrolador desarrollado por la casa Intel. °C: Grados Centígrados. ß: Ganancia de corriente de emisor común en transistores.

Page 11: Diseño de Software de Rutinas Para Animatronics

CAPÍTULO 1: INTRODUCCIÓN

A medida que avanza el desarrollo tecnológico se van descubriendo más y nuevas aplicaciones

en distintos campos de la vida: medicina, industria, seguridad, informática, etc. Una de éstas

es sin duda el entretenimiento, numerosas empresas alrededor del mundo han utilizado los

avances tecnológicos como medio para brindar al público una ventana hacia la fantasía y

diversión. Sin embargo es el mismo público el crítico más fuerte y quien al final determina

que la atracción sea o no todo un éxito. Si gusta la atracción o exhibición le dirán a sus amigos

y conocidos y recomendarán el lugar, si no harán todo lo contrario ocasionando que la gente

no asista. Es por esto que en el mundo del entretenimiento es tan importante la calidad de las

presentaciones y espectáculos, ya sean en vivo o en cine y televisión.

Si alguna vez ha asistido o al menos oído sobre los Parques Temáticos de Disney seguramente

entiende a lo que se hace referencia. La entrada al jardín de la película Querida Encogí a los

niños, a la isla del Parque Jurásico, una carrera en el tronco-móvil de los Picapiedra y tantas

otras atracciones donde la fantasía se hace realidad, no serían posibles sin la ayuda de los

avances tecnológicos.

En las últimas décadas se ha desarrollado y popularizado enormemente una de las

herramientas que más asombra y fascina al mundo: la Robótica. Desde el año 1920, en que se

utilizó por primera vez la palabra Robot para designar a una máquina que realizaba una tarea

que podía desempeñar un ser humano, se han fabricado infinidades de robots para las fábricas

e industrias. Pero no es sino hasta finales de la década de los ’70 que se comienzan a usar los

robots en el cine y más tarde, en el año de 1986, que se comienza la fabricación del primer

robot con forma humana por parte de la empresa multinacional Honda. A partir de ese

momento comienza la producción de gran cantidad de robots con forma de humanos o

animales a lo cual se le da el nombre de Animatrónica.

Actualmente existen miles de organizaciones, empresas e instituciones que utilizan la

animatrónica para llevar entretenimiento y diversión a los hogares, ya sea por películas,

Page 12: Diseño de Software de Rutinas Para Animatronics

2

espectáculos y presentaciones, juguetes y hasta mascotas, tal como es el caso del perrito Aibo

de Sony, que se muestra en la figura 1.1.

Figura 1.1. Animatrónico Aibo de Sony

Después del gran éxito que obtuvo la compañía Disney al fundar sus Parques Temáticos e

incluir en sus atracciones animatrónicos, esta idea se ha divulgado por todo el planeta y ahora

se pueden encontrar infinidades de exhibiciones y atracciones que los utilizan como parte de

sus espectáculos, sobre todo en Estados Unidos, Japón y Europa. Incluso aquí en

Latinoamérica se pueden encontrar en Centros Comerciales y algunas vitrinas de tiendas

llamando la atención del público.

Desde el año 1995 en Venezuela contamos también con este tipo de entretenimiento gracias a

la empresa Millenium Park Technology y la Asociación Civil Tierra Increíble, quienes se han

dado la tarea de montar espectáculos, exhibiciones y Parques Temáticos donde su principal

recurso son los animatrónicos fabricados totalmente en Venezuela.

Estos animatrónicos tienen su “cerebro” en microcontroladores que le ordenan la secuencia de

movimientos que deben realizar durante el espectáculo, cuentan con todo un conjunto de

piezas hidráulicas, neumáticas, circuitos electrónicos y pieles sintéticas que le dan forma y

vistosidad de personajes de la naturaleza y fantasía, adentrándonos en un mundo de magia e

imaginación.

Page 13: Diseño de Software de Rutinas Para Animatronics

3

A lo largo de este informe encontrará todo el proceso de desarrollo e implementación de un

software desarrollado para la empresa y que es el motivo del proyecto realizado. En el

presente Capítulo se da a conocer el problema a resolver, la justificación del proyecto y los

objetivos perseguidos. En el Capítulo 2 se describe a la empresa en la que se realizó la

pasantía. En el Capítulo 3 encontrará el Marco Teórico que contiene todos los aspectos

teóricos necesarios para el desarrollo del proyecto . Tanto el diseño como su implementación,

así como los resultados obtenidos se presentan en los Capítulos 4, 5 y 6 y por último las

Conclusiones y Recomendaciones en el Capítulo 7.

1.1 Planteamiento del problema

La empresa Millenium Park Technology (MPT) desarrolla y fabrica el material y productos

necesarios para diversas atracciones y espectáculos, entre los cuales se encuentran los

animatrónicos que son robots con forma de animales o persona s. Generalmente estos

animatrónicos llevan una rutina predefinida de movimientos en secuencia que muchas veces

va acorde con una grabación de audio, luces, etc. Dichas rutinas no duran más de minuto y

medio y siempre son repetitivas. Sin embargo la presentación de estos espectáculos cambian

frecuentemente con lo cual deben renovar las rutinas de los animatrónicos de la atracción para

adaptarlas esa nueva presentación.

Desde el momento de su creación MPT ha utilizado el microprocesador 8085 de Intel, el cual

en los actuales momentos ha pasado a la caducidad siendo un gran problema encontrarlos en

Venezuela para su sustitución cuando alguno se daña, sin contar con los contratiempos que

causa el hecho de que la empresa no cuenta con un profesional que sepa programar en

Assembler dicho microcontrolador, por lo que cada vez que se debe reprogramar uno de ellos

deben contratar a un profesional que lo haga, lo que implica un alto costo en tiempo y dinero

para la empresa.

A mediados del año 2004 la Directiva de MPT tomó la decisión de actualizar los

microcontroladores de todos sus animatrónicos y contrató a la empresa DDI Solutions para

este trabajo. DDI cambió todos los microcontroladores 8085 por PICS 16F627 y memorias

Page 14: Diseño de Software de Rutinas Para Animatronics

4

Flash FM24C64 como resultado de un trabajo de investigación en el cual buscaron la mejor

alternativa para la empresa en cuanto a rendimiento y costos de las ofertas del mercado;

también diseñó el circuito de la tarjeta donde irían el PIC con la memoria externa respetando

la forma de interconexión con las otras tarjetas, partes del animatrónico, que ya se trabajaban

con el microcontrolador, ya que las demás tarjetas seguían siendo vigentes y la empresa las

poseía en gran cantidad. Debido a esto MPT procedió a la compra de 50 PICS y Memorias

Flash y a la elaboración de 50 circuitos impresos para estos elementos.

Aunado a esto DDI programó un software para la programación de estas Memorias llamado

Dispositivo de Memoria para Animatrónicos (DMA). El PIC tiene un programa base

invariable que guarda en la memoria externa las ordenes de movimientos que recibe del DMA

vía serial y en el momento de la ejecución los lee de ella y los reproduce. La particularidad de

este software es que la programación de la memoria se hace a través del PIC y en tiempo real,

es decir, que el circuito que contiene al PIC y a la memoria debía estar conectado al

animatrónico y a su vez al computador para poder realizar la programación. Los movimientos

para cada puerto de salida del PIC se graban uno a la vez, primero se hace la grabación de un

puerto y luego al terminar se comienza de nuevo pero grabando otra salida. De esta forma

resulta realmente difícil programar movimientos bien coordinados, con exactitud en los

intervalos y que duren en total el tiempo requerido. Por ejemplo, un movimiento de los brazos

de un animatrónico que debe aplaudir, cuando cada brazo tiene una salida independiente de la

otra, se debe prácticamente adivinar el momento en que se programó que un brazo cerrara para

cerrar el otro y lograr el aplauso.

El tiempo de grabación de las rutinas oscilaba entre 30 minutos y una hora debido a la

complejidad con la que se hacía la grabación y dado que el trabajo debía ser realizado en

tiempo real, para modificar una rutina de movimientos se debía contar con un computador

portátil que tuviera puerto serial y el software instalado y luego cerrar la atracción para poder

conectar el computador con el animatrónico y proceder a la modificación. El cerrar una

atracción durante el tiempo que durara la grabación no es en ningún momento rentable para la

empresa y mucho menos en temporadas de alta concurrencia del público. Otra opción que

existía para realizar estas modificaciones era acudir al lugar donde se encontraba el

Page 15: Diseño de Software de Rutinas Para Animatronics

5

animatrónico antes de que abriera la atracción o después de que cerrara, en ambos casos

significaba un pago de horas extras por parte de la empresa y no resultaba práctico ya se está

obligado a trasladar al personal encargado desde el taller hasta el lugar de la atracción.

En pocos meses se notaron los resultados, definitivamente era un gran progreso con respecto a

la forma de programar los animatrónicos con el microprocesador 8085 pero seguía siendo una

solución poco eficiente y satisfactoria a estas necesidades. Por esta razón MPT requirió un

software que pudiera realizar la misma función que el DMA pero sin trabajar a tiempo real,

con el cual se pudieran programar todos los movimientos de todos los puertos sobre una línea

de tiempo (en frío), pudiendo así también hacer intervalos de tiempo exactos según lo que se

necesite y lo más importante es que pudiese ser manipulado con gran facilidad por cualquier

persona, sin que necesite saber de programación de PICS ni de grabación de memorias Flash.

1.2 Justificación

El hecho de que un software de computadora para grabar las memorias Flash pudiese ser

manipulado por una persona que no sepa nada sobre ningún lenguaje de programación

constituye de por sí un gran ahorro de la empresa al no tener que contratar a un profesional en

la materia cada vez que se requiera hacer una modificación a la rutina de movimientos de uno

de los animatrónicos.

Además de la ventaja de poder realizar movimientos de intervalos exactos de tiempo y bien

coordinados entre sí, con lo que se da una mejor apariencia al animatrónico y se eleva la

calidad de las atracciones y espectáculos; está el hecho de que no se requiere el traslado del

personal ni de una computadora con cables de conexión al lugar donde se encuentra el

animatrónico por ser una grabación en frío, y no se tiene la necesidad de cerrar la atracción

para hacer el cambio; lo que se traduce en otros ahorros de costos por parte de la empresa.

Por otra parte, tanto los PICS como las memorias y los circuitos impresos para ellos ya se

habían mandado a hacer en gran cantidad por lo que era preciso utilizarlos como parte del

proyecto para no perder la inversión realizada. De esta forma lo que se buscaba era hacer una

Page 16: Diseño de Software de Rutinas Para Animatronics

6

nueva versión mejorada del DMA que cumpliera cabalmente con estos requerimientos para

que realmente pudiera satisfacer las necesidades de la empresa, sin que esto representara un

nuevo y elevado costo de producción.

1.3 Requerimientos del Software

Como resultado del estudio de la situación de la empresa con respecto a la programación de

los animatrónicos, se tienen los siguientes aspectos que deben ser considerados a la hora de la

realización del software que es el principal objetivo del proyecto:

- Que sea un programa amigable al usuario, es decir que sea fácil de usar y que no requiera

una gran preparación para aprenderlo a utilizar.

- Que sirva de interfaz entre el computador y el PIC de forma que cualquier persona sin

conocimientos del lenguaje Assembler para PICS pueda programar un animatrónico

completo.

- Que permita la programación de movimientos de intervalos de tiempo exactos y de varios

movimientos, por salidas diferentes, bien sincronizados.

- Que no requiera el traslado del personal de la empresa ni de una computadora con los

cables de conexión al lugar donde se encuentra el animatrónico, y mucho menos el cierre

de la atracción.

- Que no represente un nuevo gasto para la empresa, más bien que se puedan utilizar los

materiales y recursos en los cuales ya se ha invertido.

- Que sea rápido, un tiempo entre 20 minutos y 1 hora es demasiado para una empresa de

este estilo que debe instalar nuevas atracciones en el menor tiempo posible y modificarlas

en el lugar donde están, ya que cada día que la atracción tenga sus puertas cerradas

significa una pérdida en gran medida.

1.4 Objetivos

1.4.1 Objetivo General

Tomando en cuenta todas estas características se planteó el siguiente objetivo general:

Page 17: Diseño de Software de Rutinas Para Animatronics

7

Desarrollar un software que sirva de interfaz entre el usuario del computador y el PIC

16F627 con el cual se pueda grabar la Memoria Flash FM24C64 para la programación de

rutinas de movimiento para cualquier animatrónico de la empresa.

1.4.2 Objetivos Específicos

- Estudiar la forma de trabajo de la empresa para entender cabalmente cuales son sus

necesidades y limitaciones en cuanto a tiempo y recursos que se deben tomar en cuenta en

el desarrollo del proyecto.

- Conocer el funcionamiento de los animatrónicos, su composición tanto electrónica como

mecánica que permiten el movimiento de sus partes.

- Conocer las características del PIC 16F627 y la Memoria Flash FM24C64 que posee la

empresa y para los cuale s están hechos los circuitos de los animatrónicos.

- Conocer el funcionamiento del programa DMA desarrollado por la empresa DDI Solutions

con el cual hasta el momento se programaban los animatrónicos.

- Desarrollar la interfaz de forma gráfica de manera que el usuario únicamente deba dibujar

en pantalla los pulsos de salida, encargándose el software de toda la comunicación con el

PIC y la grabación de la memoria.

- Escoger un lenguaje de programación para el software que permita realizar la interfaz

gráfica de forma sencilla y rápida, así como la transmisión de datos entre la computadora y

el PIC.

- Fabricar un grabador en el que únicamente se coloque la memoria a grabar con el software

y luego pueda ser retirada y llevada al circuito del animatrónico, de forma que la grabación

de la memoria se haga en el taller y la sustitución de la memoria en el animatrónico en la

atracción solo lleve pocos segundos.

- Redactar un manual del usuario para que cualquier persona pueda aprender rápida y

fácilmente como utilizar el software y el procedimiento para la grabación de las memorias.

Page 18: Diseño de Software de Rutinas Para Animatronics

CAPÍTULO 2: DESCRIPCIÓN DE LA EMPRESA Millenium Park Technology es una empresa dedicada al diseño, fabricación y producción del

material requerido tanto por la Asociación Civil Tierra Increíble (ACTI) para sus atracciones,

como por otras instituciones, empresas y/o museos.

Normalmente ACTI trabaja asociada con la empresa MPT en la producción de las

exhibiciones y parques temáticos de carácter educativo y de entretenimiento, encargándose

MPT de toda la producción material requerido, es decir de la fabricación de los productos.

ACTI “Es una organización que nació en 1995 con el objeto de ofrecer un nuevo concepto,

con una visión futurista, entretenida y a la vez educativa, de los parques de atracciones y

entretenimiento.

Para lograrlo, sus fundadores, Víctor Chang y Beatriz Silva, junto con todo su equipo, han

recurrido a la tecnología más avanzada en el área de robótica, electrónica e informática para

poder transmitir a niños, jóvenes y adultos lo s conocimientos y avances tecnológicos del

nuevo siglo, de una manera amena y divertida, así como divulgar la importancia que tiene para

nuestro planeta mantener el equilibrio ecológico.” [Anexo A].

Los productos fabricados por MPT se clasifican en dos tipos: animatrónicos y simuladores.

Los animatrónicos son robots destinados a atracciones, exhibiciones y espectáculos, los cuales

tienen forma de personas o animales y su esqueleto mecánico junto con sus circuitos

electrónicos son cubiertos con un trabajo artístico que les dan su forma y personificación.

Su acabado artístico es a base de resinas, goma espuma, silicón y pinturas, de manera que

permitan el movimiento del sistema mecánico y soporten los cambios climáticos de la

intemperie. El sistema mecánico se compone de una estructura metálica que conforma su

esqueleto con ciertas partes móviles que se mueven gracias a motores DC además de cilindros

neumáticos. La parte electrónica consta de un PIC que tiene programada la rutina de

Page 19: Diseño de Software de Rutinas Para Animatronics

9

movimientos y el control de las luces de la escena, sonido, etc; y el circuito interfase entre el

PIC y el sistema mecánico.

Los simuladores constan de una plataforma de movimiento de tres grados de libertad, de

capacidad de 20 personas en promedio y cuyos movimientos van coordinados según la

película proyectada. Tanto la película como el sonido, efectos especiales (aire, agua, etc.) y los

movimientos de la plataforma están controlados por un software especial desarrollado por la

empresa. Los movimientos se logran neumáticamente, con un cilindro de aire para cada grado

de libertad y consta de una interfaz electrónica entre la computadora y las válvulas de aire. No

cuentan con un sistema de control, por lo que trabajan a lazo abierto. Para un futuro próximo

la empresa tiene como proyecto diseñar e instalar un sistema de control para las plataformas a

lazo cerrado y aumentar los grados de libertad a seis.

Vale destacar que MPT es la primera y única empresa en Latinoamérica que se encarga de

producir este tipo de productos con tecnología totalmente hecha en Venezuela y con calidad de

exportación. De igual forma ACTI es la primera organización que realiza esta clase de

exhibiciones y atracciones en el país dándole el carácter de pionera en este mercado.

2.1 Misión y Visión

Educar y entretener al público, usando tecnología avanzada en las áreas de robótica, diseño,

informática, instrumentación, materiales sintéticos, ingeniería, neumática y mecánica

aplicadas. Despertar el interés de los jóvenes en el estudio y aplicación de las técnicas

mencionadas y atraer su atención a la necesidad de preservar el equilibrio ecológico del

planeta.

La visión, convertirse en un centro de investigación y desarrollo aplicado así como de

producción en áreas de robótica y educación.

Page 20: Diseño de Software de Rutinas Para Animatronics

10

2.2 Reseña Histórica de la Empresa

La Asociación Civil Tierra Increíble (ACTI) tiene sus inicios en el mes de Abril de 1995 en

una exhibición llevada a cabo en el Museo de Ciencias de Caracas, la cual contaba con doce

diferentes modelos de Dinosaurios y varios puntos educativos.

Debido a su éxito con esta exhibición, ACTI comienza un período de fabricación y producción

de más y nuevos proyectos de atracciones de modelos animatrónicos y simuladores 3D,

instalando parques en diferentes estados del país y vendiendo sus productos a diversas

instituciones, como el Museo de Ciencia y Tecnología de Mérida al que le vendieron tres

modelos de dinosaurios.

Es durante este período que se crea la empresa MPT, que trabaja en paralelo con ACTI

abarcando todo lo relacionado con la producción, franquicias, parques temáticos y atracciones

educativas.

En 1998 la empresa vende sus productos al Museo de los Niños para la realización de una sala

robótica y tres modelos de insectos al Parque Zoológico el Pinar. En el año 2001 la empresa

monta su taller de producción y sus oficinas en el Km. 21 de la Carretera Panamericana,

galpón B (al lado de la Cristalería Fran-Jos para ese entonces), Sector Corralito, Carrizal, Edo.

Miranda; donde sigue actualmente.

A principios del año 2004 es instalado un simulador 3D en el Centro Comercial el Toló n de

Caracas y a mediados de ese mismo año instalan también la exhibición de Insectos en una

atracción llamada Qué Bichos!. Más tarde en noviembre, se sustituye la atracción de los

insectos por una atracción navideña llamada El Pueblito Secreto de Santa, la cual duró hasta

mediados de enero de 2005, momento en el cual se culmina el contrato con el Centro

Comercial quedando únicamente funcionando en este lugar el simulador 3D.

Page 21: Diseño de Software de Rutinas Para Animatronics

11

Actualmente se están trasladando al taller de producción los Dinosaurios que se encontraban

en el Parque Dunas de Valencia para prepararlos y reacondicionarlos para una próxima

exhibición en el Estado Mérida.

2.3 Estructura Organizacional de la Empresa

La empresa MPT está constituida por 3 áreas: Administración, Producción y Mercadeo. En el

área de Producción existen 3 departamentos que trabajan en conjunto para lograr la

fabricación y venta exitosa de sus productos. Éstos son: Mecánica, Electrónica y Arte. Cada

departamento tiene su área de trabajo en el taller y cuenta con depósitos y almacenes para

guardar sus materiales y equipos de trabajo.

La empresa tiene actualmente 12 empleados. El área de Administración es la que coordina y

dirige directamente al personal de limpieza y seguridad, por tanto si contamos el personal de

cada sección, en este departamento hay 4 personas. En mercadeo se encuentra una sola

persona mientras que por cada departamento del área de Producción se encuentran dos

personas trabajando; con lo cual se puede ver que MPT es una empresa pequeña. En la figura

2.1 se puede observar el organigrama que define la estructura organizacional que rige en MPT.

Figura 2.1. Organigrama de MPT

Page 22: Diseño de Software de Rutinas Para Animatronics

CAPÍTULO 3: MARCO TEÓRICO

3.1 Los Parques Temáticos

“Los parques de diversiones y los parques temáticos han sido por siglos la diversión favorita

de miles de familias, y es que muy pocos lugares nos pueden ofrecer tanta emoción y alegría

para chicos y grandes. Un parque de diversiones nos puede llevar a mundos lejanos, desde los

castillos medievales hasta un mundo futurista, desde el viejo oeste hasta la lejana China, y

todo en el mismo lugar. Nos puede ofrecer paseos excitantes o espectáculos tranquilos,

comida, dulces y todo lo que puedas desear para disfrutar de un día que te aleje de la rutina y

en el que solo piensas en divertirte.” [1]

Definitivamente los parques de diversiones siempre serán una excelente opción para lograr

olvidarse por un rato de la realidad y entrar a un mundo ideal de aventura y magia donde no

existe el dolor ni el sufrimiento. Pero, ¿Qué es lo que diferencia a un parque temático de un

parque de diversiones?

La principal característica de los parques temáticos es que poseen un proyecto educativo. Al

tratarse de un tema en específico, decorando todo el lugar sobre él e incluso vistiendo a los

guías o trabajadores del parque de forma que representen dicho tema, no solamente llevan

recreación al público, sino que les permiten aprender sobre un tema que les cause curiosidad

de una forma tan amena que no se percaten de ello. [2]

Por supuesto, el tratarse de una temática específica obliga a sus creadores a ser

extremadamente cuidadosos con la decoración y ambientación del lugar, cada detalle de las

escenas cuentan, cada vestimenta, cada narración, cada efecto audiovisual proyectado. Esto

llama la atención del público y permite que la gente se adentre mejor y más rápido en la

historia ocasionando al final más emoción y satisfacción en las personas.

Page 23: Diseño de Software de Rutinas Para Animatronics

13

3.1.1 Historia De Los Parques Temáticos

Los orígenes de los parques temáticos se remontan a los años 1500, en la época de la Europa

Medieval. Para estas fechas más que parques, lo que se hacían eran jardines del pueblo o

ferias, un lugar al aire libre donde se hacían juegos, paseos, concursos, vendimias, etc.

acompañados de música, bailes y fuegos artificiales. Para el año de 1583 se inauguró el que

sería el primer parque de diversiones en todo el mundo, el parque Bakken, ubicado al norte de

Copenhage, capital de Dinamarca, con atracciones propias de la época. [1]

Según un Artículo publicado en la revista ARBOR, del Consejo superior de investigaciones

científicas (España), vol CLX, pp. 109-131, (1998), la creación de los parques de diversiones

se originan por la necesidad del hombre de crear un lugar en la tierra que fuera lo más

parecido posible al paraíso descrito en la Biblia. Un jardín lleno de plantas, frutas, flores,

abundante agua y extensa fauna. Durante muchas épocas a lo largo de Europa la concepción

de ese “paraíso” fue cambiando. De pacíficos jardines extensos y silenc iosos se comenzaron a

realizar ferias o jardines del pueblo, tal como se describieron anteriormente; hasta principios

del siglo XVII cuando André le Nôtre (el arquitecto-jardinero del Rey Luís XIV de Francia,

responsable de los jardines de Versalles y de Vaux- le-Vicomte) comenzó a adornar y

completar sus jardines con estatuas de animales, fuentes, grutas, juegos, máquinas novedosas,

arbustos podados con formas variadas, etc. De esta forma el paraíso ya se encontraba en la

tierra, pero únicamente accesible para los miembros de la realeza, y así se mantuvo hasta que

en 1583 se abre el Parque Bakken. El jardín que simulaba el paraíso se había convertido en un

parque de diversiones. [3]

En los años 1800 llegaron estas ideas a Estados Unidos de América, pero no fue sino hasta

después de la Guerra Civil que se comenzó a desarrollar con fuerza esta moda. Con la

aparición de la electricidad se construyeron gran cantidad de líneas de tranvías eléctricos. Los

dueños de estas líneas se percataron que durante los fines de semana su clientela descendía

considerablemente, ya que la gente no debía trasladarse hasta sus lugares de trabajo. Por esto

debían encontrar alguna forma de atraer a esa clientela para no bajar sus ganancias, así que

decidieron construir parques de diversiones al final de las vías. Esta idea tuvo tanto éxito que

Page 24: Diseño de Software de Rutinas Para Animatronics

14

pronto habrían parques de diversiones por todo el país y la tecnología y atracciones que

ofrecían evolucionaron con gran rapidez. [2], [3]

En 1893 en Chicago se realizó una exposición mundial donde por primera vez se vieron los

juegos de la Rueda de la Fortuna y las Montañas Rusas de madera, que inmediatamente fueron

utilizadas por Paul Boyton, quien en 1894 creó en Chicago el primer parque de diversiones de

la era moderna llamado Paul Boyton's Water Chutes. Después de esta apertura miles de

parques se abrieron por todo Estados Unidos y Europa. [2], [3]

Sin embargo, luego de terminar la Segunda Guerra Mundial, Estados Unidos y Europa

quedaron sumidos en una profunda depresión y la economía estaba devastada. Los parques de

diversiones estaban en una situación crítica y la mayoría tuvo que cerrar sus puertas. Pero

luego afloró una atracción que cambiaría la historia. Surgió por el inesperado éxito que obtuvo

una mermelada de bayas (combinación de moras, frambuesas y frambuesas americanas) que

fabricaba un granjero llamado Walter Knott. Él vendía su mermelada en un pequeño puesto de

venta dentro de su misma granja. Pronto la cantidad de gente que asistía a comprarla y a

encontrarse con los otros compradores hizo necesario que Knott abriera varios restaurantes

para poder atenderlos y los decoró todos al estilo del antiguo Oeste americano. Su idea siguió

evolucionando hasta que creó ciudades enteras inspiradas en este tema, trenes históricos y

hasta representaciones de la vida de esa época. El lugar llegó a tener 60 hectáreas dedicadas a

este tema con gran cantidad de atracciones didácticas para niños y adultos, restaurantes,

espectáculos y demás. Este parque llamado Knott's Berry Farm ubicado en Orange Country,

California, es sin duda alguna el primer parque temático que existió. Parecía que los parques

de diversiones volverían a revivir. [2],[3]

Pero con la aparición de la televisión como una nueva forma de entretenimiento, los carros y

el crecimiento de las nuevas ciudades, la industria de los parques volvió a decaer. Hasta 1955,

cuando Walt Disney abrió un parque llamado Disneyland en el que su ideología era ofrecer

entretenimiento sano para toda la familia. Aún así la mayoría de la gente de la industria del

entretenimiento no creían que su idea pudiera surgir, puesto que no ofrecía los típicos y

tradicionales juegos que siempre habían sido la atracción principal de los parques de

Page 25: Diseño de Software de Rutinas Para Animatronics

15

diversiones. Pero Disney había explotado al máximo la nueva idea que sin saberlo ni

proponérselo, había dado Walter Knott: el parque temático. Dividió su parque en varias

secciones, cada una ambientada a una temática distinta y dentro de ella todas las atracciones,

el decorado, la vestimenta utilizada y los espectáculos estaban enmarcados en el tema de esa

sección y en todas incorporando las nuevas tecnologías del cine y televisión. [2], [3]

No hay que decir que este parque fue un rotundo éxito. A partir de allí se definió por completo

el concepto de los parques temáticos y comenzaron las construcciones de ellos por todo

Estados Unidos y Europa. Six Flags, Universal Studios, EPCOT Center y Busch Garden son

solo algunos de los ejemplos de este tipo de parques. Los parques de diversiones y los parques

temáticos han seguido evolucionando desde entonces hasta llegar al estado en que los

conocemos actualmente.

3.1.2 Parques Temáticos En Venezuela

En Venezuela han existido durante años los parques de diversiones y ferias, por ese lado no

hemos perdido la oportunidad de obtener este tipo de entretenimiento. Pero la idea de los

parques temáticos es relativamente nueva, y es que no es sino hasta 1984 que se crea el primer

parque temático de Venezuela.

Bajo la inspiración de los años 30, Alexis Montilla, quien llevaba ya abierto dos restaurantes

ambientados en esta época y que fueron la atracción principal del páramo del Estado Mérida

para el público, construye todo un pueblo típico de los Andes venezolanos, Los Aleros, donde

los visitantes se transportan en un autobús propio de aquellos años al pasado y viven toda una

serie de experiencias divertidas mientras aprende sobre el estilo de vida de nuestros

antecesores. [4], [5], [6]

El gran éxito que causó le abrió las puertas para que más tarde, en el año 1991 fundara su

segundo parque temático: Alexis y la Venezuela de Antier. En éste, los visitantes hacen un

recorrido por todos los estados del país, viendo sus costumbres, sus actividades económicas,

Page 26: Diseño de Software de Rutinas Para Animatronics

16

su gastronomía y sus características más resaltantes en los tiempos de la dictadura de Juan

Vicente Gómez. [4], [5]

Junto con el teleférico de Mérida, el más largo del mundo, estos parques se convirtieron en la

atracción turística más importante del estado. Millones de visitantes acuden todos los años

para sumergirse en un viaje en el tiempo donde los adultos pueden recordar nostálgicamente y

los más jóvenes pueden aprender de una forma divertida lo que les enseñan en Historia en sus

colegios. [5]

En el año 1995 surge otra empresa que se dedicaría también a las atracciones y parques

temáticos. Tierra Increíble, que inaugura su primer parque en el Museo de Ciencias de Caracas

con Dinosaurios, en el que el público entraba en una especie de tren a la era Jurásica. [7]

En el año 2000 Alexis crea su tercer parque temático. La Montaña de los Sueños es su nombre

y se basa en la película que él mismo produjo: Una vida y dos mandados. Una biografía suya

filmada en los mismos escenarios de sus parques temáticos. En la montaña de los sueños el

público se introduce en el mundo del cine, la televisión y la radio de los años comprendidos

entre la década de los ’40 y los ‘80. [4]

El Reino de Musipan, otro nuevo parque temático ubicado en la Isla de Margarita y bajo el

diseño y dirección de Bejamín Rausseo, “El Conde del Guácharo”, un comediante venezolano

que lleva 20 años de trayectoria en su carrera y decidió crear un reino donde viven los

personajes que siempre utiliza en sus shows. Este pueblo pintoresco donde resalta las

costumbres y tradiciones del oriente del país abrió sus puertas en Abril del año 2004. [8], [9]

El Parque Tierra Increíble después de su apertura de Dinosaurios, instala nuevas y variadas

atracciones como Insectoaventura y más recientemente El Pueblito Secreto de Santa durante

Navidad del 2004. [7]

Page 27: Diseño de Software de Rutinas Para Animatronics

17

Definitivamente en Venezuela la industria de los parques temáticos ha tomando auge lo cual

repercute muy positivamente en el turismo y economía del país, además de representar una

forma entretenida de aprender para grandes y chicos.

3.2 La Robótica

El nombre de Robótica se origina de la palabra checa “Robota” que significa trabajador

forzado o servidumbre en español, junto al sufijo griego “ika” que quiere decir relacionado

con.

La palabra Robota fue utilizada por primera vez en el año 1920 en la obra de teatro RUR

(Robots Universales de Rossum) del novelista checo Karel Capek, en la que un científico

inventó un humanoide mecánico para que realizara su trabajo. [10]

Al colocarle el sufijo griego ika obtenemos que es todo lo relacionado con los robots. Por

tanto, la robótica estudia todo lo relacionado a los robots: mecánica, electrónica,

programación, mecanismos de control, etc.

A pesar de esto, el concepto de Robot no se encuentra unificado todavía, existen muchos

debates sobre qué máquinas son robots y cuales no debido a que las definiciones de robots

varían desde lo más ambiguo y simple hasta lo más complejo y explícito. Por ejemplo, una de

las definiciones más aceptadas y generales que existe es que son dispositivos mecánicos

capaces de realizar tareas que podrían desempeñar seres humanos. Si aplicamos estrictamente

este concepto, herramientas eléctricas como los microondas, los taladros y las impresoras

serían robots. Aún cuando nadie los reconoce como tales. [11]

De acuerdo con el Instituto de Robots de América (1979), un robot es "Un manipulador

reprogramable, multifuncional, diseñado para mover materiales, partes, herramientas o

dispositivos especializados, a través de varios movimientos programados para la realización de

una variedad de tareas". [12]

Page 28: Diseño de Software de Rutinas Para Animatronics

18

Según la ISO (Standard 8373:1994, Manipulating Industrial Robots – Vocabulary) un robot

industrial es un “manipulador multifuncional reprogramable con varios grados de libertad,

capaz de manipular materias, piezas, herramientas o dispositivos especiales según trayectorias

variables programadas para realizar tareas diversas.” [13]

Así mismo hay quienes consideran a las herramientas más sofisticadas como sillas de ruedas y

brazos mecánicos para minusválidos como robots, así como las nuevas herramientas médicas

utilizadas en operaciones y tratamientos.

3.2.1 Historia De Los Robots

La idea de una “máquina viva” data desde los tiempos antiguos, incluso más allá de la era

mitológica, cuando dioses y magos daban vida a estatuas y objetos ordenándoles que

realizaran una tarea específica. Tal es el caso del Dios Vulcano, Rey del infierno, quien según

la mitología creaba máquinas vivientes capaces de soportar el calor del inframundo para que

fueran sus sirvientes. [10]

Alrededor del año de 1495 Leonardo Da Vinci diseña un caballero mecánico que sería capaz

de levantarse, mover sus brazos y mover su cabeza y quijada. El diario de Da Vinci

encontrado posteriormente en 1950 muestra dibujos de este diseño que sería el primer robot

humanoide creado en la historia. [10]

Sin embargo el primer robot construido en la historia fue en 1738 por el ingeniero francés

Jacques de Vaucanson, quien construyó un humanoide tamaño real que tocaba la flauta y un

pato mecánico con 400 piezas móviles y que podía aletear, comer y hasta defecar. [10]

Más tarde en 1920 es que surge la palabra Robot tal como lo mencionamos anteriormente y

posteriormente en 1942 el escritor Isaac Asimov utiliza en sus obras por primera vez la

palabra Robot de forma escrita e introduce la palabra Robótica. Sus obras siempre se refieren a

un mundo futuro lleno de robots y los cuales responden siempre a tres leyes, que luego se

volvieron cuatro, para poder convivir con los humanos: [11]

Page 29: Diseño de Software de Rutinas Para Animatronics

19

ley 0 (añadida posteriormente): Un robot no puede afectar a la humanidad, ni permitir por

omisión que la humanidad resulte afectada.

ley 1: Un robot no puede herir a un ser humano, ni permitir por omisión que un ser humano

resulte herido.

ley 2: Un robot debe obedecer las ordenes dadas por los seres humanos, siempre y cuando esas

ordenes no contradigan una ley superior.

ley 3: Un robot debe proteger su propia existencia, siempre y cuando esa orden no contradiga

una ley superior.

En 1954 el señor George Devol diseña el primer robot programable comercial y

posteriormente funda la compañía Unimation, que sería la primera industria dedicada a la

robótica en el mundo. [10], [11]

Desde entonces infinidades de robots han sido creados. Los hallazgos más sorprendentes y

recientes han sido en 1997, cuando Honda presenta a P3, un robot humanoide con la capacidad

de caminar. En 1999 que Sony lanza a Aibo, su perro robot y luego en el 2003 cuando

presenta a Qrio, un humanoide totalmente autónomo capaz de correr. [11]

3.2.2 Clasificación De Los Robots

No todos los robots son iguales, los robots desde su invención se han utilizado para muy

variadas y diversas funciones, la clasificación de ellos depende tanto de su función, propósito,

forma de desplazamiento, grados de libertad, sistema de control que utiliza, etc. [14].

Haciendo una clasificación muy genérica y amplia se pueden distinguir claramente los

siguientes tipos:

- Androides o Humanoides: tienen la estructura del cuerpo de un ser humano e imita los

movimientos y comportamientos de éstos.

- Móviles: generalmente tienen forma de carros o tanques y pueden estar provistos de

ruedas, patas u orugas que les permiten desplazarse. Generalmente se usan para

Page 30: Diseño de Software de Rutinas Para Animatronics

20

transportar carga o mercancía y para acceder a lugares muy distantes, peligrosos o

difíciles, como en las exploraciones espaciales, desactivar bombas y realizar rescates.

- Industriales: Se utilizan para tareas específicas de fabricación y manipulación de

materiales. No tienen una forma general definida y su función dentro de la industria

puede variar notablemente. Este es el tipo de robot más desarrollado y comercializado

hasta ahora.

Si se clasificaran los robots según la forma de desplazamiento, éstos pueden ser aéreos,

cuadrúpedos, hexápodos, submarinos, rodantes, serpentinos o de oruga. Según su propósito

pueden distinguirse los tipos: militares, industriales y personales/educativos. Igualmente hay

muchos otros factores que se pueden tomar en cuenta para hacer otro tipo de clasificación.

Los robots utilizados para el entretenimiento generalmente son del tipo humanoide (también

imitan la forma de animales) y se ven comúnmente en películas, espectáculos y atracciones.

Los dinosaurios de la película Parque Jurásico de Steven Spielberg o C-3PO de la Guerra de

las Galaxias, son ejemplos claros de esto.

A este tipo de robots cuya única función aparente para la cual están programados es entretener

al público, promocionar eventos e ilustrar procesos o temas específicos se les llama

animatrónicos y son el objeto de desarrollo de la empresa MPT.

3.3 Sistemas Electromecánicos

En MPT los animatrónicos utilizan dos tipos de sistemas de actuadores que les permiten la

movilidad de sus articulaciones, uno de ellos son los sistemas neumáticos y los otros son por

motores DC. Generalmente se utiliza la neumática para los animatrónicos de mayor tamaño,

ya que su esqueleto de acero es más pesado y la neumática responde de forma excelente a este

tipo de casos. Los motores DC se usan para los más pequeños donde la articulación no

requiere de un gran esfuerzo para moverse y donde los cilindros que posee la empresa son tan

grandes que no cabrían dentro de su estructura corporal.

Page 31: Diseño de Software de Rutinas Para Animatronics

21

3.3.1 Sistemas Neumáticos

La neumática estudia los movimientos y procesos basados en el aire, se deriva de la palabra

Pneuma que en griego significa viento, respiración. Esta rama de la mecánica utiliza el aire

comprimido para generar la automatización de diversos sistemas en la industria desde hace

siglos por sus múltiples ventajas: [15]

- Es abundante, el aire se encuentra en toda nuestra atmósfera en cantidades ilimitadas.

- Es transportable, mediante simples tuberías se puede llevar el aire a través de grandes

distancias con gran facilidad.

- A pesar de que el volumen del aire varía con la temperatura, trabaja de forma segura bajo

temperaturas extremas.

- Es limpio y no corre el riesgo de explotar bajo ninguna condición.

- Su velocidad es bastante rápida lo que permite obtener resultados inmediatos, también se

puede regular su velocidad mediante dispositivos especiales para esto.

- Es económico dado que el aire se consigue de la atmósfera y el único costo que tendrá son

los de las herramientas como mangueras, tuberías, válvulas, cilindros, etc.

Sin embargo también deben tomarse en cuenta los siguientes factores para su correcta

utilización:

- Antes de comprimir el aire debe ser preparado para eliminar impurezas y humedad que

puedan propiciar un desgaste prematuro de los componentes utilizados en el proceso por

donde pase el aire, como las válvulas y reguladores.

- Al comprimir el aire se dificulta la tarea de obtener velocidades uniformes y constantes.

- El escape de aire produce un ruido bastante alto y molesto, para lo cual se deben colocar

silenciadores que pueden llegar a ser bastante costosos.

- Debido a que se deben usar varios dispositivos como el secador y el compresor que no son

nada económicos, el trabajar con aire comprimido resulta ser una fuente de energía

relativamente cara. Por otro lado los elementos como mangueras, válvulas, etc. son bastante

Page 32: Diseño de Software de Rutinas Para Animatronics

22

económicos como habíamos mencionado, además de su alto rendimiento y larga duración, lo

cual compensa estos altos costos.

3.3.1.1 Principio De Funcionamiento

El aire, por ser un gas, no tiene una forma predeterminada sino que toma la del recipiente que

lo contiene. Dado que sus átomos están bastante separados (propiedad de los gases) permite

ser comprimido y su tendencia normal es a expandirse o dilatarse.

La ley de Boyle-Mariotte (figura 3.1), una de las leyes que definen el comportamiento de los

gases ideales, sostiene que la presión de un gas y el volumen que ocupa bajo una temperatura

constante son inversamente proporcionales. Es decir que la presión del gas por el volumen

ocupado es igual a una constante. [15], [16]

Figura 3.1. Ley de Boyle-Mariotte

Por otro lado, la ley de Gay-Lussac (figura 3.2) afirma que bajo una presión constante, el

volumen ocupado por un gas es directamente proporcional a la Temperatura a la que está

sometido. Por tanto el volumen del gas entre su temperatura es igual a una constante.

Figura 3.2. Ley de Gay-Lussac

Page 33: Diseño de Software de Rutinas Para Animatronics

23

De esta forma al unir las dos leyes, se obtiene la ley general de los gases ideales como:

V1.P1 V2.P2 ----------- = ----------- = constante T1 T2

Los compresores de aire basan su funcionamiento en estas leyes y son quienes envían el aire

comprimido a través de las mangueras y tuberías hacía los reguladores y válvulas que

finalmente lograrán el movimiento del cilindro y por consiguiente la articulación del

animatrónico. En la figura 3.3 se muestra todo el sistema neumático utilizado por MPT.

Figura 3.3. Sistema Neumático usado en MPT

3.3.1.2 Compresor

El Compresor es el encargado de convertir la energía mecánica en neumática comprimiendo el

aire. Las tuberías o mangueras que conectan la salida del compresor a los demás artefactos

deben ser flexibles, ya que el compresor por su funcionamiento genera muchas vibraciones

que podrían dañar las tuberías de ser muy rígidas. [15], [17]

Los compresores se clasifican en dos tipos, los que trabajan por el principio de desplazamiento

y los que trabajan por el principio de la dinámica de fluidos. Los de desplazamiento llenan un

recinto hermético del aire y luego reducen el volumen del recinto, logrando así la compresión.

Los de la dinámica de fluidos aspiran el aire por un lado y al acelerar una turbina logran la

compresión. [15]

Los compresores actuales vienen con un filtro que se encargan de eliminan del aire

comprimido los residuos de aceites lubricantes o impurezas que pueda tener antes de enviarlo

Page 34: Diseño de Software de Rutinas Para Animatronics

24

al secador. Generalmente también tienen un secador interno, aún así siempre es conveniente

conectar a la salida del compresor un secador en caso de que se necesite el aire bien seco e

incluso un filtro para mayor seguridad.

3.3.1.3 Secador

Al salir del proceso de compresión el aire se encuentra a una temperatura bastante elevada,

pero al pasar por las tuberías, tanques y filtros su temperatura va bajando y el vapor de agua

que contenía se va condensando. Este vapor de agua puede generar corrosión, mal

funcionamiento de los elementos neumáticos y ocasionar un desgaste paulatino, por lo cual se

debe someter a un proceso de secado antes de que llegue a las válvulas y demás elementos.

Existen tres tipos de secado: por refrigeración, por regeneración y por absorción. [15], [17]

El secado por refrigeración se basa en el principio de reducción de la temperatura del punto de

rocío. El punto de rocío es la temperatura a la cual hay que someter un gas para que se

condense el vapor de agua contenido en él. La temperatura del refrigerador se baja haciendo

que entre un aire a muy baja temperatura, aproximadamente 1,7°C generalmente, pero sin

llegar a ser 0°C, ya que el agua se congelaría y podría obstruir las tuberías. Una vez bajada la

temperatura y condensado el vapor de agua se retira del gas a través de un separador

centrífugo.

El secado por regeneración utiliza el método de la adsorción (1: Adsorber: Deposito de

sustancias sobre la superficie de cuerpos sólidos.). El interior del recipiente por donde pasa el

aire se encuentra lleno de un material desecante y de forma granulado formando pequeñas

cuencas donde se depositará el agua. Igualmente reducen el punto de rocío del gas pero esta

vez el agua condensada es atrapada por el material desecante por la adsorción.

El método de la absorción es totalmente químico, se introduce el aire en un recinto que

contiene sustancias secantes, que al tene r contacto con el vapor de agua se mezclan formando

otra sustancia y por ende se separa del gas. Este es el método más económico y sencillo de

Page 35: Diseño de Software de Rutinas Para Animatronics

25

todos. Se debe hacer una limpieza del secador cada 3 meses aproximadamente para retirar la

mezcla del agua con la sustancia secante.

Una vez comprimido, filtrado y secado el aire es llevado a través de las mangueras o tuberías a

los reguladores y posteriormente a las válvulas.

3.3.1.4 Reguladores

Los reguladores tienen la misión de mantener la presión de aire lo más constante posible, sin

importar los cambios que puedan suceder a la entrada ni el consumo del aire. Los dos tipos de

reguladores de presión son los que tienen orificios de escape y los que no. [15]

Los reguladores con orificios de escape están formados por una membrana interna que es

sometida por un lado con la presión del aire entrante y por el otro con la fuerza de un resorte

que es ajustable mediante una perilla. En estos reguladores mientras más presión entrante se

produzca la membrana actuará con más fuerza contra el resorte intentando abrir más paso al

aire. Cuando la presión disminuye el resorte es quien ejerce la fuerza empujando a la

membrana y así cierra el paso del aire manteniendo constante la presión. Si en algún momento

la presión llegara a ser tan grande que no es suficiente con que se abra todo el paso, el aire

puede escapar por los orificios. De esta forma la presión es regulada por el caudal de aire que

circula.

Los reguladores sin orificios de escape contienen el un resorte unido a un vástago a la entrada

y un resorte unido a una membrana a la salida formando un solo cuerpo de acción y ajustable

mediante un tornillo. Cuando la presión del aire entrante aumenta, éste empuja al resorte con

el vástago quien a la vez empuja a la membrana contra las paredes del regulador abriendo el

paso directo de la entrada a la salida. Cuando la presión disminuye el resorte y la membrana

son quienes empujan al vástago cerrando el paso. Así el paso se va cerrando y abriendo

constantemente dependiendo del aire entrante y saliente.

Page 36: Diseño de Software de Rutinas Para Animatronics

26

3.3.1.5 Válvulas

Las válvulas, también llamadas distribuidores, son elementos que modulan o regulan el paso

del aire comprimido desde el regulador hacia los cilindros. Son quienes permiten el paso o lo

obstruyen. Las válvulas eléctricas se accionan mediante pulsos eléctricos, cuando les llega un

pulso se abren dejando el paso libre para el aire llegando hasta los cilindros para moverlos.

Cuando no hay pulso se cierran obstruyendo el paso. Éstas son llamadas válvulas de señal

continua, están abiertas mientras exista un pulso que la accione. Otro tipo de válvulas

eléctricas son las que trabajan por impulsos, cuando les llega un impulso cambian de posición

y permanecen allí hasta que les llegue otro impulso que las obliga a cambiar de nuevo de

posición. [15]

También existen válvulas que son accionadas por medios mecánicos, manuales o neumáticos.

Igualmente las que tienen más de dos posiciones (abierto / cerrado) y que trabajan de forma

distinta a las eléctricas.

3.3.1.6 Cilindros

Los Cilindros convierten la presión de aire comprimido en un movimiento lineal de vaivén. El

movimiento se logra cuando la corriente de aire comprimido entra al cilindro y empuja el

émbolo que hace que un vástago interno salga a gran velocidad por el otro extremo (figura

3.4). Los dos tipos de cilindros utilizados en MPT son los de simple acción y doble acción.

[15]

Figura 3.4. Movimiento de los cilindros neumáticos

Page 37: Diseño de Software de Rutinas Para Animatronics

27

Los cilindros de simple acción se desplazan en un solo sentido, el vástago solo pueden realizar

un movimiento ya que cuentan con una sola conexión de aire comprimido. El retorno se

produce por un resorte que está unido al vástago y al émbolo, el cual se estira cuando la fuerza

del aire comprimido lo empuja, pero al no haber aire regresa a su Posición inicial. Este resorte

está calculado para regresar a una velocidad suficientemente grande a la posición inicial.

Los cilindros de doble acción realizan dos movimientos, el vástago se puede desplazar en

ambos sentidos gracias a que cuentan con dos conexiones de aire, una para la salida y otra para

el retorno. Estos cilindros tienen un sistema de amortiguación para proteger al vástago de los

golpes al llegar a sus posiciones extremas y del pandeo cuando se encuentra fuera del cilindro.

3.3.2 Motores DC

Los motores son mecanismos que transforma energía eléctrica en energía mecánica. En los

motores DC, es decir que trabajan con corriente continua o constante, la energía mecánica se

produce debido al paso de la corriente por unas bobinas internas del motor que generan un

campo magnético ocasionando que la armadura del motor gire. [18]

El sentido de giro del motor dependerá del sentido de la alimentación del voltaje aplicado. Si

se invierte el sentido de la alimentación, entonces la corriente fluirá en sentido contrario, lo

que inducirá un campo magnético inverso y por ende el motor girará en la dirección opuesta

también. Mientras el motor no tenga ninguna carga girará a la velocidad máxima que le

permita el voltaje de alimentación, si debe realizar un torque mayor su velocidad disminuirá.

Cuando el motor se encuentra apagado su resistencia es bastante baja, si en ese momento se

conectara el voltaje ocasionaría que una gran corriente circulara inmediatamente por la

armadura del motor, lo que podría daña rlo. Por esto es necesario proteger al motor en el

momento del encendido para disminuir la corriente entrante hasta que ya la armadura haya

tomado su velocidad normal de operación, para esto basta con conectar una resistencia en serie

con la armadura, cuando el motor acelera la resistencia se va disminuyendo gradualmente.

[18]

Page 38: Diseño de Software de Rutinas Para Animatronics

28

3.3.2.1 Motor Lineal Con Solenoide

Un Solenoide no es más que un cable enrollado en forma de resorte. Cuando circula por él una

corriente eléctrica se genera un campo electromagnético proporcional al número de vueltas

que tenga el solenoide [19]. Un motor lineal puede ser fabricado en base a un solenoide, ya

que convierte la energía eléctrica en energía mecánica si en el interior del solenoide se coloca

una barra de un material con propiedades magnéticas que interactué con el campo magnético

inducido por la corriente eléctrica en el solenoide (figura 3.5).

Figura 3.5. Motor lineal a base de solenoides. (a) polaridad directa impulsa la barra. (b) polaridad inversa atrae la barra.

Al alimentar el solenoide con una polaridad específica se genera un campo magnético en una

dirección, si éste es igual a la polaridad del material en el interior de las espiras, el campo

magnético lo repelerá haciendo que la Fuerza magnética generada desplace a la barra una

distancia fuera del solenoide. Si la alimentación se conecta en polaridad inversa, la dirección

del campo magnético será la opuesta a la de la barra atrayéndola hacia el interior del

solenoide. Siempre en un movimiento lineal.

3.4 Sistemas Electrónicos

Así como el sistema mecánico permite el movimiento de las articulaciones del animatrónico,

el sistema electrónico es quien da la orden al sistema mecánico para realizar el movimiento.

Page 39: Diseño de Software de Rutinas Para Animatronics

29

Por ende es parte esencial en cualquier robot, además cualquier conexión incorrecta podría

significar un daño significativo para cualquier elemento del sistema.

Los animatrónicos de MPT fueron diseñados para trabajar con una tarjeta controladora basada

en el microcontrolador 8085 de Intel, la cual se conecta a una tarjeta darlington (la cual

contiene Latch y transistores en configuración darlington) que genera la potencia suficiente

para enviar las señales al sistema mecánico. Sin embargo posteriormente la empresa se vio

obligada a cambiar el 8085 ya que fue descontinuado de su fabricación y en comparación con

otros microcontroladores más actuales, éste se estaba quedando obsoleto. El microcontrolador

escogido por la empresa para la actualización de los sistemas electrónicos fue el PIC 16F627

de Microchip, que a su vez utiliza una memoria externa FM24C64 de Ramtron.

3.4.1 Microcontroladores

Un microcontrolador es un circuito integrado que contiene la mayor parte de los elementos

que componen un controlador de procesos. Esto es, contiene puertos de entrada y salida de

datos a las que se pueden conectar otros componentes electrónicos, conversores de señales

analógicas a digitales y viceversa, puertos de comunicación serial y/o paralelo,

temporizadores, memoria tipo RAM para guardar los datos y tipo ROM/PROM/EPROM para

la grabación de su programa a ejecutar y un procesador interno que realiza las instrucciones

del programa. [20]

Los microcontroladores se han vuelto muy populares por tener la capacidad de procesar gran

cantidad de información, ocupar un mínimo espacio y ser reprogramables, es decir que se

pueden grabar una gran cantidad de veces. Además de la gran ventaja que representa el hecho

de que para realizar cualquier cambio en el proceso de control, ya se solo modificar o añadir

elementos, simplemente se debe hacer la modificación al programa y volver a grabar el

microcontrolador.

Page 40: Diseño de Software de Rutinas Para Animatronics

30

3.4.1.1 Procesador

El procesador interno es el elemento más importante en un micocontrolador, es quien se

encarga de direccional la memoria de instrucciones, ejecutar la instrucción en curso, codificar

o decodificar los datos entrantes y de salida, la búsqueda de datos en la memoria y de

almacenar los resultados de las operaciones.

Según la arquitectura y operación del procesador se distinguen tres tipos [20]:

- CISC (Computadores de Juego de Instrucciones Complejo), disponen de más de 80

instrucciones máquina, algunas de las cuales son muy sofisticadas y complejas requiriendo

muchos ciclos de trabajo para su ejecución.

- RISC (Computadores de Juego de Instrucciones Reducido), el repertorio de instrucciones

máquina es muy reducido, pero las instrucciones son muy simples y se ejecutan en un ciclo

de trabajo, lo que hace que el procesador sea más rápido.

- SISC (Computadores de Juego de Instrucciones Específico), sus instrucciones son además

de reducidas muy específicas, se adaptan a las necesidades de la aplicación prevista.

3.4.1.2 Memoria

En cuanto a la memoria, existen dos tipos generales de memoria: la no volátil o permanente

(ROM) donde se guardan las instrucciones del programa y la volátil o temporal (RAM) donde

se guardan las variables y resultados de la ejecución del programa, tan pronto se desconecte el

microcontrolador de la alimentación o se reinicie el programa esta memoria será borrada.

Dado que el microcontrolador está diseñado para guardar y ejecutar un solo programa, tanto la

memoria ROM como la RAM son mucho más reducidas que en los procesadores de las

computadoras personales. La capacidad ROM varía entre 512 bytes y 8 Kbytes y de RAM

entre 20 y 512 bytes.

Según el tipo de memoria ROM que posea el microcontrolador, su aplicación y

funcionamiento es diferente. Existen 5 tipos de memoria ROM en los microcontroladores en el

mercado [20]:

Page 41: Diseño de Software de Rutinas Para Animatronics

31

- ROM con máscara. Esta memoria es grabada durante la fabricación del chip y es de sólo

lectura. Son altamente costosas ya que se debe diseñar la máscara durante la fabricación del

mismo chip.

- OTP (One Time Programmable). Esta memoria de solo lectura, puede ser grabada una sola

vez por el usuario, utilizando un programador controlado desde una PC.

- EPROM (Erasable Programmable Read Only Memory). El usuario puede borrar y grabar la

memoria muchas veces con un programador controlado desde una PC. Sin embargo, esta

memoria de solo lectura solo se puede borrar sometiéndola a un rayo de luz ultravioleta

durante varios minutos por una pequeña ventana de cristal que se encuentra en la superficie

del chip.

- EEPROM (Electrical Erasable Programmable Read OnIy Memory). Al igual que las

anteriores es de solo lectura y puede grabarse muchas veces, pero no necesita de luz

ultravioleta para ser borrada. Con el grabador controlado desde la PC se puede borrar la

memoria. También tienen la opción de reprogramarse dentro del mismo circuito donde se

encuentran sin necesidad de llevarlo a una tarjeta programadora especial, lo cual hace el

proceso mucho más rápido y flexible.

- FLASH. Este es el tipo de memoria más recientemente creado, a diferencia de las demás

ROM, sí se puede escribir además de leer. Es mucho más rápida que la EEPROM y tolera

más ciclos de escritura/borrado. Su consumo de energía es mucho menor y también se puede

programar dentro del mismo circuito donde se encuentra.

Estas memorias se pueden encontrar internas dentro del chip del microcontrolador, formando

parte de su arquitectura, o en forma de otro chip que únicamente las contiene a ellas, es decir

que funcionan como memorias externas al microcontrolador. Por lo que tanto el

microcontrolador como las memorias externas deben tener la opción de comunicarse con otros

dispositivos de esta clase para guardar y compartir información. La memoria FM24C64 de

Ramtron es una memoria externa tipo Flash.

Page 42: Diseño de Software de Rutinas Para Animatronics

32

3.4.1.3 Microcontrolador 8085 Y PIC 16F627

En la Tabla A se presentan las características de los microcontroladores 8085 de Intel y el PIC

16F627 de Microchip, en la cual también se pueden comparar de forma de entender mejor por

qué se eligió el PIC de Microchip para sustituir al de Intel.

Intel 8085 Microchip PIC 16F627 Procesador CISC de 8 bits RISC de 8 bits Memoria Flash No tiene 1 Kbytes Memoria ROM 2 Kbytes de EPROM 128 bytes de EEPROM Memoria RAM 256 bytes 224 bytes Fuentes de interrupciones 4 10 Comunicación serial Asíncrono y Síncrono Asíncrono y Síncrono Puertos de entrada/salidas 4 16

Frecuencia de reloj 6MHz máximo con oscilador externo

20MHz máximo con oscilador interno o externo

Duración del ciclo de trabajo 1.3us 1us @ 4MHz Alimentación TTL TTL Programación En tarjeta programadora En tarjeta programadora y circuito

Tabla A. Comparación entre microcontroladores 8085 de Intel y PIC 16F627 de Microchip

Como se puede observar el PIC tiene muchas ventajas con respecto al 8085. Para empezar, al

tener memoria Flash y EEPROM no requiere de luz ultravioleta para ser reprogramado, lo cual

significó la mayor de las ventajas para MPT, a pesar de que el 8085 posea más memoria neta

que el PIC, este problema se solucionó fácilmente conectando externamente la memoria

FM24C64. Además el PIC tiene más puertos de salida y fuentes de interrupciones lo que le

permite poder controlar más dispositivos externos. Al poseer un procesador RISC es más

rápido que el 8085 y su ciclo de trabajo dura menos. Otra gran ventaja que presenta es que se

puede reprogramar en el mismo circuito sin necesidad de sacarlo de allí.

Al buscar los PICS existentes en el mercado se encontró que el más popular era el 16F84 de

Microchip; el cual, en características, es bastante parecido al 16F627, sin embargo ya lleva

Page 43: Diseño de Software de Rutinas Para Animatronics

33

varios años en el mercado y la casa Microchip había comenzado a fabricar nuevos

microcontroladores, y la producción de éste no es ya tan alta como antes, por lo que se puede

inferir que pronto quedará descontinuado. En cambio el PIC 16F627 había salido al mercado

hace poco tiempo, por lo cual aún le queda bastante tiempo de vida antes de ser

descontinuado, además de ser más barato que el PIC 16F84.

Page 44: Diseño de Software de Rutinas Para Animatronics

CAPÍTULO 4: SISTEMA ACTUAL Antes de comenzar con el desarrollo del proyecto fue necesario hacer un pequeño estudio

sobre la forma de trabajo tanto de los animatrónicos como del software DMA, utilizado por la

empresa hasta los momentos. De esta forma se pudo precisar la forma en que interactuaba el

DMA con las tarjetas circuitales (PICS, memorias, darlingtons, etc.) para poder realizar una

nueva interfaz que interactuara de la misma forma y así poder utilizar estas tarjetas y

componentes electrónicos que MPT ya poseía.

4.1 Estudio de los animatrónicos.

El esqueleto de los animatrónicos está hecho con vigas de hierro que normalmente van

soldadas a una base hecha de un material más pesado con el fin de mantenerse en el suelo sin

caerse al momento de hacer los movimientos, debido a la inercia generada. Al trabajar con

cilindros de aire las articulaciones se mueven tan pronto las válvulas dejen pasar el aire hacia

los cilindros, pero si el flujo de aire es muy elevado en un instante genera un movimiento

brusco del pistón y de la articulación total que al momento de parar, por la inercia generada

ocasiona fuertes golpes en la estructura metálica que con el tiempo termina produciendo

fracturas y hasta el rompimiento completo de dicha estructura.

Este problema se soluciona con los reguladores de aire, al momento en que las válvulas dejan

pasar el aire, el regulador disminuye el flujo que va a los cilindros haciendo que se muevan de

forma suave y continua. Sin embargo esto repercute en el hecho de que existe un retardo de

tiempo entre el envío de la señal por parte del PIC y la realización efectiva del movimiento.

Este retardo varía según el peso y largo de la zona a mover y del nivel de regulación que se

imponga con los reguladores de aire. La duración de estos retardos varía desde 1 segundo

hasta 3 segundos, que en principio no es significativo para la aplicación que se les da a estos

animatrónicos, pero debe ser tomado en cuenta al momento de hacer la programación de la

rutina.

Page 45: Diseño de Software de Rutinas Para Animatronics

35

En el caso de los motores DC, se utilizan motores de limpiaparabrisas para los carros cuyas

estructuras mecánicas están diseñadas de forma tal que se da un movimiento de vaivén, ideales

para los movimientos que se persiguen en los animatrónicos. En estos motores, su velocidad

propia es muy rápida para los movimientos que se desean realizar. En principio se podría

pensar en regular la corriente de entrada a fin de disminuir la velocidad, sin embargo al hacer

esto disminuye el torque del motor ocasio nando que la fuerza para mover la articulación sea

mucho menor. Si el peso que debe mover el motor es elevado, con un pequeño torque el motor

estaría haciendo un sobreesfuerzo que podría quemarlo, por lo cual esta solución no es

factible. Lo que se hace es introducir un tren de pulsos a la entrada del motor en el que apenas

logre realizar una pequeña parte de su movimiento total por cada pulso. Si la frecuencia de los

pulsos es elevada se logra un movimiento por partes que a la vista humana pareciera continuo.

De esta forma no se disminuye el torque y el movimiento no es tan rápido.

Cuando se trabaja con los solenoides para lograr movimientos lineales se está trabajando con

los utilizados en la mecánica automotriz para los seguros de las puertas. A éstos no se le puede

dejar la alimentación conectada durante un tiempo largo pues la resistencia interna de la

bobina se calienta demasiado hasta el momento de romperse, por lo tanto se deben accionar

con pequeños pulsos de voltaje para que produzca el movimiento deseado. Estos solenoides se

utilizan para movimientos cortos y rápidos como cerrar los párpados, la boca o mover los ojos

hacia un lado. El retorno del solenoide se logra con resortes de forma que apenas termine el

pulso de permitir el movimiento, el resorte lo trae de vuelta a su posición inicial. De esta

forma solo se alimenta para iniciar el movimiento en una dirección por un corto período de

tiempo (de 0,5 a 2 segundos máximo) y el resorte se encarga de realizar el movimiento de

regreso.

A menudo se utilizan sensores de movimiento o de luz para comenzar con el movimiento total

de la escena. Así se puede ahorrar energía al no activarse los animatrónicos, el sonido ni la

iluminación si en ese momento no hay nadie pasando por allí. Análogamente en algún

momento específico se necesita que se prenda una luz específica o que se inicie una narración

o un sonido ambiente, los cuales se inician también al recibir un pulso de alimentación y los

movimientos deben estar sincronizados para obtener el efecto deseado en la escena.

Page 46: Diseño de Software de Rutinas Para Animatronics

36

4.2 Estudio del DMA

Como ya se explicó en el Capítulo 1, el DMA es un software desarrollado por la empresa DDI

Solutions para la actualización de los microcontroladores de MPT. Dado que MPT poseía una

enorme cantidad de tarjetas darlington de potencia que se interconectaban con las antiguas

tarjetas del microcontrolador 8085, DDI desarrolló una nueva tarjeta donde se encontraría el

PIC de forma que se pudiera interconectar de la misma manera con las tarjetas darlington.

4.2.1 Programa del PIC

El PIC es grabado con un programa base el cual recibe los datos desde la computadora y los

almacena en la memoria en la dirección indicada. Al momento de la ejecución el PIC lee los

datos de la memoria y produce las salidas.

El DMA fue desarrollado para permitir el control de 16 salidas hacia los animatrónicos, es

decir que se pueden controlar 16 actuadores distintos e independientes. La memoria flash

utilizada (FM24C64) tiene una capacidad de 8Kbytes, por lo cual se dividió en 16 partes para

distribuirla entre las 16 salidas equitativamente de 512 bytes de memoria cada una, de esta

forma se hizo una paginación de la memoria para asignar a cada salida una sección propia

donde se guardarían las indicaciones que envíe el PIC.

En el programa del PIC se definieron las direcciones de la memoria que corresponden a cada

salida de modo que al recibir una instrucción de escritura o lectura desde el computador

detecta el número de la salida y va directamente a la dirección de la memoria que pertenece a

la salida indicada en la instrucción.

Por otro lado, de los puertos del PIC solo se utilizan 8 pines para las salidas, sin embargo con

un multiplexor se logra incrementar al doble esta cantidad a fin de tener la capacidad de

controlar más movimientos con el mismo microcontrolador. Por lo tanto al indicar mediante el

software un número de salida, en realidad se está seleccionando una de las 8 salidas del PIC y

Page 47: Diseño de Software de Rutinas Para Animatronics

37

un estado del multiplexor (1 ó 0). Así la dirección de la página de la memoria dependerá de

esas dos variables: número del pin y estado del multiplexor.

El protocolo utilizado para lograr la comunicación entre el computador y el PIC se compone

del envío de instrucción/respuesta, lo que quiere decir que el software le envía un comando

instrucción al PIC y se queda esperando una respuesta por parte del PIC según la instrucción

enviada, si la respuesta es errónea el software volverá a enviar la instrucción hasta que reciba

la respuesta correcta.

El comando para escritura es la letra W seguida por un número de 0 a F que indica la salida

del PIC y por último el byte de información en hexadecimal que indica el estado de la salida y

la duración del pulso. El esquema del código de escritura se muestra en la figura 4.1.

Figura 4.1. Comando de escritura.

Los comandos utilizados en la comunicación con el PIC son:

- Latido del corazón (LDC) : Este comando es unidireccional del PIC hacia el PC. Verifica

que el PIC está funcionando correctamente y está listo para recibir un comando. Se

representa con el caracter “?” (0x3F) y es enviado cada milisegundo.

- Probando Comunicación: El software envía el caracter “P” (0x50) para verificar que

existe la comunicación entre el PIC y el software. La respuesta esperada es el caracter “*”

Page 48: Diseño de Software de Rutinas Para Animatronics

38

(0x2A). Hasta que el PIC no haya respondido correctamente la aplicación software no

comenzará a enviar los comandos de instrucciones para la programación.

- Operación de las salidas : Este comando habilita o deshabilita las salidas del PIC en la

ejecución de la rutina. Para el momento de grabación se deben deshabilitar para poder

tenerlas totalmente disponibles para la grabación y no para la ejecución. Se envía el

comando “O” (0x4F) seguido de 2 bytes que indican cuales de las 16 salidas se van a

habilitar o deshabilitar, donde cada bit representa a una salida, el LSB representa a la

salida 1 y el MSB a la 16. Para deshabilitarlas todas se utiliza “O0000” y para habilitarlas

para la ejecución de la rutina grabada “OFFFF”. La respuesta esperada por esta

instrucción es “O” (0x4F).

- Obtener operación de las salidas: Con este comando se puede saber cuales salidas del

PIC se encuentran activadas. El comando se representa con el caracter “o” (0x6F) y su

respuesta es “oXXXX”, el caracter “o” (0x6F) seguido de 2 bytes donde cada bit

representa a una salida, el LSB representa a la salida 1 y el MSB a la 16. Así si en ese

momento todas las salidas se encuentran activadas, la respuesta será “oFFFF”.

- Inicializar: Con este comando se resetean todos los apuntadores de posición en la

memoria, es decir que se llevan a la primera posición de cada sección de la memoria. Se

envía el caracter “I” (0x49) y se espera como respuesta el mismo “I” (0x49).

- Solicitud de Grabación: El software envía el caracter “S” (0x53) seguido por un byte para

indicar si se va a iniciar la grabación o si se va a finalizar. Para iniciar se envía “S1” y para

finalizarla “S0”. En ambos casos se espera una respuesta “S” (0x53).

- Limpiar Memoria : Con este comando “L” (0x4C) se borra toda la sección de memoria

indicada con un byte. Por ejemplo, para limpiar la sección de memoria correspondiente a

la salida 16 se envía “LF”. El comando de respuesta debe ser “L” (0x4C).

Page 49: Diseño de Software de Rutinas Para Animatronics

39

- Activación Manual: Este comando activa (pone en nivel alto) o desactiva (nivel bajo) una

salida en particular, se utiliza mientras se escribe la instrucción en la memoria en cada

salida para poder visualizar el proceso de grabación. Justo antes de enviar la instrucción

del pulso se activa manualmente la salida con el estado de la instrucción y luego de haberla

escrito se desactiva, de esta forma se puede observar todo el proceso mientras va grabando

sección por sección de la memoria Flash. Para la activación se envía “M ” (0x4D) seguido

por un byte donde los 4 bits menos significativos indican el estado en que se desea poner

la salida especificada en los 4 bits más significativos. Por ejemplo, para activar la salida 4

se envía “M31”, ya que la cuenta 0-F equivale a 1-16. La respuesta para la activación es

“M ” (0x4D). En el caso de la desactivación se enviaría “M30” para el caso del ejemplo y

la respuesta esperada es “m” (0x6D).

- Escribir la instrucción: A través de este comando es que se escriben los pulsos dibujados

por el usuario en pantalla en la memoria. El comando enviado es “W” (0x57) seguido por

2 bytes, tal como se mostró en la Figura XX. La respuesta a este comando es “W” (0x57).

- Leer la memoria : Con este comando se puede leer las secciones de memoria indicadas en

la posición donde se encuentra el apuntador en el momento de su utilización. Representado

con el caracter “R” (0x52) seguido por un byte indicando la salida a leer. Para leer la

salida 8 se enviará “R8”. La respuesta es del tipo “RXX”, “R” es el caracter (0x52)

seguido por un byte que expresa el contenido de la memoria en esa posición, lo cual sería

estado + duración del pulso, lo escrito con el comando “W”.

- Error: Este es un comando de solo respuesta y se da cuando algún comando instrucción

no fue bien recibido o interpretado. Está representado por el caracter “|” (0x7C). Al

momento en que el software reciba este caracter como señal de error en la comunicación,

se debe volver a enviar el comando instrucción que no pudo ser recibido por el PIC.

En el programa del PIC también se definen 16 contadores y 16 apuntadores, uno para cada

página de la memoria que corresponden a las 16 salidas posibles de control. Los contadores se

Page 50: Diseño de Software de Rutinas Para Animatronics

40

encargan de llevar la cuenta de los intervalos del timer del PIC transcurridos desde el

momento en que se inicie la cuenta. Éstos se inician en el momento en que el PIC lea las

instrucciones guardadas en la memoria para ejecutarla. Los apuntadores se direcciona n al

primer registro de la memoria, cada uno en su página. Cuando se inicia la ejecución de una

rutina ya grabada se van leyendo de forma paralela todas las páginas o secciones de la

memoria gracias a los apuntadores y los estados de cada una de las salidas se mantienen,

según lo grabado en cada instrucción, durante el tiempo indicado gracias a los contadores.

Se utiliza el timer del PIC para generar una interrupción cada cierto intervalo de tiempo, en

este momento todos los contadores se incrementan en una unidad. El intervalo de tiempo está

definido por (11 - 0,0859)/128 seg. = 85,3mseg. Once (11) segundos es la duración de un

pulso máximo, es decir cuando el byte de información en la memoria es 0x7E, mientras que la

duración de un pulso mínimo 0x01 es de 85,9mseg. Recordando que el MSB no se toma en

cuenta para estos cálculos ya que indica el estado de la salida durante ese período de tiempo,

no es parte del intervalo. Estos tiempos fueron obtenidos por DDI durante el desarrollo del

DMA.

Cada apuntador en el primer registro lee la instrucción que guarda el estado que la salida debe

tomar y el tiempo que debe mantenerse. En ese momento se coloca la salida en el estado

indicado y se inicia el contador, cuando éste alcance la cantidad indicada en la instrucción se

detiene y se vuelve a poner en cero, el apuntador se coloca en el registro siguiente leyendo la

siguiente instrucción y vuelve a comenzar a correr el contador, colocando la salida en el estado

ahora indicado. Esto ocurre en cada una de las secciones de memoria, cada una con su

respectivo apuntador y contador.

Dado que cada instrucción ocupa solo un byte de la memoria, los registros en los que se

posicionan los apuntadores son bytes, por tanto cada vez que se deba mover el apuntador al

siguiente registro en realidad solo está apuntando al byte siguiente.

El programa trabaja a tiempo real, es decir a medida que se van pulsando los botones de la

interfaz. Cuando se pulsaba el botón se iniciaba un contador que tomaba el tiempo en que se

Page 51: Diseño de Software de Rutinas Para Animatronics

41

mantuvo el botón pulsado y el software enviaba una instrucción de 1 byte de espacio hacia el

PIC el cual a su vez grababa en la memoria en la página indicada según la instrucción. Pero

cuando se soltaba el botón se reiniciaba el contador midiendo el tiempo que pasaba desde el

momento de soltar el botón hasta volverlo a pulsar, de esta manera obtenía el tiempo en que el

botón estuvo suelto que es lo mismo a la duración de un pulso en nivel bajo, y esta

información era enviada como otra instrucción. Así el software indicaba que los pulsos que se

producían eran en estado de salida 1 ó 0 lógico, su duración y el pin de salida.

4.2.2 Software DMA

El software utilizado es una interfaz en la cual se presentan los puertos de salida a controlar

con botones, con un espacio al lado para identificarlos, figura 4.2. Su principal característica y

desventaja es que la programación se hace en tiempo real, es decir que se guardan los pulsos

en la memoria a medida que se van realizando en la interfaz. Para grabar una rutina se

presiona el botón de Grabar y seguidamente se presiona la salida que se quiere realizar, en

este momento se inicia el timer y el contador de dicha salida.

Para generar los pulsos en alto se debe presionar el bo tón de la salida y mantenerlo oprimido

durante el tiempo que se desee que el pulso esté en alto, luego se suelta y se deja así durante el

tiempo que se desee que ocurra un pulso en bajo. Cada vez que hay un cambio de estado en el

botón se envía al PIC el código de escritura con la duración que tomó el contador y se reinicia

para comenzar a contar de inmediato el tiempo que dura el botón o el pulso en el nuevo

estado. Es por esto que se le califica como tiempo real. Al momento en que se quiera detener

la grabación se vuelve a presionar el botón Grabar para indicarle al PIC que ha finalizado.

En la ventana inferior de la interfaz (Consola de Transmisión Manual) el usuario debe escribir

los códigos para el inicio de los contadores (I), limpieza de las secciones de memoria (L), leer

secciones de memoria (R), etc. por lo que el usuario debe estar en pleno conocimiento de estos

comandos y su forma de utilización. La comunicación se establece en forma serial, a una

velocidad de 4.800bps, transmisión de palabras de 8 bits, sin bit de paridad y 1 bit de parada.

Page 52: Diseño de Software de Rutinas Para Animatronics

42

Figura 4.2. Software DMA

El programa además no permite hacer un registro de la rutina que se está diseñando, esto es

que no se pueden guardar proyectos ni archivos, por lo que si en algún momento se deseara

tener acceso a una rutina ya grabada en algún animatrónico, no se podría y se debe hacer todo

de nuevo. Aunado a esto se debe grabar una salida a la vez, por tanto si se quisieran programar

rutinas para las 16 salidas y cada una durara 3 minutos, el tiempo mínimo que se utilizaría para

programar al animatrónico completo sería de 16 x 3 = 48 minutos. Cada vez que se graba una

salida nueva, a medida que se va grabando se van ejecutando las salidas ya grabadas hasta el

momento.

Page 53: Diseño de Software de Rutinas Para Animatronics

43

Como en la interfaz no existe un registro de los movimientos hechos, al haber una

equivocación se debe borrar esa sección de memoria completa y volver a empezar la grabación

de esa salida desde el principio. Todo esto sin contar con posibles errores de comunicación

que implican que el software debe volver a enviar el último dato y luego es que sigue con la

ejecución del programa; en este período se perdió tiempo y posiblemente datos de

información.

Otra desventaja de no poseer un modo de registro de las rutinas es que la única forma en que

se puede ver el progreso de la secuencia de movimientos es conectándolo directamente al

animatrónico y observar como se va ejecutando dicha rutina a medida que se va grabando o

cuando se presiona el botón Reproducir para visualizar la rutina finalizada.

Por ser la programación en tiempo real, no se cuenta con una guía de tiempo en la que se

pueda ver el progreso de la ejecución ni los eventos que van a suceder en la secuencia, por lo

tanto cuando se deben realizar varios movimientos sincronizados resulta casi imposible y

prácticamente se debe adivinar el momento en que sucede uno de los movimientos para activar

el otro y lograr así una aproximación a la sincronización. Por esta misma razón es imposible

hacer movimientos de intervalos de tiempo exacto s y precisos, todo esto está sujeto a la

rapidez de reacción del usuario al ver la ejecución de los movimientos en el animatrónico en

vivo y que debe leer el cronómetro o reloj, proporcionado por el software, como su única guía

en el tiempo, el cual no está ligado de ninguna forma a la automatización del sistema.

4.2.3 Hardware DMA

El Hardware diseñado por DDI Solutions para el DMA consiste en una tarjeta de circuito

impreso donde se encuentra el PIC y la memoria Flash. También contiene los terminales

necesarios para su conexión con la tarjeta darlington y la interfaz de niveles RS-232 con la PC.

Como se explicó anteriormente la tarjeta darlington es la misma que se utilizaba con el

microcontrolador 8085 para generar la potencia suficiente para el accionamiento de los

actuadores, el programa del PIC fue realizado tomando en cuenta la configuración de estas

conexiones que tenía el 8085 para poder reutilizar esta tarjeta sin ningún problema.

Page 54: Diseño de Software de Rutinas Para Animatronics

44

Su alimentación viene dada por Vcc = 12 voltios y tierra (GND), los cuales pasan por un

regulador de 5 voltios quien realmente alimenta a la tarjeta del PIC. Este circuito también

contiene un latch a las salidas y entradas del PIC para mantener el estado hasta que otra

entrada en otro estado llegue, de esta forma perdura el estado para que el circuito que lo

requiera lo tome sin problemas cuando sea necesario.

La tarjeta tiene un grupo de pines conectados a los puertos del PIC que funcionan como

entrada, donde el nivel bajo (tierra) enviado por cualquier otro circuito: sensor, pulsador o

switche producirá que el PIC comience la ejecución de la rutina grabada. Si no se tiene

ningún circuito específico para esto bastará con conectar alguno de estos pines de entrada a

tierra para lograr que la rutina comience cíclicamente todo el tiempo. Esta tarjeta se puede ver

en la figura 4.3.

Figura 4.3. Tarjeta del PIC.

La tarjeta darlington utilizada es la que normalmente se conecta a los mecanismos de acción

de los animatrónicos, ésta procesa las entradas de sensores, pulsadores o cualquier otro

elemento que se utilice como entrada para mandarlas hacia el PIC y las salidas del PIC para

llevarlas al animatrónico. Los transistores darlington que usa tienen la configuración de ánodo

común y su alimentación Vcc es de 12 voltios.

Page 55: Diseño de Software de Rutinas Para Animatronics

45

El diseño de esta tarjeta es propio de MPT y las poseían en gran cantidad pues es la que

normalmente utilizan como interfaz de potencia entre los microcontroladores y los actuadores

desde que utilizaban el microcontrolador 8085. Entre los componentes que contiene se

encuentran los latch y el selector el cual es el encargado de convertir los 8 pines del puerto de

salida del PIC en 16, de esta forma se puede dar más funcionalidades al mismo PIC. Aunque

la tarjeta está diseñada para 24 salidas con los transistores darlington, en esta aplicación solo

se utilizan 16. Éstas están enumeradas, claramente identificadas y en total correspondencia con

los pines utilizados de salida del PIC. En la figura 4.4 se puede observar el circuito, en la parte

inferior de la imagen se ven unas tornilleras en las que se conectan los actuadores.

Figura 4.4. Circuito Darlington.

A pesar de que DDI en su manual del usuario explica la forma de fabricar el circuito RS-232

para la interfaz entre la tarjeta del DMA y el puerto seria l del computador; y la forma en que

se debe conectar con la tarjeta del PIC, éste no fue fabricado por DDI y MPT tuvo que fabricar

uno de forma temporal al igual que el cable serial para poder utilizar el DMA. La desventaja

es que al tener que trasladar el personal a los lugares donde se encuentran los animatrónicos

para reprogramarlos, éste circuito sufría daños al no ser manipulado con precaución. Con el

movimiento constante de los traslados incluso dentro del mismo taller, los cables se partían y

se debían reparar a cada momento, lo cual era ineficiente e incómodo para la empresa.

Page 56: Diseño de Software de Rutinas Para Animatronics

46

Los circuitos electrónicos de los animatrónicos junto con los transformadores de voltaje, los

ventiladores (para la refrigeración) y las válvulas en caso de cilindros de aire o relés para los

motores están todos bien sujetos en una caja metálica cerrada que los protege de la intemperie,

por lo cual no se puede mover del lugar donde se ubique el animatrónico en la atracción. Al

ser la programación en tiempo real, si hay que hacer modificaciones a la rutina de

movimientos, se debe trasladar el personal y una computadora con el programa instalado al

lugar donde se encuentre el animatrónico para poder conectar la computadora con el PIC y

grabar los movimientos a medida que se van viendo.

No cabe duda de que el DMA fue una gran solución al momento de mudar la programación y

funcionamiento de los animatrónicos del 8085 al PIC, ya que con el 8085 era necesario saber

de programación en assembler para realizar todo un nuevo programa y grabarlo en el

microcontrolador, sin mensionar que para borrarlo se necesitaba de luz ultravioleta. Sin

embargo el DMA no ofrece la solución más eficiente y amigable pa ra los empleados de la

empresa. Sus principales desventajas son:

- No permite la sincronización de movimientos ni la posibilidad de realizar movimientos de

intervalos de tiempo exactos.

- No ofrece la posibilidad de guardar la rutina diseñada para utilizarla posteriormente.

- Es necesario conocer los códigos y comandos de programación para logra r la grabación

efectiva de la memoria.

- No se puede observar una simulación de la rutina que no sea conectándolo directamente al

animatrónico y se necesita estar en el lugar donde se encuentre el animatrónico con la

computadora y el software instalado, para poder llevar a cabo la grabación de su secuencia.

- Cada vez que se necesite utilizar se debe conectar el circuito RS-232 al circuito del PIC,

con el detalle que el circuito RS -232 no se encuentra protegido por nada y constantemente

se rompen sus cables por los movimientos y traslados sufridos.

Page 57: Diseño de Software de Rutinas Para Animatronics

CAPÍTULO 5: DISEÑO E IMPLEMENTACIÓN DE

Después de realizados los estudios y la familiarización con el funcionamiento del proceso de

la grabación de los animatrónicos se pudo identificar las características que debía tener el

software a desarrollar para cumplir con los objetivos específicos y requerimientos de la

empresa.

Dado que la principal meta del proyecto era la economía, es decir que MPT no tuviera que

realizar nuevos gastos en la compra de material, se decidió trabajar sobre lo antes logrado por

la empresa DDI de forma que se utilizaría la misma memoria Flash, el mismo PIC y el mismo

circuito impreso utilizados para el diseño del DMA. Gracias a que la empresa cuenta también

con su propio almacén de dispositivos, elementos, chips y componentes electrónicos la

inversión a realizar no sería significativa.

En cuanto al software, consiste en un programa para el computador que sirve de interfaz entre

el usuario y el hardware. Con él no será necesario que ningún empleado de MPT sepa

programar en assembler los PICS y las memorias para realizar el trabajo. Se programó en el

lenguaje Visual Basic, SQL y las instrucciones API (lenguaje C dirigido a Windows); y fue

diseñado para trabajar sobre la plataforma Windows por ser la utilizada en todas las

computadoras de MPT. Se eligió Visual Basic ya que es ideal para crear interfaces por utilizar

la programación visual o gráfica para la creación de aplicaciones para Windows. Su sencillez

en el código y su facilidad para interactuar con otras aplicaciones como bases de datos,

programas para Windows, la comunicación serial y otros lenguajes de programación, fueron

las características más apreciadas para elegir su utilización. El lenguaje SQL se utilizó para el

manejo de las bases de datos y las instrucciones API para la interacción de la aplicación de la

interfaz creada con otros programas de Windows como Acrobat Reader, Flash Player, etc.

La base de datos utilizada en la interfaz fue Access pues es la predeterminada de Microsoft

Office y viene en todos los CD de instalación de Office, de esta forma no es necesario

disponer de otro programa de bases de datos. Al trabajar MPT con Windows y Office, lo más

Page 58: Diseño de Software de Rutinas Para Animatronics

48

conveniente era utilizar esos mismos recursos, aunque el manejo de la base de datos sea

totalmente transparente para el usuario.

El nombre de viene dado por Programación de Animatrónicos por PICS. Aunque la

memoria Flash es quien lleva grabados todos los movimientos de los animatrónicos, es a

través del PIC que se realiza su grabación. El usuario, utilizando la interfaz, le indica al PIC

que movimientos son los que debe grabar en la memoria. De esta manera se establece la

comunicación mostrada en la figura 5.1.

Figura 5.1. Proceso de Grabación de la Memoria.

Además de diseñar el software, también se fabricó el hardware grabador de manera que se

tuviera un Kit completo de programación que facilitara enormemente el proceso de

programación de los animatrónicos para las atracciones de los parques temáticos. Este

hardware se compone de la interconexión de varias tarjetas de circuitos necesarios para llevar

a cabo la grabación de la memoria, comenzando por un convertidor de niveles RS-232 a TTL,

pasando por la tarjeta del PIC, luego la darlington de potencia y por último la tarjeta de leds en

la cual se puede visualizar la secuencia que se grabó en la memoria Flash. De esta forma se

completa el proceso de grabación de un animatrónico y resulta realmente sencillo

programarlos, con solo sacar la memoria de la base y colocarla en la base del circuito del

animatrónico, se tendrá lista la rutina de movimientos respondiendo de la misma manera en

que se observaron los leds encenderse.

En este capítulo se mostrará la composición del software y hardware, sus componentes y su

funcionamiento detallado.

Page 59: Diseño de Software de Rutinas Para Animatronics

49

5.1 Software

Respondiendo a las características requeridas que debe tener el software se procedió

a dividir en varios módulos o pasos el funcionamiento del mismo (figura 5.2), de esta forma se

pueden desarrollar de manera independiente cubriendo todas las posibles interacciones entre el

usuario y la interfaz para al final interconectar cada módulo haciendo que el proceso total sea

lo más automatizado posible logrando así que el usuario encuentre una aplicación realmente

sencilla y fácil de usar.

Figura 5.2. Módulos del software.

De todos estos módulos el único que realmente tiene interacción con el usuario es el Módulo

Gráfico, el cual es el encargado de mostrar en pantalla todas las instrucciones generadas por el

usuario, los datos guardados en la base de datos y hacer visible la simulación del código.

5.1.1 Gráficos

En las salidas del PIC que van hacia cada actuador del animatrónico, ya sean cilindros de aire

o motores, se ven únicamente niveles altos (Vcc, 1 lógico) o niveles bajos (GND, 0 lógico), a

los cuales llamamos pulsos y que activan o desactivan respectivamente dichos actuadores. El

usuario por tanto aunque solamente dibuje en pantalla los pulsos de activación en realidad se

están generando más pulsos. Al diseñar la rutina de movimientos en realidad lo que hace es

crear una secuencia de niveles altos y bajos para activar en esa misma forma los actuadores

logrando el movimiento deseado de las articulaciones.

Page 60: Diseño de Software de Rutinas Para Animatronics

50

En este sentido la forma más eficiente para crear estas secuencias de pulsos y tener la

capacidad de poder hacer secuencias sincronizadas entre distintas salidas se logró a través de

una línea de tiempo, donde paralelamente se muestren todas las salidas posibles del PIC en

vertical, cada una con su línea de tiempo y todas guiadas por una línea de tiempo principal

donde se muestran los intervalos en segundos con una resolución de medio segundo, tal como

muestra la figura 5.3.

Figura 5.3. Las líneas de tiempo de módulo de gráficos.

En los campos que se observan en la figura 5.3 al lado de cada salida el usuario podrá

identificar los movimientos del animatrónico que desea activar con dicho puerto. Al salvar el

proyecto la aplicación guardará esas etiquetas en un archivo de inicio. Con esto cada vez que

se abra un proyecto existente la aplicación automáticamente leerá las etiquetas del archivo de

inicio correspondiente a ese proyecto mostrándolas de nuevo en los campos correctos en

pantalla.

Por otro lado y volviendo a las secuencias de pulsos, las marcas de la línea de tiempo principal

se extienden verticalmente a lo largo de todas las salidas, para así identificar en cada línea de

Page 61: Diseño de Software de Rutinas Para Animatronics

51

tiempo los intervalos mínimos programables. Con esto es sumamente sencillo dibujar pulsos

sincronizados.

5.1.1.1 Duración del pulso

Aunque en la base de datos se guarden solo los pulsos de activación, el PIC debe enviar a la

memoria Flash tanto los pulsos altos como los bajos, para que luego al reproducirlos se vea en

tiempo real las activaciones y desactivaciones de los actuadores. Cada pulso, ya sea alto o

bajo, con su duración ocupa 1 byte de espacio en la memoria.

El intervalo de tiempo mínimo programable es de 0,5 segundos, es decir que el período

mínimo es de 1 segundo. Se decidió esta medida por las siguientes razones:

- Un pulso mínimo menor de 0,25 segundos sería casi imperceptible ante la visión humana

ya que el movimiento realizado por el actuador activado sería extremadamente pequeño

sin notarse la diferencia entre la posición inicial y la final de la articulación, dadas las

características de estos animatrónicos.

- Para efectos de la interfaz gráfica y por las limitaciones de VB en rangos de longitud, si el

pulso mínimo fuera de 0,25 segundos implicaría que en total la duración máxima de

programación sería mucho menor a la obtenida con 0,5 segundos de resolución; ya que si

se hicieran los intervalos más cortos en pantalla la vista no sería agradable al usuario, lo

cual es parte de los objetivos planteados.

- Una señal de 0,5 segundos es suficiente para activar cualquier actuador o circuito sin

quemar algún elemento que no pueda soportar alimentación por mucho tiempo, como es el

caso de los solenoides explicados en el Capítulo 3.

La aplicación está diseñada para 6 minutos de programación. Para la elección de esta duración

máxima se tomaron en cuenta los siguientes factores:

Page 62: Diseño de Software de Rutinas Para Animatronics

52

- Luego de los estudios de los animatrónicos se pudo determinar que las rutinas de

movimientos nunca pasaban de los 5 minutos y este caso sólo se daba cuando se debía

seguir una narración específica.

- Debía cubrir la duración mínima necesaria en caso de que todos los pulsos fueran

mínimos, es decir de 0,5 segundos.

- Las limitaciones de longitud de los elementos de Visual Basic. Cada segundo mide 400

twips (unidad interna de VB) por lo que 6 minutos son 144.000 twips, medida que se

acerca bastante al límite del rango de longitud.

Por otro lado, la duración máxima de un pulso es de 21 segundos. Por lo tanto, si se

programan únicamente pulsos de duración máxima, se tendrá más tiempo de programación

total (512 bytes * 21 seg./byte = 10.752 seg. ˜ 3 horas), mientras que al hacer solamente

pulsos de duración mínima, igualmente tendrán sólo 512 pulsos con lo que la duración total de

la programación será menor (512 bytes * 0,5 seg./byte = 256 seg. ˜ 4 minutos).

5.1.1.2 Generación y Edición de pulsos

El usuario a través del mouse puede dibujar un pulso con solo hacer click con el botón

izquierdo sobre el intervalo que desee de inicio y arrastrar el puntero hasta el intervalo final.

Dado que se puede hacer click con el mouse sobre distintos puntos de la pantalla, se realizó un

mapeo de la misma y se dividió sus dimensiones verticales en 16 secciones, asignando cada

una a la salida correspondiente.

De esta forma no importa donde haga click el usuario, siempre que el punto esté dent ro de una

de las secciones el software automáticamente dibujará el pulso sobre la línea de tiempo de la

salida a la cual dicha sección está asignada. Esto se logra registrando las coordenadas (X,Y)

del punto marcado y verificando a que sección vertical pertenece la coordenada Y.

Page 63: Diseño de Software de Rutinas Para Animatronics

53

Las unidades de medición utilizadas son los twips, unidad interna propia del Visual Basic. Se

realizó una conversión de unidades para llevar de twips a segundos, que es la escala (para el

eje X) de tiempo utilizada, esta conversió n asigna a cada medio segundo (resolución de la

escala) 200 twips, por lo que cada segundo equivale a 400 twips. Cuando el usuario hace click

sobre un punto específico como inicio del pulso, el programa identifica esa coordenada X y

luego hace la conversión de twips a la escala de segundos dibujando el pulso desde el inicio

del intervalo de tiempo correspondiente a dicha coordenada. Para el punto final igualmente

identifica la coordenada X en twips donde se soltó el botón del Mouse y se hace la conversión

pintando el pulso en el final del intervalo de tiempo que corresponda. En la figura 5.4 se

muestra el diagrama de bloques del algoritmo de esta función y su visualización en pantalla.

Figura 5.4. Algoritmo del dibujo del pulso. (a) Iniciar un pulso. (b) Finalizar un pulso. (c) Visualización en pantalla de los pasos de los algoritmos

Page 64: Diseño de Software de Rutinas Para Animatronics

54

En la base de datos se guardan los valores Xi, Xf e i, donde i es el número del puerto de salida

comprendido entre 1 y 16 inclusive. Si se desea modificar un pulso ya dibujado se activa un

menú emergente haciendo click al botón derecho del mouse sobre el pulso a editar. El

programa nuevamente toma las coordenadas X y Y para identificar el intervalo en twips y la

salida donde se encuentra el pulso, seguidamente busca en la base de datos si ese punto

pertenece a alguno de los pulsos que contiene y luego según sea el caso de modificación edita

el parámetro deseado, ya sea el punto inicial Xi, el punto final Xf, el puerto de salida i o

simplemente borrarlo por completo. En cada una de estas opciones el módulo gráfico se

encarga de volver a dibujar el pulso ya editado o borrarlo de la pantalla. De no existir un pulso

en la base de datos que contenga al punto X, Y la instrucción de modificación se finaliza.

Las opciones de edición de los pulsos son las siguientes:

- Ancho : modifica el punto final del pulso seleccionado. Se reescribe el parámetro Xf de la

base de datos y se vuelve a dibujar el pulso terminando en el nuevo Xf. El nuevo valor de

Xf es ingresado por el usuario en términos de tiempo, es decir en segundos. Si el usuario

ingresara un tiempo no múltiplo de 0,5 el programa automáticamente lo convierte al medio

segundo inmediato posterior. Por ejemplo, si el usuario introdujera 1,25 el programa lo

tomaría como 1,5; si ingresara 2,75 se tomaría 3. Los decimales se pueden separar por

comas (,) o puntos (.) indistintamente.

- Inicio: modifica el punto de inicio del pulso seleccionado. Esto es, en la base de datos se

reescribe el parámetro Xi y se vuelve a dibujar el pulso empezando desde el nuevo Xi. De

la misma manera que para la opción Ancho, el usuario ingresa el ancho del pulso en

segundos y el programa lo convierte a twips, en este caso si se ingresa un valor no múltiplo

de 0,5 se tomará el medio segundo inmediato anterior. Por ejemplo al introducir 1,25 se

tomará 1; y si se ingresa 2,75 se tomará 2,5.

- Puerto : modifica el puerto de salida en la base de datos del pulso seleccionado, el usuario

debe introducir un valor entre 1 y 16, cualquier otro valor no será aceptado y finalizará la

edición del puerto. Una vez editado el valor de la salida se convierte en twips para dibujar

Page 65: Diseño de Software de Rutinas Para Animatronics

55

nuevamente el pulso en la nueva sección de puerto en pantalla borrando completamente el

anterior.

- Borrar: borra totalmente el pulso seleccionado de la pantalla y de la base de datos, una

vez borrado no se podrá recuperar.

En la figura 5.5 se muestra la edición de un pulso cualquiera con cada una de las opciones.

Figura 5.5. Edición de un pulso.

Cuando se abre un proyecto ya existente, el software borra la pantalla completa y lee los

pulsos contenidos en la base de datos del proyecto que se abrió dibujando los cuadros que

Page 66: Diseño de Software de Rutinas Para Animatronics

56

representan a dichos pulsos. En ese momento ya se puede trabajar sobre los pulsos

normalmente.

5.1.2 Base de Datos

Se seleccionó el programa Access para manejar allí las bases de datos (BD) por ser el

programa predeterminado por Microsoft Office. Todas las computadoras de MPT trabajan con

el sistema operativo de Windows y tienen Office instalado, por lo cual no hay la necesidad de

instalar nuevos programas si se utiliza Access.

Para manejar la BD desde VB se utilizaron instrucciones en lenguaje SQL. Gracias a la

versatilidad de VB no hubo ningún problema al utilizar SQL. El programa trabaja con dos BD

por proyecto: una base temporal en la cual se trabaja realmente y otra que llamaremos

definitiva quien guarda los datos de la temporal al salvar el proyecto para mantenerlos

almacenados cuando se cierre el programa.

Al comenzar un nuevo proyecto se debe elegir un nombre de proyecto, la aplicación crea una

BD de Access bajo ese nombre (BD definitiva) al igual que el archivo de inicio, sin embargo

mientras se trabaje dibujando los pulsos y hasta que no se salve el proyecto se estará

trabajando en la BD temporal donde los pulsos son registrado s en orden de creación. Al

momento de salvar se hace una copia de todos los datos de la BD temporal en la BD

definitiva, ordenados por puerto y luego por punto de inicio Xi de forma ascendente. Con esta

acción ya el software está listo para crear el archivo de instrucciones para el PIC.

5.1.2.1 Funciones con la Base de Datos

La aplicación posee un menú y una barra de herramientas cuyas funciones permiten trabajar

cómodamente en un proyecto sin que el usuario sepa que está modificando la BD temporal o

la definitiva. En realidad la BD temporal es totalmente transparente para el usuario, ni

siquiera sabe que existe dicha BD. En la Tabla B se muestran las instrucciones que realizan las

funciones y el manejo que se le dan a las BD.

Page 67: Diseño de Software de Rutinas Para Animatronics

57

Función Instrucciones

Nuevo - Crea nueva BD definitiva - Borra registros en BD temporal - Limpia la pantalla

Abrir

- Limpia la pantalla - Borra registros en BD temporal - Copia registros de la BD definitiva en temporal - Dibuja los pulsos de la BD definitiva en pantalla

Cerrar - Borra registros en BD temporal - Limpia la pantalla

Salvar - Borra registros en BD definitiva - Copia registros de la BD temporal en definitiva

Salvar Como

- Borra registros en BD definitiva - Copia registros de la BD temporal en definitiva - Si el proyecto no existe: Crea nueva BD definitiva - Si el proyecto ya existe: Borra registros en BD definitiva - Copia registros de la BD temporal en definitiva - Dibuja los pulsos de la BD definitiva en pantalla

Salir - Limpia la pantalla - Borra registros en BD temporal - Cierra el programa

Crear

- Borra registros en BD definitiva - Copia registros de la BD temporal en definitiva - Si el proyecto no existe: Crea el archivo .txt - Si el proyecto ya existe: Sobrescribe el archivo .txt - Guarda código de instrucciones para el PIC

Programar - Establece la comunicación serial con el PIC - Lee la instrucción desde el archivo .txt - Envía la instrucción al PIC

Tabla B. Funciones de

Cada una de estas funciones está colocada como una opción en el menú de la barra de menú y

algunas de ellas tienen un botón de acceso directo en la barra de herramientas, con esto el

manejo del programa resulta ser mucho más amigable para el usuario (figura 5.6).

Figura 5.6. Barra de Menú y Herramientas.

Barra de Menú

Barra de Herramientas

Page 68: Diseño de Software de Rutinas Para Animatronics

58

5.1.3 Simulación

Esta función permite ver el comportamiento de las salidas del PIC hacia los actuadores según

la rutina de pulsos dibujada en la pantalla, sin necesidad de grabar la Memoria. Esto representa

una ventaja cuando se debe diseñar una secuencia de pulsos y no se tiene a la mano el

hardware del grabador para grabar la Flash y verlo funcionando realmente con la tarjeta de

leds del grabador. Además se debe recordar que la memoria Flash tiene una cantidad finita de

sesiones de escritura, que aunque es bastante elevada, no se debe abusar de ello para garantizar

que la memoria se pueda utilizar en numerosas atracciones.

Al iniciar la simulación una barra vertical hace un barrido por todas las posiciones de las

coordenadas X y donde exista un pulso dibujado en una de las salidas enciende el led que

corresponde a ese puerto, tal como lo hicieran los leds de la tarjeta hardware (figura 5.7).

Cuando la barra pasa el último pulso dibujado o llega al final de la pantalla, se detiene la

animación y vuelve a su posición original X = 0.

Figura 5.7. Vista en panta lla de la simulación.

El software para verificar los pulsos hace un recorrido por toda la BD verificando que la

posición X de la barra pertenezca a alguno de los pulsos registrados en ella y utiliza una

bandera como marca de pertenecer a algún pulso, de esta manera cuando se siga haciendo el

Page 69: Diseño de Software de Rutinas Para Animatronics

59

recorrido por los demás pulsos del mismo puerto el led no se apagará. Estas banderas solo son

bajadas cuando se va a iniciar todo el recorrido por la BD nuevamente, es decir cuando se

halla movido la barra a la siguiente posición de X y comience el ciclo nuevamente. En la

figura 5.8 se muestra el algoritmo seguido por el programa al ejecutar la simulación de un

proyecto cualquiera.

Figura 5.8. Algoritmo de la Simulación.

Page 70: Diseño de Software de Rutinas Para Animatronics

60

5.1.4 Generación del Código

Una vez que se tiene en la BD definitiva los registros (Filas) ordenados por puerto y punto de

inicio de forma ascendente, al presionar el botón de Crear o seleccionarlo en el menú, el

programa creará un archivo de texto .txt con el mismo nombre del proyecto y escribirá en él

los códigos para el PIC correspondientes a los registros de la BD. Sin embargo, como se

explicó anteriormente, el código debe ser tanto para los pulsos en alto como para los bajos, por

lo que el software genera un código de instrucción también para los espacios que existen entre

los pulsos en alto.

En caso de existir el archivo de texto al momento de crear el código, la función utilizada para

crear y escribir sobrescribe toda la información, de la misma manera en que el comando Salvar

borra los registros de la BD definitiva y vuelve a copiar los que se encuentran en la BD

temporal. Esto quiere decir que una vez que se opte por salvar o crear el código no se podrá

volver a la información anteriormente guardada, por lo que se debe tener mucha seguridad al

momento de hacerlo.

Para recorrer la BD se hace uso de un comando llamado Recordset, éste toma la información

de todo un registro de la BD y con él se hacen las operaciones. El software utiliza tres

variables para almacenar la información de los registros:

- Ract = Registro donde se posiciona el recordset

- Rsig = Registro siguiente al registro actual

- Raux = Registro auxiliar que define los pulsos bajos o huecos entre pulsos altos.

En cada uno se tienen tres campos que recogen la información del registro:

- Xi = punto de inicio del registro.

- Xf = punto final del registro.

- Y = puerto de salida (de 1 a 16) del registro.

En la figura 5.9 (a y b) se encuentra el algoritmo que rige el comportamiento de esta etapa.

Page 71: Diseño de Software de Rutinas Para Animatronics

61

Figura 5.9. Algoritmo de Generación de Código (a).

Page 72: Diseño de Software de Rutinas Para Animatronics

62

Figura 5.9. Algoritmo de Generación de Código (b).

Page 73: Diseño de Software de Rutinas Para Animatronics

63

El código que se crea en el archivo de texto contiene 3 bytes de información, de los cuales

solo 1 byte será enviado a la memoria Flash. Siguiendo el mismo patrón de las instrucciones

de escritura que utilizaba el software DMA, este código se compone de el comando W#XX,

donde:

- W = es la instrucción de escritura,

- # = es el número (0-F) de la salida y

- XX = es el estado + duración del pulso.

La duración del pulso mínimo (0,5 seg.) en hexadecimal equivale a 0x06 = 400 twips y la

duración máxima es de 0x7E = 21 segundos = 8.400 twips, esto es excluyendo al bit más

significativo que se interpreta como el estado de la salida, no como duración. Por esta razón si

un pulso en pantalla llegase a medir más del límite de 8.400 twips debe ser dividido en dos o

más pulsos dependiendo de su longitud. Al tener la longitud del pulso el software hace

automáticamente la conversión a hexadecimal y escribe el código de programación

correspondiente, ya sea para nivel alto o bajo. En la Tabla C se encuentran los valores que

toma el código para distintas salidas.

Salida Secuencia Pulso Código PIC Byte de información (estado + duración)

1 W086 1000 0110 2 W00C 0000 1100 1

3 W086 1000 0110 4 W106 0000 0110 5 W18C 1000 1100 2

6 W106 0000 0110 7 W292 1001 0010 3

8 W206 0000 0110 Tabla C. Generación del código

5.1.5 Comunicación Serial

Se establece al presionar el botón Programar o seleccionar esta opción de la barra de menú. El

protocolo de comunicación se basa en un intercambio de comando/respuesta que se refiere al

hecho de que la PC envía un comando instrucción al PIC y éste debe enviarle de vuelta una

Page 74: Diseño de Software de Rutinas Para Animatronics

64

respuesta específica para el comando recibido que indica que fue bien entendido y procesado.

Se utiliza el RS-232 como interfaz entre el PC y el circuito, usando el pin de CTS como

control en la comunicación, de esta forma el PIC envía una señal al equipo de comunicación

(RS-232) cuando él esté listo para recibir datos y sólo en ese momento se enviará el dato al

PIC.

La comunicación se establece con los mismos parámetros que utilizaba el DMA y los cuales

ya están especificados en el programa del PIC, para poder lograr la comunicación exitosa, a

una velocidad de 4.800bps, transmisión de palabras de 8 bits, sin bit de paridad y 1 bit de

parada. Como tanto la velocidad de 4.800bps como la longitud del cable a utilizar están muy

por debajo de las limitaciones del RS-232, se pudo utilizar perfectamente para esta aplicación

[24]. El circuito RS-232 se encuentra incluido en el Kit de programación hardware. de esta

forma el usuario no debe preocuparse por esta interfaz en ningún momento de la

programación.

Los comandos utilizados en la comunicación con el PIC son los mismos que utilizaba el

software DMA, ya que son los reconocidos y aceptados por el programa base del PIC, los

cuales ya se explicaron en el capítulo anterior y son los mostrados en la tabla D.

Instrucción Comando enviado por PC Comando respuesta del PIC Latido del corazón (LDC) “?” (0x3F) Probando Comunicación “P” (0x50) “*” (0x2A)

Operación de las salidas “O” (0x4F) + 2 bytes que indican las salidas

“O” (0x4F)

Inicializar “I” (0x49) “I” (0x49)

Solicitud de Grabación “S” (0x53) + 1 byte que indica si se va a iniciar o a finalizar la grabación

“S” (0x53)

Limpiar Memoria “L” (0x4C) + 1 byte que indica la salida “L” (0x4C)

Activación Manual “M” (0x4D) + 1 byte ? 4 bits que indican la salida + 4 bits que indican el estado

“M” (0x4D) si se activó “m” (0x6D) si se desactivó

Escribir la instrucción “W” (0x57) + 2 bytes que indican la salida + estado + duración

“W” (0x57)

Error “|” (0x7C) Tabla D. Códigos del protocolo de comunicación

Como se ve todos los comandos tienen una respuesta definida, menos el LDC el cual es

enviado desde el PIC hacia el software como una señal del buen funcionamiento del PIC

Page 75: Diseño de Software de Rutinas Para Animatronics

65

únicamente. Siempre que el programa envíe una instrucción se queda esperando una respuesta,

si la respuesta no es la correcta según la instrucción o si recibe el comando de Error, vuelve a

enviar la instrucción que presentó el error. Hasta que no reciba la respuesta correcta no sigue

con el envío de la siguiente instrucción.

Utilizando estos comandos se logra la grabación efectiva de la memoria. Nótese que a

excepción del comando de escritura, todos son instrucciones para el PIC, son recibidos,

interpretados y ejecutados por el PIC y es él quien da las respuestas. Únicamente el byte de

información (estado + duración) es el que realmente se graba en la memoria Flash, en la

sección indicada en la instrucción de escritura. Al momento de ejecutar la rutina de grabación

el PIC va leyendo de forma paralela todas las secciones de memoria de la Flash y las va

ejecutando también de forma paralela. Al tener todas las secciones grabadas los pulsos

seguidos en nivel alto o bajo y la duración de los mismos, se ve la secuencia ejecutada en la

forma en que se diseñó en pantalla. Como se puede apreciar el software logra

comunicarse con el hardware de la misma forma en que lo hacía el DMA.

La duración del proceso depende enormemente de la cantidad de pulsos creados, las

instrucciones distintas a la escritura en total duran aproximadamente 1 minuto. La duración

aproximada del una instrucción de escritura (incluyendo la activación manual anterior y la

desactivación manual posterior) es de 3,28 segundos. Sin embargo entre cada instrucción

enviada al PIC se hace un retardo de 0,25 segundos con el fin de garantizar que la respuesta

que envía el PIC al PC efectivamente llegue y se logre que la comunicación se de en forma

correcta y así minimizar la posibilidad de que ocurra un error, este aspecto se explica con

mayor detalle en el Capítulo 6. En cuanto a la interfaz gráfica al momento de hacer la

programación se muestra un cuadro que indica el porcentaje de avance del proceso (figura

5.10 – a).

Al presionar el botón Ver Detalles se abre una ventana que muestra todo el proceso de envío

de instrucciones y respuestas, es decir la comunicación completa entre el software y el PIC.

De esta forma se puede hacer un monitoreo de la funcionalidad de ambas partes de manera

sencilla y rápida (figura 5.10 – b).

Page 76: Diseño de Software de Rutinas Para Animatronics

66

Figura 5.10. Cuadro de Grabación en la Interfaz. (a) Cuadro Simple. (b) Detalles de la comunicación.

5.2 Hardware

Como se ha mencionado anteriormente el hardware del proyecto está compuesto por cuatro

circuitos interconectados entre sí para conformar un Kit de programación completo que se

muestra en la figura 5.11 y presentara las siguientes ventajas:

- Fácil de usar, sin tener que cambiar configuraciones ni elementos que no sea la Memoria

Flash a grabar.

- Fácil de conectar, con un cable serial hembra-macho conectado pin a pin, es decir el pin 1

del terminar macho con el pin 1 del Terminal hembra y así sucesivamente, para conectarlo

con la computadora sin tener que preocuparse por el RS-232; de la misma forma tiene dos

terminales para la alimentación.

(a) (b)

Page 77: Diseño de Software de Rutinas Para Animatronics

67

- Fácil de trasladar, por el diseño de la caja que cierra tapando todos los circuitos además de

su peso bastante ligero, se hace sencilla su manipulación y traslado.

- El diseño de la caja ofrece la protección de los circuitos del polvo, agua y golpes, además

de permitir la visualización de las rutinas grabadas en la memoria al tener un espacio

donde se pueden ver los leds del cuarto circuito.

- La mayor ventaja que ofrece el Kit de programación es que todos los circuitos que

intervienen en la grabación de una memoria ya se encuentran allí interconectados de la

forma correcta. El usuario no debe preocuparse por este asunto y no necesita volver a

armar todo el equipo cada vez que quiera grabar una memoria.

Los cuatro circuitos son: el RS -232 que sirve de interfaz entre la computadora y el PIC para la

comunicación serial, el circuito grabador en sí que contiene al PIC y la memoria Flash, una

tarjeta de potencia que utiliza transistores darlington y por último la tarjeta de leds que simula

ser los actuadores de un animatrónico. En la figura 5.12 se puede apreciar el esquema general

de la conexión entre las tarjetas del Kit.

Figura 5.11. Kit de programación.

Page 78: Diseño de Software de Rutinas Para Animatronics

68

Figura 5.12. Esquema del hardware.

5.2.1 Tarjeta 1. Circuito RS-232

El primer circuito, fabricado durante el desarrollo del proyecto de pasantía, es la interfaz serial

conformado por el transformador de niveles lógicos RS-232 para proteger tanto al puerto

serial de la computadora como a la tarjeta programadora de la diferencia de voltajes que existe

entre ellos. El circuito fabricado es el recomendado por la hoja de especificaciones del chip

MAX232 de Maxime, se puede apreciar en la figura 5.13. El límite de velocidad de

transmisión soportado por el RS-232 es de 19.200 baudios y una longitud de cable de 16 m.

para garantizar un buen funcionamiento, sin embargo la longitud del cable y la velocidad de

transmisión con el PIC están muy por debajo de estas limitaciones, por lo cual se puede usar

sin problemas.

Figura 5.13. Circuito RS-232.

RS 232

LEDS DARLINGTON

MEM

FLASH

PIC

Page 79: Diseño de Software de Rutinas Para Animatronics

69

Para la conexión con la computadora por el puerto serial se colocó un terminal DB-9 en el Kit

cuyos pines ya están conectados con el circuito. Además se fabricó un cable de sólo 4 pelos

(los cuatro cables requeridos) conectados pin a pin entre los dos terminales DB-9 que se le

colocaron a sus extremos. Éste cable como parte del Kit de programación, sin embargo dado

que las conexiones están hechas dentro del terminal DB-9 de la caja del Kit y el circuito RS-

232, cualquier cable serial (conectado pin a pin) puede ser utilizado sin problemas como

extensión. En la figura 5.14 se puede apreciar la tarjeta realizada para el circuito RS-232 y el

terminal DB-9 de la caja.

Figura 5.14. Tarjeta RS-232.

5.2.2 Tarjeta 2. Circuito del PIC

Esta es la tarjeta que fue diseñada para el DMA y es propiedad de la empresa MPT. En ella se

encuentra el PIC y la memoria Flash. Ya que su alimentación viene dada por Vcc = 12v y

tierra, en la caja del Kit se colocaron dos terminales que van conectados internamente a las

alimentaciones de cada uno de los circuitos. Con el regulador que posee esta tarjeta se lleva el

Vcc de 12v a niveles TTL (5v) para la alimentación del PIC, la memoria y el latch.

Recordando que el PIC tiene unos pines de entrada que iniciarán la ejecución de la secuencia

grabada bajo la presencia de un nivel bajo (GND), en el Kit de grabación una de estas entradas

se ha conectado a la tierra del circuito, de forma que cada vez que el PIC termine la ejecución

Page 80: Diseño de Software de Rutinas Para Animatronics

70

se vuelva a iniciar haciendo un ciclo repetitivo. Esta condición fue implementada para poder

observar cuantas veces sea necesario la reproducción de la rutina. En la figura 4.3 del Capítulo

4 se muestra el circuito de esta tarjeta.

5.2.3 Tarjeta 3. Circuito Darlington

El tercer circuito es la tarjeta darlington, propiedad de MPT y que también utilizaba el DMA.

Como se explicó en el capítulo 4, en esta tarjeta se encuentran los latch para las entradas y

para las salidas y el multiplexor que aumenta de 8 posibles salidas del PIC a 16. También

contiene los transistores darlington configurados en ánodo común que están conectados

directamente a las tornilleras donde se conectan los actuadores.

En el caso del Kit esta tarjeta ya está conectada interna y correctamente a la tarjeta del PIC y

el circuito de los leds, por lo que los técnicos de MPT no necesitan preocuparse por las

conexiones de los pines. En las tornilleras donde se conectan los actuadores, en este kit estará

el circuito de leds. El circuito de esta tarjeta se muestra en la figura 4.4 del capítulo 4.

5.2.4 Tarjeta 4. Circuito de leds

Esta última tarjeta fue diseñada durante el desarrollo del proyecto de pasantía y tiene como

finalidad sustituir los actuadores de los animatrónicos con leds para poder visualizar las

señales que fueron grabadas en la memoria y ver por completo la rutina ejecutándose. De la

misma forma en que un actuador se activaría con una señal alta enviada por el PIC realizando

el movimiento de una articulación, los leds se encenderán cuando reciban esa señal alta y se

apagarán cuando el pulso enviado por el PIC sea bajo. Aunque en algún momento pueda ser

difícil imaginar cada movimiento del animatrónico a programar en el encendido y apagado de

un led, esta tarjeta ofrece la ventaja de verificar que la rutina diseñada en pantalla sea la misma

grabada en la memoria. Como la configuración de los transistores darlington es de ánodo

común, cuando la tarjeta darlington reciba una señal alta los transistores enviarán a los leds

Page 81: Diseño de Software de Rutinas Para Animatronics

71

una señal baja, por lo que el punto común de todos los leds es Vcc y encenderán cuando

reciban de los transistores la señal baja. En la figura 5.15 se muestra la tarjeta de los leds.

Otra ventaja de esta tarjeta es que durante la grabación de la memoria los leds se irán

encendiendo a medida que se va grabando la sección de memoria correspondiente a cada led.

Mientras se esté grabando la salida 5 por ejemplo, el led 5 se estará encendiendo y apagando

constantemente. Dado que la grabación de las secciones de memoria se hace en orden

ascendente de las salidas, es decir la 1, luego la 2, luego la 3 y así sucesivamente; los leds

también se encenderán en ese orden. De esta forma se puede verificar igualmente que la

grabación se está llevando a cabo.

Figura 5.15. Circuito de leds.

5.3 Pruebas y Documentación

Para finalizar se realizaron distintas pruebas grabando distintas rutinas de complejidad y

longitud total variada para verificar el buen funcionamiento de la aplicación, la interacción con

la interfaz y el PIC y la correcta grabación de la memoria. Al mismo tiempo se estaría

verificando que la circuitería del grabador estuviera bien conectada. Con este procedimiento se

podían visualizar los errores existentes y modificar el software o hardware según corresponda

para corregirlo.

En un principio se realizaron pruebas únicamente verificando la grabación a través de los leds

de grabador que representan las salidas del PIC y se encienden según las instrucciones que

Page 82: Diseño de Software de Rutinas Para Animatronics

72

contenga la memoria. Posteriormente se grabaron dos animatrónicos de la empresa, el mago

Merlín y los delfines, ya en este momento trabajando con movimientos sincronizados y donde

los intervalos de tiempo exactos eran de gran importancia.

La explicación detallada de las pruebas realizadas y la comparación de los resultados

obtenidos con el DMA y con el se encuentran en el Capítulo 6.

Una vez terminadas las pruebas y corregidos los errores se procedió a redactar un manual del

usuario y hacer un tutorial animado e interactivo en Flash como ayuda a los empleados de

MPT actuales y futuros para que puedan aprender rápidamente a utilizar de forma correcta

tanto el software como el hardware del programador. Se produjo un CD con un instalador que

lleva empaquetados todos los archivos y librerías utilizadas por la aplicación para que pudiera

ser instalado en cualquier computadora de la empresa que cuente con los requisitos básicos del

programa: Plataforma Windows, versión 98 en adelante, resolución de pantalla mínima de 800

x 600 píxeles, espacio mínimo en disco duro de 6 Mbytes y que cuente con Acrobat Reader y

Flash Player.

También se crearon dos hojas resúmenes de las hojas de especificaciones tanto de la memoria

como del PIC donde se muestran las características más importantes de estos dispositivos a

manera de información para el usuario sobre los dispositivos utilizados por .

Page 83: Diseño de Software de Rutinas Para Animatronics

CAPÍTULO 6: PRUEBAS Y RESULTADOS

A continuación se explican las pruebas realizadas en orden y los resultados que se obtuvieron

y que llevaron a la remodelación y redefinición de algunos parámetros del software y al diseño

de otros circuitos necesarios para algunos animatrónicos. Luego se hace la comparación de los

resultados de la programación con el DMA y con mostrando los logros y las

ventajas de sobre el anterior.

6.1 Pruebas Realizadas

Las primeras pruebas se realizaron diseñando rutinas secuenciales para los leds, sin pensar

todavía en colocar la memoria Flash en los animatrónicos, esto con el fin de verificar el

funcionamiento tanto del software como del hardware en total. Con estas pruebas se vio un

parámetro a modificar en el software que era el tiempo de espera entre los datos enviados

debido a pérdidas de información por la alta velocidad de transmisión. Una vez resuelto este

problema se procedió a realizar pruebas ya colocando la memoria flash programada en

circuitos de animatrónicos que utilizaran actuadores tanto de cilindros de aire como motores

DC y solenoides. En este caso se lograron resultados satisfactorios con los cilindros y

solenoides, pero con los motores se debió diseñar otro circuito que dividiera los pulsos

enviados por el PIC en unos más pequeños aumentando la frecuencia, se fabricaron para esto

unos osciladores. Por último, superadas estas etapas se realizaron las pruebas programando los

animatrónicos: el Mago Merlín y los Delfines utilizando movimientos sincronizados y

obteniendo resultados satisfactorios los cuales fueron comparados con los obtenidos al utilizar

el DMA. Todas estas fases de prueba se detallan a lo largo del capítulo.

6.1.1 Tiempo de Espera

Las rutinas diseñadas para estas pruebas eran secuencias muy claras y fáciles de seguir a la

vista, ya que se trabajó con los leds y ésta era la forma más sencilla de verificar que la

secuencia ejecutada fuera la diseñada (figura 6.1). El fallo encontrado con estas pruebas estaba

relacionado con los tiempos que pasaba entre los datos enviados y recibidos. Al principio la

Page 84: Diseño de Software de Rutinas Para Animatronics

74

rutina de comunicación serial sólo demoraba el tiempo que el procesador del computador

durara en enviar y recibir los datos por el puerto serial, es decir que entre los datos enviados

no se esperaba realmente a que el PIC respondiera. Tal como se explicó en el capítulo anterior,

el software envía un comando instrucción al PIC y debe recibir el comando respuesta correcto

para enviar la siguiente instrucción. Sin embargo, el algoritmo tan pronto enviaba la

instrucción revisaba inmediatamente el buffer de entrada buscando la respuesta, si no la

encontraba volvía a enviar la instrucción.

Figura 6.1. Ejemplos de rutinas diseñadas.

Como el PIC se encuentra constantemente enviando la señal LDC, en un momento dado los

bytes del buffer de entrada en el software pueden contener puros caracteres “?” sin que entre

ellos se encuentre la respuesta deseada, por lo que la aplicación volverá a enviar la instrucción.

Mientras en el PIC el buffer de entrada se encuentra lleno de comandos instrucción iguales a

los que irá respondiendo uno por uno con la respuesta correcta, pero cuando la aplicación

reciba la primera respuesta esperada pasará a enviar la siguiente instrucción que entrará en la

cola del buffer del PIC y las respuestas recibidas en el software serán todavía las de la

instrucción anterior. Esto produce una cadena de respuestas retrasadas que causan errores en la

transmisión impidiendo que ésta se dé de forma óptima, esta explicación se muestra en la

figura 6.2.

Page 85: Diseño de Software de Rutinas Para Animatronics

75

Figura 6.2. Esquema de los retrasos de transmisión.

En un principio se resolvió parte de este problema aumentando la capacidad del buffer de

entrada del software, de esta forma en un solo paquete de datos recibiría varios bytes entre los

cuales se encontraba la señal LDC y la respuesta al comando instrucción, con hacer una

búsqueda de la respuesta entres los bytes del paquete de entrada el software podría saber si el

PIC realmente respondió al comando enviado. Sin embargo, esto no resolvía todo el problema

ya que el software no esperaba ningún tiempo para revisar la entrada de datos serial y aunque

el buffer fuera más amplio ahora, igual al principio seguía enviando el comando instrucción

llenando el buffer de entrada del PIC y congestionando la transmisión.

Para solucionar esto se le colocaron tiempos de retraso (delay) entre el envío del comando, la

revisión del paquete de llegada y el envío del siguiente comando. Estos tiempos se probaron

en distinta magnitudes y al final se estableció en un cuarto de segundo ya que con este tiempo

realmente se asegura que el PIC responda y los datos lleguen al software y no implica una

gran demora en el proceso de grabación. Dado que la programación de las memorias se hacen

en el taller y no en el lugar de la atracción, al momento de decidir entre el compromiso de

garantía de comunicación Vs. velocidad de grabación, se eligió la garantía de comunicación.

6.1.2 Osciladores

Se comenzaron las pruebas programando animatrónicos cuyos movimientos se obtenían todos

con cilindros neumáticos, a pesar de que existían retrasos en el movimiento causado por la

sumatoria de todos los retrasos propios de las partes mecánicas (válvulas, reguladores,

cilindros) y por el peso de los elementos a mover que disminuían la velocidad del movimiento,

al ser el pulso mínimo de medio segundo, para articulaciones pequeñas y livianas, dicho

Page 86: Diseño de Software de Rutinas Para Animatronics

76

retraso no era significativo. Para las articulaciones más largas y pesadas había que tomar en

cuenta que se debía hacer un pulso en alto más largo de forma de que el movimiento se diera

por completo a pesar del peso. Aún así con los cilindros neumáticos el funcionamiento no

presentó ningún problema y los resultados obtenidos fueron satisfactorios, es decir que los

movimientos realizados por los animatrónicos fueron realmente los diseñados en pantalla.

En cuando a los motores DC utilizados, específicamente los de limpiaparabrisas de los carros

cuyo movimiento es de vaivén, la velocidad con la que rotaban era bastante alta para mover un

animatrónico en una exhibición. Tal como se expuso en el Capítulo 3, Marco Teórico, la

forma de disminuir la velocidad, no así el torque, es a través de un tren de pulsos a una

frecuencia suficientemente alta para que el movimiento se viera contínuo ante la vista humana

a pesar de que realmente fuera segmentado.

Sin embargo, el software solo permite obtener una frecuencia de 1 Hz, al ser el período de 1

segundo. Esta frecuencia es demasiado baja para esa aplicación ya que en medio segundo del

pulso en alto el motor alcanza a realizar todo su recorrido mecánico a su velocidad normal.

Por esto fue necesario diseñar un circuito que se conectara entre la salida de la tarjeta

darlington y el motor que generara el tren de pulsos a la frecuencia deseada. Esto se logró con

un oscilador. El esquema de la función de estos osciladores se puede ver en la figura 6.3.

El oscilador diseñado y fabricado durante el desarrollo del proyecto de pasantía, funciona con

un monoestable LM555 configurado para generar una onda cuadrada de 60 Hz, teniendo la

posibilidad de modificar el ciclo de trabajo y la frecuencia a través de trimmers. La señal

proveniente del PIC alimenta el circuito activando el oscilador y produciendo el tren de

pulsos. Por tanto, si la señal era baja, el tren de pulsos no se producía. Al obtener los

resultados deseados se procedió a fabricar una cantidad considerable de osciladores para

tenerlos listos en el almacén de la empresa para el momento en que se necesitara colocarlos en

la circuitería de un animatrónico.

Page 87: Diseño de Software de Rutinas Para Animatronics

77

Figura 6.3. Función del oscilador.

Pasando al caso de los solenoides, éstos producen un movimiento lineal en un solo sentido, su

retorno a la posición inicial lo hace gracias a un resorte. La particularidad de estos dispositivos

es que no pueden permanecer por un período de tiempo muy largo alimentados ya que el

alambre interno de la bobina se puede recalentar hasta el punto de romperse. Los solenoides se

utilizan para movimientos cortos y rápidos, como cerrar los párpados, levantar las cejas, abrir

la boca o mover hacia un lado los ojos. Un tiempo de alimentación para estos dispositivos

entre medio segundo y un segundo completo, es suficiente para realizar el movimiento

deseado y mantenerlo en la posición final sin correr el riesgo de sobrecalentar la bobina. Por lo

cual no hubo ningún problema con el programa en este caso.

6.1.3 Pruebas finales

Con los problemas de la comunicación y de los motores resueltos, se procedió a programar dos

animatrónicos como prueba final; el primero de ellos fue el Mago Merlín que está

acompañado de un cuervo que también tiene sus propios movimientos, en total completan los

16 movimientos y todos conectados en la misma circuitería.

Con Merlín se debía tener movimientos sincronizados en los brazos, cuyos actuadores son

cilindros, ya que tienen que hacer la simulación de estar realizando un hechizo, para lo cual

ambos brazos debían moverse al mismo tiempo haciendo la forma de círculos, como se ve en

la figura 6.4. De igual manera las alas del cuervo tienen actuadores independientes y se

programaron de manera que las abriera y cerrara al mismo tiempo.

Page 88: Diseño de Software de Rutinas Para Animatronics

78

Figura 6.4. Movimiento de los brazos de Merlín.

Los delfines, por su parte, son dos, y se requería programarlos igualmente sincronizados para

que se viera que ambos nadaban juntos al mismo tiempo, tal como lo hacen los delfines en la

realidad. Al tener actuadores independientes era necesario a través del software hacer que

realizaran esos movimientos sincronizados.

Tanto con Merlín y el cuervo como con los delfines no se presentó ningún problema, los chips

de la memoria de cada uno fueron programados en el mismo Kit de programación ,

la memoria se colocó en su base en la tarjeta y luego de grabarla se retiró colocándola en el

circuito del animatrónico, en ambos casos los resultados fueron satisfactorios y ambas

programaciones no duraron más de diez minutos.

6.2 Comparación entre el DMA y

Con los resultados obtenidos de la programación de Merlín, quien fue el animatrónico

programado con más salidas utilizadas utilizando y los obtenidos con la

programación de un escorpión quien fue el animatrónico programado con el DMA que

también utilizó todas las salidas, se realizó un cuadro comparativo cuyos resultados se

presentan en la Tabla E.

Page 89: Diseño de Software de Rutinas Para Animatronics

79

Variable Escorpión - DMA Merlín - Programación Tiempo Real En Frío Sincronización de salidas Extremadamente difícil Muy sencillo y rápido Programar movimientos a la vez Uno solo Todos Intervalos de tiempo Inexactos, aproximados Exactos Animatrónico conectado Obligatoriamente No necesariamente Guardar la rutina diseñada No se puede Sí se puede Equipo a trasladar PC, tarjeta, cables, personal Solo la memoria Flash

Software de interfaz Se deben saber los comandos Totalmente gráfico y automatizado

Para la ejecución de la rutina luego de su programación

Se debe desconectar la comunicación durante la ejecución

El software lo hace automáticamente

Tipos de actuadores posibles Cilindros, motores DC, solenoides

Cilindros, motores DC, solenoides

Tiempo total de programación 1 hora 10 minutos Tabla E. Comparación entre el DMA y

Como se puede ver en la Tabla 6.1, las ventajas ofrecidas por son bastante

significativas y elevadas con respecto al DMA. Para empezar el hecho de que utilice

la programación en frío, es decir, que se puede programar la memoria en un sitio para

colocarla en otro lugar más tarde y funciona tal cual se diseñó al principio, lleva a otras

ventajas como que no es necesario trasladar todos lo s equipos involucrados en la

programación al lugar donde se encuentre el animatrónico, ni al personal para hacerlo, ni

cerrar la atracción mientras se hace la programación.

Igualmente al no ser un programador en tiempo real se pueden diseñar las rutinas

para todas las salidas y cuando se vayan a programar se mandan a hacer todas a la vez,

mientras que con el DMA se hace una por una, lo que repercute en un mayor tiempo para la

programación. Si cada salida utiliza una rutina de 2 minutos de duración, al hacer las 16

salidas se debe contar con un tiempo de 32 minutos (2 minutos x 16 salidas), sin contar con los

errores que se puedan cometer por ser en tiempo real, que implica borrar esa salida y volverla

a grabar, el tiempo mientras el usuario desactiva la salida que está grabando y activa la

siguiente, etc. Con , al hacerlas sobre las líneas de tiempo, se tienen todas las salidas

listas y diseñadas con el código generado al momento de realizar la grabación. Aunque la

duración depende de la cantidad de pulsos programados, el tiempo en que se tarda en grabar

un pulso es de 3,28 segundos, para obtener el mismo tiempo total de programación de 32

Page 90: Diseño de Software de Rutinas Para Animatronics

80

minutos mínimo, se necesitarían diseñar en cada salida de 2 minutos, 40 pulsos lo cual es una

cantidad bastante alta para las aplicaciones que se le dan a los animatrónicos en las

atracciones. Se tendrían entonces 40 pulsos x 3,28 segundos cada uno, dando un total de 131,2

segundos ˜ 2 minutos con 10 segundos de duración, que multiplicado x 16 salidas ˜ 33

minutos. La ventaja en el tiempo radica en que para el DMA se debe permanecer activando un

pulso de 30 segundos por los mismos 30 segundos, mientras que con simplemente

se dibuja en pantalla y luego de crear el código, la programación de dicho pulso durará solo

3,28 segundos.

Otras implicaciones de la programación en tiempo real del DMA es que no se pueden realizar

pulsos de intervalos de tiempo exactos, siempre van a estar condicionados a la velocidad de

operación del usuario en activar y desactivar la salida deseada. Por el contrario con ,

al estar las líneas de tiempo y permitirse pulsos de duración mínima específica se pueden crear

pulsos de tiempo exactos, lo cual también permite programar movimientos de forma

sincronizada, al poder ver todas las rutinas de todas las salidas sobre la pantalla con las líneas

de tiempo. Esta operación es casi imposible con el DMA ya que se debe tener un cronómetro

para saber el momento justo en que se hizo un pulso en una salida para repetirlo en otra,

dependiendo siempre de la velocidad de operación del usuario.

Otra ventaja del es que las rutinas diseñadas se pueden guardar en un archivo y

trasladarse en unidades de almacenamiento sin ningún problema, cosa que permite diseñar una

rutina en un momento dado y modificarla después sin necesidad de volverla a hacer desde el

principio, así como grabar la memoria cuando se desee. Esto es totalmente imposible con el

DMA ya que no posee la opción de guardar las rutinas programadas además de necesitar que

el animatrónico se encuentre conectado al grabador y al PC para poder programar los pulsos a

medida que se ven los movimientos, ésta es la única manera de ver las rutinas que ya se han

grabado en otras salidas. Con no se necesita tener el animatrónico conectado para

diseñar la rutina en primer lugar y en segundo para grabar la memoria, todo este proceso se

puede hacer en tres pasos: diseñar la rutina y guardarla, conectar al PC el programador para

grabar la memoria y sacar la memoria del grabador y colocarla en el circuito del animatrónico

lista para comenzarse a ejecutar.

Page 91: Diseño de Software de Rutinas Para Animatronics

81

Un detalle importante es que es una interfaz totalmente gráfica y automatizada. El

usuario simplemente debe dibujar los pulsos en pantalla y luego con solo presionar las

opciones del menú o de la barra de herramientas puede guardar la rutina, crear el código y

grabar la memoria. Cosa que hace al software mucho más amigable para el usuario y

confiable, con la posibilidad de cometer menos errores. En el DMA es necesario conocer los

comandos de programación para resetear los apuntadores a las secciones de memoria,

limpiarla, activar las salidas e incluso para verificar que exista conexión, lo que lo hace más

complejo para usar. Igualmente con el DMA al momento de finalizar la grabación se debe dar

la instrucción de reproducir la rutina completa grabada y se debe desconectar la grabación

durante dicha ejecución para desactivar el modo de grabación del software. Con no

es necesario hacer esto, tan pronto el software termina la grabación de la memoria ya está lista

para ejecutarse de inmediato y el usuario no debe preocuparse por desconectar la

comunicación ni ningún dispositivo.

Por último, para aprender a utilizar el DMA se tiene un manual de operación donde se

explican todos los detalles, pero no contiene ningún ejemplo ni instrucciones secuenciales.

Con se tiene un manual del usuario [Anexo B] y un tutorial animado en flash de

macromedia el cual lleva al usuario paso a paso por la ejecución de un programa sencillo de

ejemplo, para que aprenda a manejarlo totalmente.

Con se lograron cubrir todos los objetivos planteados para este proyecto de pasantía

llevando una gran ventaja frente a su antecesor, el DMA. Lo más importante de este proyecto

es que la inversión económica se redujo a lo mínimo posible al utilizar todos los elementos y

dispositivos que ya poseía MPT por lo que no representó un nuevo gasto significante para la

empresa.

Page 92: Diseño de Software de Rutinas Para Animatronics

CAPÍTULO 7: CONCLUSIONES Y RECOMENDACIONES

Al rediseñar la forma de la grabación de las rutinas de movimientos, ofrece una

solución satisfactoria en la programación de los animatrónicos de la empresa MPT para las

atracciones y espectáculos presentados en sus parques temáticos, haciendo que el

mantenimiento de éstos ya no sea un problema.

Con una programación en frío, es decir que no se necesita estar conectado con el animatrónico

para poder programarlo, se tiene la posibilidad de : salvar el proyecto para generar el código y

grabar la memoria en otro momento, crear el código y guardarlo para grabar la memoria en

otro momento; o grabar la memoria en ese instante si se tiene el grabador conectado a la PC.

Al contar con la ventaja de poder guardar un proyecto y abrir uno ya existente, se facilita el

proceso de modificación de una rutina al no tener que hacerla toda de nuevo desde el

principio, no se pierde el trabajo hecho anteriormente.

Teniendo todos los puertos de salida en paralelo como líneas de tiempo, con los intervalos de

segundos marcados sobre una línea de tiempo principal se pueden realizar movimientos

sincronizados, de duración exacta y observando el comportamiento que se va creando a cada

salida sobre la pantalla.

A través de una interfaz totalmente gráfica el usuario no debe preocuparse en entender sobre

programación de PICS, memorias Flash, ni del mismo software para poder hacer una

modificación sencilla en una secuencia de movimientos. Solo debe “dibujar” los pulsos de

acción sobre las líneas de tiempo en la pantalla y a continuación tiene varias opciones a seguir,

todas tan solo presionando botones en una barra de herramientas o seleccionando opciones en

una barra de menú, sin ningún código de programación.

Al tener el Kit de programación de , se puede grabar la memoria Flash de cualquier

animatrónico en cualquier momento y lugar, con la ventaja de que luego solo debe retirar la

Page 93: Diseño de Software de Rutinas Para Animatronics

83

memoria del grabador y colocarla en el circuito del animatrónico para que ya comience a

ejecutarse la nueva rutina y donde el cambio solo duró pocos segundos.

Con este Kit los técnicos y empleados de la empresa pueden trabajar cómoda y fácilmente ya

que en él se encuentran todos los circuitos necesarios para la grabación de la memoria y la

visualización de la rutina grabada; todos interconectados entre sí y con tan solo tres terminales

de conexión: un DB-9 para el cable serial con la PC el cual está incluído en el, un terminal

para alimentación Vcc de 12 voltios y un terminal para la alimentación de tierra. No deben

ocuparse de la fabricación ni conexión del hardware en ningún momento.

Siendo la caja del Kit liviana, fácil de conectar y con las tapas resistentes para brindarle

protección a los circuitos; el Kit de tiene la gran ventaja de poderse trasladar y

colocar sin problemas en cualquier lugar donde se encuentre la computadora donde se va a

programar.

El Manual donde se explica cada detalle de los elementos que componen a y las

funciones que se pueden hacer con él, tanto con el software como con el hardware; y el

Tutorial hecho en flash de macromedia que lleva al usuario por un recorrido por todas las

opciones posibles del software y termina guiándolo por cada paso que debe hacer para la

creación de un proyecto de ejemplo. Con ellos se logra una rápida instrucción para los

empleados haciendo que estén listos cuanto antes para comenzar a utilizar el software y

hardware diseñado. Ambos totalmente accesibles desde el software.

Entregando a la empresa un CD con el paquete instalador de se da la posibilidad de

instalarlo en cualquier computadora del taller que trabaje sobre plataforma Windows y que

contenga Microsoft Office, con Access en él.

Al trabajar con componentes y programas ya comprados con anterioridad por la empresa,

como el PIC 16F627 y la memoria Flash FM24C64, las tarjetas darlington, los circuitos

impresos para el PIC y la memoria, el chip RS-232 MAX232 de Maxime y el programa de

bases de datos Access de Office, se redujeron los costos lo más posible a simples compras de

Page 94: Diseño de Software de Rutinas Para Animatronics

84

elementos electrónicos como terminales DB-9, resistencias, capacitores y otros cuyos precios

son bastante bajos.

Se diseñaron y fabricaron también circuitos osciladores con frecuencia y ciclo de trabajo

regulables para utilizarlos en la reducción de la velocidad de los motores DC utilizados, con

esto se logra la adaptación de a todas las aplicaciones implementadas en la empresa.

Aún así hay otras aplicaciones que se pueden obtener de que aumentarían su

funcionalidad y versatilidad en los trabajos de la empresa. Como recomendaciones para

mejoras al software y hardware se encuentran:

- Colocar en el circuito del PIC y la memoria una base de fuerza mínima para la memoria

Flash, de esta forma es más sencilla su colocación y extracción del grabador sin correr

riesgos de doblar o quebrar sus patas.

- Colocar en la caja un conector tipo jack al que se pueda conectar un transformador AC/DC

de 12 voltios mediante el cual también se pueda alimentar el circuito. Esto para casos en los

que se vaya a hacer la grabación en un lugar distinto al taller y no se tenga a la mano una

fuente de voltaje DC.

- Crear la función en el software de leer los datos de la memoria colocada en el grabador de

forma de poder obtener la secuencia de pulsos de la rutina programada en pantalla y

guardarla en una BD. Esto sería muy útil para extraer la rutina de algún animatrónico que

fue grabado con el DMA anteriormente y poder almacenarla en una BD, al igual que para

aquellas cuyos archivos por alguna razón fueron borrados o perdidos como forma de

recuperarlos.

- Crear opciones elegibles de resolución y tiempo máximo de duración de la secuencia en

pantalla, de forma de poder seleccionar una resolución de medio segundo (como está

diseñado el ), de un cuarto de segundo, de un segundo, etc. De igual forma la

duración máxima actual es de 6 minutos, el poder elegir la duración máxima hace más

versátil y funcional al software.

- Crear la opción de hacer un zoom sobre la escala de tiempo para poder dibujar pulsos

mínimos más pequeños que medio segundo. Con esto se podrían realizar trenes de pulsos a

Page 95: Diseño de Software de Rutinas Para Animatronics

85

frecuencias más altas que 1Hz, útiles para circuitos que lo ameriten, como el caso de los

motores DC para el cual se tuvo q ue fabricar osciladores.

- Estudiar la opción de la programación de los simuladores de la empresa, los cuales hacen el

movimiento de una plataforma donde va sentado el público, de acuerdo a la película

proyectada. Aprovechando las líneas de tiempo, colocando en un espacio sobre ella las

escenas de la película a programar se podrían crear la secuencia de movimientos de la

plataforma siguiendo las escenas. Para esto se debe estudiar la forma de desglosar un video

seleccionado en sus cuadros de animación. De igual forma las películas tienen una duración

promedio de 10 minutos, pero la cantidad de actuadores (cilindros neumáticos en este caso)

son máximo de 6. Como son menos salidas a utilizar, se daría a cada una un mayor espacio

de memoria en la Flash utilizada, sin embargo esto implica que se debe modificar el

programa del PIC para redefinir las secciones de memoria y las salidas. Esta nueva

aplicación de llevaría a la empresa a integrar dos software que tiene de forma

separada ( y el programa para simuladores) a uno solo, con todas las ventajas que

ofrece . Esto se puede estudiar como un posible proyecto para otra pasantía en la

empresa.

Con estas recomendaciones para futuros proyectos se puede apreciar que es un

software escalable con amplias posibilidades de crecimiento y expansión. Desde ahora la

programación y modificación de los animatrónicos en las atracciones no significará un dolor

de cabeza para la empresa y no representará ninguna pérdida de ingresos al no tener que cerrar

la atracción del parque para hacerlo.

Con el espectáculo no debe continuar, simplemente Continúa.

Page 96: Diseño de Software de Rutinas Para Animatronics

REFERENCIAS BIBLIOGRÁFICAS [1] Una historia de alegrías y emoción, la Historia de los Parques de diversiones. Zona Q, La Revista Virtual de Montañas Rusas y Parques de Diversiones. Noviembre, diciembre 2002. Número 4. Disponible en: http://www.geocities.com/zona_q_2000/parques.html [2] Ten Ros, Antonio E. ¿Qué es un Parque Temático? CSIC-Universidad de Valencia. Octubre 2001. Versión 4.1. Disponible en: http://www.uv.es/~ten/p7.html [3] Ten Ros, Antonio E. Los nuevos paraísos. Historia y evolución de los Parques Temáticos . Revista ARBOR. Consejo superior de investigaciones científicas (España). 1998. Vol CLX, pp. 109-131. Disponible en: http://www.uv.es/~ten/p831.html [4] Portal de Alexis Montilla. Disponible en: http://www.alexismontilla.com [5] Briceño, Yves. El Walt Disney de los páramos . Todo en Domingo, encartado en El Nacional. Domingo 28 de Enero 2001. N° 69. Disponible en: http://www.el-nacional.com/-revistas/todoendomingo/todo69/reportaje2.htm [6] Portal de Los Aleros. Historia de los Aleros. Disponible en: http://www.losaleros.net/ historia.html [7] Portal de Tierra Increíble. Disponible en: http://www.tierraincreible.com/es/index_es.htm [8] Portal de Musipán, El Reino. Disponible en: http://www.musipan.net/elparque.htm [9] Fiorucci, Erika. Por el Mundo. Globovisión. 28 de Junio de 2004. Disponible en: http://www.globovision.com/mundo/2004.06/28/musipan/index.php [10] Enciclopedia Wikipedya. Artículo Robo t. Disponible en: http://en.wikipedia.org/wiki/ Robot [11] Portal de Roboticspot. Historia de la Robótica. Madrid. Febrero 2004. Disponible en: http://www.roboticspot.com/spot/asifue/his2004a.html [12] Portal de IFR. International Robot Standards . Disponible en: http://www.ifr.org/ standards/standard.htm [13] Portal de ISO. Robots for industrial environments. Disponible en: http://www.iso.org/iso/en/stdsdevelopment/tc/tclist/TechnicalCommitteeStandardsListPage.TechnicalCommitteeStandardsList?COMMID=4289 [14] Perez Cordero, Victor Hugo. La Robótica. SANLOZ holonic. 2001. Disponible en: http://www.geocities.com/Eureka/Office/4595/robotica.html

Page 97: Diseño de Software de Rutinas Para Animatronics

87

[15] Portal de Neumática e Hidraúlica. Neumática: Conceptos básicos y aplicaciones. Disponible en: http://www.sapiensman.com/neumatica/neumatica.htm [16] Portal de Fisicanet. Gases - APF217A. Disponible en: http://www.fisicanet.com.ar/ fisica/f2ap04/apf2_17a_Gases_Ideales.html [17] Gómez, Esteban; Arboleda, Juan; Cardona, Santiago. Redes de aire comprimido. Universidad Nacional de Colombia. Noviembre 2003. Disponible en: http://www. monografias.com/trabajos16/redes-de-aire/redes-de-aire.shtml [18] Portal de Reliance Electric. Basic Motor Theory. 1998. Disponible en: http://www. reliance.com/mtr/mtrthrmn.htm [19] Portal de Fisicanet. Magnetismo – APF320A. Disponible en: http://www.fisicanet. com.ar/fisica/f3ap01/apf3_20a_Magnetismo.html Productos Descontinuados: http://www.intel.com/design/archives/periphrl/index.htm [20] Portal de Monografías. Introducción a los microcontroladores. Disponible en: http://www.monografias.com/trabajos12/microco/microco.shtml [21] SEDRA, Adel; SMITH, Kenneth. Circuitos Microelectrónicos. Editorial Oxford University Press. 4° edición, 2000. pp. 221-230, 781-783 [22] GAJSKI, Daniel. Principios de Diseño Digital. Editorial Prentice Hall. 1997. pp. 222-237 [23] Portal de Play-Hookey. The D Latch. Disponible en: http://www.play-hookey.com/digital/d_nand_latch.html [24] Portal de Tecnotopia. Puerto Serial RS-232. Disponible en: http://www.tecnotopia.com.mx/mecatronica/puertors232.htm

Page 98: Diseño de Software de Rutinas Para Animatronics

ANEXOS

Page 99: Diseño de Software de Rutinas Para Animatronics

89

ANEXO A

MATERIAL IMPRESO DE MPT-ACTI

Page 100: Diseño de Software de Rutinas Para Animatronics

90

ANEXO B

MANUAL DEL USUARIO