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 AmigoGó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 ¿De dónde viene la palabra robot? 1.2 Tipología de robots.
1 3 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? 1.3.1 ¿De dónde viene la palabra animatronic? 1.3.2 Tipología de títeres.
9 9 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. 1.5.4 Control difuso.
27 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. 3.3.1 Mecanismo de cuello. 3.3.2 Mecanismo de cejas y párpados. 3.3.3 Mecanismo de ojos. 3.3.4 Mecanismo de boca y labios.
46 47 48 49 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)
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.
i
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.
ii
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 como referencia
definiciones que servirán
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.
iii
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.
iv
Capítulo 1
Animatronic
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…”
1
Capítulo 1
Animatronic
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.
2
Capítulo 1
Animatronic
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
dramaturgo checo Karel Capek
novela escrita por el
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.
3
Capítulo 1
Animatronic
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
4
Capítulo 1
Animatronic
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
5
Cap铆tulo 1
Animatronic
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
6
Capítulo 1
Animatronic
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
7
Capítulo 1
Animatronic
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.
8
Capítulo 1
Animatronic
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.
9
Capítulo 1
Animatronic
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
10
Capítulo 1
Animatronic
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.
11
Capítulo 1
Animatronic
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.
12
Capítulo 1
Animatronic
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.
13
Capítulo 1
Animatronic
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.
14
Capítulo 1
Animatronic
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.
15
Capítulo 1
Animatronic
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.
16
Capítulo 1
Animatronic
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.
17
Capítulo 1
Animatronic
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.
18
Capítulo 1
Animatronic
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.
19
Capítulo 1
Animatronic
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.
20
Capítulo 1
Animatronic
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: 21
Capítulo 1
Animatronic
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
22
Capítulo 1
Animatronic
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.
23
Capítulo 1
Animatronic
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.
24
Capítulo 1
Animatronic
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. 25
Capítulo 1
Animatronic
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.....
26
Capítulo 1
Animatronic
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
27
Capítulo 1
Animatronic
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.
28
Capítulo 1
Animatronic
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.unilinz.ac.at/pdw/fuzzy/fuzzy_set.html. 2002 7
S/n “what is a Fuzzy Set? Continued ” en http://www.flll.unilinz.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
29
Capítulo 2
La Propuesta
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.
30
Capítulo 2
La Propuesta
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.
31
Capítulo 2
La Propuesta
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.
32
Capítulo 2
La Propuesta
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
33
Capítulo 2
La Propuesta
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.
34
Capítulo 2
La Propuesta
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.
35
Capítulo 2
La Propuesta
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.
36
Capítulo 2
La Propuesta
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.
37
Capítulo 2
La Propuesta
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
al
lo más parecido
comportamiento del hombre resulta más fácil si es manejada con variables como lo es Enojo, sorpresa, felicidad, tristeza, seriedad, etc.
38
Capítulo 2
La Propuesta
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.
39
Capítulo 3
De Lo Mecánico
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.
40
Capítulo 3
De Lo Mecánico
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.
41
Capítulo 3
De Lo Mecánico
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.
42
Capítulo 3
De Lo Mecánico
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.
43
Capítulo 3
De Lo Mecánico
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.
44
Capítulo 3
De Lo Mecánico
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.
45
Capítulo 3
De Lo Mecánico
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.
46
Capítulo 3
De Lo Mecánico
3.3.1 Mecanismo de Cuello.
Fig. 3.5 Diagrama esquemático de funcionamiento del cuello. 47
Capítulo 3
De Lo Mecánico
3.3.2 Mecanismo de CEJAS y PÁRPADOS.
Fig. 3.6 Diagrama esquemático de párpados y cejas.
48
CapĂtulo 3
De Lo MecĂĄnico
3.3.3 Mecanismo de Ojos.
49
Capítulo 3
De Lo Mecánico Fig.3.7 Diagrama esquemático de ojos
3.3.4 Mecanismo de BOCA y LABIOS.
50
Capítulo 3
De Lo Mecánico
Fig. 3.8 Diagrama esquemático de boca y labios.
51
Capítulo 3
De Lo Mecánico
Fig. 3.9 Vista de la cara robot.
REFERENCIAS 1
Darren Sawicz. “Hobby servo fundamentals”. s/l 52
Capítulo 3
2
De Lo Mecánico
John Iovine. “Pic Robotics”. Tab Robotics. Mc Graw Hill,2004, pp. 78-80.
53
Capítulo 4
De Lo Electrónico
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.
53
Capítulo 4
De Lo Electrónico
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:
54
Capítulo 4
De Lo Electrónico
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).
55
Capítulo 4
De Lo Electrónico
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: 56
Capítulo 4
De Lo Electrónico
Rs = (Vo – VZ) Is Rs = (16.97V – 6.8V) = 754.45Ω 13.48mA
(4)
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).
57
Capítulo 4
De Lo Electrónico
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.
58
Capítulo 4
De Lo Electrónico
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.
59
Capítulo 4
De Lo Electrónico
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:
60
Capítulo 4
De Lo Electrónico
Nivel expuesto de luz dado por una
Valor dado por la fotorresistencia
luminaria de dos lámparas incandescentes. nivel mínimo de luz (luminaria apagada)
1M Ω
nivel máximo de luz (luminaria
1kΩ
encendida) 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) RA + RB
(7)
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Ω)
61
Capítulo 4
De Lo Electrónico
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. 62
Capítulo 4
De Lo Electrónico
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.
63
Capítulo 4
De Lo Electrónico
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.
64
Capítulo 4
De Lo Electrónico
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.
65
Capítulo 4
De Lo Electrónico
En general podemos decir que los microcontroladores se basan en
“entrada/
decisión/ salida “
Fig. 4.8 Diagrama del circuito Basic Stamp II.
66
Capítulo 4
De Lo Electrónico
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
67
Capítulo 4 para desconectar los drivers de salida del
De Lo Electrónico 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.
68
Capítulo 4
De Lo Electrónico
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 69
Capítulo 4
De Lo Electrónico
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.
70
CapĂtulo 4
De Lo ElectrĂłnico
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.
71
Capítulo 4
De Lo Electrónico
REFERENCIAS 1
Parallax Inc. Basic Stamp II “Analógico y Digital básicos, guía del estudiante”. Agosto 1999, pp. 43-51
www.parallax.com 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.
72
Capítulo 5
Del Control
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,
73
Capítulo 5
Del Control
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
74
Capítulo 5
Del Control
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
Nivel medio de iluminación
= Luz
ML = Mucha Luz
Nivel alto de iluminación
Entrada E2 Ruido Variable lingüística
Descripción
CL = Cero ruido
Nivel cero de ruido
L
Nivel medio de ruido
= 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
75
Capítulo 5
Del Control
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
76
Capítulo 5
Del Control
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.
77
CapĂtulo 5
Del Control
Fig. 5.3 Funciones de pertenencia (Salidas S1 y S2 PĂĄrpados, ojos).
78
Capítulo 5
Del Control
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.
79
Capítulo 5
Del Control
Tabla de reglas: CEJAS CL
L
ML
CR
C
M
A
R
M
M
A
MR
M
A
A
Tabla. 5.2 Reglas para cejas.
OJOS CL
L
ML
CR
C
M
A
R
M
M
A
MR
M
A
A
Tabla. 5.3 Reglas para ojos. BOCA CL
L
ML
CR
C
M
A
R
M
M
A
MR
M
A
A
Tabla. 5.4 Reglas para boca. PÁRPADOS CL
L
ML
CR
C
M
A
R
M
M
A
MR
M
A
A
Tabla. 5.5 Reglas para párpados.
80
Capítulo 5
Del Control
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)
81
CapĂtulo 5
Del Control
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.
82
Capítulo 5
Del Control
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
83
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 84
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
85
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,
86
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.
87
Apéndice 1
Cómo Funciona
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.
88
Apéndice 1
Cómo Funciona
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. 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°
0°
90°
180°
0°
90°
180°
Cuello Arriba –abajo Cuello Izquierda -derecha
Tabla A1.1 Rangos de operación de los servos.
89
Apéndice 1
Cómo Funciona
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Boca I I I I I I I I I C C C C C C C C C D D D D D D D D D
párpados I I I C C C D D D I I I C C C D D D I I I C C C D D D
Cejas I C D I C D I C D I C D I C D I C D I C D I C D I C 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.
90
Ap茅ndice 1
C贸mo Funciona
Fig. A.3 a) Estados del 1 al 9 de la cara robot.
91
Ap茅ndice 1
C贸mo Funciona
Fig. A.3 b) Estados del 10 al 18 de la cara robot.
92
Ap茅ndice 1
C贸mo Funciona
Fig. A.3 c) Estados del 19 al 27 de la cara robot.
93
Apéndice 1
Cómo Funciona
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.
94
Apéndice 2
Programación
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. 95
Apéndice 2
Programación
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.
96
Apéndice 2
Programación
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.
97
Apéndice 2
Programación
'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.
98
Apéndice 2
Programación
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
'
99
Apéndice 2
Programación
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ó.
100
Apéndice 2
Programación
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.
101
Apéndice 2
Programación
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.
102
Ap茅ndice 2
Programaci贸n
Fig. A.2.3 Pantalla del contenido de la subrutina p luz rangos fuzzy.
103
Apéndice 2
Programación
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)
104
Apéndice 2
Programación
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=mx+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
105
Apéndice 2
Programación
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
106
Apéndice 2
Programación
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 107
Apéndice 2
Programación
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.
108
Apéndice 2
Programación
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.
109
Apéndice 2
Programación
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.
110
Apéndice 2
Programación
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.
111
Apéndice 2
Programación
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.
112
ApĂŠndice 2
ProgramaciĂłn
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.
113
Apéndice 2
Programación
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 Izquierdo Medio Derecho
Párpados 555 630 705
Cejas 453 655 857
Boca 598 650 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)
114
Apéndice 2
Programación
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.
115
Apéndice 2
Centroide Izquierdo Medio Derecho
Programación
Parpados 510 630 750
Cejas 310 655 1000
Boca 550 650 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
116
Apéndice 2
Programación
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.
117
Apéndice 2
Programación
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
118
Apéndice 2
Programación
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 119
Ap茅ndice 2
Programaci贸n
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
120
Ap茅ndice 2
Programaci贸n
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 121
Apéndice 2
Programación
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
122