main 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

design 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.

base_inventor base_real

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.

rotor_inventor_top
rotor_inventor_bottom
rotor_real_top
rotor_real_bottom

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:

full_inventor_front
full_inventor_back
full_real_front
full_real_back

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.

framebase_inventor_top
framebase_inventor_bottom
framebase_real_top
framebase_real_bottom

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:

framecover_inventor
batterycover_inventor
framecover_real
batterycover_real

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.

front_inventor_front
front_inventor_back
front_real_front
front_real_back

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.

back_inventor_front
back_inventor_back
back_real_front
back_real_back

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:

decopanel_autodesk1
decopanel_autodesk2
decopanel_real

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.

frametop_inventor
frametop_real

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.

figures_autodeskfigures_real_2 figures_real_1

 

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.

paint

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:

colorpiece1
colorpiece2

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:

smo1
smo2
smo3

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.

schematic_pwm

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.

schematic_h21a1_interface

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:

schematic_monostable

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):

graph_pulse

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.

graph_pulse_without_diode

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):

graph_pulse_with_diode

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:

schematic_ledarray

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:

pcb_inventor

La placa diseñada tiene el siguiente aspecto:

pcb_proteuspcb_real

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:

pcb_led_proteus pcb_led_real

A continuación dejo los enlaces para descargar los fotolitos de ambas placas.

pcb_ares pcb_led_ares

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:

assembly_inventor_1 assembly_real_1

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.

assembly_real_2

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.

assembly_inventor_3 assembly_real_3

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.

assembly_real_4

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.

glasscut_1

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.

glasscut_2
glasscut_3
glasscut_4

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:

glass_stk_1
glass_stk_2
glass_stk_3

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:

cover_with_glass

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:

glass_finish

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.

pcb_fixed

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.

assembly_real_5assembly_real_6

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.

cover_helper

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.

animdisk_1
animdisk_2
animdisk_3

Colocaremos ahora la tapa inferior para proteger la electrónica y la tapa de la batería para mantenerla en su sitio.

assembly_real_7
assembly_real_8

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.

assembly_real_9assembly_real_10assembly_real_11

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.