La Raspberry Pi es una computadora de placa única diseñada para ayudar a enseñar informática a los estudiantes de la escuela. Esta es una gran plataforma para probar diferentes técnicas de programación y también aprender herramientas de software. La tarjeta viene con un conector RCA que se puede utilizar para conectarla directamente a una pantalla de TV basada en los estándares PAL y NTSC. La tarjeta también tiene una salida de conector HDMI que se puede utilizar para conectar la tarjeta a un televisor HD. También puede utilizar el inicio de sesión remoto para acceder a Raspberry p y ver la GUI (interfaz de usuario de texto) en la pantalla de la PC. La placa Raspberry pi también es muy fácil de interactuar con dispositivos o circuitos externos a través de sus pines. Esta placa también viene con un conector de audio. Todo esto hace de Raspberry pi una plataforma adecuada para jugar y desarrollar juegos interesantes.
Este artículo se centra en cómo agregar sonido a un juego codificado para jugarse con un gamepad Raspberry pi . Este sencillo juego gráfico está codificado utilizando lenguaje HTML5 y JavaScript y conectado a un hardware de panel de juego simple conectado a los pines de la placa Raspberry pi. Este juego se agrega con música de fondo y tonos de teclado que se pueden disfrutar mientras se juega con la ayuda de unos auriculares o un sistema de sonido.
((wysiwyg_imageupload:11067:))
El gamepad es un circuito simple construido en una placa con algunos botones, LED y un conjunto de resistencias. Hay ocho pines IO de uso general en los conectores de 13*2 pines de la placa Raspberrypi y entre ellos se han seleccionado cuatro pines como entrada y los cuatro pines restantes como salida. Los pines de entrada están conectados al botón y bajados usando resistencias de 1K. Los pines de salida están conectados a los LED a través de otro conjunto de resistencias de 1K. Para este proyecto, la placa Raspberry pi se carga con Ubuntu y se accede a ella de forma remota mediante VNC . Para acceder a los pines saliendo del controlador Broadcom se descargó e instaló la biblioteca C “bcm2835” .
Este juego utiliza dos archivos MP3 bgm.mp3 y kpm.mp3, uno para la música de fondo y el otro para reproducir el tono del teclado. Hay tantos programas de reproducción multimedia de línea de comandos disponibles que se pueden descargar e instalar en Raspberry pi Ubuntu. MPG321 es un reproductor de audio de línea de comandos que se puede instalar fácilmente usando el siguiente comando;
sudo apt-get -y instalar mpg321
Este MPG321 es una aplicación de reproducción de MP3 y cualquier archivo MP3 se puede reproducir con la ayuda de esta aplicación escribiendo el siguiente comando de formato
mpg321
Este software tiene varias opciones como control de volumen, búsqueda de archivos, modo de operación remota, lo que lo hace perfecto para usar con cualquier tipo de aplicación front-end, aquí el juego HTML como ejemplo. Se pueden encontrar más detalles sobre las opciones en las páginas de manual;
hombre mpg321
El juego se ejecuta en una ventana del navegador y se comunica con el panel de juego a través de un Named Pipe o FIFO. Hay varios procesos en ejecución que pueden leer el panel de juego y escribir los comandos necesarios en el FIFO para controlar el juego. El JavaScript escrito en el código del juego simplemente lee el FIFO para ingresar datos de control.
El NAMED PIPE o FIFO debe crearse usando el siguiente comando en el mismo directorio donde existen el ejecutable para el código del gamepad escrito en C y los archivos HTML del juego escritos en HTML5 y JavaScript.
mkfifo xyz
FIFO también se puede crear utilizando el propio código añadiendo la función abierta mkfifo como se explica en una documentación anterior .
El proceso principal en el código C crea cinco procesos secundarios, entre los cuales cuatro están dedicados a cada una de las teclas del gamepad y el quinto es para reproducir música de fondo. Cada vez que se presiona o suelta una tecla, generan una señal y la envían al proceso principal con un valor. Este método de enviar una señal con valor ayuda al proceso principal a identificar qué tecla se presionó o soltó.
Fig. 2: Diagrama de bloques del gamepad Raspberry Pi
Tan pronto como el proceso principal detecta una pulsación de tecla del valor recibido junto con la señal, simplemente escribe un carácter específico correspondiente a esa tecla en NAMED PIPE o FIFO. El juego HTML leerá continuamente el FIFO cada 500 ms para obtener información. Por lo tanto, tanto el código C como el archivo HTML deben estar en estado de ejecución. El hardware del gamepad solo se comunica con código C, y el código C se comunica con JavaScript mediante NAMED PIPE.
La música de fondo continuará reproduciéndose como un proceso secundario separado desde el inicio del juego y la función principal reproducirá los tonos del teclado cada vez que detecte una señal de los procesos secundarios dedicados a leer las teclas del gamepad. El proceso principal utiliza la función "sistema" para reproducir el tono del teclado como se muestra en las siguientes instrucciones.
sistema (“mpg321 kpm.mp3”);
Diagramas de circuito
Diagrama-de-circuito-Agregar-Sonido-Raspberry-Pi-Gamepad |
 |
Vídeo del proyecto