135
UNIVERSIDAD LA SALLE A.C. ESCUELA DE INGENIERIA Con reconocimiento de validez oficial de estudios No. 952015 de fecha 13 de Febrero de 1995. ANIMATRONIC CONTROLADO CON LÓGICA DIFUSA T E S I S Que para obtener el Título de INGENIERO EN ENERGIA ELECTRICA Y EN SISTEMAS ELECTRONICOS P r e s e n t a ZERÓN GUTIÉRREZ YURIÁN HUMBERTO Asesor de Tesis: Dr. Eduardo Gómez Ramírez México, D.F. 2007

Animatronic controlado con logica difusa

Embed Size (px)

DESCRIPTION

Tesis para obtener el Titulo de Ingeniero en Energia Electrica y Sistemas Electronicos. Yurian Zeron

Citation preview

Page 1: Animatronic controlado con logica difusa

UNIVERSIDAD LA SALLE A.C. ESCUELA DE INGENIERIA

Con reconocimiento de validez oficial de estudios No. 952015 de fecha 13 de Febrero de 1995.

ANIMATRONIC CONTROLADO CON LÓGICA DIFUSA

T E S I S Que para obtener el Título de INGENIERO EN ENERGIA ELECTRICA Y EN SISTEMAS ELECTRONICOS P r e s e n t a ZERÓN GUTIÉRREZ YURIÁN HUMBERTO Asesor de Tesis: Dr. Eduardo Gómez Ramírez

México, D.F. 2007

Page 2: Animatronic controlado con logica difusa

Agradecimientos

A Dios. Por que es el aire que respiro, no se ve pero se siente y uno sabe que está ahí. Sin el nada puede existir ni ser, Padre bueno Dios bueno, gracias por permitirme terminar una meta mas en mi camino. A mi Amá. Ema, Chio, Rose, Cascarita, porque gracias a tu amor y guía he podido ver lo que significa el esfuerzo, la determinación, y que uno nunca es demasiado viejo para seguir aprendiendo. Mujer - desvelo, mujer - noche, mujer – arte, mujer –mamá, mí mama, la que cura todo con un beso y todo lo arregla con un consejo. Te amo. A mi Apá. ¡Charro!, gracias por enseñarme la sabiduría de lo cotidiano, por proveerme de alimentación, educación y vida, porque finalmente puedo invitarte a cosechar algo que sembramos juntos en silencio. Basta con leer el segundo nombre del autor de esta tesis. El obsequiarme tu historia, honrradez, esfuerzo, y tu amor por el trabajo son mi mayor tesoro gracias. Te amo. A Ziza. El tenerte a mi lado como hermana me ha hecho en gran medida la persona que soy, gracias a ti entiendo que la imaginación y la interpretación son asuntos de diversión, juego y alegría. Gracias por enseñarme la constancia y dedicación inquebrantable en el camino hacia los sueños. A Rick. ¡Mi Carnal! No el de Tín –Tán, el mío. Gracias por enseñarme que el pensamiento simple siempre es el mejor aunque es el que más trabajo cuesta. Tu afán de búsqueda a través de los libros ha hecho que mi búsqueda interna se intensifique. Tío Nano. Por regresar a mi vida y enderezar mi camino con consejo y sabiduría siempre tú y tu sólida manera de estar siempre dispuesto a ayudar ¡Gracias! A AnaJalea. Ana-chiqui, gracias te doy por lo que representas en mi vida, y por estar a mi lado siempre, y sobre todo por enseñarme que todo se puede resolver si miramos al cielo. T.A. Al Vick. A ti surcador de mares. Sí, tú Almirante del mar- océano. Éste que en un tiempo formó parte de tu tripulación en busca de nuevos horizontes, te agradece con todo lo que tiene entre las costillas el alimentar el espíritu de

Page 3: Animatronic controlado con logica difusa

búsqueda. Tú, que me salvaras del naufragio, me es grato informarte que hoy como todos lo días levanto las velas de mi navío, en busca del brillo del mar.

A Carlos, Jorge, Luis, y Betsabé Por saber que a pesar de la distancia, al verlos es como llegar y estar en casa. Rafa, Sergio, Héctor, (los jauro) ¡Mis hermanos! Por ser compañeros de viaje y aventura, por compartir sueños y metas, sabiendo que puedo recurrir a ustedes a la hora que sea en el momento que sea. ¡ Honor Jauro Al centro de investigación. Guacas, Mario, Jacob, Bernardo, y quien sabe cuantos mas… Por los que están y por los que estuvieron, porque no importa el tiempo que pase, si eres parte del centro, siempre lo serás. A Lalo Gómez. Ingeniero-Gómez, Maestro-Gómez, Doctor- Gómez, y sobre todo Amigo-Gómez. Doctor, doctor, gracias por aguantarme a mi y a mi cerebro, compartiendo con tigo diferentes tipos de empresas y sobre todo esta que finalmente termina esperando que siguas guiando mis pasos en empresas futuras….

Page 4: Animatronic controlado con logica difusa

INDICE________________________________________________________

Página

Introducción. i Capítulo 1 Animatronic

1.1 ¿Qué es un robot? 1

1.1.1 ¿De dónde viene la palabra robot? 3

1.2 Tipología de robots. 4

1.2.1 Elementos que conforman a un robot. 4

1.2.1.1 Por su modo de operación en lazo cerrado. 6

1.2.2 Por el medio donde operan. 7

1.2.3 Por el tipo de desplazamiento. 8

1.3 ¿Qué es un animatronic? 9

1.3.1 ¿De dónde viene la palabra animatronic? 9

1.3.2 Tipología de títeres. 10

1.3.2.1 Aspectos externos. 12

1.3.2.2 Aspectos internos. 12

1.4 ¿Qué es un Autómata? 16

1.5 ¿Qué es lógica difusa? 19

1.5.1 ¿Qué son los conjuntos difusos? 20

1.5.2 Operaciones con conjuntos difusos. 23

1.5.3 Conceptos generales de lógica difusa. 25

1.5.3.1 Variables lingüísticas 26

1.5.3.2 Funciones de pertenencia 26

1.5.3.3 Reglas difusas Sí....entonces... 26

1.5.3.4 Fuzificación y Desfuzificación. 27

1.5.4 Control difuso. 27

Capítulo 2 La Propuesta.

2.1 ¿Dónde surge la idea? 30

Page 5: Animatronic controlado con logica difusa

2.2 Trabajos ya existentes 32

2.3 ¿Qué se necesita? 36

Capítulo 3 De lo mecánico. 3.1 Elementos mecánicos. 40

3.2 Servos. 40

3.2.1 Funcionamiento. 42

3.2.2 Ventajas. 45

3.3 Mecanismo. 46

3.3.1 Mecanismo de cuello. 47

3.3.2 Mecanismo de cejas y párpados. 48

3.3.3 Mecanismo de ojos. 49

3.3.4 Mecanismo de boca y labios. 50

Capitulo 4 De lo electrónico. 4.1 Estructura Básica. 53

4.2 Módulo 1 (circuito de alimentación). 55

4.3 Módulo 2 (circuito de entrada). 58

4.3.1 Circuitos de entrada. 59

4.4 Módulo 3 (circuito de control, microcontrolador). 62

4.4.1 Basic Stamp. 65

4.4.1.1 PBASIC2 Circuito intérprete (U1). 67

4.4.1.2 Chip de memoria borrable de 2048-bytes. 68

4.4.1.3 Circuito de Reset (U3). 69

4.4.1.4 Fuente de alimentación (U4). 69

4.4.1.5 Comunicación serial. 70

Capitulo 5 Del Control. 5.1 Diseño del controlador por medio de lógica difusa. 73

5.1.1 Planteamiento del Problema. 73

5.1.2 Definición de los Conjuntos Difusos. 75

5.1.3 Funciones de Pertenencia. 77

Page 6: Animatronic controlado con logica difusa

5.1.4 Procesamiento Difuso y Obtención de la Acción de Control. 81

Conclusiones 84

Apéndice 1. 88 Apéndice 2. 95

Page 7: Animatronic controlado con logica difusa

“El hombre es un reloj compuesto de engranes y contrapesos, son comparables

los nervios a los tubos de las máquinas, los músculos y tendones, a sistemas y

resortes que sirven para moverlos, el corazón es la fuente y la concavidez del

cerebro las miradas “

RENE DESCARTES (sexta meditación)

Page 8: Animatronic controlado con logica difusa
Page 9: Animatronic controlado con logica difusa

i

INTRODUCCION

La necesidad del ser humano por fabricar máquinas con aspecto natural viene

desde la antigüedad; griegos, babilonios y egipcios, por nombrar algunos,

fabricaban mecanismos que replicaban la vida y la naturaleza, desde los primeros

relojeros que fabricaron artefactos complicados para sorprender a pobres y a

ricos, hasta los grandes robots que nos provocan sensaciones como los de las

películas y parques temáticos.

A lo largo del tiempo estas máquinas han sido llamados replicantes, autómatas,

androides, robots, etc.

El hombre los ha construido tanto para impresionar a sus semejantes, como para

ahorrarse trabajo pesado. Pero una de las inquietudes que ha estado siempre

presente es imitar al hombre.

La constante investigación que se presenta en términos de la robótica, dan por

resultado la fabricación de robots que pretendan simular o replicar a criaturas

vivas, de esta manera es necesario la depuración de mecanismos, algoritmos y

circuitos para ocupar menos espacio y tener mayor eficiencia.

La evolución, en cuanto a la interacción hombre-máquina, ha ido en aumento, no

nada más en el hecho de que las máquinas entiendan el problema, accesen a

una base de datos y entreguen una respuesta. Sino al hecho de que pueden

realizar funciones inteligentes al intercambiar información con el entorno.

.

De igual manera, y siguiendo como modelo al ser humano, la búsqueda de

algoritmos y mecanismos que interpreten emociones, actitudes y personalidad de

una manera mucho más real serán cada vez más necesarios.

Page 10: Animatronic controlado con logica difusa

ii

En este proyecto se presenta un algoritmo de control utilizando lógica difusa como

mecanismo de relación entre variables. Debido a que se busca que el

comportamiento del ANIMATRONIC sea lo más parecido al humano, el uso de

esta tecnología permitió que la relación entre variables fuera muy natural.

Entendiendo natural como relaciones cualitativas y cuantitativas que permiten el

poder tener un control directo sobre las reacciones del robot a partir de los

estímulos aplicados.

Utilizando estos conceptos con base en inteligencia artificial, podemos imaginar

que los cerebros de las criaturas utilizadas en robótica teatral, funcionan en

relación de un estímulo-respuesta, pero al precisar su comportamiento es

necesario utilizar la lógica difusa ya que ésta presenta elementos que nos facilitan

la respuesta y el comportamiento al querer aparentar y simular vida. Ya que los

animatronics nos han hecho creer, al interpretar personajes e interactuar con

seres vivos, que están dotados de ésta.

La presente investigación va dirigida en general a cualquier tipo de persona,

interesada en el tema de la robótica, pretendiendo con esta establecer un control

que se asemeje más al comportamiento humano, en la forma de relacionarse con

su entorno, dotando al personaje de un algoritmo que hará las funciones del

cerebro controlándole los ojos, la boca, los parpados, etc.

Por este medio entenderemos el papel que han venido desarrollando los

animatronics en nuestros días, ya que ellos durante largo tiempo han venido

interpretando personajes que nos transmiten emociones.

El objetivo principal de esta tesis es la búsqueda de interfases más amigables

para los robots, mejorando con esto la comunicación hombre-maquina en cuyas

funciones puedan transmitir emociones y reflejen actitudes.

Page 11: Animatronic controlado con logica difusa

iii

Se propondrá además un algoritmo que con base en la lógica difusa nos adecue

estados como seriedad, sorpresa, alegría entre otras, ya que por sus

características asemeja mas el comportamiento de los seres humanos.

Este algoritmo nos permitirá integrar, dentro de la robótica, al rubro de los

animatronics, ya que ellos nos an generado estados de animo al interpretar

personajes desde hace muchos años en el teatro, el cine y la TV.

Descripción del trabajo En los primeros capítulos se presenta una serie de definiciones que servirán

como referencia para entender y ubicar a esas cosas denominadas robots,

proponiendo una clasificación tanto para robots como para animatronics,

consiguiendo con esto encontrar un vínculo directo entre ellos.

En los capítulos posteriores, se mostrará el contexto básico del origen de la

propuesta que está formada por una cara (robot-animatronic), que proyecta

gestos humanos denotando expresiones faciales humanas como enojo, seriedad

y sorpresa entre otras, así como los requerimientos necesarios para construirla.

Los últimos capítulos muestran la participación de la mecánica, electrónica y la

teoría del control, explicándonos el diseño y la construcción del animatronic

propuesto.

La búsqueda de la propuesta en función del control nos sitúa en el contexto de la

lógica difusa, ya que ésta interpreta y maneja elementos de control en paralelo,

permitiéndonos encontrar un atajo para el buen funcionamiento del animatronic.

Este tipo de control nos evita el programar un sin número de condicionantes para

el comportamiento del robot, cuya consecuencia se vería reflejada tanto en los

elementos como en la memoria del mismo.

Page 12: Animatronic controlado con logica difusa

iv

La necesidad por lograr el buen funcionamiento del animatronic nos llevó a diseñar

y probar dos propuestas de control diferentes. En la primera se introduce todo el

algoritmo de lógica difusa dentro de un microcontrolador. En la segunda se

emplea el programa MAX MSP corriendo en la computadora como unidad de

control y el microcontrolador como medio de comunicación entre la computadora y

el animatronic.

Page 13: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

1

1

ANIMATRONIC

Introducción. El ser humano ha tenido interés, a lo largo de su existencia, en fabricar máquinas

capaces de facilitar trabajos que resulten pesados y fatigosos, además de replicar

criaturas con la finalidad, por un lado, de que éstas les resuelvan problemas

específicos para mejorar su trabajo y por otro, el simular la vida como

entretenimiento.

1.1 ¿Qué es un robot?

Se puede decir que un robot es toda máquina mecánica-electrónica a la cual se le

puede programar rutinas específicas para realizar un trabajo una y otra vez, ya

que contiene un cuerpo mecánicamente adaptado y sensores que le permiten

interpretar su entorno de acuerdo a la tarea asignada.

Si tomamos las definiciones oficiales, tenemos que:

*JIRA, (Asociación Japonesa de Robótica Industrial).

Los robots son “dispositivos capaces de moverse de modo flexible análogo al que poseen los organismos vivos, con o sin funciones intelectuales, permitiendo operaciones en respuesta a las órdenes humanas”.

*RIA (Instituto de Robótica de América).

Un robot industrial es “un manipulador multifuncional y reprogramable diseñado para desplazar materiales, componentes, herramientas o dispositivos, especializado por medio de movimientos programados

variables con el fin de realizar tareas diversas…”

Page 14: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

2

Como se puede ver, el tratar de definir a los robots es complicado, en tal caso

podemos utilizar lo ya escrito por *Joseph Engelberg que dice: “puede que no sea capaz de definirlo pero, sé cuando veo uno “

Lo que sí es claro son las áreas que conforman un robot: la Mecánica, la

Electrónica y el Control.

__________________________________________________________________ * RIA - De las siglas en inglés Robot Institute of America 1979.

* JIRA - De las siglas en inglés Japanese Industrial Robotic Assosiation.

* Joseph Engelberg - Padre de la Robótica industrial.

Page 15: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

3

1.1.1 ¿De dónde viene la palabra robot?

.

La palabra robot viene del Checo “robota”, que significa servidumbre o trabajo

forzado, y la primera vez que se empleó fue en una novela escrita por el

dramaturgo checo Karel Capek y tres años más tarde en su obra de teatro

llamada R.U.R o Los Robots Universales de Rossum en 1920. La trama era

sencilla: el hombre fabrica un robot, luego el robot mata al hombre. Muchas

películas como Terminator de James Cameron han seguido mostrando a los

robots como máquinas dañinas y amenazadoras.

Sin embargo, películas como la ya conocida Star Wars (1977) de Gorge Lucas

retratan a robots como C3PO y R2D2, cuya finalidad es ayudar al hombre.

Número 5 en corto circuito y C3PO verdaderamente toman como modelo la

apariencia humana.

Fig. 1.1 Propaganda de la película Tobor, una de las primeras en tocar el

tema de los robots.

Page 16: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

4

1.2 Tipología de Robots.

En la figura 1.2.3 se propone una tipología para robots, en ella podemos ubicarlos

y clasificarlos así como entender las diferentes disciplinas que toman parte para

su desarrollo.

Los aspectos que se tomaron en cuenta para realizar la tipología son:

1.- Por sus Elementos

2.- Por el medio donde operan

3.- Por su desplazamiento

1.2.1 Elementos que conforman a un robot. Es necesario empezar por entender los elementos que conforman a los robots,

comprendiendo las áreas en las cuales se apoya la robótica.

Mecánica, esta área está relacionada con los sistemas y mecanismos que dotan

a nuestro robot de una estructura, dándole con esto un cuerpo y movilidad.

Electrónica, nos sirve para definir los sistemas de entrada y salida.

Control, esta nos dice y nos determina el conjunto de reglas y estados en los

cuales puede operar el robot.

De igual manera, el tipo de control puede ser de dos formas, de lazo abierto y

lazo cerrado

Page 17: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

5

a) lazo abierto, este tipo de control, es el que se lleva a cabo sin

retroalimentación.

Fig. 1.2 Diagrama a bloques de control lazo abierto.

b) lazo cerrado, este tipo de control, es el que a la salida de la acción nos

manda una señal de retroalimentación, que es interpretada, para así

corregir los errores que tenga nuestro sistema.

Fig. 1.3 Diagrama a bloques de control lazo cerrado

Page 18: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

6

1.2.1.1 Por su modo de operación en lazo cerrado Tele-operados. [1] Este grupo de robots, operan a distancia y todas las decisiones

son tomadas por el humano.

Fig. 1.4 Ejemplo de robots tele-operados

Supervisados, En estos robots, el humano toma decisiones importantes acerca

de lo que el robot debería hacer cada determinado tiempo, el robot tiene control

suficiente para realizar sus tareas sin una dirección constante.

Fig. 1.5 Ejemplo de robots supervisados

Page 19: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

7

Autónomos, este grupo de robots operan libre de control humano, contienen la

suficiente Inteligencia para operar independientemente.

Fig. 1.6 Ejemplo de robots autónomos

1.2.2 Por el medio donde operan Un aspecto muy importante para los robots es el medio ambiente donde se

desenvuelven, ya que esto determina el tipo de estructura, mecanismos,

electrónica y control que necesita para funcionar en condiciones óptimas.

Pueden ser: a) Terrestres b) Acuáticos c) Aéreos

Page 20: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

8

1.2.3 Por el tipo de Desplazamiento El desplazamiento de un robot va ligado con el medio donde opera, de esta

manera en los Terrestres, operan orugas, ruedas o patas, en los Acuáticos

operan la hélices o aletas, y en los aéreos, hélices o alas, los robots denominados

fijos, entran dentro de las tres categorías, ya que tanto los brazos manipuladores y

las caras robots, pueden estar contenidos en los robots aéreos, terrestres o

acuáticos, para recolectar muestras y /o alcanzar cosas.

Al no existir una clasificación que contenga y explique a los robots, se ha creado la

siguiente tipología como parte de los resultados de ésta tesis.

Fig. 1.7 Tipología de robots.

Page 21: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

9

1.3 ¿Qué es un animatronic?

La primera vez que se escuchó el término fue en Estados Unidos, y fue la manera

en que los imageneers* de Walt Disney [ 2] describieron a sus robots (audio

animatronics). Con el tiempo el término audio se fue perdiendo.

Este término es empleado para describir sistemas y componentes mecánicos y/ o

electrónicos que en conjunto sirven para simular y replicar movimientos de

criaturas, ya sean reales como son, animales, humanos, insectos, o criaturas de

ficción y fantasía.

1.3.1 ¿De donde viene la palabra animatronic? La palabra animatronic surge de la combinación de dos palabras, anima que

significa vida y tronic que significa electrónica o mecatrónica. Podemos decir que

es la combinación entre arte y ciencia, la cual, da por resultado máquinas que

parecen tener vida.

* Imageneer - palabra que surge de la combinación en inglés de las palabras

imagination = imaginación e engeneer = ingeniero comparada con,

*createcnic - palabara que surge de la combinación en español de cratividad + técnico.

Page 22: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

10

Fig. 1.8 Cara animatrónica de Gorila

1.3.2 Tipología de Títere Las marionetas o Títeres, por definición, se puede decir que son cualquier tipo de

figura que es movida por cualquier artificio, ya sea manual o robótico.

El lugar principal donde se han necesitado este tipo de figuras es en el cine y

parques temáticos. Desde que King Kong [3] destrozó el centro de la ciudad de

Nueva York (1933) hasta que un tiranosaurio atacó a la gente en las calles de San

Page 23: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

11

Diego en el Mundo Perdido (1997), los cineastas se han valido de las habilidades

creativas de titiriteros y expertos en animatronics.

Los titiriteros se valen de una gran variedad de técnicas para dar vida a

semejantes monstruos. Uno de los primeros métodos de animación era la “acción

detenida “, donde la marioneta se mueve y se filma cuadro por cuadro. Otras

técnicas incluyen la operación de los muñecos con varillas que son flexibles,

ligeras y pueden moverse con rapidez. Hoy en día, los titiriteros prefieren el

sistema de “acción en movimiento “, en el que la marioneta se mueve con varillas

controladas por computadora, y el novedoso Dispositivo de Entrada de Dinosaurio

(DID). El DID, que se usó por primera vez en Parque Jurásico (1993) mezcla la

animación detenida con la tecnología de las gráficas por computadora.

Para la creación de un títere o marioneta, es indispensable tomar en cuenta los

aspectos de carácter internos y externos.

Fig. 1.9 Marioneta controlada por varillas flexibles.

Page 24: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

12

1.3.2.1 Aspectos externos. Los aspectos externos, involucran la parte del arte en la que es indispensable

prestar atención al diseño del personaje; dotarlo de un rostro, de una actitud y

determinar qué tipo de criatura será, animal, humano, o fantástico.

Este proceso es un poco tardado: se empieza dibujando al personaje, después se

escoge el material del cual será hecho; construirlo, dotarlo de pelo, uñas, cejas,

ojos, dientes, según sea el caso.

1.3.2.2 Aspectos internos. Una vez que ya se decidieron los aspectos externos se pasa directamente a los

aspectos de carácter interno, que son en general, la manera en la que será

manejado el “títere o marioneta. “

Existen diferentes maneras de operar un títere, la más común es la manual, que

consiste en (el titiritero) introducir la mano dentro del muñeco y hacer que este se

mueva, un ejemplo claro de esta técnica es la conocida Rana René creada por Jim

Henson*.

Fig. 1.10 Jim Henson y la Rana René.

______________________________________________________________________________

*Jim Henson, nacido en 1936, fabricó marionetas desde la secundaria. La más conocida de sus

creaciones , la Rana René fue basada en un abrigo verde viejo de su madre. Llevó su originalidad

a Plaza Sésamo , antes de crear el Show de los Muppets . Estableció el Taller de Criaturas

(Creature Shop) de Him Henson, que es líder en la industria del cine en cuestión de animatrónics

y marionetas, muere en 1990.

Page 25: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

13

La forma tradicional de operar títeres consiste en tener cables atados a las

principales articulaciones de los personajes (muñecos) y unidos en sus extremos

por un pedazo de madera o metal el cual hace accionar los movimientos

En la figura 1.3.2.2.1 se muestra un marioneta movida por cables de la serie de

televisión *Thunderbirds.

Fig. 1.11 Marioneta controlada por hilos.

* Thunderbirds. Serie de televisión en los años 60 de supermarionetas creadas

por Gerry Anderson.

Page 26: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

14

Dentro de la clasificación de manual, tenemos a los llamados mecánics, que son

operados de forma manual pero el operador es ayudado por dispositivos

mecánicos como bastones, chicotes o poleas de transmisión entre otros.

Fig.1.12 Chimpancé mecanic, está controlado con líneas de transmisión

La última forma de operación es la robótica, la cual es ayudada por la

Electromecánica y técnicas avanzadas de Control para dar vida a personajes, y a

esta última forma de operación es a la que se llama animatronic.

Page 27: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

15

Fig.1.13 Radio control con respuesta en tiempo real para movimientos de animatronics.

Debido a que no existe una clasificación dentro de los títeres o marionetas que

nos permita identificar claramente el rubro de los animatronics, se creó una

tipología para títeres, de igual manera que en la tipología de robots, como parte de

las conclusiones de esta tesis.

Page 28: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

16

Fig.1.14 Tipología de títere o marioneta, podemos notar en dónde está ubicada el área denominada animatronic.

1.4 ¿Qué es un autómata?

Desde el principio de los tiempos, el hombre ha deseado crear vida artificial. Se

ha empeñado en dar vida a seres artificiales que le acompañen en su morada,

seres que realicen sus tareas repetitivas, tareas pesadas o difíciles de realizar por

un ser humano. De acuerdo con algunos autores, como J. J. C. Samart y Jasia

Rechardt consideran que el primer autómata en toda la historia fue Adán creado

por Dios. De acuerdo con esto, Adán y Eva son los primeros autómatas

inteligentes creados, y Dios fue quien los programó y les dio sus primeras

instrucciones que debieran de seguir.

Dentro de la mitología griega se puede encontrar varios relatos sobre la creación

de vida artificial, tal es el caso de Prometeo, el cual creó el primer hombre y la

primera mujer con barro y animados con el fuego de los cielos.

Page 29: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

17

Los hombres creaban autómatas como un pasatiempo, eran creados con el fin de

entretener a su dueño. Los materiales que se utilizaban eran de uso común, como

madera, metal, cuero, etc.

Estos primeros autómatas utilizaban, principalmente, la fuerza bruta para poder

realizar sus movimientos. A las primeras máquinas herramientas que ayudaron al

hombre a facilitarle su trabajo no se les daba el nombre de autómata, sino más

bien se le reconocía como artefactos o máquinas simples.

Por siglos el ser humano ha construido máquinas que imitan las partes del cuerpo

humano. Los antiguos egipcios unieron brazos mecánicos a las estatuas de sus

dioses. Estos brazos fueron operados por sacerdotes, quienes clamaban que el

movimiento de estos era inspiración de sus dioses. Los griegos construyeron

estatuas que operaban con sistemas hidráulicos los cuales se utilizaban para

fascinar a los adoradores de los templos.

Durante los siglos XVII y XVIII en Europa fueron construidos muñecos mecánicos

muy ingeniosos que tenían algunas características de robot.

Jacques de Vauncansos construyó varios músicos de tamaño humano en la mitad

del siglo XVII, esencialmente se trataba de muñecos mecánicos diseñados para

entretener.

Page 30: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

18

Fig.1.15 Muñecas Autómatas realizadas en el siglo XVII

Algunos de los autómatas más vistosos fue la muñeca que era capaz de hacer

dibujos, fue construida por Henri Maillardert en 1805, el sistema constaba de una

serie de levas que cumplían la función de cerebro en el proceso de escribir y

dibujar. De esta manera podemos decir que un autómata es una máquina que

imita los movimientos de un ser animado, es un instrumento que tiene dentro de

él un mecanismo que le imprime ciertos movimientos. La palabra autómata fue

empleada en un principio por los primeros relojeros, que fabricaban muñecas de

porcelana con movimientos, inclusive algunos eran capaces de jugar ajedrez y

sorprender a la audiencia. En la actualidad el término autómata se está usando

casi en cualquier ámbito para describir a cualquier máquina que parezca tener

vida, sea robot, mecanic*, o animatronic.

________________________________________________________________

*Mecanic: Palabra para describir a los títeres que se controlan de forma manual ayudados con

sistemas mecánicos, como son chicotes, poleas. etc.

Page 31: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

19

1.5 ¿Que es lógica difusa?

En 1965 Zadeh* [ 4], describió la teoría de conjuntos difusos, a ésta no se le dio la

importancia que se debía, fue hasta 1974 con el Profesor Mamdani*[5 ], que lo

aplica por primera vez en el control de una máquina de vapor.

El “control inteligente” es una de las tecnologías más innovadoras y populares

que se define especialmente en lógica difusa como una combinación de teoría de

control, investigación de operaciones, e inteligencia artificial (IA). A juzgar por los

millones de dólares en valores por las ventas y las más de 2000 patentes emitidas

solamente en Japón, desde el anuncio del primer chip fuzzy en 1987, la lógica

difusa sigue siendo tal vez el área más popular en IA.

Hoy en día la lógica difusa sigue manteniendo una popularidad sin precedentes

en los campos de la tecnología e ingeniería, incluyendo el área de manufactura,

esto se debe a los tremendos avances tanto tecnológicos como comerciales

realizados en Japón y en otras naciones.

La tecnología de lógica difusa ha sido usada en numerosos productos de

consumo diario, tanto en electrónicos y sistemas, como en los almacenes de

mercado y en equipos de diagnóstico médico.

El aspecto más importante que enfrentan la mayoría de las naciones

industrializadas, en las próximas décadas, será la competitividad global.

El manejo de tecnologías de vanguardia, tales como lógica difusa, es básica para

poder estar a nivel competitivo en áreas de tecnología, economía y manufactura,

ya que depuran algoritmos, obteniendo mejores resultados a bajo costo.

Con intenciones de entender qué es lógica difusa es importante entender los

conjuntos difusos.

Page 32: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

20

Estos conjuntos están mejor relacionados con los aspectos de la mente humana

ya que nos permite definir situaciones de una manera similar a cómo funciona el

pensamiento, utilizando una lógica no bivalente, trabajando con tonos de grises y

no nada más con extremos como blanco y negro, o el simple sí o no, sino que

incluye toda la gama intermedia .

Ya que la lógica difusa todo lo maneja por grados de pertenencia en un rango de 0

a 1, esto nos permite manejar conceptos utilizados por el razonamiento humano

como mucho, poco, mediano etc. y no nada mas los extremos como el si y el no

antes manejados por la lógica Aristotélica.

En la actualidad, en Japón, U.S.A, Europa y otros países del mundo la lógica

difusa ha sido aceptada en muchas aplicaciones para la fabricación de máquinas

inteligentes y productos de uso amigable, además de mejorar los

electrodomésticos ya conocidos como TV, lavadoras, cámaras de video, etc.

La primera motivación de lógica difusa es explotar la tolerancia en aspectos de

imprecisión e inexactitud, ya que al diseñar objetos que requieren de mayor

precisión el costo se eleva, de esta manera si un problema no requiere precisión,

uno no tendrá que pagar por ella.

1.5.1 ¿Qué son los conjuntos difusos?

Una noción básica de lo que son los sistemas difusos, [ 6] son los conjuntos

difusos.

*Lofti a Zadeh, Profesor de ciencias de computación de la Universidad de California en Berkeley.

* Mamdani, Profesor de la Universidad de Londres.

Page 33: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

21

Ejemplo:

Primero consideraremos al conjunto X como el de los números reales de 0 a 10 ,

el cual será considerado como nuestro conjunto universo. Ahora definiremos el

subconjunto con rango 4 y 8

A = [4, 8]

Ahora se mostrará el conjunto A dado por su función característica, esta función

asignará un número 0 o 1 para cada uno de sus elementos en X, dependiendo si

el elemento está en el subconjunto A o no, esto resulta de la siguiente manera.

Fig. 1.16 Conjunto difuso, intervalo [4,8]

Podemos interpretar a los elementos que tienen asignado el número 1 como los

elementos del conjunto A y los elementos que tiene asignado el número 0 como

los elementos que no están en el conjunto A.

Este concepto en general es suficiente para muchas áreas de aplicación, pero

podemos encontrar situaciones en las cuales no es flexible.

A continuación veremos [7 ] otro ejemplo en el cual describiremos el conjunto de

gente joven. De una manera formal tenemos que:

Page 34: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

22

B = El conjunto de gente joven

Mientras que, en general, la edad empieza a los 0 el rango más bajo de este

conjunto tendrá que ser aclarado. Por otro lado el rango superior es de igual

manera difícil de definir, como una primera aproximación podemos decir que será

de 20 años, de esta manera tendremos un intervalo:

B = [0 ,20]

Ahora la pregunta que surge es: ¿Por qué? una persona en el día de su

cumpleaños número 20 es joven y al día siguiente no? Obviamente este es un

problema estructural, ya que si movemos el rango superior a uno arbitrario

podemos formular la misma pregunta.

Una manera más natural de construir el conjunto B podría ser el relajar la estricta

separación entre jóvenes y no tan jóvenes. Podemos hacer esto no tomando

solamente una respuesta de si él o ella pertenece al conjunto de gente joven o no

el o ella no está dentro del conjunto de gente joven, y podemos utilizar frases más

flexibles como, bueno “El o ella pertenece un poco más al conjunto de gente joven

o no él o ella no está un poco menos cerca del conjunto de gente joven.”

Como quedó estructurado en la introducción queremos utilizar los conjuntos

difusos para hacer más inteligentes a las computadoras y a los robots, ahora

necesitamos codificar la idea anterior de una manera más formal. En nuestro

primer ejemplo, nosotros codificamos todos los elementos en el Universo en

cuestión con 0 o 1. Una manera correcta de generalizar este concepto es

colocando más valores entre el 0 y el 1, de esta manera puede ser infinitas las

alternativas que existen entre 0 y 1, nombrándolo el intervalo de unidad I = [0, 1].

La interpretación de los números ahora asignados para todos los elementos del

conjunto Universo en discusión es mucho más difícil. Por supuesto que con

respecto a la asignación del número 1 a un elemento significa que el elemento

está en el conjunto B y 0 significa que el elemento no esta definitivamente en el

Page 35: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

23

conjunto B. Todos los otros valores significan que tienen una correspondencia

gradual con el conjunto B.

Para ser mas específicos en la figura 1.5.2 se muestra el conjunto de gente joven,

con respecto a nuestro primer ejemplo, de un modo gráfico para esta función

característica.

Fig.1.17 Gráfica de conjunto difuso B.

Con eso, las personas que tiene 25 años seguirán siendo jóvenes en un grado de

50 %.

1.5.2 Operaciones con Conjuntos Difusos. Ahora que ya tenemos una idea de los conjuntos difusos (fuzzy Sets) podemos

introducir operaciones básicas[ 8] , similares a las operaciones que podemos tener

en los conjuntos convencionales, tales como intersección , negación etc. En su

primer documento acerca de conjuntos difusos, L. A. Zadeh sugirió que la

intersección estará dada por el operador mínimo y la unión estará dada por el

operador máximo entre dos conjuntos difusos.

Page 36: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

24

Es fácil ver que estos operadores coinciden con la unificación y la intersección de

los conjuntos tradicionales si se considera el grado de pertenencia 0 y 1.

Con ganas de clarificar esto, se darán unos cuantos ejemplos. Digamos que A ,

será el intervalo difuso entre 5 y 8 , y B será el número difuso 4.

Fig. 1.18 Conjuntos difusos A y B.

La siguiente figura muestra la operación AND entre el conjunto difuso A y el B.

Fig.1.19 La línea azul muestra el resultado de la operación A AND B.

De igual forma la figura siguiente muestra la operación OR entre el conjunto difuso

A y el conjunto difuso B.

Page 37: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

25

Fig. 1.20 La línea azul muestra el resultado de la operación A OR B.

Esta figura nos denota la negación del conjunto difuso A.

Fig.1.21 La línea azul muestra el resultado de la negación del conjunto A.

1.5.3 Conceptos generales de Lógica difusa.

Se menciona que un número N es difuso si N es un conjunto normalizado y

convexo que pertenezca a los números reales, tal que:

a) Exista exactamente un elemento Xo ∈ R con un grado de pertenencia

µN(Xo) = 1. donde Xo se conoce como valor medio de N, además

b) Que la función de pertenencia µN(X) sea continua por partes.

1.5.3.1 Variables Lingüísticas. Las variables lingüísticas son aquellas cuyos valores no se definen con números,

sino con palabras u oraciones de una manera natural.

Page 38: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

26

1.5.3.2 Funciones de Pertenencia.

Las funciones de pertenencia µ(x) son funciones en X que definen el Conjunto

Difuso que representa a la variable lingüística. Estas funciones determinan el

grado de pertenencia de un elemento al conjunto difuso, por lo que se

representan:

µA (X) = f(x) y representa el grado en que x ∈ A

Las funciones de pertenencia pueden estar definidas de distintas maneras, las

más comunes y sencillas de procesar son aquellas definidas como números

difusos del tipo triangular o bien trapezoidal.

Las únicas condiciones que deben cumplir son:

A) Que su rango esté normalizado de [0,1]

B) Que entre más cumpla el elemento del conjunto las características que

definen la variable lingüística, más cercano sea su grado de pertenencia a

uno.

1.5.3.4 Reglas difusas sí entonces. Antecedente: Este durazno está un poco naranja Consecuente: Si un durazno está naranja, entonces está maduro Conclusión: Este durazno está un poco maduro. Considerando el ejemplo anterior, el consecuente será:

Conclusión: Si el durazno está naranja, está maduro.

Como podemos ver, los conceptos “durazno naranja”, y “está maduro “ estos

se pueden expresar como conjuntos Difusos, sin embargo, como tales representan

conceptos independientes, es la frase sí... entonces.......

la que los relaciona en un solo concepto.

En general podemos decir que todas las acciones que realiza el ser humano en su

vida cotidiana, se pueden expresar como un conjunto de reglas sí… entonces.....

Page 39: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

27

1.5.3.5 Fuzificación y Defuzificación.

Se conoce como proceso de fuzificación, al hecho de aplicar la Lógica Difusa al

conjunto de reglas Si... entonces... que terminan una acción y posteriormente

relacionar todas estas reglas por medio de una suma lógica. Este proceso de

fuzificación siempre, parte de premisas o condiciones. Hasta aquí se obtiene un

resultado que será un número difuso. Para convertir este número difuso a un

número ordinario (que puede ser un valor normalizado), según la salida deseada

del proceso, es necesario defuzificarlo*.

________________________________________________________________

* Defuzificarlo, del inglés deffuzzify, que comúnmente se entiende como quitarle lo difuso al

resultado, obteniendo un número el cual se pueda manejar para la acción de control

Page 40: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

28

1.5.4 Control Difuso.

Los controladores Difusos son distintos a los controladores clásicos, ya que no

necesitan de un modelo o algoritmo matemático que determine cómo las salidas

dependen de la entrada para alcanzar el punto de estabilidad deseado.

Los controladores Difusos representan el comportamiento ambiguo de un

sistema o proceso mediante un conjunto de reglas Si... Entonces... que llevarán a

una conclusión Difusa la cual, se tendrá que defuzificar.

Fig. 1.22 Diagrama a bloques de controlador difuso.

La estrategia de control de un Controlador Difuso reside en el conjunto de reglas

que determinarán el comportamiento tanto del controlador como del sistema.

Estas reglas están basadas en la base de conocimiento de un operador experto.

Page 41: Animatronic controlado con logica difusa

Capítulo 1 Animatronic

29

REFERENCIAS 1 Discovery Channel video (1997), El surgimiento de los robots, casete 1. 2 S/n “Animatronic FX” en http://www.characters-shop.com/anmtrnfx.html. 2002 3 Jake Hamilton (1998), Efectos especiales en el cine y la televisión, Dorling Kindersley Limited, pp 22-25. 4 Zadeh, L.A. (1988), Fuzzy Logica, IEEE Computer,1988, pp.83-89. 5 Mamdani, E. H., Applications of fuzzy algorithms for simple dynamic plant, Proc. IEE, 121.No.12,1585-1588,1974. 6 S/n “what is a Fuzzy Set?” en http://www.flll.uni-linz.ac.at/pdw/fuzzy/fuzzy_set.html. 2002 7 S/n “what is a Fuzzy Set? Continued ” en http://www.flll.uni-linz.ac.at/pdw/fuzzy/fuzzy_set.10.html. 2002 8 S/n “Operations on fuzzy set” en http://www.flll.uni-linz.ac.at/pdw/fuzzy/operations.html. 2002

Page 42: Animatronic controlado con logica difusa

Capítulo 2 La Propuesta

30

2

LA PROPUESTA Introducción

La comunicación entre personas es el resultado de la interpretación en gran

medida de gestos, expresiones, y emociones que dan como resultado un lenguaje

corporal que nos permite relacionarnos con el mundo que nos rodea.

2.1 ¿De dónde surge la idea? Observando el comportamiento que existe entre los seres humanos, es fácil darse

cuenta que es “afectado” por diversos estímulos, los cuales dan por resultado un

estado de ánimo, y/o actitud.

Analizando estos estímulos podemos darnos cuenta que existen aquellos que

provienen de uno mismo, como son los generados por una necesidad fisiológica,

tales como el hambre, el sueño, el dolor, etc. Siendo este último el resultado del

mal funcionamiento de algún órgano.

Por otro lado, tenemos los estímulos que son generados por elementos externos,

tales como el medio ambiente (frío, calor, el día, la noche, la cantidad de luz, etc.),

y el que resulta de la convivencia con otros seres vivos.

Todos estos estímulos definen en las personas un estado de ánimo o de actitud el

cual se ve reflejado en cierto código de expresiones corporales, tales como son los

gestos de la cara, siendo ésta nuestra interfaz con el mundo por excelencia.

De esta manera podemos decir que los seres humanos reaccionamos con base

en dos tipos de elementos, que están auto-contenidos o de carácter interno y los

que son ajenos o de carácter externo.

Page 43: Animatronic controlado con logica difusa

Capítulo 2 La Propuesta

31

Enfocándonos en los elementos de carácter externo tenemos que la manera en

que los seres humanos se relacionan unos con otros es el resultado ente otras

cosas, de la interpretación de muecas y movimientos faciales, los cuales dan

como resultado una expresión.

En muchas ocasiones hemos malinterpretado este código de movimientos y el

resultado no siempre es favorable.

Cada individuo tiene un código particular de trasmitir emociones a través de

expresiones, es por esto que en particular esta investigación fue enfocada al

movimiento de la cara, tratando de encontrar por una parte, patrones de

movimiento que se puedan identificar claramente como son el movimiento de las

cejas, ojos, párpados, boca y labios y por otro lado encontrar algoritmos de

control que enfoquen de una manera más real dichos patrones.

Es evidente que los patrones que forman el movimiento de la cara conocidos

como gestos no obedecen un patrón bivalente como sí o no, ya que al expresar

alegría o tristeza existen estados intermedios como la seriedad, debido a esto es

necesario utilizar un control que se adecue a la forma de pensar del ser humano,

llevándonos a la utilización de la lógica difusa ya que esta utiliza elementos no

deterministicos facilitándonos el control en paralelo al empelar variables

lingüísticas como sorpresa, tristeza o asombro por mencionar algunas.

Con base en la robótica, al buscar interfaces más amigables para los robots que

permitan transmitir emociones y reflejen actitudes, significará un avance

considerable en la comunicación hombre-maquina, máquina-máquina, permitiendo

el trabajo en grupos entre máquinas.

Es por esto que fue indispensable el diseñar, construir y controlar una cara robot,

en la cual se pudieran identificar dichos patrones.

Page 44: Animatronic controlado con logica difusa

Capítulo 2 La Propuesta

32

2.2 Trabajos ya existentes.

Al seguir con el proceso de fabricación de la cara robot, fue necesario el tomar en

cuenta los robots de aspecto humano ya existentes, que no nada más tuvieran

aspecto humano sino que en su construcción contara con algún indicio de control

inteligente que le permitiera tomar decisiones de acuerdo al medio ambiente en el

que estuvieran, interactuando de esta manera con las personas, esto con el fin

de entender la diferencia existente entre el tener inteligencia y fingir inteligencia.

En lo que respecta a la mayoría de los animatronics no son del todo interactivos

ya que las personas y las audiencias responden a ellas en forma visceral, quizás

porque la ciencia ficción predispone a la gente a esperar mucho más de los robots,

creyendo que lo visto en las películas es lo que se puede lograr en los laboratorios

de investigación.

El robot de la figura 2.1 [ 1] es una cabeza robótica que tiene expresiones faciales

un poco toscas pero muy parecidas a las humanas, cuenta con dos cámaras a

manera de ojos, 4 luces a manera de cejas, dos cuerdas a manera de labios y

tiene micrófonos para orientar y saber de dónde viene el sonido.

Fue construida como parte de un proyecto entre la Universidad de Padenborn y la

empresa Siemens, para realizar un guía en un museo.

Page 45: Animatronic controlado con logica difusa

Capítulo 2 La Propuesta

33

Fig. 2.1 Cabeza robot llamada Mexi.

El robot de la figura 2.2 [ 2] fue programado y construido para reaccionar al sonido,

al movimiento, y a los cambios de luz que presenta el medio ambiente, fue

construido para interactuar con las personas y provocarles sensaciones al

espectador, construido en el Instituto Tecnológico de Massachusetts por Rodney

Brooks , lo denomina como ” comportamiento con base a inteligencia”

Fig. 2.2 Cabeza robot llamado IT

Page 46: Animatronic controlado con logica difusa

Capítulo 2 La Propuesta

34

El robot de la figura 2.3 [ 3] tiene la capacidad de interactuar con los humanos de

una forma casi humana, por medio de expresiones faciales muy básicas,

posiciones de la cabeza y tonos de voz que en conjunto, forman un robot social,

su creadora Cynthia Breazeal menciona que “la meta es construir una máquina

socialmente inteligente que pueda aprender como nosotros lo hacemos a través

de interacción social.” Fue hecho en el centro de inteligencia artificial del Instituto

Tecnológico de Massachusetts.

Fig. 2.3 Cabeza robot llamada Kismet.

Page 47: Animatronic controlado con logica difusa

Capítulo 2 La Propuesta

35

El robot de la figura 2.4 [ 4] está programado para responder a ciertas palabras

con respuestas preelaboradas. Comenzará a hablar después de 6.5 segundos de

silencio, fingirá que no recuerda si no puede asociar la pregunta con una

respuesta programada y generalmente se mostrará fanfarrón durante la

conversación. Este robot fue realizado por Camill y Tim Eck en el Centro de

Tecnología del Entretenimiento de la Universidad Carnegie Mellon en Pittsburgh.

Se basó en utilizar tecnología animatrónica para aparentar cierta actitud y lograr

que su robótica teatral afectara a la audiencia y lograr que los visitantes se

sintieran como si estuvieran hablando con un ser consciente.

Fig. 2.4 cabeza robot llamada Doc. Beardsley.

Page 48: Animatronic controlado con logica difusa

Capítulo 2 La Propuesta

36

2.3 ¿Qué se necesita? Para poder probar los algoritmos es indispensable la construcción de un robot,

que en el momento de imprimirle actitud, se convertirá por definición en

animatronic.

Fig. 2.5 Diagrama de algoritmo de actitud.

Al igual que los humanos, esta cara robot necesita de elementos de entrada y

elementos de salida.

Para poder construir una cara robot es necesario dotarla de características

similares a las de los humanos, en este caso dotarla de una interfaz con el mundo.

Elementos indispensables para la generación de expresiones son los párpados,

los ojos, las cejas, la boca, los labios y el cuello, nuestros elementos de salida.

Cada uno de estos elementos son indicadores de cierto estado.

Los párpados son los responsables de generar estados como despierto o dormido

así como de generar somnolencia (el estado de tener sueño).

Las cejas son indicadores de enojo, seriedad y sorpresa.

Page 49: Animatronic controlado con logica difusa

Capítulo 2 La Propuesta

37

La boca junto con los labios, es generadora de estados tales como felicidad,

disgusto y tristeza.

Los ojos nos indican hacia dónde se está poniendo atención.

El cuello nos indica hacia dónde se dirige la cabeza, dando por resultado evasión,

distracción o interés.

De igual modo, la combinación de estos elementos logran acentuar estados de

ánimo y lograr actitudes definidas al animatronic.

Para definir nuestros elementos de entrada, nos enfocaremos únicamente en los

de carácter externo, los producidos por el medio ambiente, en este caso serán

intensidad luminosa y nivel de ruido.

Para la construcción de un robot, como ya se mencionó, es necesario la utilización

de 3 elementos indispensables, que son:

Mecánicos, dan estructura y movimiento al robot.

Lo mecánicamente propuesto estará definido por la movilidad de los elementos de

salida como ojos, boca, cejas, parpados, así como por el espacio contenido en la

cabeza animatrónica.

Electrónico, distribuye la energía y define los elementos de entrada y el

comportamiento de los dispositivos de salida.

La electrónica propuesta está orientada en una primera configuración determinada

por el microcontrolador, conteniendo todos los elementos de control en el mismo, y

la segunda configuración muestra una interfaz con la computadora dándonos con

esto mucha mayor capacidad de programación.

Control, conjunto de reglas y comandos que rigen el comportamiento del robot.

El algoritmo de control está basado en su totalidad en lógica difusa.

Page 50: Animatronic controlado con logica difusa

Capítulo 2 La Propuesta

38

Fig.2.6 Diagrama de elementos básicos de un robot.

De esta manera al querer simular la interfaz humana como lo es la cara y

tratando de hacer que su comportamiento sea lo más parecido al

comportamiento del hombre resulta más fácil si es manejada con variables como

lo es Enojo, sorpresa, felicidad, tristeza, seriedad, etc.

Page 51: Animatronic controlado con logica difusa

Capítulo 2 La Propuesta

39

REFERENCIAS 1 S/a.”Los robots desarrollan actitudes”. Mecánica Popular, agosto, 2001, pp. 4. 2 Curt Suplee. “Robot revolution”. National Geographic. s/l ,july 1997, pp. 82-83. 3 Douglas Whynott “Las máquinas que caminan, hablan, gesticulan y muestran emociones ‘humanas’ han dejado de ser ciencia-ficción”. en Discovery en español. s/l, noviembre 1999, pp. 48-55. 4 Eric Smalley. “Fingir inteligencia” en Discovery en español. s/l, septiembre 2002, pp. 16-17.

Page 52: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

40

3

DE LO MECÁNICO Introducción.

Al diseñar piezas mecánicas es necesario tomar en cuenta la resistencia de los

materiales, las herramientas a utilizar, y el espacio para armar, sin olvidar la

dinámica de los sistemas para un buen funcionamiento.

3.1 Elementos mecánicos.

Debido a que necesitamos tener movimientos independientes para cada uno de

los elementos de la cara, fue indispensable hacer una buena selección de

motores. Estos deberían tener como características, espacio reducido y alto

torque, de esta manera se tomó la decisión de utilizar servomotores.

Los servos utilizados son Futaba FP-3003.

3.2 Servos.

Un servo [ 1 ] es un dispositivo pequeño que tiene un eje de rendimiento

controlado. Este puede ser llevado a posiciones angulares específicas al enviar

una señal codificada. Con tal de que una señal codificada exista en la línea de

entrada, el servo mantendrá la posición angular del engranaje. Cuando la señal

codificada cambia, la posición angular de los piñones cambia. En la práctica, se

usan servos para posicionar superficies de control como el movimiento de

palancas, pequeños ascensores y timones. Ellos también se usan en radio control,

títeres y por supuesto en robots.

Page 53: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

41

Velocidad máxima 0.23 sec /60°

Torque de salida 44.4 oz-in (3.2 Kg-cm)

Tamaño 1.59x0.78x1.42 in (40.4x19.8x36mm)

Peso 1.3 oz ( 37.2g)

Tabla 3.1 Características de los servos utilizados.

En general, un servo es un dispositivo en forma de caja negra al que llegan tres

cables. Contiene un pequeño motor de corriente directa, una caja de engranajes,

un potenciómetro de un valor aproximado de 5K y un pequeño circuito integrado.

Fig. 3.1 Servomotor.

Este motor eléctrico en miniatura funciona de acuerdo a la magnitud que se ha de

controlar, dando el giro y posicionamiento en eje del motor. A su vez, el

movimiento de rotación angular del motor modifica la posición del potenciómetro

interno, que controla un monoestable también integrado en el servomotor.

El eje del motor puede ser girado hasta una posición angular especificada

mediante una señal de control. Mientras se mantenga esta señal de control, el

servomotor mantendrá la posición angular del eje. Si la señal de control cambia,

también cambiará la posición del eje.

Los servomotores tienen tres cables: el de tierra (-), el de alimentación (+), y el de

la señal de control.

Page 54: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

42

El positivo se puede alimentar desde 4.7 hasta 6 volts, dependiendo del servo que

se utilice, el de señal de control, es conectado a una fuente de pulsos variables

entre 1 y 2 milisegundos de duración que se repiten con una frecuencia de unos

12-20 milisegundos.

Los cables de los servos siguen casi siempre el mismo código de colores, por

ejemplo en los Futaba* el color es rojo (V+), negro(tierra), blanco (señal de

control). Los fabricantes JR y Graupner* colocan el cable de la señal de control de

color naranja, mientras que algunos servos Sanw* tienen el cable de tierra de

color azul.

Fig. 3.2 Diagrama del circuito interno de un servo motor.

3.2.1 Funcionamiento. La velocidad del motor, así como la dirección del movimiento de los servos se

controla mediante pulsos modulados en amplitud (PWM)*.

El servomotor convierte los servopulsos en un movimiento mecánico. La magnitud

del giro del eje del servo es proporcional a la anchura del pulso que llega por la

línea de control. Este tipo de pulso está formado por una señal digital que se

genera aproximadamente cada 20 milisegundos. La anchura de estos pulsos va

de un mínimo de 1ms a un máximo de 2 ms.

Page 55: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

43

Fig. 3.3 Diagrama de señal para posición de servo.

Aunque la relación entre el ancho de pulso y la posición del eje no esta

estandarizada, lo normal [2 ] es que trenes de pulso de 1.5 ms lleven el eje del

servo al centro de su rango, anchura neutra. Si la anchura del pulso es de 1

milisegundos el servomotor se posiciona en el extremo izquierdo mientras que si

el pulso tiene una achura de 2 milisegundos la posición del servo es el extremo

opuesto. Esta técnica se conoce como modulación de ancho de pulso, (PWM*).

El servomotor trabaja comparando el ancho del pulso de entrada con el ancho del

pulso producido por el contador interno. A su vez, el periodo del contador (timer)

interno es controlado por el potenciómetro acoplado al eje del servo. La

diferencia entre la anchura del pulso de entrada y la achura del pulso interno se

utiliza como señal de error. La lógica del servo se encarga de determinar la

dirección en la que ha de girar el motor para minimizar dicho error. Para ello,

activa los drivers de salida apropiados. El motor gira modificando la posición del

potenciómetro de retroalimentación.

Page 56: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

44

Fig.3.4 Elementos de un servo.

Cuando llega el siguiente pulso se vuelve a realizar la comparación, comprobando

de forma continua la posición del eje, realizando constantemente las

correcciones necesarias en la posición del mismo.

Como se ha podido apreciar se trata de un lazo de retroalimentación negativa.

Si la posición del potenciómetro es equivalente a la posición deseada del, eje en

este momento la corriente del motor se apaga.

La precisión al posicionamiento depende tanto de la precisión del potenciómetro

como de la precisión de la anchura de los pulsos que llegan al motor. La mayoría

de los modelos de servomotores consiguen una resolución de 0.5 grados.

Cuando se reduce la señal de error a un nivel aceptable, el eje del servo se

encuentra en la posición correcta.

En ese momento la señal de error suele ser de unos 5µs, ésta es la diferencia

entre el ancho del pulso de la señal de entrada y el ancho de pulso de la señal

interna. Esto corresponde con una fracción de grado del recorrido del servomotor.

Cuando el error está en este rango, conocido como zona muerta o “guard band”, el

servo apaga los drivers del motor.

Page 57: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

45

Si la señal de error no está por debajo de estos 5µs, la electrónica interna

continuará intentado cancelar el minúsculo error, haciendo girar el motor atrás o

adelante en un movimiento conocido como hunting. La electrónica interna tiene

como misión mantener el ancho de los pulsos del monostable interno igual al

ancho de los pulsos de entrada.

Debido a que hay una relación fija entre el ángulo de rotación del potenciómetro y

el ancho del pulso interno, la magnitud de rotación del servo se pude controlar

directamente con el ancho de los pulsos aplicados. En conclusión, el circuito

electrónico integrado en el motor convierte el ancho del pulso de entrada en una

posición determinada del eje de salida.

3.2.2 Ventajas Entre las ventajas que aporta el empleo de un servo están las siguientes:

Poco peso, alto par, buena potencia, fiabilidad, fortaleza (los servos y su

electrónica, normalmente sobreviven a choques y funcionan en ambientes de alta

temperatura, suciedad, humedad y vibraciones), simplicidad, versatilidad y bajo

costo.

En las tiendas de modelismo pueden encontrarse muchos tipos de servomotores

de la casa Futaba, FMA, Multiplex, Sanwa, etc. con par de fuerza que va desde

unos 3Kg/cm y una velocidad de giro de unos 0.22 segundos como el Futaba

FPS3003, hasta el FPS9402 con par de 8 Kilogramos, una velocidad de giro de

0.1 segundos y engranajes metálicos. Aunque para el aprendizaje es suficiente un

servo de los más baratos, los mejores tienen engranes metálicos y mayor

velocidad de giro que junto al par de fuerzas determinan su precio.

Page 58: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

46

3.3 Mecanismo

Un mecanismo, es una estructura interna que hace funcionar algo, en este caso

es un conjunto de piezas interconectadas para realizar una tarea específica,

utilizando sistemas de transmisión como son engranes, poleas, etc.

Se desarrollaron elementos de transmisión simples para lograr los diferentes

estados de la cara animatrónica.

3.3.1 Mecanismo de cuello El cuello está desarrollado con base a dos servos futaba 3003, los cuales

proporcionan 2 grados de libertad (x,y), y la combinación entre ellos nos permiten

realizar círculos.

*Futaba, Sanw, Graupner, 3 fabricantes diferentes de servos, cada uno coloca cables de señal de

diferente color, para diferenciarlos. * PWM, de las siglas en ingles Pulse With Modulation.

Page 59: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

47

3.3.1 Mecanismo de Cuello.

Fig. 3.5 Diagrama esquemático de funcionamiento del cuello.

Page 60: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

48

3.3.2 Mecanismo de CEJAS y PÁRPADOS.

Fig. 3.6 Diagrama esquemático de párpados y cejas.

Page 61: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

49

3.3.3 Mecanismo de Ojos.

Page 62: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

50

Fig.3.7 Diagrama esquemático de ojos

3.3.4 Mecanismo de BOCA y LABIOS.

Page 63: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

51

Fig. 3.8 Diagrama esquemático de boca y labios.

Page 64: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

52

Fig. 3.9 Vista de la cara robot.

REFERENCIAS 1 Darren Sawicz. “Hobby servo fundamentals”. s/l

Page 65: Animatronic controlado con logica difusa

Capítulo 3 De Lo Mecánico

53

2 John Iovine. “Pic Robotics”. Tab Robotics. Mc Graw Hill,2004, pp. 78-80.

Page 66: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

53

4

DE LO ELECTRÓNICO Introducción.

Los elementos de carácter electrónico contenidos en el animatronic permiten la

comunicación de las personas con el robot, logrando una comunicación gestual

hombre-máquina.

Los elementos de entrada hacen que los elementos de salida funcionen de

manera convencional para denotar expresiones.

4.1 Estructura Básica

En la figura 4.1, se muestra el diagrama básico de conexiones entre las

diferentes partes del sistema electrónico.

Tenemos 2 elementos de entrada que son la fotorresistencia y el micrófono. El

primero de ellos pasa por un convertidor de analógico a digital y llega al

microcontrolador Basic Stamp II. El segundo elemento es un micrófono y de igual

manera es necesario convertir la señal analógica a digital esto se logra utilizando

una computadora ya que ésta, hará el trabajo de la conversión y el procesamiento

del algoritmo de control.

Como elementos de salida tenemos 8 servos, el microcontrolador Pic 16C57, de

la familia Microchip, alojado en el Basic Stamp II proporciona estos pulsos para su

control.

La comunicación que se realiza entre el microcontrolador y la computadora se

realiza por el puerto serie compartiendo datos tanto de entrada como de salida.

Page 67: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

54

De esta manera el micro esta sirviendo como interprete de datos externos en el

caso de la fotorresistencia y como medio de transporte entre la computadora y los

actuadotes mecánicos de la cara robot.

Fig. 4.1 Estructura Básica Electrónica.

Al observar claramente los distintos tipos de electrónica (como potencia, señales,

comunicaciones etc.) que se emplea para su funcionamiento, los circuitos fueron

diseñados en tres módulos separados, los cuales se interconectan entre si para

hacer funcionar la cabeza animatrónica. De esta forma tenemos que:

Page 68: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

55

Módulo 1 Fuente de alimentación para todo el animatrónic

(alimentación para sensores,

alimentación para servos)

Módulo 2 Circuito con dos entradas.

(circuitos convertidores analógico- digital

)

Módulo 3 Circuito de control o de comunicación de PC con MAX MSP*.

(circuito con microcontrolador pic Basic

Stamp” )

4.2 Módulo 1 ( Circuito de alimentación)

Fig. 4.2 Esquema del circuito del módulo 1 (fuentes de alimentación).

Page 69: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

56

El circuito que se muestra en la figura 4.2 es una fuente que toma la alimentación

de la línea de 110-120 volts alternos y los convierte a 12 V rms, este voltaje lo

hace pasar por un puente rectificador de onda completa y por un capacitor de

4700µf obteniendo de esta manera:

Vo (sin carga) =Vsec x 1.4142 (1)

Vo = 12 x 1.4142 = 16.97

Este valor de (Vo) después de pasar por el capacitor, se obtiene un voltaje en

corriente directa.

El voltaje de salida obtenido (Vo) entra en los reguladores de voltaje, para el caso

del regulador 7805 el voltaje mínimo de entrada para la regulación es de 7.3

Volts, y para el 7809 es de 11.5 Volts.

Para diseñar un circuito que tenga como salida 6 volts, es necesario utilizar un

diodo zener de 6.8V y hacer el cálculo de la resistencia Rs, y lo obtenemos

calculando primero la corriente de base del transistor 2N3055, y teniendo que la

β típica es 34 aproximadamente:

Ib = Ie / β (2)

Ib = 800mA / 34 = 23.52 mA Luego se calcula la corriente (Is) y la corriente típica del diodo Zener 1N4736 es

de 37mA

Is = Iz – Ib (3)

Is = 37mA – 23.52mA = 13.48mA Finalmente, con el voltaje del diodo Zener igual a 6.8V tenemos que:

Page 70: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

57

Rs = (Vo – VZ) (4) Is

Rs = (16.97V – 6.8V) = 754.45Ω 13.48mA

Para calcular el voltaje que tendremos de salida es necesario utilizar la ecuación

siguiente: Vo = Vz-VBE (5)

Vo= 6.8V – 0.7V = 6.1V

VCE = Vi – Vo (6)

VCE = 16.97 –6.1 = 10.87V

Todos los voltajes obtenidos en este circuito sirven para alimentar las otras

etapas, el voltaje de 5 volts alimentará a la etapa del convertidor analógica digital

(módulo 1) que toma la información de la fotorresistencia, el voltaje de 6V servirá

para alimentar a los 8 servos Futaba 3003 aunque estos pueden funcionar

también con el de 5 volts, y finalmente el voltaje de 9V alimentará al

microcontrolador (módulo 3).

Page 71: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

58

Fig.4.3 Vista del circuito de alimentación (módulo 1).

4.3 Módulo 2 (circuito de entradas)

Para el módulo 2, fue necesario tomar algunos criterios de diseño, ya que las

señales de entrada son analógicas, y es necesario convertirlas a digital, los

convertidores analógico-digital como los ADC 0801 [ 1] a 05, son convertidores de

8 bits en paralelo, lo que nos representa utilizar 8 pines de un puerto en un

microcontrolador, reduciendo de esta manera el número de pines de entrada /

salida de cada puerto. Es por esto que fue necesario utilizar el ADC 0831, que es

un convertidor analógico digital de 8 bits pero en serie, utilizando de esta manera

un pin, el cual transmitirá el paquete de 8 bits al micrcontrolador.

Page 72: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

59

Fig. 4.4 a) convertidor analógica digital en paralelo, b) convertidor analógica digital en serie.

4.3.1 Circuitos de entrada. Debido a que se necesita tener una comunicación con el mundo exterior, fue

necesario dotar al robot con transductores* los cuales transformarán en este caso

la luz y el sonido en electricidad, ya que esta medición es analógica, es necesario

hacer una conversión a digital, obteniendo de ésta niveles, que pueden ser

interpretados por el microcontrolador.

Los elementos de entrada que se utilizaron fueron una fotorresistencia y un

micrófono.

*Transductores- son elementos que convierten una variable física como la luz, el ruido, la

temperatura en una señal de voltaje.

Page 73: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

60

Fig. 4.5 Símbolos para fotorresistencia (a) y micrófono (b).

Las Fotorresistencias funcionan alterando su nivel de resistencia en funcion de la

luz que incide, esto es, cuando tiene un nivel alto de luz, su resistencia es de unos

cuantos ohms, y conforme se obscurece ésta se eleva hasta 1 Mega (MΩ), según

sea la capacidad de la misma.

Debido a que necesitamos acondicionar este valor, es necesario realizar un divisor

de tensión, el cual nos dará niveles de voltaje para poder utilizar esta señal.

Fig. 4.6 Diagrama de un divisor de tensión.

Para poder calcular el valor de RA, es necesario conocer el valor de RB máximo

y RB mínimo que deseamos manejar, en este caso es:

Page 74: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

61

Nivel expuesto de luz dado por una

luminaria de dos lámparas incandescentes.

Valor dado por la fotorresistencia

nivel mínimo de luz (luminaria apagada) 1M Ω

nivel máximo de luz (luminaria

encendida)

1kΩ

Tabla 4.2 Valores de resistencia dados pro la luz.

Una vez teniendo estos valores, será necesario definir un rango de voltaje de

salida, (V out), el rango que manejaremos será de 0 a 4.5 + .5 Volts. Nuestro

voltaje de alimentación, (Vcc ) será de 5 volts.

Vout = Vcc (RB) (7) RA + RB

Sustituyendo los valores para nivel máximo de voltaje deseado tenemos que V

out =4.5 RB = 1MΩ.

4.5v = 5V (1MΩ) RA + (1MΩ)

Despejando RA:

RA = 5V (1MΩ) - (1MΩ) = 111111 ≈ 110kΩ 4.5V

Utilizando el valor de RA =110kΩ y RB = 1kΩ tenemos que el voltaje mínimo de

salida será:

Vout = 5V (1kΩ) = 0.045V 110kΩ + (1kΩ)

Page 75: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

62

De esta manera el intervalo de voltaje de salida será de 0.045 a 4.5v.

De igual manera fue necesario acondicionar la señal dada por el micrófono.

Ya que la señal de salida es de apenas unos cuantos milivolts, se empleó un

micrófono con conexión a computadora así como el procesador de señales

interno de la misma. Esto nos permitió manipular esta señal de un modo más

fácil.

Fig. 4.7 Vista del circuito de entradas a convertidor analógico / digital

(módulo 2). 4.4 Módulo 3 [circuito de control (microcontrolador)]. La constante investigación en el rubro de las computadoras determina en su

mayoría el desarrollo de la electrónica actual. El (CPU)*, esta caja negra oculta en

sus entrañas programas y funciones que facilitan tareas. Este dispositivo utiliza

elementos que conectan al procesador con el mundo exterior, como los tan

conocidos teclado, ratón, impresora y el monitor, siendo estos una interfaz con el

humano.

Page 76: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

63

De igual manera existen en todo el mundo pequeñas computadoras programadas

para hacer funciones específicas, ya sea dentro de una lavadora, en una

grabadora o inclusive en una cerradura de puerta. Estas microcomputadoras

realizan cálculos silenciosos y corren programas para realizar trabajos específicos

sin interactuar con ningún humano, estos pequeños soldados son llamados

microcontroladores.

Estos microcontroladores, proporcionan en un espacio reducido una gran

capacidad de control.

Se llaman microcontroladores porque micro significa pequeño y controlador

porque controlan a otras máquinas e inclusive a otros microcontroladores.

Por definición entonces, son diseñados para ser conectados con máquinas y no

con personas.

Ya que podemos programarles instrucciones y trabajan automáticamente son de

gran utilidad en la construcción de máquinas y artefactos

Existen en el mercado cientos e inclusive miles de variaciones diferentes de

microcontroladores. Algunos sólo son programados una vez denominados OTP* y

producidos para aplicaciones específicas, tales como controlar un horno de

microondas etc. Otros son reprogramables que quiere decir que pueden ser

usados una y varias veces y son usados principalmente para desarrollo ya que en

ocasiones se necesitan hacer una gran cantidad de pruebas, estos pueden ser

E^2PROM* o UVPROM*.

_______________________________________________________________________________

*CPU - De sus siglas en inglés Central Process Unit.

*OTP - De sus siglas en inglés One time Programming.

*UVPROM - De sus siglas en Inglés Ultra Violet Programmable Read Only Memory.

* E^2PROM - De sus siglas en inglés Electrical Erasable Programmable Read Only Memory.

Page 77: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

64

Los Microcontroladores son increiblemente versátiles, el mismo dispositivo puede

controlar un aeromodelo, un robot, una tostadora, o inclusive el sistema de frenado

de un vehículo.

Existen diferentes marcas y capacidades de microcontroladores, entre ellas

tenemos a la familia COP8 de National Semiconductors, Los pics de Microchip, y

la familia HC11 de Motorola, entre otros.

Page 78: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

65

4.4.1 Basic Stamp

Debido a que se requiere de un microcontrolador de uso sencillo para poder

interpretar tanto las entradas como las salidas, se usó el Basic Stamp. Este

mircrocontrolador es un conjunto sofisticado de circuitos, todos ensamblados en

una pequeña plaqueta de circuito impreso.

La escritura de programas para el Basic Stamp II se realiza con la versión especial

del lenguaje BASIC (se llama PBASIC).

La mayoría de los otros microcontroladores requieren alguna forma de

programación que puede ser muy difícil de aprender. Con el BASIC Stamp II [ 2],

uno puede crear circuitos simples y programas rápidos. Sin embargo, no se debe

pensar que todo lo que el Basic StampII puede hacer son cosas simples. Muchos

productos comerciales sofisticados han sido creados y vendidos usando un Basic

Stamp como cerebro.

Cuando creamos dispositivos que tienen un microcontrolador actuando como un

“cerebro”, en muchas formas estamos tratando de imitar cómo actúa nuestro

cuerpo.

El cerebro necesita cierta información para tomar decisiones. Esta información es

obtenida a través de varios sensores, como la vista, el oído, el tacto, etc. Estos

sensores detectan lo que nosotros llamamos el mundo real o mundo exterior, y

envían esa información al cerebro para procesamiento. Recíprocamente, cuando

su cerebro toma una decisión, manda señales a través de su cuerpo para hacer

algo en el mundo exterior.

Utilizando las entradas de sus sentidos y las salidas de sus extremidades, el

cerebro se está comunicando e interactuando con el mundo exterior.

Page 79: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

66

En general podemos decir que los microcontroladores se basan en “entrada/

decisión/ salida “

Fig. 4.8 Diagrama del circuito Basic Stamp II.

Page 80: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

67

4.4.1.1 PBASIC2 Circuito intérprete (U1).

El cerebro del BS2 es un microcontrolador PIC16c57 (U1), este circuito integrado,

está permanentemente programado con el set de instrucciones del PBASIC2.

Cuando se programa el BS2 le esta diciendo a U1 que almacene símbolos y que

llame información de la memoria EEPROM (U2). Cuando se programa corridas,

U1 extrae información de la memoria (U2), las interpreta como instrucciones de

PBASIC2 y ejecuta esas instrucciones.

U1 ejecuta su programa interno a una velocidad de 5 millones de instrucciones por

segundo, muchas instrucciones internas van adentro de instrucciones sencillas del

PBSIC2, debido a esto, el PBASIC2, ejecuta instrucciones más lento,

aproximadamente entre 3000 y 4000 instrucciones por segundo.

El microcontrolador PIC16C57 tiene 20 pines de entrada /salida en el circuito del

BS2, 16 de estos pines están habilitados para uso general en los programas, dos

de las 4 restantes, son usadas para la comunicación serial , las últimas dos son

utilizadas únicamente para hacer la interfaz con la memoria EEPROM .

Los pines P0 al P15 son pines de entrada/salida y pueden conectarse con

componentes lógicos de 5Volts, tanto con tecnología TTL (transistor-transistor

logic) y con CMOS (complementary metal -oxide semiconductor).

El direccionamiento de entrada o salida, de cualquier pin está directamente

controlado bajo programa, cuando un pin está configurado como entrada, éste

tiene un efecto muy pequeño con circuitos conectados a él, con un mínimo de 1

micro-Ampere fluyendo tanto a la entrada como a la salida.

Existen dos razones para configurar un pin como entrada, la primera es para leer

un estado de entrada ya sea 1 o 0, producida por un circuito externo, y la segunda

Page 81: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

68

para desconectar los drivers de salida del pin. Para un bajo consumo de

corriente, las entradas deberán ser siempre cercanas a los 5V o tierra.

Cuando un pin está configurado como salida, está internamente conectado a tierra

o a 5Volts a través de un eficiente interruptor CMOS.

4.4.1.2 Chip de memoria borrable de 2048-bytes.

El componente U1 es un chip que viene programado de fábrica, y no puede ser

reprogramado, este tipo de chips reciben el nombre de OTP*. De esta manera los

programas que se realicen serán almacenados en otro lugar. Este es el propósito

del chip U2, el 24LC16b es una EEPROM que es un chip que puede ser borrado

eléctricamente. Este tipo de memorias son buenas para ser utilizadas como

almacén ya que guardan la información aun sin necesidad de energía y pueden

ser reprogramadas fácilmente.

Las EEPROMs tienen dos limitaciones: (1) Se tardan un tiempo relativamente

largo (aproximadamente unos cuantos milisegundos) para escribir datos en

memoria, la (2) nos dice que tiene un número limitado de grabaciones,

(aproximadamente de 10 millones) antes de caducar. Si nos ponemos a pensar,

nos daremos cuenta de que el propósito general de la EEPROM, “es almacenar”,

de esta manera tenemos 10 millones de oportunidades de escribir y cargar

programas.

Cuando el voltaje de alimentación está arriba de 4 volts, U3 manda una señal para

que su salida se vaya a un nivel alto a través de la resistencia de 4.7k a un nivel

de 5 volts, que de igual manera manda un nivel alto a la entrada de U1 (MCLR*),

por ende, U1 inicia su programa interno desde el principio y da por resultado que

el PBASIC2 empiece su programación desde el principio.

Page 82: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

69

4.4.1.3 Circuito de Reset (U3).

Cuando uno prende por primera vez el BS2, le toma al voltaje una fracción de

segundo alcanzar el voltaje de operación, durante la operación, las baterias

débiles, varían su voltaje de entrada, esto puede causar que el voltaje de

operación se salga de su rango. Cuando esto sucede los procesadores y los chips

de memoria (U1 y U2) producen errores o se bloquean. Para prevenir esto , U1

deberá ser detenido o reseteado hasta que el voltaje sea estabilizado. Este es el

trabajo que realiza el S-8045HN circuito de reset. Cuando el voltaje de

alimentación es menor que 4 votls, U3 manda un nivel bajo al circuito U1

directamente sobre la entrada master-clear reset (MCLR*). Esto para a U1 y hace

que todos los pines de entrada/salida se desconecten. En el reset U1, esta

dormido pero inerte.

4.4.1.4 Fuente de alimentación (U4). La referencia anterior nos da una idea de cuan importante es tener una fuente de

alimentación confiable para correr adecuadamente el BS2.

El componente S-81350HG (U4) es un regulador de 5 volts, este dispositivo

acepta niveles de voltaje arriba de los 5 V hasta los 15V, y nos entrega 5 volts

regulados, este regulador de voltaje demanda muy poca corriente para sí mismo,

así que cuando el programa le exige al BS2 que se vaya al estado de dormir en

bajo consumo, la corriente total que consume será de 100 microamperes, cuando

el BS2 está activo, consume aproximadamente 8mA. Desde que U4 puede

proveer aproximadamente 50mA, la mayoría de su capacidad está habilitada para

alimentar nuestro pequeño circuito.

__________________________________________________________________

* MCLR, son las siglas en inglés de Master- Clear Reset, reseteo maestro de limpieza

Page 83: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

70

Fig. 4.9 Vista de microcontrolador BASIC STAMP II (módulo 3).

4.4.1.5 Comunicación serial. La comunicación entre la computadora y el microcontrolador fue hecha por el

puerto serie, ya que éste nos proporciona una buena velocidad de transmisión de

datos facilitándonos la velocidad de respuesta del animatronic.

Internamente el Basic Stamp II tiene un chip RS-232 que interpreta los datos

enviados por la computadora y adecúa las señales para su manejo, pero éste es

utilizado para programar el microcontrolador del Stamp.

En la figura 4.10 [ 3] se muestra el conector DB9 que se conecta al puerto serie

de la computadora y éste hace posible la comunicación con el Stamp.

Los pines 2, 3 y 5 que son respectivamente enviar, recibir y tierra se conectan a

dos pines cualquiera de los 16 pines del Basic, y deben ser configurados como

entrada o salida según sea el caso.

Page 84: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

71

Fig. 4.10 Patas usadas en el puerto serie.

La resistencia que se utiliza en la pata 3 es de 22 k Ω es necesaria ya que limita

la corriente, protege y mantiene el voltaje en un rango seguro.

Page 85: Animatronic controlado con logica difusa

Capítulo 4 De Lo Electrónico

72

REFERENCIAS

1 Parallax Inc. Basic Stamp II “Analógico y Digital básicos, guía del estudiante”. www.parallax.com Agosto 1999, pp. 43-51 2 Parallax Inc. Basic Stamp Manual 1.9, “BS2 Hardware” s/m1998,pp. 207-213. 3 Parallax Inc. Basic Stamp Manual 1.9, “SERIN, SEROUT” s/m1998,pp. 309,320.

Page 86: Animatronic controlado con logica difusa

Capítulo 5 Del Control

73

5

DEL CONTROL

Introducción. El principal objetivo de la lógica difusa, citando lo que Zadeh [1 ] menciona, es

proveer un sistema de conceptos y técnicas computacionales para manejar

formas de razonamiento que sean aproximadas y no precisamente exactas.

La principal motivación de la lógica difusa es la posibilidad de explotar la tolerancia

para algunas inexactitudes e imprecisiones.

La lógica difusa y la lógica clásica se diferencian una de otra en que una puede

manejar manipulaciones tanto matemáticas como simbólicas mientras que la otra

no.

En lógica difusa, el razonamiento exacto está considerado en ser el caso límite de

del razonamiento aproximado.

5.1 Diseño del controlador por medio de lógica difusa.

El control difuso que se diseñó, es para controlar las diferentes partes de la

cabeza animatrónica, obteniendo con esto diferentes tipos de expresión según sea

el estímulo de entrada.

5.1.1 Planteamiento del Problema.

Se desea realizar un control de dos entradas (estimulo E1, E2) y una salida o

posicionamiento en servos S1 para cada uno de los elementos de la cara robot,

Page 87: Animatronic controlado con logica difusa

Capítulo 5 Del Control

74

obteniendo de esta manera una sumatoria de dichos elementos, como son ojos,

párpados, cejas, boca, cuello etc.

Fig. 5.1 Diagrama entradas-salidas.

ENTRADAS SALIDAS

Luz, 64 estados , 6 bits Párpados , 3 posiciones, (izquierda,

centro, derecha)

Ruido Ambiente, 64 estados, 6 bits Boca , 3 posiciones, (izquierda, centro,

derecha)

Cejas, 3 posiciones, (izquierda, centro,

derecha)

Ojos, 3 posiciones, (izquierda, centro,

derecha)

Movimiento de Cabeza, (cuello 8

posiciones )

Tabla 5.1 Definición de entradas y salidas

Page 88: Animatronic controlado con logica difusa

Capítulo 5 Del Control

75

5.1.2 Definición de los Conjuntos Difusos.

Variables Lingüísticas

Se definen 3 variables lingüísticas para cada una de las variables del proceso de

entrada.

Entrada E1 Luz

Variable lingüística Descripción

CL = Cero Luz Nivel cero de iluminación

L = Luz Nivel medio de iluminación

ML = Mucha Luz Nivel alto de iluminación

Entrada E2 Ruido Variable lingüística Descripción

CL = Cero ruido Nivel cero de ruido

L = Ruido Nivel medio de ruido

ML = Mucho Ruido Nivel alto de ruido

Se definen 3 variables lingüísticas para cada una de las variables de salida.

Salida S1 Párpados Variable lingüística Descripción

C = Cerrados Los párpados completamente cerrados

M = Medio abiertos Los párpados ligeramente arriba del ojo

A = Muy abiertos Los párpados completamente abiertos

Page 89: Animatronic controlado con logica difusa

Capítulo 5 Del Control

76

Salida S2 Ojos Variable lingüística Descripción

I = Izquierda Los ojos en dirección izquierda

M = Medio Los ojos en el centro

D = Derecha Los ojos en dirección derecha

Salida S3 Boca Variable lingüística Descripción

C = Cerrada Boca completamente cerrada

M = Medio abierta Boca en posición media de abertura

A = Muy abierta Boca completamente abierta

Salida S4 Cejas

Variable lingüística Descripción

A = Arriba Cejas completamente arriba

M = Medio Cejas en posición media

B = Bajo Cejas completamente abajo

Page 90: Animatronic controlado con logica difusa

Capítulo 5 Del Control

77

5.1.3 Funciones de Pertenencia.

Fig. 5.2 Funciones de pertenencia (entradas E1 y E2 luz y ruido).

En la gráfica de la figura 5.2 se muestra en el eje de las X, cómo todo se normaliza

a uno, en el eje de las Y tenemos uno escala del 1 al 64, que es el resultado en

digital de la conversión analógica a digital, tanto de intensidad luminosa como nivel

del ruido.

Page 91: Animatronic controlado con logica difusa

Capítulo 5 Del Control

78

Fig. 5.3 Funciones de pertenencia (Salidas S1 y S2 Párpados, ojos).

Page 92: Animatronic controlado con logica difusa

Capítulo 5 Del Control

79

Fig. 5.4 Funciones de pertenencia (Salidas S3 y S4 Boca, Cejas).

De igual manera en las funciones de pertenencia hechas para la salida, en el

plano de las Y tenemos todo normalizado igual a uno, en el eje de las X tenemos

los valores de salida para los servos en pulsos, ya que los servos tienen un rango

de movimiento de 310 a 1000 pulsos y esto traducido a grados nos da un rango de

0° a 180°.

Los rangos son diferentes para cada salida ya que la salida mecánica está limitada

y los rangos definidos en las funciones son los adecuados para una movilidad

correcta.

Page 93: Animatronic controlado con logica difusa

Capítulo 5 Del Control

80

Tabla de reglas:

CEJAS

C L L M L

C R C M A

R M M A

M R M A A

Tabla. 5.2 Reglas para cejas.

OJOS

C L L M L

C R C M A

R M M A

M R M A A

Tabla. 5.3 Reglas para ojos. BOCA

C L L M L

C R C M A

R M M A

M R M A A

Tabla. 5.4 Reglas para boca.

PÁRPADOS

C L L M L

C R C M A

R M M A

M R M A A

Tabla. 5.5 Reglas para párpados.

Page 94: Animatronic controlado con logica difusa

Capítulo 5 Del Control

81

Las matrices difusas que se muestran en las tablas 5.2. a la 5.5, incluyen las 9

reglas que determinan totalmente la respuesta del controlador para cada una de

las entradas.

5. 1.4 Procesamiento Difuso y Obtención de la Acción de Control

Como se muestra en la sección anterior, las premisas o condiciones de las reglas,

están unidas por una ”Y” lógica[ 2], es decir, para que una regla se active, se

tienen que cumplir ambas condiciones; a su vez, las 9 reglas se relacionan entre sí

por medio de un “O” lógica , esto es , que se puede activar una u otra regla o bien

otras reglas.

Se calculan previamente los centroides de las funciones de pertenencia definidas

para el Flujo, dado que las funciones consideradas son simétricas, el cálculo del

centroide se reduce al producto punto entre el vector formado por los 3 centroides

y el vector formado por los 3 grados de pertenencias , entre este mismo vector. C = [C_I C_M C_D]

Donde: C = Vector de centroides

C_I = Centroide de la función de pertenencia I C_M = Centroide de la función de pertenencia M

C_D = Centroide de la función de pertenencia D

Y el vector formado por los grados de pertenencia de los consecuentes activados

por las reglas.

GP = [GP_I GP_M GP_D] De esta manera nos queda que:

CD s1= (C_I xGP_I + C_M x GP_M + C_D x GP_D) / (GP_I +GP_M +GP_D)

Page 95: Animatronic controlado con logica difusa

Capítulo 5 Del Control

82

Donde CD s1 = centroide difuso servo 1

De igual manera se requiere de hacer el mismo procedimiento para cada uno de

los servos de la cara, desde S1 (servo 1) hasta S4 (servo 4)

La sumatoria de cada una de estas acciones de control, nos darán por resultado

un estado de ánimo marcado.

Page 96: Animatronic controlado con logica difusa

Capítulo 5 Del Control

83

REFERENCIAS 1 Ali Zilouchian Mo Jamshidi (2001), Intelligen Control Systems Using Soft Computing Methodologies, CRC press LLC, pp 175. 2 Gabriela Cerezo Leal y Eduardo Gómez Ramírez “Diseño y Simulación de un Controlador Difuso” ,Universidad de Sheffield, Reino Unido y Centro de Investigación, Universidad La Salle

Page 97: Animatronic controlado con logica difusa

84

Conclusiones

Esta tesis está enfocada a la investigación y desarrollo de mecanismos y

sistemas electrónicos para la fabricación y el control de una cara robot, que al

fingir vida entra en lo ya definido como animatronic.

El resultado principal de esta tesis es el desarrollar una interfaz mucho más

amigable y natural entre el ser humano y las máquinas, utilizando como base la

interfaz natural entre humanos como lo es la expresión gestual, siendo este un

tema tratado cono anterioridad y existiendo caras robot como Kismet, Mexi, y Doc.

Beardsley, entre otras, desafortunadamente la información que se puede

conseguir al respecto de estos trabajos es poco accesible en la forma de

elaboración y algoritmos empleados, dándo pie al desarrollo de esta investigación,

y la importancia de desarrollar mecanismos y electrónica de bajo costo para su

elaboración.

Al explorar el código emotivo a través de la expresión gestual nos permite

establecer una relación mucho más natural en términos de comunicación,

permitiéndonos entender estados de ánimo, afirmando con esto la coexistencia

entre seres y logrando por consecuencia una empatía con las máquinas. El

observar que una estructura tiene rasgos similares a los vistos en los seres vivos y

añadiendo movilidad, nos produce una sensación de vida, y uno cree que está

interactuando con un ser vivo.

Esta tesis también propone el entender la distancia que existe entre la robótica

teatral, utilizada desde ya tiempo atrás por grandes cineastas y parques temáticos,

y lo desarrollado por los centros de investigación, creyendo que la distancia entre

ellos será cada vez más corta.

En los primeros capítulos al plantear los términos de robot y animatronic se topó

con la necesidad de clasificar a los robots, teniendo como base algunos libros. Se

Page 98: Animatronic controlado con logica difusa

85

consideró el hecho de que no abarcaban todas las categorías de los robots dando

pie a realizar una tipología propia, tratando de abarcar todos los ámbitos en los

que los robots se han desarrollado (Capítulo 1 página 8 Fig. 1.7).

De igual manera fue necesario encontrar un punto de unión para los animatronics

y los robots, proponiendo de esta manera una tipología para títeres o marionetas.

(Capitulo 1 pagina 16 Fig. 1.14).

La necesidad de construir una máquina capaz de transmitir expresiones con base

a una programación definida, es el encontrar vínculos entre el estímulo respuesta

del pensamiento humano, al entender un poco estos estímulos nos llevó a

proponer un algoritmo con base a la lógica difusa, siendo esta mucho más

parecida a la manera de responder de las personas, ya que trabaja con elementos

no bivalentes y con una especie de procesamiento en paralelo, permitiéndonos

manejar grados de pertenencia.

Al manejar la lógica difusa, las variables lingüísticas nos acercan mucho más al

modelado del comportamiento con base a la comunicación humana ya que

nosotros trabajamos con palabras.

En la necesidad de construcción de elementos mecánicos planteado en el

capítulo 3 , fue necesario utilizar técnicas de construcción de animatronics para

poder resolver los movimientos faciales, dando suavidad a estos movimientos

independientes uno de otro, ya que la robótica teatral permite manejar un gran

número de actuadores con un consumo mínimo de energía.

Tomando como base al capítulo 4 la electrónica propuesta está limitada a

responder a dos estímulos externos, propuestos por una fotorresistencia y un

micrófono.

La primera estructura para realizar la electrónica se muestra en la figura C1, esta

Page 99: Animatronic controlado con logica difusa

86

demandaba demasiadas funciones en el micro, como lo era el contener todo el

algoritmo de de lógica difusa, así como las instrucciones para movimiento de

servos. Por otro lado el diseñar y construir preamplificadores de audio para

acoplar la señal del micrófono al convertidor analógico-digital, nos llevó a realizar

pruebas con dos fotorresistencias haciendo las pruebas mucho más baratas y

rápidas, probando de esta manera la eficiencia del programa.

Fig. C1. Primera estructura Básica de lo electrónico.

Los resultados de estas pruebas nos hicieron darnos cuenta de que el algoritmo

era demasiado pesado para la capacidad del microcontrolador ya que la velocidad

en función del estímulo-respuesta del animatronic era lenta. Ésta se puede

mejorar utilizando otro microcontrolador como el HC12 ya que por construcción

trae instrucciones para lógica difusa.

Las observaciones antes mencionadas nos hicieron buscar otra alternativa que

nos resolviera la parte del audio y la velocidad de respuesta de la cara robótica.

De esta manera se empleó una computadora que nos resolviera la velocidad de

procesamiento así como la conversión analógica–digital del audio, utilizando el

programa Max MSP y comunicándonos con el microcontrolador vía puerto serie,

Page 100: Animatronic controlado con logica difusa

87

mejorando con esto la velocidad de estímulo-respuesta.

La sustitución de este elemento facilitó la realización de la siguiente aproximación

del funcionamiento del algoritmo de control y teniendo como base esta experiencia

para trabajos posteriores.

Page 101: Animatronic controlado con logica difusa

Apéndice 1 Cómo Funciona

88

APÉNDICE 1

Cómo Funciona Introducción

El conjunto de mecanismos y electrónica determinada por el conjunto de

reglas, dan una serie de combinaciones que nos permite entender las

expresiones logradas por el robot.

Es importante entender el funcionamiento y limitaciones del personaje

(animatronic), ya que mecánicamente puede estar limitado por el diseño y no

lograr identificar la expresión deseada.

Condiciones de movilidad

La cabeza animatrónica, tiene en funcionamiento 8 movimientos controlados.

Cuello, 2 grados de libertad, izquierda-derecha, arriba-abajo, su

funcionamiento son en dos ejes, tanto en x como en y, además presenta los

grados de libertad derivados como son el resultante de la combinación de los

dos primeros.

Ojos, 1 grado de libertad, izquierda-derecha, su funcionamiento ubica la

mirada de la máquina en posición asignada.

Párpados, 1 grado de libertad, arriba-abajo, su funcionamiento está en el

rango de abrir ojos, dejarlos entre abiertos, o completamente cerrados.

Cejas, 1 grado de libertad, arriba-abajo, su funcionamiento está en el rango de

levantar cejas o de contraerlas.

Page 102: Animatronic controlado con logica difusa

Apéndice 1 Cómo Funciona

89

Boca, 1 grado de libertad, contiene movilidad en labios, la boca por sí sola

tiene la movilidad de abrir y cerrar.

Labios, 2 grados de libertad, movilidad labio izquierdo, movilidad labio

derecho, su funcionamiento es según sea la combinación para denotar tristeza,

felicidad o disgusto.

Cada uno de los servos tiene un límite de desplazamiento mecánico, esto es

que el sistema mecánico está limitado y no usa toda la carrera de

desplazamiento a la salida del servo, de esta manera los grados están

limitados, para el buen funcionamiento del mecanismo.

Cada servo maneja tres posiciones, facilitando con esto la respuesta en el

movimiento.

Tabla A1.1 Rangos de operación de los servos.

Posiciones Extremo izquierdo Central Extremo Derecho

Párpados 52 ° 83.2° 114.4°

Cejas 0° 89.7° 180°

Ojos 62.4° 120.9° 180°

Boca 62.4° 88.4° 114.4°

Labio izquierdo 88.4° 101.4° 114.4°

Labio derecho 114.4° 127.4° 140.4°

Cuello

Arriba –abajo

90°

180°

Cuello

Izquierda -derecha

90°

180°

Page 103: Animatronic controlado con logica difusa

Apéndice 1 Cómo Funciona

90

El algoritmo de control que se realizó y probó, fue enfocado únicamente a la

movilidad de cejas, boca, y párpados, ya que son una primera aproximación

para determinar cierta emoción.

Boca párpados Cejas 1 I I I 2 I I C 3 I I D 4 I C I 5 I C C 6 I C D 7 I D I 8 I D C 9 I D D 10 C I I 11 C I C 12 C I D 13 C C I 14 C C C 15 C C D 16 C D I 17 C D C 18 C D D 19 D I I 20 D I C 21 D I D 22 D C I 23 D C C 24 D C D 25 D D I 26 D D C 27 D D D

TABLA A1.2 Combinaciones para las tres posiciones de los servos Donde I =posición izquierda, C = posición central, D = posición derecha.

Page 104: Animatronic controlado con logica difusa

Apéndice 1 Cómo Funciona

91

Fig. A.3 a) Estados del 1 al 9 de la cara robot.

Page 105: Animatronic controlado con logica difusa

Apéndice 1 Cómo Funciona

92

Fig. A.3 b) Estados del 10 al 18 de la cara robot.

Page 106: Animatronic controlado con logica difusa

Apéndice 1 Cómo Funciona

93

Fig. A.3 c) Estados del 19 al 27 de la cara robot.

Page 107: Animatronic controlado con logica difusa

Apéndice 1 Cómo Funciona

94

Dentro del contexto, que es buscar algoritmos que simulen emociones, es

necesario tener en cuenta algunas definiciones:

Emoción, es cualquier sentimiento de magnitud fuerte que te envuelve y es

físicamente evidente de esta manera afecta el proceso mental del individuo

como por ejemplo enojo miedo o regocijo.

Personalidad, son las conductas y las características que distinguen al ser

humano.

Actitud, se entiende como la disposición tomada, o el estado mental, en torno

a una proposición o situación particular.

Page 108: Animatronic controlado con logica difusa

Apéndice 2 Programación

95

APÉNDICE 2 Introducción.

Este apéndice está dedicado a explicar en función de actividades, las tareas que

hace cada parte del sistema que controla la cara animatrónica, así como los

programas que lo resuelven.

Tanto la computadora como el microcontrolador tienen tareas especificas y

depende de la buena comunicación que exista entre ellos que el resultado sea la

expresión deseada.

Fig. A.2.1 Diagrama de tareas.

Page 109: Animatronic controlado con logica difusa

Apéndice 2 Programación

96

A.2.1 Tarea 1

Explicación del programa. Programa en el Basic Stamp II

Las primeras líneas del código, están para dar información y vienen acompañadas

de apóstrofes, a lo largo de todo el programa existen diferentes líneas con

apóstrofe y no tienen ninguna función más allá de brindar información a la

persona que lee el código.

Programación:

'programa 1 'pruebas valores bin adc0831

'declaraciones En esta parte, empezamos por la declaración de variables, en este programa se

utiliza una variable de tipo adcbits, esta variable almacena un dato diferente

proveniente del convertidor analógico-digital (adc0831)

adcbits var word dato var byte

t var word B var word x var word

pulsos var word pulsos1 var word

Las variables pulsos y pulsos 1 nos sirven para almacenar el valor de los pulsos

que se dirigen a los servos.

Page 110: Animatronic controlado con logica difusa

Apéndice 2 Programación

97

resulp var word resulc var word

resulo var word resulb var word Las variables resulp, resulc, resulo, resulb, son de salida y cada una representa el

valor correspondiente en posición de cada servo, siendo párpados, cejas, ojos,

boca.

B = 16572

La comunicación serial es de tipo asíncrona, esto significa que no hay reloj, pero

la transmisión y la recepción debe de realizarse al mismo tiempo y usualmente se

expresa como bits por segundo y esta unidad es llamada Baudio.

El valor de B es la velocidad de transmisión a la cual se realizará la transferencia

de datos por el puerto serie que es de 4800 baudios (8 bits de datos sin paridad)

En las líneas de comando siguiente, son un nuevo tipo de declaraciones, se

definen tres constantes usando la directiva con. Después de definir las

constantes, podemos usar CS en lugar del pin número 13, CLK en lugar del pin 14

y DO con el 15.

CS con 13 CLK con 14 DO con 15

El comando debug, nos muestra la ventana del mismo nombre, en esta ventana

podemos visualizar el valor obtenido del convertidor analógico-digital, agregando

las letras CLS, nos limpia la pantalla debug.

Page 111: Animatronic controlado con logica difusa

Apéndice 2 Programación

98

'inicia ventana debug. debug cls

En esta línea da comienzo todo el programa.

'rutina principal. principal:

gosub ADCDATA gosub DISPLAY gosub LEEDATO gosub COMPARA

goto principal

En este bloque de instrucciones se contiene un bucle de programa, el cual ejecuta

las subrutinas contenidas en el bloque llamado principal hasta regresar al principio

con la instrucción goto principal. El comando gosub, da la orden de ir a la subrutina rotulada ADCDATA y volver al

finalizar su ejecución.

ADCDATA: high CS low CS low CLK

pulsout CLK,210 shiftin DO,CLK,msbpost,[adcbits\6] Serout 10,B,[adcbits] return

El comando high CS, envía una señal de estado alto al pin /CS del ADC0831.

Para iniciar la conversión, necesitamos enviar un estado alto (5 Volts), seguido por

un estado bajo (0 Volts) en la entrada /CS del ADC0831 usando low CS. La señal

enviada a la entrada /CS de ADC0831 debe permanecer en estado bajo durante la

conversión.

Page 112: Animatronic controlado con logica difusa

Apéndice 2 Programación

99

El comando low CLK, es necesario para que los pulsos del reloj tengan la forma

correcta. Al usar este comando se garantiza que al usar la siguiente instrucción,

(pulsout) se enviará una forma de reloj bajo-alto-bajo. El comando pulsout CLK,210 envía un pulso de reloj a la entrada CLK del

ADC0831. Este es el primer pulso de reloj y todo lo que hace es avisar al

ADC0831 que inicie la conversión en el siguiente pulso de reloj. Por este motivo,

no necesitamos controlar el estado de la entrada Do con anterioridad a ese pulso.

Dado que pusimos el reloj en estado bajo justo antes de este comando, pulsout, envía la señal bajo-alto-bajo deseada. La duración en estado alto es dos veces el

número especificado en el comando pulsout, en microsegundos (ųs). 1

ųs=1/1000,000 segundos. Por lo tanto, la duración de este pulso es de 2ųs x 210

= 420ųs.

El comando shiftin Do, CLK, msbpost, (adcbits\6) se encarga de realizar toda la

comunicación serial sincrónica, este comando envía las señales de control a la

entrada CLK del ADC0831 y lee los bits de la salida Do del ADC0831. Este

comando carga cada uno de los bits de salida del ADC 0831 en la variable

adcbits. La ultima línea de comando de este bloque antes del regreso, es Serout, la cual

manda los datos guardados en la variable adcbits por el número de pin que le

sigue en la instrucción y estos llegan al serial de la computadora a la velocidad

antes definida por B

DISPLAY: debug home debug "valor binario de 8-bits: ", bin6 adcbits debug CR, "Valor decimal: ", dec3 adcbits '

Page 113: Animatronic controlado con logica difusa

Apéndice 2 Programación

100

Estas instrucciones le piden al micro que despliegue en pantalla los valores

numéricos decimales de la conversión analógica-digital.

A.2.2 Tarea 2 Explicación del programa MAX MSP.

El programa MAX MSP es un programa de procesamiento de señales diseñado

para músicos ya que este puede representar e intercambiar ondas y sonidos con

otros instrumentos gracias al código midi (musical intruments digital interface).

Este programa fue creado en el 86 por el Instituto de investigación y coordinación

acústica y música en Paris, el creador original fue Miller Pucker, y desde el 91 se

volvió en un producto comercial con nuevas modificaciones hechas por Pucketta y

David Zicarelli. La empresa que lo comercializa y hace la publicidad desde el 2000

– 2004 es Cycling 74. Constantemente se sacan nuevas versiones.

Este programa maneja las señales analógicas y las convierte a digital

facilitándonos con esto el manejo de señales de audio y como la necesidad era

manejar la señal de un micrófono este programa lo resolvió.

Page 114: Animatronic controlado con logica difusa

Apéndice 2 Programación

101

Fig. A.2.2 Pantalla del programa MAX MSP tarea 2.

En la figura A.2.2 se muestra la forma de programar y, como se puede observar,

es muy sencilla ya que basta con unir con líneas los bloques que contienen los

comandos para realizar las funciones deseadas.

Page 115: Animatronic controlado con logica difusa

Apéndice 2 Programación

102

Fig. A.2.2.1 Instrucción serial.

En la figura A.2.2.1 se muestran las primeras instrucciones del programa, la

instrucción serial a 4800 nos indica el uso del puerto serie a, ya que existen

diferentes entradas seriales y el programa las identifica con letras, el número 4800

es la velocidad de transmisión de datos por dicho puerto.

La instrucción metro 50 es una base de tiempo que cada 50 milisegundos emite

disparaos a la caja con un circulo, llamada bang. Esta se ilumina y señala un 1 o

un 0 según sea su estado, nos indica con esto el paso al cual tome los datos por

el puerto serie y los envía a la subrutina p luz rangos fuzzy. Esta caja-instrucción (metro) necesita de un bang para prenderla y una caja con

mensaje de Stop (paro) para apagarla.

Page 116: Animatronic controlado con logica difusa

Apéndice 2 Programación

103

Fig. A.2.3 Pantalla del contenido de la subrutina p luz rangos fuzzy.

Page 117: Animatronic controlado con logica difusa

Apéndice 2 Programación

104

Fig. A.2.3.1 parte de las instrucciones-caja de los niveles de luz.

Los datos que resultan de la conversión analógica-digital mandan la información

del nivel de luz a la subrutina p luz rangos fuzzy, dentro de esta los datos se

separan en rangos de acuerdo a las funciones de pertenencia de entrada E1

(Capítulo 5 Fig. 5.2.3.) que son:

(dato <= 21) (21< dato < 32) (dato = 32) (32< dato <43) (dato > = 43)

Page 118: Animatronic controlado con logica difusa

Apéndice 2 Programación

105

En la figura A.2.2.2 se muestra la primera parte del contenido de la subrutina p luz rangos fuzzy que incluye comandos-caja que separan los valores de acuerdo

a su rango de pertenencia, este valor entra a una expresión matemática para

poder calcular el valor en el eje de las Y, y con esto obtenemos el valor

fuzzificado.

El primer rango como sabemos que el resultado es 1, basta con multiplicar el dato

por 0 y sumarle 1 en el comando-caja exp. Para los otros datos al caer en un rango compartido de acuerdo a la función de

pertenencia, hay que calcular la pendiente y de esta manera podemos obtener el

resultado de la fuzificación, tenemos que:

Ecuación de la recta: y = m x + b

Cálculo de la pendiente m:

m = (y2 - y1) / (x2 - x1) m = (1 - 0) / (32 - 21) = .09

De tal forma que:

y =.09(x - x1) + b

Debido a que esta ecuación se resuelve para intervalos de luz menores a 32 se

tiene que:

y = .09 (32 - x)

Al obtener el valor de y obtenemos el valor normalizado de la función de

pertenencia designado por un triángulo con la variable lingüística Luz, como la

figura de la variable lingüística para Cero luz es la mitad del triangulo de la

variable anterior basta con hacer el complementario del resultado de y Luz para

obtener su resultante en y, de esta forma tenemos que:

y luz =.09 (32-x)

y cero luz = -y luz +1

Page 119: Animatronic controlado con logica difusa

Apéndice 2 Programación

106

De esta manera se resuelve la normalización para los primeros dos intervalos de

las funciones de pertenencia, (0 a 21) (22 a 32), y ya que los rangos (33 a 43) y

(44 a 64) son espejo de los anteriores, basta con cambiar los parámetros:

y = .09 (43 – x)

Esta ecuación no dará el valor normalizado de la variable lingüística mucha luz y

para obtener la parte del triángulo de la variable luz restante sacaremos el valor

complementario a uno.

Y mucha luz =.09 (43 - x) Y luz = -Y mucha luz + 1

Fig. A.2.2.3 Rangos de funciones de pertenencia.

En la figura A.2.2.3 a), b) se muestra la función de pertenencia para Luz y Cero

Luz en el inciso c) se muestra que el rango 21 A 32 son triángulos iguales pero

Page 120: Animatronic controlado con logica difusa

Apéndice 2 Programación

107

invertidos, en el inciso d) se ve que las figuras de las variables lingüísticas son

espejo.

Fig. A.2.4 Subrutina p rangos fuzzy.

En la figura A.2.4 se muestra la programación de la subrutina p rangos fuzzy, en

esta se muestran los rangos de de la variable de entrada del micrófono.

La primera instrucción-caja que observamos en el programa es adc~, esta nos da

salida de audio de un dispositivo de entrada ala computadora y es un convertidor

analógico-digital, permitiendo recibir varios canales de audio, además de recibir y

mandar estas señales, esta instrucción recibe mensajes de prendido y apagado.

La segunda instrucción-caja que observamos es el meter, esta es un indicador

visual de nivel para señal, y puede ser utilizado para cualquier señal entre -1 y 1,

tiene un número determinado de leds* que registran el cambio cada 3 db*, también

Page 121: Animatronic controlado con logica difusa

Apéndice 2 Programación

108

uno pude cambiar la duración de prendido entre un cambio y otro, cuando el

indicador prende su último led, indica el valor máximo que es igual a 1.

Fig. A.2.4.1 Instrucciones adc~, meter.

En la figura A.2.4.1 se muestran las instrucciones que hacen posible la conversión

analógica-digital de la señal del audio, ya que la señal de audio va de -1 a 1, es

necesario utilizar la parte positiva y multiplicarla por 100, de esta manera podemos

tener 50 niveles positivos para manipular, debido a que los decibeles que se

utilizan no llegan a 50, el nivel utilizado será de 0 a 10 para poder manejar los

rangos para la fuzzificación.

Fig. A.2.4.2 Función de pertenencia entrada Ruido.

Page 122: Animatronic controlado con logica difusa

Apéndice 2 Programación

109

Como la función de pertenencia de ruido es idéntica a la de luz, para calcular el

valor de la fuzzificación basta con cambiar los valores de x1, ya que la pendiente

es la misma.

Al observar las cajas de número que salen de cada uno de las subrutinas,

podemos notar que las dos primeras pertenecen al medio trapecio de la función de

pertenencia, las tres del centro al triángulo y las dos últimas al otro medio trapecio,

siguiendo el orden de Cero luz, luz, y mucha luz, cero ruido, ruido, mucho ruido

según sea la entrada.

Fig. A.2.5. valores de salida de los rangos luz y audio.

En la figura A.2.5. Se observa la salida de los rangos para las diferentes formas

geométricas de las funciones de pertenencia provenientes de las entradas luz y

ruido que entran en la subrutina p matriz conjunto de reglas.

Page 123: Animatronic controlado con logica difusa

Apéndice 2 Programación

110

Fig. A.2.6 Subrutina matriz conjunto de reglas.

En la figura A.2.6 se muestran las combinaciones de la matriz a realizar, cuando

un par de valores entran a la caja con el signo + activa la condición

correspondiente y envía el valor a la subrutina p and, or, promedio pasando

primero por indicadores de estado para ver qué condición de la matriz se activó y

verificar con esto su funcionamiento.

Page 124: Animatronic controlado con logica difusa

Apéndice 2 Programación

111

Fig. A.2.6.1 Matriz.

Las entradas a la subrutina matriz conjunto de reglas determinan los valores a

utilizar de acuerdo con las tablas de reglas presentadas en las figuras 5.1.3.1, 5.1.3.2, 5.1.3.3, 5.1.3.4 del capítulo 5, ya que todas son iguales en cuanto a sus

condiciones pero para salidas diferentes, hace que sólo utilicemos una sola tabla

de reglas.

El contenido de la subrutina p and, or, promedio, nos permite cambiar el criterio

de diseño del controlador difuso cuando existen más de una entrada por

condición, haciendo que la respuesta sea máxima, mínima o el promedio, ya que

se puede cambiar la expresión matemática para mejorar su funcionamiento.

Page 125: Animatronic controlado con logica difusa

Apéndice 2 Programación

112

Fig. A.2.7 Subrutina and, or, promedio.

Podemos observar en la figura A.2.7 que se utilizó el criterio del promedio en el

caso de haber dos valores de entrada. Se quiere utilizar otro criterio sería

suficiente con cambiar la instrucción-caja exp ($f1 + $f2)/2 por and y or, cada

una con sus respectivos argumentos.

Los resultados numéricos serán enviados al procesamiento difuso para obtener

después la acción de control.

Page 126: Animatronic controlado con logica difusa

Apéndice 2 Programación

113

Fig. A.2.7 Ultima parte del programa.

A la salida de la subrutina anterior tendremos una matriz de valores numéricos

dispuestos de la misma forma que la matriz visual.

Page 127: Animatronic controlado con logica difusa

Apéndice 2 Programación

114

Fig. A.2.7.1 Subrutinas para procesamiento difuso y acción de control.

Para poder calcular la acción de control fue necesario calcular el centroide difuso,

para lograr esto hay que calcular el centroide de cada una de las figuras

geométricas de las funciones de pertenencia de salida.

Centroide Párpados Cejas Boca Izquierdo 555 453 598 Medio 630 655 650 Derecho 705 857 702

A.2.2.1 Tabla de centroides.

Teniendo esto valores de salida, se sustituyen en la ecuación de centroide difuso: Centroide difuso parpados = (555xGP_I +630xGP_M + 705xGP_D ) / (GP_I + GP_M + GP_D) Centroide difuso cejas = (555xGP_I +630xGP_M + 705xGP_D ) / (GP_I + GP_M + GP_D) Centroide difuso boca = (555xGP_I +630xGP_M + 705xGP_D ) / (GP_I + GP_M + GP_D)

Page 128: Animatronic controlado con logica difusa

Apéndice 2 Programación

115

Fig. A.2.7.2 Contenido de la subrutina p centroide difuso cejas.

Cada una de las subrutinas contiene el mismo programa, pero con diferentes

valores de centroide según sea el servo de salida.

Al realizar pruebas con el programa se encontró que el valor del centroide al tener

una entrada igual a 1 (resultado de la fuzzificación) nos da la salida igual al valor

del centroide, eliminando con esto rangos de operación mecánicos del

mecanismo. Debido a esto fue necesario cambiar los valores del centroide por

los valores de los extremos mecánicos.

Page 129: Animatronic controlado con logica difusa

Apéndice 2 Programación

116

Centroide Parpados Cejas Boca Izquierdo 510 310 550 Medio 630 655 650 Derecho 750 1000 752

Tabla A.2.2.2 Corrección de los extremos.

Fig. A.2.8 Gráfica grados & PWM.

Como podemos observar en la gráfica, el intervalo del ancho de pulso, va desde

(310 a 1000), la relación que existe entre el ancho del pulso y los grados es lineal,

por lo tanto, tenemos que:

Cálculo de la pendiente m:

m = (Y2-Y1)/ (X2-X1) = (180 – 0)/ (1000 – 310) m = 180 / 690 = .26086

m = .260

Page 130: Animatronic controlado con logica difusa

Apéndice 2 Programación

117

Calculando los grados que se moverá el servo de acuerdo al ancho del pulso de la

señal dada por el microcontrolador:

Ejemplo para un PWM de 655.

Y = m (x-x1) + b

Y = .260 (655-310) + 0

Y = 89.7° grados

Este valor como podemos observar es el punto medio de ambos extremos y es

la posición media del servo.

Fig. A.2.8.1 Subrutina grados. Una vez que este valor está en grados hay que adecuar el valor para poderlo

enviar por el serial ya que estamos enviado y transmitiendo, sólo podemos mandar

256 caracteres, código ASCII.

Page 131: Animatronic controlado con logica difusa

Apéndice 2 Programación

118

Fig. A.2.9. Gráfica grados & caracteres.

Para realizar este cambio, nuevamente utilizamos la ecuación de la recta para

obtener el resultado en el eje de las x.

Cálculo de la pendiente:

m = (Y2-Y1)/ (X2-X1) = (180 – 0)/ (63 – 0) m = 180 / 63 = 2.85

m = 2.85 Sustituyendo en la ecuación de la recta:

Párpados: y = m (x-x1) + b

grados = 2.85(x - 0) x = grados / 2.85

Cejas:

y = m (x-x1) + b grados = 2.85(x -64)

x = (grados + 182.4) / 2.85 Boca:

y = m (x-x1) + b grados = 2.85 (x - 128)

x = (grados + 364.8) / 2.85

Page 132: Animatronic controlado con logica difusa

Apéndice 2 Programación

119

Ojos: y = m (x-x1) + b

grados = 2.85 (x - 192) x = (grados + 547.2) / 2.85

Fig. A.2.9.1 Operaciones. El resultado de cada una de los operaciones se unen a una caja de número para

ser enviado de vuelta al microcontrolador por el serial.

A.2.3 Tarea 3 Regreso al microcontrolador.

LEEDATO:

Serin 9,B,[dato] debug dec dato return

El comando Serin trabaja muy parecido al comando Serout pero éste recibe datos

del serial de la computadora, los datos que por éste entran son los valores ya

procesados del algoritmo de control.

COMPARA: if (dato >=0) AND (dato <=63)then PARPADOS

Page 133: Animatronic controlado con logica difusa

Apéndice 2 Programación

120

if (dato >=64) AND (dato<=127) then CEJAS if (dato >=128) AND (dato<=191) then BOCA

if (dato >=192) AND (dato<=255) then OJOS return

En la subrutina con nombre COMPARA, tenemos 4 comandos if then que

esperan los valores enviados por el serial para ver si los valores entran dentro de

los rangos de cejas, boca, parpados u ojos para enviarlos a su respectiva salida.

PARPADOS: resulp = ((dato)*285) /100

if resulp < 0 then LEEDATO if resulp = 181 then LEEDATO pulsos = ((resulp)*100 + 8060) /26 if pulsos = pulsos1 then LEEDATO

Cada una de las subrutinas tienen instrucciones que deben transformar

nuevamente el dato de entrada en pwm, esto se consigue haciendo las

operaciones de regreso pasando por grados hasta llegar al valor deseado.

Para evitar manejar decimales fue necesario multiplicar las cifras por 100 para

utilizar los enteros y reconstruir los valores.

output 12 for x=1 to 100 pulsout 12,pulsos PAUSE 10

next pulsos1 = pulsos goto principal

Page 134: Animatronic controlado con logica difusa

Apéndice 2 Programación

121

CEJAS: resulc = (((dato)-64)*285)/100

if resulc < 0 then LEEDATO if resulc = 181 then LEEDATO pulsos = ((resulc)*100 + 8060) /26 if pulsos = pulsos1 then LEEDATO

output 7 for x=1 to 100 pulsout 7,pulsos PAUSE 10

next pulsos1 = pulsos goto principal

BOCA: resulb = (((dato)-128)*285) /100

if resulb < 0 then LEEDATO if resulb = 181 then LEEDATO pulsos = ((resulb)*100 + 8060) /26 if pulsos = pulsos1 then LEEDATO

output 6 for x=1 to 100 pulsout 6,pulsos PAUSE 10

next pulsos1 = pulsos goto principal OJOS:

resulo = (((dato)-192)*285) /100

Page 135: Animatronic controlado con logica difusa

Apéndice 2 Programación

122

if resulo < 0 then LEEDATO if resulo = 181 then LEEDATO

pulsos = ((resulo)*100 + 8060) /26 if pulsos = pulsos1 then LEEDATO output 5

Esta instrucción hace que el Pin 5 sea de salida.

for x=1 to 100 pulsout 5,pulsos Pulsout nos manda un pulso por el pin 5, muy estable del orden de los

mircorsegundos ya que necesitamos un pulso que dure entre 1 y 2 milisegundos

para controlar el servo.

La variable pulsos nos define el valor que tomará la duración del pulso ya que la

pura instrucción pulsout dura 2 microsegundos, esto es que el valor de pulsos

será multiplicado por 2.

PAUSE 10 next las instrucciones for next hacen un bucle que empieza en 1 y termina en 100

esto es que las instrucciones contenidas hasta el next se realizaran 100 veces.

pulsos1 = pulsos goto principal