Por Jeremy Cook
Explore las capacidades de Espressif ESP32 con un proyecto de reloj Dali
ESP32, el sucesor de Espressif Systems para el módulo de Wi-Fi ESP8266 increíblemente popular y potente, incluso tiene más capacidad que su predecesor. Los aspectos más destacados incluyen una unidad de procesamiento de doble núcleo de 32 bits que funciona hasta a 240 MHz y comunicación inalámbrica a través de Wi-Fi y Bluetooth.
También cuenta con sensibilidad táctil capacitiva, transferencia de datos I2S, capacidades de bucle de bloqueo de fase de audio (PLL) y dos salidas de convertidor digital a analógico (DAC). Tenga en cuenta que estas características varían un poco entre las diferentes variaciones de ESP32.
Adafruit Huzzah23 (arriba) con DFRobot Firebeetle (abajo)
Usar ESP32 con un reloj de video compuesto
Para ver un ejemplo concreto de cómo usar ESP32 (que es fácil de implementar y muy sorprendente), consulte la construcción del reloj Dali de Marcio L. Teixeira. Esta configuración utiliza un televisor antiguo con una entrada compuesta y una placa de desarrollo ESP para mostrar un reloj cambiante en pantalla.
Como cualquier proyecto que traspasa límites, este se basa sobre los metafóricos hombros de gigantes, ya que se combinó el concepto de reloj de Dalí (creado para Xerox Alto en 1979) con una escena de puesta de sol que se desplaza al estilo arte pop de la década de 1980. A nivel técnico, el trabajo se ha acreditado a múltiples hacks/hackers de hardware. Y, por supuesto, no sería posible sin ESP32. Finalmente, no podemos dejar de lado al propio Salvador Dalí por su original inspiración artística.
Por impresionantes que sean sus credenciales, para configurar este reloj solo necesitará lo siguiente:
El proyecto original usa una placa Feather Adafruit Huzzah32 ESP32. En teoría, podría usarla con otros dispositivos basados en ESP32, y también intenté realizar el proyecto con un módulo DFRobot FireBeetle ESP32. Ambos tienen características similares y funcionan nominalmente para mostrar video. Sin embargo, había una pequeña diferencia entre los dos, sobre lo cual ampliaremos un poco más adelante.
Visualización de video
Configuración: Cargar el código y conectar
Para comenzar con la configuración, descargue el código de GitHub y transfiéralo a ESP32 mediante el IDE de Arduino. Aquí podrá encontrar instrucciones más explícitas para este proceso
Deberá agregar la capacidad para trabajar con placas ESP32 en el IDE de Arduino. Para ello, vaya a Preferencias e ingrese “https://dl.espressif.com/dl/package_esp32_index.json” en la sección de URL del administrador de placas adicionales.
Una vez hecho esto, seleccione su placa de desarrollo (Adafruit ESP32 Feather o FireBeetle-ESP32 en este caso), junto con el puerto en serie adecuado y cargue el código en su ESP.
Visualización de video
Conecte el pin GND de la placa Adafruit Huzzah32 al cilindro exterior del conector RCA.
Luego, conecte otro cable desde el pin A1 DAC1 al borne central del enchufe para que sea la entrada de video compuesto del televisor. Puede usar pinzas cocodrilo para realizar la conexión a un enchufe macho/macho estándar, o bien, existen enchufes de terminales roscados que lo hacen mucho más seguro. Presuntamente, también podría cortar un cable RCA para exponer el cableado.
Inserte el conector RCA en el televisor/monitor, conecte la alimentación a la placa de desarrollo y seleccione en el televisor la fuente de entrada correcta.
¡Voilà! Tiene un reloj Dali con dígitos que se derriten en pantalla, que en este punto es casi seguro que mostrará la hora incorrecta. Para rectificar esta situación, inicie sesión en la red Wi-Fi "ESP32 Dali Clock" generada por ESP32 a través de un teléfono o una computadora para configurar los ajustes a través de una interfaz de navegador. Con la configuración correcta, podrá acceder al reloj a través de su red doméstica. La hora se puede configurar automáticamente a través de NTP/zona horaria, o también puede ingresarla de forma manual si lo prefiere.
Conexión de dispositivos
El reloj también puede cambiar para mostrar la fecha en lugar de la hora. Conecte los cables a A5 4 y A4 36 en la placa Huzzah y toque ambos con el dedo para activar esta función (no probé esto en el FireBeetle, pero debería ser posible). También se puede configurar para que cambie de color durante el día, lo que parece muy divertido.
Características del módulo ESP32 utilizado
Además de una velocidad de procesamiento rápida (impresionante para computadoras de escritorio hace no mucho tiempo), esta compilación destaca muy bien algunas características de ESP32:
Desafiar los límites
Según este video específico, que repasa una configuración similar a esta construcción, el ESP32 en realidad no enumera capacidades de video compuesto en sus especificaciones. Sin embargo, el hecho de que pueda hacer una conversión de digital a analógico (DAC) y utilizar el protocolo I2S lo hace muy poderoso y por ello es ampliamente usado para el hackeo de video retrofuturista.
Si desea más información sobre cómo Marcio pudo actualizar esta configuración a la salida en color, aprovechando las capacidades PLL del ESP32, consulte esta página de GitHub.
En mi muestra por demás limitada de una placa de cada uno de los modelos aplicados en un solo televisor, la visualización con Adafruit Huzzah32 resultó bastante bien. FireBeetle, con los pines de salida equivalentes ordenados, también funcionó, pero tiene algunos problemas intermitentes de sincronización.
Profundizando un poco más en ambas placas, podemos decir que Huzzah32 usa un módulo Wi-Fi ESP32-WROOM-32E, mientras que la placa DFRobot usa un ESP32-WROOM-32D. Si bien es en gran parte equivalente, el -32E tiene algunas mejoras bajo la manga, incluida la forma en que interactúa con el oscilador de cristal para dictaminar la sincronización de la CPU.
Es posible que alguna pequeña diferencia en el diseño signifique que -32D y -32E se muestren de manera diferente en mi televisor. Dicho esto, para la gran mayoría de los casos que no superan los límites de ESP de manera creativa, cualquiera de los módulos debería hacer un determinado trabajo bastante bien. Sin embargo, si tiene una aplicación de producción que necesita toda la potencia del ESP-32, siempre es conveniente considerar qué ESP-32 se va a usar.