Construyendo un Zoótropo 3D
Los zoótropos son máquinas destinadas a mostrar imágenes en movimiento a partir de fotogramas individuales. Este concepto, precursor de lo que hoy en día conocemos como cine, fue utilizado inicialmente con tambores giratorios decorados con una secuencia de fotogramas dibujados en el fondo que, al hacerlos girar, mostraban una imagen en movimiento a través de una serie de ranuras aprovechando un efecto óptico.
Una evolución natural de los zoótropos clásicos es el zoótropo en 3D. Este tipo de zoótropo utiliza modelos en 3D que forman una secuencia o animación. Utilizando una luz que se enciende a intervalos regulares durante pequeñas fracciones de segundo se crea el efecto estroboscópico y se da la sensación de una imagen en movimiento.
Existe una gran variedad de zoótropos en 3D y así como técnicas para diseñarlos y construirlos. Lo que hoy traigo es el diseño que he realizado de un zoótropo en 3D y los pasos detallados que he seguido para su implementación.
Diseño
El diseño que he realizado de mi particular zoótropo es, como se aprecia en la imagen lateral, un hexágono acristalado por los laterales y en la parte superior. En el interior del hexágono se situará un rotor que hará girar el disco con los objetos de la animación y una serie de LEDs para conseguir el efecto estroboscópico.
Una de las limitaciones del efecto estroboscópico cuando la intensidad de la fuente de luz no es suficiente es que, si no hay suficiente oscuridad, se puede apreciar el movimiento. Como mejor se aprecia el efecto de un zoótropo de estas características es cuando la única luz que incide sobre el objeto es la luz que crea el efecto. Para conseguir esto he utilizado cristales tintados (que he tintado yo mismo) de cara a que no entre nada de luz al sistema y la animación aparezca al encender la luz de forma interna.
El corazón del diseño es la base central diseñada para alojar un motor de 25 milímetros de diámetro y el interruptor óptico H21A1. El motor está situado a uno de los laterales para permitir reducción de movimiento utilizando un engranaje situado en el rotor que veremos más adelante.
El agujero situado en el centro de la base está diseñado con un diámetro de 2.8 milímetros, justo para encajar un eje de 3 milímetros sobre el que girará el rotor. La longitud de dicho eje no es crítica, bastará con que sobresalga al menos 2 centímetros de la base.
El rotor es la otra pieza clave del diseño. Está formado, por un lado, por una plataforma sobre la que se puede anclar el disco de la animación y, por otro lado, un engranaje interior y una serie de barreras y huecos para interrumpir el flujo de luz en el H21A1.
Como se observa en las imágenes anteriores, el número de pasos definido en las láminas que bloquean la luz en el interruptor es ocho. Esto implica que la cantidad de fotogramas con los que podremos animar el objeto está limitado a dicha cifra.
Tanto el engranaje que lleva el motor (Cuyo eje será de 2 milímetros) como el engranaje exterior situado en la base del rotor son de módulo 1. La razón de escoger este módulo y no uno más pequeño son las limitaciones de precisión por parte de la impresora (He podido comprobar que este módulo es el mínimo viable con esta herramienta). El número de dientes (y por tanto el diámetro al ser de módulo 1) del engranaje exterior es de 75 frente al número de dientes del engranaje interior que es de 8, resultando en un ratio de 9.375. Esta reducción permitirá aprovechar la fuerza del motor sin que la velocidad del rotor sea excesiva, produciendo animaciones aceleradas y borrosas.
Antes de profundizar en el diseño de cada pieza del zoótropo veamos una imagen general del diseño con la finalidad de entender la dirección de los siguientes pasos:
La pieza que define la carcasa es la base donde estará situado tanto el armazón del motor como la electrónica y la batería. La base contiene un hueco rectangular de las dimensiones justas para alojar una batería de 9 voltios.
De cara a poder ensamblar la tapa de la base he diseñado tres orificios con espacio para alojar una tuerca M3 de 2.55 milímetros de de ancho. Para fijar dicha tuerca se colocarán unos discos sobre ellas utilizando pegamento. La tapa de la base tiene el siguiente aspecto:
Las paredes estarán divididas, al igual que la tapa, en dos partes debido a las limitaciones del área de impresión, que permiten como máximo objetos de 12 x 12 centímetros. La pared frontal tiene tres huecos en la parte superior destinados a alojar los cristales tintados que tendrán un tamaño de 52 x 53 milímetros (Caprichosa medida por un fallo de diseño). Los huecos rectangulares de la parte inferior contendrán paneles decorativos que veremos más adelante.
La parte superior sigue el mismo concepto: dos huecos rectangulares para los cristales tintados y otros dos huecos en la parte inferior para los paneles de decoración.
Como vemos la parte central de esta pieza no tiene espacio para cristales a cambio de contener los agujeros para el interruptor de encendido y el potenciómetro para regular la velocidad de la animación. Vemos que contiene también la base de la bisagra para la tapa que, como se observa, está seccionada por uno de los laterales de modo que el lateral sobrante pueda ser incorporado y pegado una vez ensamblada la tapa.
Los paneles decorativos, a los que hacía referencia anteriormente, están diseñados utilizando como motivo los paneles de difusión acústica utilizados en los estudios de sonido. De cara a evitar repeticiones he diseñado dos tipos distintos de panel que vemos a continuación:
La última pieza importante del diseño del hexágono es la tapa. Al igual que los paneles frontal y trasero está dividida en dos partes y ambas, al juntarse, dejan espacio para colocar el cristal hexagonal de la superficie.
La parte final del diseño está protagonizada por la animación que dará vida al zoótropo. Esta animación consistirá en una figura humana caminando en 8 fotogramas individuales situados en un disco que se colocará sobre el rotor que vimos previamente.
Impresión y pintura
En total el diseño contiene 31 piezas (25 modelos). El tiempo de impresión aproximado es de 26 horas con una precisión de capa de 0.20 milímetros (Aunque para algunas piezas del interior se utilizó una precisión menor). A continuación muestro una lista con todas las piezas y los ficheros STL correspondientes:
Ref. | Cantidad | Descripción | Tiempo de impresión | STL |
A01 | 1 | Base del Rotor | 1h 05m | A01.stl |
A02 | 1 | Rotor | 1h 52m | A02.stl |
A03 | 1 | Engranaje del motor | 04m | A03.stl |
B01 | 1 | Base del hexágono | 4h 06m | B01.stl |
B02 | 1 | Frontal del hexágono | 4h 58m | B02.stl |
B03 | 1 | Trasera del hexágono | 5h 34m | B03.stl |
B04 | 1 | Frontal de la tapa | 45m | B04.stl |
B05 | 1 | Trasera de la tapa | 56m | B05.stl |
B06 | 1 | Sección lateral de la bisagra | 04m | B06.stl |
B07 | 1 | Cubierta inferior | 2h 41m | B07.stl |
B08 | 1 | Tapa del porta pilas | 17m | B08.stl |
P01 | 2 | Panel decorativo 1 | 22m | P01.stl |
P02 | 3 | Panel decorativo 2 | 23m | P02.stl |
C01 | 1 | Animación 1 | 28m | C01.stl |
C02 | 1 | Animación 2 | 28m | C02.stl |
C03 | 1 | Animación 3 | 28m | C03.stl |
C04 | 1 | Animación 4 | 28m | C04.stl |
C05 | 1 | Animación 5 | 28m | C05.stl |
C06 | 1 | Animación 6 | 28m | C06.stl |
C07 | 1 | Animación 7 | 28m | C07.stl |
C08 | 1 | Animación 8 | 28m | C08.stl |
C09 | 1 | Base de la animación | 1h 21m | C09.stl |
D01 | 4 | Tapa para agujero de tuerca | 2m | D01.stl |
D02 | 1 | Mando del potenciómetro | 20m | D02.stl |
D03 | 1 | Tope de fijación del rotor al eje | 20m | D03.stl |
Una vez impresas todas las piezas he utilizado pintura en spray para pintar algunas de ellas. Concretamente he pintado las piezas que tienen visibilidad exterior dado que el interior es deseable que continúe siendo negro de cara a que lo único que se vea al encenderse la luz sea el objeto animado. En caso de que el lector disponga de filamento de otro color, comúnmente blanco, recomiendo pintar el interior de negro por el mismo motivo.
En mi caso he escogido el color blanco para el exterior del objeto y el azul cobalto para los paneles decorativos. Tras proteger las zonas que no debían ser pintadas y varias capas de pintura, este es el resultado de algunas de las piezas:
Las piezas de la animación pueden quedar imprecisas debido a que no son de gran tamaño. En ese caso se puede utilizar acetona pura para pulirlas y así obtener un resultado más homogéneo:
Electrónica
Otra de las partes importantes de este proyecto es la electrónica utilizada. He querido que todo el control de velocidad y del efecto de luz se realice únicamente con componentes analógicos por lo que el protagonista principal es el integrado 555.
El control de la animación está divida en dos partes: el control de la velocidad del motor y la regulación del lapso de tiempo de encendido de la luz para lograr el efecto estroboscópico.
El control de velocidad del motor lo realizamos utilizando el 555 como generador Modulación por Ancho de Pulsos o PWM. A la salida del 555 he colocado un TIP31 y un diodo protector para cubrir la necesidad de corriente del motor.
Se puede observar que hay tres potenciómetros. Dos de ellos son para regular el mínimo y máximo de velocidad del motor en las posiciones extremo del potenciómetro. El restante regulará la velocidad en sí en el intervalo definido por los dos anteriores.
La interfaz entre el H21A1 y el 555 contendrá un transistor adicional de cara a mantener el nivel de tensión cerca del nivel de alimentación. Dado que el circuito lo vamos a alimentar con 9 voltios, el diodo emisor del interruptor lo protegemos con una resistencia de 1K.
Llegados a este punto tenemos, en la salida de la interfaz del H21A1, una bajada de flanco cada vez que una de las barreras del rotor se interpone en la línea de emisión de luz del interruptor. El problema es que el tiempo que permanece la señal a cero es demasiado largo y dependiente de la velocidad de la animación y, por tanto, no la podemos utilizar para decidir directamente el encendido y apagado de los LEDs.
Lo que queremos es que en cada bajada de flanco por parte del H21A1 se genere un pulso positivo de ancho controlado y definido independientemente del ancho de pulso de entrada. Para ello utilizaremos el 555 en configuración monoestable como vemos a continuación:
El tiempo del ancho de pulso de un 555 en esta configuración viene dado por la siguiente expresión:
[Tp = 1.1RC]
Utilizando los valores en el esquemático anterior tenemos que:
[Tp = 1.1100010*10^{-6} = 0.011 \text{ segundos (11 milisegundos)}]
Vemos en la siguiente imagen la duración del pulso de encendido de los LED a la salida del 555 (En azul) frente a la duración del pulso en estado bajo del H21A1 (En rojo). Se observa que la duración del pulso de encendido es de, efectivamente, 11 milisegundos (La cuadrícula es de 10 milisegundos):
Existe un problema al utilizar el 555 como monoestable y es que el ancho del pulso de entrada debe ser inferior al ancho de pulso de salida. Esto es precisamente lo contrario a lo que hemos dicho que sucedía: El ancho de pulso de entrada será típicamente superior al ancho de pulso de salida.
Para solucionar este problema he utilizado un filtro para derivar la señal. Al derivar un escalón obtenemos un impulso que alcanzará el valor suficiente como para activar el disparador del 555. Vemos a continuación cuál es el efecto de colocar esta etapa entre la interfaz del H21A1 y el disparador del 555.
Como se observa, cuando el pulso de salida del H21A1 (Rojo) vuelve a su estado alto se produce el mismo efecto a la entrada del 555 (Azul), generando un pico de voltaje por encima de la tensión deseada. Para evitar este voltaje se ha utilizado eldiodo D4 en paralelo a R6. Al colocar el diodo el único impulso que persiste es el que necesitamos para activar el 555 durante el flanco de bajada (Nótese que he cambiado la escala vertical):
Las matrices de LEDs, mencionadas anteriormente, están diseñadas para limitar los diodos a 20 mA utilizando resistencias de 330 ohmios. Vemos el esquemático a continuación:
Dado que el espacio en la base del hexágono es reducido he tenido que aprovecharlo al máximo. Para ello he diseñado la placa para encajar con las paredes del hexágono tal y como se muestra en la siguiente imagen:
La placa diseñada tiene el siguiente aspecto:
Las matrices de LEDs son dos copias del mismo diseño, nuevamente pensado para encajar en las partes lisas de las esquinas del frontal del hexágono:
A continuación dejo los enlaces para descargar los fotolitos de ambas placas.
El listado de componentes es el siguiente:
Cantidad | Descripción | Referencias |
4 | Resistencia 1K | R1,R3,R5,R7 |
2 | Resistencia 10K | R4,R6 |
14 | Resistencia 330R | R2,R8 & (R1 a R6 LEDs) |
2 | Potenciómetro 100K Ajuste vert. | RV1, RV2 |
2 | Potenciómetro 100K Eje Panel | POT |
3 | Condensador 10nF | C1,C3,C4 |
1 | Condensador 100nF | C2 |
1 | Condensador 10uF | C5 |
1 | Condensador 470uF | C6 |
2 | Diodo 1N4148 | D1,D2,D3,D4 |
2 | 555 | U1,U2 |
1 | Transistor BC548C | Q2 |
2 | Transistor TIP31 | Q1,Q3 |
12 | Led Blanco 5mm | D1 a D6 en LEDs |
Una vez reveladas las placas y conectadas a los componentes principales es el momento de probar que todo funciona como debe.
[WebM/GIF: Video del test con la placa de control]
Ensamblaje de las piezas
Comenzaremos ensamblando la parte central del zoótropo. En primer lugar montaremos el motor y el H21A1 en la base correspondiente como vemos en la siguiente imagen:
Tanto el soporte del H21A1 como el soporte del motor tienen hueco para pasar los cables hacia la base de la caja. Deberemos dejar cable suficiente para poder soldarlo después a la placa de control con cierta comodidad.
Antes de colocar los paneles laterales sobre la base es recomendable incorporar y pegar todos los paneles decorativos. Queda espacio para meterlos aún haciendo esto en un paso posterior pero es más cómodo y nada impide hacerlo ahora.
Una vez hecho esto comenzaremos incorporando el panel frontal a la base. Existe un pequeño escalón en la base que facilitará el ensamblaje. Debería coincidir el perfil del panel lateral con el escalón. Tras comprobarlo aplicaremos pegamento a lo largo de la zona de contacto y uniremos fuertemente ambas partes.
El panel posterior lo uniremos del mismo modo, esta vez aplicando el pegamento también a la zona de contacto lateral, que forma los ejes laterales del hexágono.
Es el momento de cortar y tintar los cristales. He utilizado cristales de marcos de fotos que tienen un grosor aceptable y dentro de los límites del hueco en los paneles laterales.
Desde aquí mis más profundo respeto y admiración a todos aquellos cuya profesión o habilidad comprenda el corte de cristales. Jamás pensé que cortar unos cristales iba a ser más complicado que revelar y soldar una PCB.
Para tintar los cristales he utilizado una lámina autoadhesiva como la que se utiliza al tintar las lunas de los vehículos. Tras retirar el protector plástico de la lámina, mojar con agua el cristal uniformemente y colocar con cuidado la misma sobre los cristales el resultado es el siguiente:
Dado que los cristales aún están húmedos por el agua que hemos aplicado es posible eliminar las burbujas de modo que el acabado sea uniforme. Antes de colocar los cristales procedemos a unir la tapa del hexágono. No hacen falta muchas indicaciones, creo que es bastante intuitivo:
Los cristales los podemos fijar de muchas formas. Yo he decidido utilizar pegamento termofusible en las esquinas de modo que se puedan retirar en caso de ser necesario. Vemos algunas imágenes a continuación:
Podemos ya dar la vuelta al hexágono y proceder al montaje de la circuitería. Cortaremos y soldaremos en primer lugar los cables del H21A1 y el motor. Es posible que, si ya se ha colocado la base del rotor, haya que retirarla y volverla a colocar nuevamente con la placa dado que reutiliza los mismos tornillos.
La base del hexágono está dotada de agujeros para sacar los cables que deben comunicar con el interior de la caja. Sacaremos dos pares de cables por los dos agujeros frontales para las dos matrices de led y el cable del interruptor de encendido y el potenciómetro por el agujero trasero más cercano a los huecos para dichos controles.
Una vez tenemos los cables comunicando con el interior de la caja podemos colocar las matrices de LEDs, el interruptor y el potenciómetro. Es aconsejable realizar una prueba conectando el potenciómetro sin soldar para comprobar en qué sentido de giro queremos que aumente o disminuya la velocidad.
En este momento podemos colocar la tapa. Para que la tapa quede permanentemente fija al resto de la estructura podemos utilizar la pieza de sección de la bisagra pegándola en el lugar correspondiente.
El siguiente paso es colocar las figuras de la animación en la base giratoria y atornillar la misma al rotor. Nótese que, dependiendo de como hayamos soldado el motor la estructura girará en un sentido u en otro y esto se ha de tener en cuenta en el sentido de colocación de los pasos de la animación.
Colocaremos ahora la tapa inferior para proteger la electrónica y la tapa de la batería para mantenerla en su sitio.
El último paso consiste en lubricar el engranaje del rotor con grasa de litio y colocar la pieza de fijación del rotor de modo que no se mueva en caso de volcar el hexágono.
Resultados finales
Ha sido muy divertido diseñar un zoótropo moderno y verlo funcionar. A partir de aquí lo que queda es mostrar las imágenes con el resultado del proyecto.