PRJ.01 Hardware & softwareHardware & software
PersonalPersonalSistema Ambilight para PC basado en ESP32: captura el color de la pantalla en tiempo real y lo replica en una tira LED, sincronizando la iluminación ambiental con lo que se ve en el monitor.
A PC Ambilight system built on ESP32: captures the screen's color in real time and replicates it on an LED strip, syncing ambient lighting with whatever is on screen.
El proyecto se divide en dos mitades que se comunican por puerto serie. Del lado de la PC, una aplicación en Python corre en segundo plano desde la bandeja del sistema: captura continuamente una franja superior de la pantalla, calcula su color promedio y envía los valores RGB resultantes al ESP32. Del lado del hardware, el firmware del ESP32 recibe esos valores y controla mediante PWM una tira LED RGB no direccionable de 12V, traduciendo el color de la pantalla en luz ambiental en tiempo real.
El software de PC se empaqueta como ejecutable con PyInstaller y se distribuye con un instalador construido en Inno Setup, publicado directamente en GitHub Releases en lugar de versionarse en el repositorio. El proyecto está en uso diario y fue pensado desde el diseño para ser portable a otras PCs sin fricción.
The project splits into two halves that talk to each other over serial. On the PC side, a Python application runs in the background from the system tray: it continuously captures a strip across the top of the screen, computes its average color, and sends the resulting RGB values to the ESP32. On the hardware side, the ESP32 firmware receives those values and drives a non-addressable 12V RGB LED strip via PWM, turning the screen's color into ambient light in real time.
The PC-side software is packaged as an executable with PyInstaller and shipped with an installer built in Inno Setup, published directly on GitHub Releases rather than versioned in the repo. The project sees daily use and was designed from the start to be portable to other PCs with minimal friction.