Mi show de luces y música de Navidad con Raspberry Pi
En otro de mis proyectos “juguete” con Raspberry Pi, le di un poco de vida a las luces de esta pasada Navidad y añadí música y sincronización entre estas.
Había querido publicar esta entrada por la época navideña, pero el tiempo no me lo permitió.
Este proyecto es realmente sencillo, ya que vamos a usar lightshow, un proyecto que nos va a proporcionar la sincronización entre las luces y la música, así que todo el trabajo realmente está en el cableado de nuestros componentes.
En este proyecto usaremos:
- Raspberry Pi 2
- Relay SSD de 8 canales
- 8 enchufes (estos son los enchufes que yo usé, estándar en EEUU. Depende de dónde vivas será distintos, pero la funcionalidad será la misma).
- Cables: rígido para la interconexión de los enchufes y flexible para el resto.
- Ficha de empalmes
- Cinta aislante
- Altavoz (conectado a la salida analógica del Raspberry Pi)
Lo primero que vamos a hacer es instalar lightshow (asumo que usas Raspbian, aunque el procedimiento debería funcionar en otras distribuciones Linux):
# Actualiza tu sistema
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
Instala git
sudo apt-get install git-core
Clona el repositorio en /home/pi/lightshowpi
cd ~ git clone https://[email protected]/togiles/lightshowpi.git
Sitúate en la versión estable
cd lightshowpi git fetch && git checkout stable
Corre el script de instalación
cd /home/pi/lightshowpi sudo ./install.sh
Reinicia
sudo reboot
Durante el proceso de instalación me dio un error cuando el script intentó instalar una de las dependencias: Beautifulsoup. En la versión de Raspbian que usaba, dicha librería había sido renombrada a BS4. Tus opciones aquí son instalarla manualmente (sudo apt-get install python-bs4), modificar el fichero que contiene las dependencias (lightshowPi/install-scripts/raspbian) o simplemente ignorarla. Una de las funcionalidades de lightshow es que te permite interactuar con el mismo a través de SMS (yo no configuré esa parte) y ahí es donde requiere Beutifulsoup para trabajar con unos ficheros XML.
Ahora que ya tenemos instalado nuestro software. Toca empezar a cablear. Lo primero que vamos a hacer es cablear nuetro RPi al relé. Por defecto lightshow asume que el relé está conectado a los 8 primeros GPIO pines (GPIO0 - GPIO7). Si quieres usar una configuración distinta, entonces tienes que modificar el fichero lightshowPi/config/defaults.cfg en la sección [hardware]:
…
Using 8 pins of GPIO on the pi:
gpio_pins = 0,1,2,3,4,5,6,7 ….
Y cambiar esos números por los pines que hayas elegido. Lightshow también nos ofrece la posibilidad de retransmitir nuestra música a través de ondas FM, para la cual usa el pin 7, con lo que si quires usar dicha funcionalidad, tienes que dejar el pin 7 libre (ahí conectarás la antena). Un poco más abajo de la línea mostrada anteriormente tienes:
#
Using 8 pins of GPIO with FM transmitting on the pi b+:
#pin 7 cannot be used in FM mode because that is used for the antenna #gpio_pins = 0,1,2,3,4,5,6,21
Cómo ves el pin 7 sería sustituido por el 21. Tendría que de-comentar dicha línea y comentar la anterior de forma que quedaría algo así:
…
Using 8 pins of GPIO on the pi:
gpio_pins = 0,1,2,3,4,5,6,7
….
Using 8 pins of GPIO with FM transmitting on the pi b+:
#pin 7 cannot be used in FM mode because that is used for the antenna gpio_pins = 0,1,2,3,4,5,6,21 …
En mi caso, tampoco usé la función de retransmitir por FM. Así que nos quedaremos con la configuración por defecto usando los GPIO0-GPIO7.
A continuación os dejo el esquema del cableado entre el RPi y el relé:
Una vez tenemos nuestros dispositivos cableados, podemos hacer la primera prueba. El relé dispone de un LED por cada canal lo que nos permite visualizar si lo hemos conectado correctamente. Lightshow dispone de un script de prueba que nos permitirá saber si hemos conectado los cables correctamente.
sudo python ~/lightshow/py/hardware_controller.py --state=flash
Éste encenderá y apagará los LEDs del relé de forma consecutiva de uno en uno. En el siguiente vídeo podemos verlo en funcionamiento:
Lightshow trae algunas canciones de ejemplo. Puedes probar una de ellos con este comando:
sudo python ~/lightshow/py/synchronized_lights.py –file=/home/pi/lightshowpi/music/sample/ovenrake_deck-the-halls.mp3
Si todo funciona bien, deberías ver algo así:
Una vez hemos comprobado que todos los LEDs se encienden en orden, toca conectar los enchufes. Voy a usar cuatro enchufes dobles, lo que me da un total de ocho conectores. El esquema del cableado sería algo así:
Las líneas azules representan la conexión de cada enchufe a cada una de las entradas de nuestro relé y la línea marrón, es la alimentación que iría al otro par de cada una de las entradas del relé, además de alimentar el primero de los enchufes (izquierda). Las líneas verdes (cable rígido) hacen de puente entre los enchufes y pasan la corriente de uno al otro. Por último la línea negra (abajo) es la de tierra (yo no la usé, ya que las luces que conecté no tenía toma de tierra, pero la pongo como referencia).
Aquí un par de fotos del montaje:
Parte trasera
Parte delantera
Para conectar la corriente usé un cable de alimentación de un ordenador antiguo que tenía por ahí. Le corte el extremo que se conecta al ordenador, y de ahí salían tres cables: negro, blanco y verde (tierra). Como comenté antes, el cable de tierra (verde) no lo conecté.Una vez tenemos montado todo el cableado, sólo nos queda probarlo y rezar por que todo salga como esperamos :).
Para la música, yo personalmente busqué en youtube canciones de Navidad y allí multitud de “vídeos”, algunos que duran horas. Los cuales puedes descargar con algo así:
youtube-dl –extract-audio –audio-format mp3 -l [URL VIDEO]
El mp3 lo copias a tu Raspberry Pi y puedes tocar con el comando:
sudo python ~/lightshow/py/syncronized_lights.py –file=/path/tu/mp3
Si quieres tocar varios mp3s, también puedes crearte una lista.
El resultado final de mi montaje podéis verlo en los siguientes vídeos:
Cómo decía anteriormente, el proyecto lightshow además de luces y audio, te permite transmitir tu música via FM e incluso mandarle comandos via SMS, para ello échale un vistazo a la documentación.
Si queréis algo espectacular también montado con Raspberry Pi, échale un vistazo a http://www.johnsonlightshow.com/.
Hasta aquí hemos llegado. Tuve funcionando las luces por 2-3 semanas sin ningún problema. Espero que esta entrada te sirva de algo, sobre si te la has leído entera :)
PD: mis conocimientos de electrónica son muy básicos, así que si le he pegado una patada a la convención de colores de los cables en los esquemas o algún símbolo, pido disculpas :)
Buscar
Entradas Recientes
- Posts
- Reemplazando la bateria del AirTag
- OpenExpo Europe décima edición, 18 de mayo: El Epicentro de la Innovación y la Transformación Digital
- Docker Init
- Kubernetes para profesionales
- Agenda: OpenExpo Europe 2022 llega el 30 de junio en formato presencial
- Libro 'Manual de la Resilencia', de Alejandro Corletti, toda una referencia para la gestión de la seguridad en nuestros sistemas
- Mujeres hackers en ElevenPaths Radio
- Creando certificados X.509 caducados
- Generador de imágenes Docker para infosec