En esta sesión vamos a utilizar Raspberry Pi y las funciones PYGAME para hacer una placa de sonido. En términos simples, vamos a conectar algunos botones a los pines GPIO de Raspberry Pi y cuando se presionan estos botones, Raspberry Pi reproduce archivos de audio almacenados en su memoria. Estos archivos de audio se pueden reproducir uno por uno o todos juntos. En otras palabras, puede presionar uno o varios botones al mismo tiempo, Raspberry Pi reproducirá uno o varios archivos de audio en consecuencia al mismo tiempo. Consulte el video de demostración al final de este artículo. Consulte también nuestra serie de tutoriales de Raspberry Pi junto con algunos buenos proyectos de IoT.
Tenemos 26 pines GPIO en Raspberry Pi que se pueden programar, de los cuales algunos se utilizan para realizar algunas funciones especiales y luego nos quedan 17 GPIO. Cada pin GPIO puede entregar o extraer un máximo de 15 mA. Y la suma de las corrientes de todos los GPIO no puede exceder los 50 mA. Entonces, podemos extraer un máximo de 3 mA en promedio de cada uno de estos pines GPIO. Usaremos resistencias para limitar el flujo de corriente. Obtenga más información sobre los pines GPIO y el botón de interfaz con Raspberry Pi aquí.
Componentes requeridos:
Aquí estamos usando Raspberry Pi 2 Model B con Raspbian Jessie OS. Todos los requisitos básicos de hardware y software se discutieron anteriormente, puede buscarlos en la Introducción de Raspberry Pi y el Parpadeo del LED de Raspberry PI para comenzar, aparte de eso, necesitamos:
- Raspberry Pi con sistema operativo preinstalado
- Fuente de alimentación
- Altavoz
- Resistencia de 1KΩ (6 piezas)
- Botones pulsadores (6 piezas)
- Condensador 1000uF
Explicación de trabajo:
Aquí estamos reproduciendo sonido usando botones con Raspberry Pi. Hemos utilizado 6 botones para reproducir 6 archivos de audio. Podemos agregar más botones y archivos de audio para extender esta placa y crear un patrón más hermoso presionando estos botones. Antes de dar más explicaciones, complete los pasos a continuación.
1. En primer lugar, descargue los 6 archivos de audio del enlace que se proporciona a continuación o puede usar sus archivos de audio, pero luego debe cambiar los nombres de los archivos en el Código.
Descarga archivos de audio desde aquí
2. Cree una nueva carpeta en la pantalla del escritorio Raspberry Pi y asígnele el nombre "PI SOUND BOARD".
3. Descomprima los archivos de audio descargados en la carpeta que hemos creado en DESKTOP en el paso anterior.
4. Abra la ventana de terminal en Raspberry Pi e ingrese el siguiente comando:
sudo amixer cset numid = 3 1
Este comando le dice a PI que proporcione salida de audio a través de un conector de audio de 3,5 mm a bordo.
Si desea salida de audio desde el puerto HDMI, puede usar el siguiente comando:
$ sudo amixer cset numid = 3 2
5. Conecte los altavoces al conector de salida de audio de 3,5 mm en la placa Raspberry Pi.
6. Cree un archivo PYTHON (extensión *.py) y guárdelo en la misma carpeta. Consulte este tutorial para crear y ejecutar el programa Python en Raspberry Pi.
7. El mezclador Pygame se instalará de forma predeterminada en el sistema operativo. Si el programa, después de la ejecución, no recuerda PYMIXER, actualice el sistema operativo de Raspberry Pi ingresando el siguiente comando en la ventana del terminal. Asegúrese de que Pi esté conectado a Internet.
sudo apt-get update
Espere unos minutos a que se actualice el sistema operativo.
Ahora conecte todos los componentes según el diagrama de circuito que se muestra a continuación, copie el programa PYHTON en el archivo PYHTON creado en el escritorio y finalmente presione ejecutar para reproducir los archivos de audio a través de los botones. El programa Python se proporciona al final con el video de demostración.
Diagrama de circuito:
Explicación de programación:
Aquí hemos creado el programa Python para reproducir los archivos de audio según se presione el botón. Aquí necesitamos entender algunos comandos que hemos usado en el programa.
importar RPi.GPIO como IO
Vamos a importar el archivo GPIO de la biblioteca, el comando anterior nos permite programar los pines GPIO de PI. También estamos cambiando el nombre de “GPIO” a “IO”, por lo que en el programa siempre que queramos referirnos a los pines GPIO usaremos la palabra 'IO'.
IO.setwarnings (falso)
A veces, cuando los pines GPIO que estamos tratando de usar pueden estar haciendo otras funciones. Entonces recibirá advertencias cada vez que ejecute un programa. Este comando le dice a Raspberry Pi que ignore las advertencias y continúe con el programa.
IO.setmode (IO.BCM)
Aquí vamos a referirnos a los pines de E / S de PI por su nombre de función. Así que estamos programando el GPIO mediante números de pin BCM, lo que nos permite llamar a los PIN con su número de pin GPIO. Como podemos llamar PIN39 como GPIO19 en el programa.
importar pygame.mixer
Estamos llamando al mezclador de pygame para reproducir los archivos de audio.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Estamos solicitando un archivo de audio 'buzzer.wav' almacenado en la carpeta del escritorio. Si desea reproducir cualquier otro archivo, simplemente cambie el nombre del archivo de audio en la función dada arriba. Puede nombrar cualquier archivo presente en la carpeta del escritorio.
canal1 = pygame.mixer.Channel (1)
Aquí estamos configurando un canal para cada botón para que podamos reproducir todos los archivos de audio simultáneamente.
if (IO.input (21) == 0): channel1.play (audio1)
En caso de que la condición en la declaración if sea verdadera, la declaración a continuación se ejecutará una vez. Entonces, si el pin 21 de GPIO pasa a nivel bajo o conectado a tierra, reproducirá el archivo de audio asignado a la variable audio1 . Según el diagrama de circuito, podemos ver que el pin 21 de GPIO baja cuando presionamos el primer botón. Entonces podemos reproducir cualquier archivo de audio presionando el botón correspondiente.
mientras que 1: se usa como ciclo para siempre, con este comando las declaraciones dentro de este ciclo se ejecutarán continuamente.
Puede realizar cambios en el programa Python para crear la placa de sonido más satisfactoria con Raspberry Pi. Incluso puede agregar más botones para hacer las cosas más interesantes y reproducir más archivos de audio.