Un disparador de sonido de Halloween con Raspberry Pi y Arduino - 💡 Fix My Ideas

Un disparador de sonido de Halloween con Raspberry Pi y Arduino

Un disparador de sonido de Halloween con Raspberry Pi y Arduino


Autor: Ethan Holmes, 2019
[vimeo: https: //vimeo.com/51950656]

La gente me ha estado preguntando acerca de aplicaciones interesantes para la Raspberry Pi, y si Raspberry Pi es un asesino de Arduino de algún tipo. La respuesta a la segunda pregunta es no; De hecho es un aumentador de Arduino. Esta publicación del blog responde a la primera pregunta con otra pregunta: ¿qué tal una máquina de efectos de sonido de Haunted House?

El viernes pasado se publicó una nueva revisión de la versión temprana de Getting Started with Raspberry Pi. Leí el capítulo de Matt Richardson sobre el uso de Pygame con los pines GPIO en la Pi, que incluía un sencillo reproductor de muestras de sonido. Adapté su ejemplo para trabajar con un Arduino que habla con el Pi a través de una conexión en serie; esta conexión esquelética (ejem) podría incorporarse fácilmente en algún tipo de instalación de Halloween. Decidí usar Arduino para leer las entradas, ya que, al principio, es más robusta y puede manejar una variedad más amplia de entradas. Además, hay muchas demostraciones de activación de Haunted House que existen en la naturaleza y que utilizan Arduino.

Primero, deberás preparar el circuito de disparo. El siguiente ejemplo utiliza tres interruptores, pero puede reemplazar aquellos con cualquier tipo de entrada de encendido / apagado. En una casa embrujada (o en una instalación de truco o tratamiento basada en pórticos), un sensor PIR sería útil para disparar en función de la proximidad.

Aquí está el esquema básico:

Las resistencias de 10k pueden ser reemplazadas por las propias resistencias de pull-up internas de Arduino, si sabe cómo hacerlo.

Conecté el Arduino a la Raspberry Pi mediante un cable USB. Mientras tenía el Pi conectado a un monitor, descubrí que solo podía enchufar el Arduino a través del conector USB de mi teclado Mac y obtuve suficiente energía para que funcionara. Si tiene una Raspberry Pi más antigua con polifusibles que limita la alimentación en el puerto USB (verifique si tiene 2 pequeños fusibles verdes marcados con “1104” al lado de los puertos USB), es posible que necesite un concentrador externo o ejecute el Pi sin cabeza para liberar un puerto USB.

A continuación, suba el siguiente boceto al Arduino:

// PiTalk.ino // Lee tres entradas digitales. Estos pueden ser cualquier tipo de // interruptor o (para Halloween) sensores PIR. byte onState [3] = {0, 0, 0}; // guarda el estado de cada pin void setup () {Serial.begin (9600); // Abrir la conexión serie pinMode (2, ENTRADA); // Establecer estos tres pines para leer pinMode (3, ENTRADA); // Cada uno tiene un pullup externo de 10k pinMode (4, INPUT); // por lo que un activador es LOW} void loop () {for (int i = 0; i <3; i ++) {// Iterar sobre los pines si (digitalRead (i + 2) == LOW) {// Verificar si se activó if (onState [i] == 0) {// ¿Se acaba de activar? Serial.write (i + 2); // Enviar el número de pin onState [i] = 1; // pero solo una vez}} else {onState [i] = 0; // No desencadenado}} retraso (20); }

Puede usar su computadora para cargar el programa, o puede descargar e instalar el IDE de Arduino directamente en la Raspberry Pi (como se describe en la próxima versión de Getting Started with Raspberry Pi).

Una vez que se haya programado el Arduino, abra el editor de texto Leafpad en la Raspberry Pi e ingrese a este programa Python, adaptado del Reproductor de muestras de sonido de Matt:

# playSounds.py importar pygame.mixer desde el tiempo importar dormir desde sys importar salir importar en serie pygame.mixer.init (44000, -16, 1, 1024) soundA = pygame.mixer.Sound ("Scream.wav") soundB = pygame .mixer.Sound ("WilhelmScream.wav") soundC = pygame.mixer.Sound ("CastleThunder.wav") soundChannelA = pygame.mixer.Channel (1) soundChannelB = pygame.mixer.Channel (2) soundChannelC = pygame.mixer .Channel (3) imprime "Sampler Ready". serialFromArduino = serial.Serial ("/ dev / ttyACM0", 9600) serialFromArduino.flush () mientras True: try: val = ord (serialFromArduino.read ()) print (val) if (val == 2): soundChannelA.play (soundA) if (val == 3): soundChannelB.play (soundB) if (val == 4): soundChannelC.play (soundC) val = 0 sleep (.01) excepto KeyboardInterrupt: exit ()

Guárdalo como playSounds.py. Antes de ejecutar el script, probablemente necesitará instalar el módulo serial de Python. Para hacer eso, escriba:

sudo apt-get install python-serial

Si está ejecutando la última versión de Raspbian, probablemente tenga todo lo que necesita para que esto funcione. Abra el LXTerminal y escriba:

python playSounds.py

Si obtiene un error que no está instalado Pygame, escriba:

sudo apt-get update sudo apt-get install python-pygame

También necesitarás algunos archivos de sonido para reproducir. Elegí tres de Internet Archive: un grito genérico, un Wilhelm Scream y la muestra clásica de Castle Thunder.

Cuando presionas los botones, cada sonido se reproducirá una vez; El mezclador de Pygame incluso reproducirá los tres al mismo tiempo si tienes varios truco o trato invadiendo tu porche.



Puede Que Le Interesen

La empresa brasileña de impresoras 3D analiza la controversia de Makerbot

La empresa brasileña de impresoras 3D analiza la controversia de Makerbot


Asuntos exteriores: cómo hacer casi cualquier cosa

Asuntos exteriores: cómo hacer casi cualquier cosa


Este fin de semana: Felt Club: XL Holiday con Maker Square

Este fin de semana: Felt Club: XL Holiday con Maker Square


Taller: Len Cullum en Seattle, Washington

Taller: Len Cullum en Seattle, Washington