Tabla de contenido:
- Paso 1: Construye una caja…
- Paso 2: Conecte los botones
- Paso 3: Opcional: hacer una placa con resistencias pull up y pull down
- Paso 4: el código Python
- Paso 5: Configuración de su Rapsi
Video: Un Juke Box para los más jóvenes Aka Raspi-Music-Box: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Inspirado por el instructivo "Robot de música RFID basado en Raspberry-Pi" que describe un reproductor de música que ROALDH construyó para su hijo de 3 años, decidí construir una máquina de discos para mis hijos aún más pequeños. Es básicamente una caja con 16 botones y un Raspi 2 en el interior que reproduce canciones a través del estéreo adjunto cada vez que se presiona alguno de los botones.
Que necesitas:
- Una Raspberry Pi con fuente de alimentación
- 16 botones - del tipo que se cierran temporalmente cuando se pulsan (o tantos botones como desee - aviso: no más de los que tiene pines de entrada …;)) Usé este: botón por 0,50 €)
- un poco de alambre delgado
- una resistencia de 10kOhm y una de 1kOhm por botón (a menos que desee confiar en las resistencias internas pull-up / down de Raspi, puede omitir esto)
- stripboard
- cabezal hembra (2x20 pines)
- un poco de madera delgada para construir la caja (utilicé 2 hojas de 5x400x400 mm para el frente y la parte posterior más una tira de 2000x50x5 mm para cortar los lados)
- 24 tornillos y un poco de pegamento para armar la caja
- un poco de pintura para hacerlo colorido
- cable de audio para conectar la Raspi a su estéreo o altavoces activos (conector a lo que necesite en el otro extremo)
- herramientas: un soldador, cortaalambres, pelacables idealmente, sierra, taladro, destornillador, pincel …
- opcional: tarjeta de sonido USB si desea que la música suene bien
- opcional: tarjeta wifi si desea conectarse a una Raspi vieja sin abrir la caja
Tenga en cuenta que este es mi primer instructivo e hice este proyecto hace bastante tiempo … Lo estoy haciendo ya que me siguen preguntando sobre la forma de VLC de tocar las canciones en la sección de comentarios del instructivo mencionado anteriormente (el mplayer usado allí ya no es compatible hasta donde yo sé). Sé que estas instrucciones no son muy buenas, pero espero que sea posible que las sigas … si no, mira también el instructivo original y deja comentarios a continuación para decirme dónde te quedaste atascado … Entonces intentaré mejorar …
Paso 1: Construye una caja…
Así que lo primero que tienes que hacer es construir una caja … Hice la mía bastante grande porque dejé un poco de espacio debajo de cada botón para una etiqueta … Planeaba imprimir algunas fotos para cada canción, plastificarlas tal vez y etiquetarlas en azul debajo de la botones … lección aprendida: para cuando imprime las etiquetas, sus hijos conocen todas las canciones por completo y le piden que cambie algunas … Así que la próxima vez construiría una caja más pequeña y juntaría los botones …
Entonces, volviendo a mi caja … compré dos láminas de madera contrachapada de 400 x 400 x 5 mm y una tira de 2000 x 50 x 5 mm … luego el primer paso, el más importante: a mi hija se le permitió pintar el panel frontal en su elección de colores…:) Mientras ella pintaba corté el trozo largo en 5 tiras - dos de 400 mm de largo, dos de 390 mm de largo y las sobras…;) estas las pegué en la parte posterior de la hoja recién pintada… luego hice 12 agujeros desde el exterior y atornillé 12 tornillos … Luego alineé cuidadosamente la otra hoja en la parte posterior, taladré otros 12 agujeros para otros 12 tornillos para cerrar la caja una vez que terminé. (Sé que 12 tornillos pueden ser un poco exagerados, pero los niños son fuertes …:))
En un lado usé una lima (podrías usar una dremel para acelerar las cosas) para cortar un poco de madera y pasar por los cables. Luego también perforé los agujeros para los 16 botones y los instalé.
Paso 2: Conecte los botones
Así que ahora tienes una caja con 16 botones… a continuación tienes que conectarlos… conecté uno de sus polos a tierra en forma de cadena tipo margarita. Lo ideal sería tener pequeños conectores para hacerlo … Los soldé, lo cual fue una gran pesadilla y causará aún más problemas si alguna vez tengo que quitar alguno de los botones. Luego conecté sus otros polos a un cable rojo cada uno … Luego los soldé a la placa del conector que puedes ver en el medio …
¿Qué botón a qué pin? Botón 1-16 en este orden: GPIO 18. 27, 17, 04, 23, 24, 22, 05, 16, 12, 06, 13, 21, 20, 19, 26. Por favor, marque también el "botón de captura de eventos de pulsación sección "en el código más adelante.
(Por favor, no me pregunten para qué eran los cables enrollados … no puedo recordar)
Paso 3: Opcional: hacer una placa con resistencias pull up y pull down
Si no está seguro de qué son las resistencias pull up y pull down, debería encontrar fácilmente mucha información en línea. El raspi tiene algunos incorporados o puedes hacerlos externos como lo hice aquí. Este paso es opcional ya que no creo que realmente lo necesite.
Entonces, ¿por qué lo hice? A veces, la música comenzaba a sonar cuando encendía / apagaba electrodomésticos en el piso. Primero pensé que estaba captando ondas electromagnéticas o algo así. Así que agregué las resistencias pull-up / down… Como esto no mejoró la situación, agregué algunos capacitores además. Esto todavía no ayudó … lo siguiente que quería intentar era cubrir el interior de la caja con papel de aluminio como protección. Como el problema se detuvo cuando nos mudamos de casa, nunca terminé intentando esto… Entonces, ¿cuál fue el problema? No lo sé… ¿puede haber habido variaciones en la línea eléctrica?
Conclusión: Le aconsejo que primero conecte los botones directamente (verá en el código más adelante qué botón va en qué pin) y solo haga este paso si tiene algunos problemas. Espero que en las imágenes de arriba puedas ver cómo hice esto. Básicamente hay una barra para poner en el encabezado en el medio y luego en cada lado conecté las dos resistencias y los cables de los botones en una fila.
Paso 4: el código Python
Adjunto aquí encontrará el código (en python) que administra la caja de música. Agregué algunos comentarios, así que espero que se explique por sí mismo. Por si acaso, aquí una explicación rápida. Es mejor comenzar a leer la sección de variables en la parte superior y luego saltar hasta el final.
En la parte inferior encontrará un bucle, que se ejecuta todo el tiempo. Primero verifica si se presionó una determinada secuencia de botones; esta era mi forma de usar algún control parental. Luego están las funciones que reproducen la música.
Sobre el bucle principal encontrará algunos eventos detectados, que se ejecutan si se presiona uno de los botones. Cada botón llama a la función ButtonPress pasando un identificador.
Entonces, ¿cómo hacer que reproduzca la música? Para simplificarlo, solo generé una carpeta para cada botón. Independientemente de los mp3 que coloque en estas carpetas, la función se agrega a la lista de reproducción.
Tenga en cuenta que, si no utilizó resistencias pull up físicas, deberá cambiar la sección con la numeración del BCM a esta:
# configuración usando la numeración BCM GPIO.setmode (GPIO. BCM) GPIO.setup (04, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (17, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (27, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (22, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (05, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (06, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (13, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (19, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (26, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (18, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (23, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (24, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (12, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (16, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (20, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (21, GPIO. IN, pull_up_down = GPIO. PUD_UP)
Paso 5: Configuración de su Rapsi
También necesitará configurar el raspi, por supuesto … Acabo de usar la instalación estándar de Noop. Estoy seguro de que encontrará muchas instrucciones sobre cómo hacerlo …
Para usar Python, necesitará "sudo apt-get install python-dev"
Mi programa usa VLC para reproducir la música:
- Obtuve la conexión de Python desde aquí (espero que esto todavía esté actualizado):
- Luego lo instalé usando "sudo python setup.py install"
- Luego instaló VLC "sudo apt-get install vlc"
- Pegue los archivos vlc.py y vlc.pyc en el mismo directorio que su programa
- Más información en
Mis notas dicen que también necesita instalar lo siguiente para acceder a los Pines GPIO desde python (pero esto puede estar desactualizado):
- wget https://www.airspayce.com/mikem/bcm2835/bcm2835-1…. zxvf bcm2835-1.xx.tar.gz
- cd bcm2835-1.xx
- ./configurar
- hacer
- sudo hacer cheque
- sudo hacer instalar
Para que su programa se ejecute, tendrá que llamar a "sudo python yourfilename.py".
Recomendado:
Entrenamiento en comunicación, actividad escolar o juego para jóvenes: 3 pasos
Entrenamiento de comunicación, actividad escolar o juego juvenil: he utilizado esta actividad muchas veces con estudiantes de secundaria. Se realiza como carrera, con tantos equipos como desees. Se basa en el antiguo juego de Teléfono, donde una frase se susurra de una persona a otra, generalmente con el final encendido
Elaboración de un presupuesto para padres jóvenes: 11 pasos
Presupuesto para padres jóvenes: todos sabemos lo que es tener que pagar facturas en algún momento de nuestra vida. No siempre es lo más fácil de hacer y descubrir. Sin embargo, puede volverse más difícil si agrega pañales y toallitas o incluso ropa. Sé lo difícil que puede ser eso
Los mejores LED RGB para cualquier proyecto (WS2812, Aka NeoPixels): 6 pasos (con imágenes)
Los mejores LED RGB para cualquier proyecto (WS2812, Aka NeoPixels): cuando trabajamos con LED, a menudo nos gusta controlar su estado (encendido / apagado), brillo y color. Hay muchas, muchas formas diferentes de hacerlo, pero ninguna es una solución tan compacta como el LED RGB WS2812. En su pequeño paquete de 5 mm x 5 mm
El robot Arduino para evitar obstáculos más pequeño y lindo de todos los tiempos: 5 pasos
El robot Arduino para evitar obstáculos más pequeño y lindo de todos los tiempos: ¿Cansado de grandes robots torpes que ocupan la mitad de un estante en su habitación? ¿Estás dispuesto a llevar tu robot contigo pero simplemente no cabe en tu bolsillo? ¡Aquí tienes! Les presento a Minibot, el robot para evitar obstáculos más lindo y pequeño que podría haber
Cómo ver todos los pasos por defecto - ¡¡¡PERO MÁS FÁCIL !!!: 5 pasos
Cómo ver todos los pasos de forma predeterminada, ¡¡¡PERO MÁS FÁCIL !!!: Algunos de ustedes pueden saber esto ya, pero solo estoy publicando esto en caso de que algunos no hayan visto la nueva actualización y estén viendo el otro instructivo. ¡Espero que te guste! ¿O yo? Materiales necesarios: su computadora Resistencia de 130 ohmios 2x luces LED azules de 5 mm