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
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
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….
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
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
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
“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)
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.
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.
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.
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.
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…”
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.
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.
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
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
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
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
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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
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.
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.
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.
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.....
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
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.
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Capítulo 3 De Lo Mecánico
47
3.3.1 Mecanismo de Cuello.
Fig. 3.5 Diagrama esquemático de funcionamiento del cuello.
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.
Capítulo 3 De Lo Mecánico
49
3.3.3 Mecanismo de Ojos.
Capítulo 3 De Lo Mecánico
50
Fig.3.7 Diagrama esquemático de ojos
3.3.4 Mecanismo de BOCA y LABIOS.
Capítulo 3 De Lo Mecánico
51
Fig. 3.8 Diagrama esquemático de boca y labios.
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
Capítulo 3 De Lo Mecánico
53
2 John Iovine. “Pic Robotics”. Tab Robotics. Mc Graw Hill,2004, pp. 78-80.
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.
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:
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).
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:
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).
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.
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.
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:
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Ω)
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.
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.
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.
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.
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.
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
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.
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
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.
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.
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.
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,
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
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
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
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.
Capítulo 5 Del Control
78
Fig. 5.3 Funciones de pertenencia (Salidas S1 y S2 Párpados, ojos).
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.
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.
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)
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.
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
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
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
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,
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.
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.
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
0°
90°
180°
Cuello
Izquierda -derecha
0°
90°
180°
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.
Apéndice 1 Cómo Funciona
91
Fig. A.3 a) Estados del 1 al 9 de la cara robot.
Apéndice 1 Cómo Funciona
92
Fig. A.3 b) Estados del 10 al 18 de la cara robot.
Apéndice 1 Cómo Funciona
93
Fig. A.3 c) Estados del 19 al 27 de la cara robot.
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.
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.
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.
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.
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.
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 '
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ó.
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.
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.
Apéndice 2 Programación
103
Fig. A.2.3 Pantalla del contenido de la subrutina p luz rangos fuzzy.
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)
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
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
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
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.
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.
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.
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.
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.
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.
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)
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.
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
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.
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
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
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
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
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