¿Cuántas veces te imaginaste un holograma como el de R2D2 en Star Wars o las interfaces que se manipulan en el aire en Minority Report, y al final lo único que conseguís son pantallas planas con más pixeles apretados? Resulta que con una matriz LED girando muy rápido, una placa ESP32 y unas cuantas piezas impresas en 3D podés construir algo bastante cercano a ese sueño: un display volumétrico que proyecta un objeto 3D translúcido flotando en el aire, y todo por menos de 50 dólares (alrededor de CLP $48.000 aproximado).

En este artículo te explicamos cómo funciona por dentro este proyecto del youtuber "Embedded in my Basement", qué trucos de ingeniería lo hacen posible y qué necesitarías para replicarlo en Chile. No es un proyecto de fin de semana ni de principiante, pero es uno de esos builds que vale la pena entender aunque solo sea para sacarle ideas a tus propios montajes con LEDs direccionables.

Display volumétrico 3D casero mostrando un cubo holográfico iluminado en el aire

Cómo se forma un holograma sin óptica exótica

Lo primero que tenés que sacarte de la cabeza es la palabra "holograma" en su sentido estricto. Acá no hay láseres ni interferencia de luz. La técnica se llama swept surface display (pantalla de superficie barrida) y es una de las formas más accesibles de generar imágenes volumétricas reales, sin requerir óptica cara.

La idea es engañar al cerebro. En lugar de proyectar un objeto 3D de verdad, el aparato hace girar a gran velocidad una matriz LED plana de 16x16 (256 LEDs RGB direccionables). Mientras gira, cada posición angular de la matriz muestra una "rebanada" distinta del modelo 3D. Como el panel da vueltas a unas 500 RPM, tus ojos no alcanzan a ver rebanadas individuales: por persistencia de visión (el mismo fenómeno detrás de los relojes POV y los ventiladores que muestran texto), tu cerebro fusiona todas esas imágenes 2D en lo que parece un objeto 3D flotante y semitransparente.

Piénsalo como hacer un escaneo de tomografía al revés. Un escáner toma cortes de un cuerpo para reconstruir un volumen; acá vos tenés el volumen digital y lo "deshacés" en cortes que se pintan uno por uno a medida que el panel barre el espacio.

El problema más difícil: pasar datos a algo que gira

Acá está el detalle de ingeniería más inteligente del proyecto, y la razón por la que el ESP32 es la pieza central. El microcontrolador va montado directamente al lado de la matriz LED, girando con ella. ¿Por qué? Porque el mayor dolor de cabeza de cualquier electrónica giratoria es transmitir datos de alta velocidad a través de contactos en movimiento.

Si intentaras enviar la señal de los LEDs desde una base fija hacia el panel girando, tendrías que pasar esos datos por anillos rozantes (slip rings), que son contactos deslizantes. A 500 RPM, esos contactos meten ruido eléctrico y arruinan la señal WS2812, que es muy sensible a los tiempos. La solución elegante: el ESP32 guarda toda la animación en su memoria local y maneja la matriz directamente mientras gira. Por los anillos rozantes solo pasa corriente continua cruda (la alimentación), que es muchísimo más tolerante al ruido que una señal de datos.

Matriz LED de 16x16 montada en el marco impreso en 3D, lista para girar

Dos anillos rozantes baratos en vez de uno caro

Los anillos rozantes certificados para 500 RPM son caros. El constructor resolvió esto con un truco mecánico precioso: apiló dos anillos rozantes baratos de 250 RPM en un sistema diferencial. El anillo inferior gira a 250 RPM, y el anillo superior gira otras 250 RPM relativas a la base que ya se está moviendo. Sumadas, las velocidades dan unas 500 RPM totales sin que ninguno de los dos componentes supere su velocidad nominal. Un tren de engranajes impreso en 3D, cuidadosamente diseñado para mantener una relación de rotación 2:1 entre los dos conjuntos, es lo que hace que esto funcione.

Repartir la corriente entre varios canales

Hay otra restricción física a respetar. La matriz LED puede consumir hasta 5 amperes a brillo máximo, mientras que cada canal de los anillos rozantes está especificado para solo 2 amperes. Para no quemar nada, se cablearon varios canales en paralelo, repartiendo la corriente entre varios conductores. Como bonus, esto mejora la confiabilidad: si un contacto se corta por un instante durante el giro, los demás siguen entregando corriente y el panel no parpadea.

Sincronizar la imagen con el ángulo del panel

Para que el cubo no se vea "corrido", el ESP32 necesita saber exactamente en qué ángulo está el brazo en cada instante. El sistema usa un truco simple y robusto: un interruptor reed (un contacto que se cierra ante un campo magnético) montado en el rotor pasa sobre un imán fijo una vez por vuelta. Cada pulso le avisa al ESP32 "acá empieza una nueva revolución", y a partir de esa referencia el micro calcula qué rebanada de la imagen mostrar en cada ángulo.

Primer plano del ESP32, el tren de engranajes impreso en 3D y el motor en la base giratoria

El software: todo el trabajo pesado se hace antes

Una decisión clave de diseño es que el ESP32 casi no calcula nada en tiempo real. Los modelos 3D se preparan offline en Blender, usando shaders de rebanado a medida y scripts en Python que convierten cada modelo en arreglos crudos de imágenes de 16x16. Es decir: el trabajo duro de "cortar" el volumen en rebanadas se hace en el PC, y al ESP32 solo le llega una tira de pixeles ya calculados que él se limita a transmitir a la matriz. Eso mantiene la carga de cómputo en ejecución extremadamente baja, que es justo lo que necesitás cuando el procesador va dando vueltas a 500 RPM y no podés permitirte que se trabe.

El gran tropiezo: kilobits no es lo mismo que kilobytes

No todo salió perfecto, y acá hay una lección de debugging que aplica a cualquier proyecto. La interfaz de la matriz LED resultó soportar 800 kilobits por segundo, no los 800 kilobytes por segundo que el creador había supuesto. Esa diferencia de un factor de 8 tiene una consecuencia directa: a máxima velocidad, el display solo alcanzaba a refrescar cada 16 grados de giro en lugar de cada 2 grados. ¿El resultado visible? Las imágenes 3D quedan notoriamente borrosas, porque hay muchas menos "rebanadas" por vuelta de las planeadas.

Es el clásico error de confundir bits con bytes en una hoja de datos, y deja una moraleja útil: cuando un periférico no rinde lo que esperabas, revisá las unidades antes de culpar al hardware. Aun con esa limitación, es impresionante lo bien que funciona este display improvisado.

Variantes y mejoras

Este proyecto deja varias puertas abiertas para experimentar:

  • Resolver el cuello de botella de datos: si el límite real es el bus de la matriz a 800 kbps, vale la pena probar una matriz con un protocolo más rápido (por ejemplo paneles HUB75 controlados por un ESP32 S3 con DMA, o tiras WS2812 manejadas por RMT en paralelo en varios pines) para subir las rebanadas por vuelta y ganar nitidez.
  • Sumar control inalámbrico: como el ESP32 ya trae WiFi y Bluetooth, podés agregar una pequeña interfaz web servida desde el propio micro para cambiar el modelo 3D que se muestra sin tener que reconectar el cable USB cada vez.
  • Cambiar el sensor de referencia: el interruptor reed con imán funciona, pero un sensor Hall lineal o un encoder óptico te daría una referencia angular más fina, lo que ayuda a sincronizar mejor cada rebanada y reduce el "temblor" de la imagen.
  • Balanceo mecánico: a 500 RPM cualquier desbalance se siente. Agregar contrapesos impresos en 3D y ajustar el centro de masa del conjunto giratorio hace que vibre menos y dure más.

Personalización para Chile

La parte mecánica de este proyecto (anillos rozantes, motor brushless, tren de engranajes impreso, imán para el reed) es especializada y la mayoría la vas a tener que conseguir por importación o impresión propia. Pero el corazón electrónico sí lo armás con componentes en stock local en MechatronicStore:

  • ESP32 DOIT 38PIN (id 140170): $8.990 CLP. Es el cerebro que guarda la animación y maneja la matriz mientras gira. Cualquier DevKit ESP32 genérico de 38 pines cumple esta función, igual que el que se ve montado al lado del panel en el video original.
  • Cables Macho Hembra 30cm (id 9284): $1.990 CLP. Para conectar el ESP32 a la matriz LED y al interruptor reed.

Sobre la matriz LED: el proyecto original usa una de 16x16 (256 LEDs WS2812), que no tenemos en catálogo. Para prototipar el concepto y entender la lógica de las rebanadas, en MechatronicStore sí encontrás matrices WS2812 más chicas (4x4, 5x5 y 8x8) que usan exactamente el mismo protocolo direccionable; son ideales para probar la parte de software y la persistencia de visión antes de saltar a la versión grande importada.

Recursos

Versión chilena con componentes en stock local en MechatronicStore. Build inspirado en el trabajo de "Embedded in my Basement", reseñado por Hackster.io.