Tabla de contenido:

Piano de jugador de sinestesia: 4 pasos
Piano de jugador de sinestesia: 4 pasos

Video: Piano de jugador de sinestesia: 4 pasos

Video: Piano de jugador de sinestesia: 4 pasos
Video: Sheet Music Boss - Rush E played on Iron Tiles 2024, Mes de julio
Anonim
Image
Image
Piano de jugador de sinestesia
Piano de jugador de sinestesia
Piano de jugador de sinestesia
Piano de jugador de sinestesia

¡Este piano toca música con una rueda de colores y una cámara! Las imágenes son capturadas por la cámara, procesadas e interpretadas como notas musicales. En este momento está programado para reproducir canciones infantiles que se pueden cambiar cargando un nuevo boceto de arduino que especifica qué notas se deben tocar (qué colores se deben mostrar a la cámara).

La PC Linux integrada inicia un servicio en el arranque que toma una foto con una cámara, calcula una función de los valores RGB en la imagen y emite un sonido basado en el valor de retorno de la función. Antes de reproducir el sonido, envía una señal que le dice a un Arduino que gire un servo, presentando el color correspondiente a la siguiente nota a tocar. Luego, el bucle comienza de nuevo, se toma una fotografía, se gira la rueda de colores y se reproduce un sonido hasta el infinito.

Este proyecto es una forma divertida de integrar música, programación de sistemas Linux modernos, programación de microcontroladores, garabatos inkscape, corte por láser y reutilización de algunas cajas de cartón basura.

Todo el código y los SVG de inkscape están disponibles en github en:

github.com/melvyniandrag/pyMusic

Materiales usados:

  1. Etiquetas blancas en blanco
  2. Caja de cartón
  3. Cámara web
  4. Lápices de color
  5. Arduino
  6. Beagleboard-xM
  7. Alambres
  8. Cable serial
  9. Conocimientos básicos de procesamiento de imágenes y música.

Paso 1: las cosas de la computadora

Las cosas de la computadora
Las cosas de la computadora
Las cosas de la computadora
Las cosas de la computadora
Las cosas de la computadora
Las cosas de la computadora

A bordo, necesitará una pequeña computadora con capacidad para Linux, como una Raspberry Pi. Usé un viejo BeagleBoard-xM porque lo tenía por ahí y ya tenía un sistema operativo en la tarjeta SD. Puede usar lo que sea, siempre que pueda manejar una cámara web, pueda ejecutar OpenCV (la biblioteca de visión por computadora que se usa para tomar y procesar imágenes de la rueda de colores) y tenga un conector de salida de audio.

Configuré el sistema operativo para ejecutar el código Python que captura imágenes en el arranque siguiendo un tutorial de systemd. Para que se ejecute el script, necesitará sudo apt-get install python-pyaudio python-opencv para obtener las bibliotecas indicadas. También necesitará pip install numpy pyserial para obtener esas bibliotecas. pyaudio se usa para reproducir sonidos, opencv se usa para tomar y procesar imágenes, numpy también se usa para procesar imágenes y se necesita pyserial para comunicarse con Arduino.

El Arduino se utiliza para hacer girar el servomotor en el que está montada la rueda de colores. Si tuviera una Raspberry Pi, podría hacer uso de los pines GPIO allí y omitir el Arduino, pero necesitaría modificar el código Python.

En las imágenes se puede ver la tripa tecnológica de la operación y un par de fragmentos de código.

Paso 2: el piano

El piano
El piano
El piano
El piano
El piano
El piano

Hice el piano de cartón con algunas cajas viejas que tenía. Tengo la suerte de vivir cerca de un maker space que tiene un cortador láser. Durante todo un año me he estado preguntando para qué diablos querría una cortadora láser, y resulta que finalmente le encontré un uso.

Medí la computadora, el arduino y el servo para saber cuánto espacio necesitaría, dibujé las partes del piano en inkscape y las recorté en el cortador láser. (Editar: me quedé sin cartón para hacer que el gabinete contenga la computadora y el arduino, por lo que no los puse. Están en el exterior de la carcasa. No importa, podría haber conseguido otra caja de algún lado, pero no no importa al final.)

Las piezas se juntaron con epoxi.

Paso 3: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

Aquí hay algunas imágenes del piano ensamblado y coloreado. La impresora se quedó sin tinta, por lo que no pude imprimir los colores en las etiquetas blancas como había planeado. Entonces usé los crayones de mi hija. Y no pude encontrar un cuchillo xacto para cortar la etiqueta a la forma del cartón, así que solo usé un cuchillo para carne y puse algo protector en la encimera de la cocina. ¡Usa lo que tienes!

Paso 4: Desafíos técnicos y consideraciones futuras

Desafíos técnicos y consideraciones futuras
Desafíos técnicos y consideraciones futuras
Desafíos técnicos y consideraciones futuras
Desafíos técnicos y consideraciones futuras

Una parte desafiante de este proyecto fue lograr que la cámara leyera los valores RGB adecuados. La cámara web que tengo tiene algunos LED increíblemente brillantes que no sé cómo apagar en Linux. Creo que hay un controlador de Windows que te permite activarlos y desactivarlos. Experimenté pegando los LED con cinta aislante y dejándolos encendidos. También probé la solidez del software no solo mostrándolo en papel de color, sino también escribiendo un pequeño sitio web que muestra los colores.

Los sonidos producidos por la computadora a veces tienen estallidos y crujidos, y esto se debe al hecho de que tengo muy poca experiencia en la programación de audio de Linux. La biblioteca pyaudio escupe un montón de quejas acerca de que JACK no está instalado en la PC, pero de forma predeterminada, JACK no quiere ejecutarse sin cabeza (sin un escritorio gui y un monitor). Esta es una tarea de programación que pensé que era un refinamiento, pero no era necesaria para expresar la esencia del pianola que tenía en mente.

Había considerado usar una manivela para cambiar los colores, y tal vez tenerlos en un rodillo, pero eso presenta sus propias complicaciones. El servo es un poco ruidoso, pero funciona bien por ahora.

El piano reproductor actualmente solo está programado para tocar 4 notas. Esto se debe a que el servo solo se mueve 180 grados, la mayoría de las canciones infantiles se pueden tocar con solo 3-4 notas, y no quería que la rueda de colores se llenara de regiones de color, posiblemente confundiendo la cámara. Entonces, a través de una combinación de suerte musical y limitaciones técnicas, 4 notas está bien.

Recomendado: