Tabla de contenido:
- Paso 1: Partes
- Paso 2: procedimiento
- Paso 3: programación
- Paso 4: resolución de problemas y modificación
- Paso 5: hardware
Video: Detector de humor para perros (Raspberry Pi): 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Este Instructable está diseñado para tomar los sonidos que hace un perro y determinar si deben acercarse o no con indicadores LED. La mayoría de los dueños de perros conocen a sus mascotas y pueden leer las señales que emiten, por lo que este Instructable está principalmente dirigido a extraños que pueden entrar en contacto con su perro.
Paso 1: Partes
Necesitará:
- Frambuesa pi
- LED rojo / verde (X2)
- Monitor
- Teclado / mouse con USB
- Dongle WiFi
- Micrófono USB externo
- Resistencia de 330 ohmios (X2)
Partes opcionales
- Fuente de alimentación externa para Raspberry Pi
- Collar de perro
Paso 2: procedimiento
El primer paso para comenzar este proyecto es observar los comportamientos y patrones asociados con su perro. Puede hacer clic AQUÍ para obtener una guía sencilla sobre lo que debe buscar. En mi caso, mi perro aúlla cuando está emocionado o feliz de ver a alguien y ladra intermitentemente cuando está nervioso o agravado. En los siguientes pasos, explicaré cómo modificar mi programa para adaptarlo a los comportamientos de su perro.
Paso 3: programación
A continuación se muestra el programa Python que utilicé para mi perro. En el siguiente paso, explicaré cómo modificar el programa para el comportamiento de su perro. No ejecute el programa todavía, ya que no funcionará hasta que realice el siguiente paso.
#! / usr / bin / pythonimport pyaudio import sys import thread from time import sleep from array import array import RPi. GPIO as GPIO
ladrar = 0
aullido = Falso retención = 0 ladrido Longitud = 5 retraso = 0 espera = 2 bandera = 0 rojo = 7 verde = 5 salida Bandera = Falso
def toggleLightRed (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (rojo, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Red toggled")
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (verde, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Verde alternado")
def principal ():
ladrido global aullido global espera global ladrido global Longitud retraso global bandera global global rojo global verde
trozo = 8192
FORMATO = pyaudio.paInt16 CANALES = 1 VELOCIDAD = 44100 umbral = 3000 valor_máx = 0 p = pyaudio. PyAudio () flujo = p.open (formato = FORMATO, canales = CANALES, velocidad = VELOCIDAD, entrada = Verdadero, salida = Verdadero, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (rojo, GPIO. OUT) GPIO.setup (verde, GPIO. OUT) try: print "Detection initialized" while True: try: data = stream.read (chunk) excepto IOError como ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) while max_value> umbral: retraso = 0 hold = hold + 1 try: data = stream.read (chunk) excepto IOError como ex: if ex [1]! = Pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) if hold> = barkLength: howl = True print "HOWL DETECTED" toggleLightGreen (green) GPIO.cleanup () elif hold> 0 and hold
if _name_ == '_main_':
principal()
Paso 4: resolución de problemas y modificación
Configuración
Antes de ejecutar el programa, deberá escribir lo siguiente en la Terminal para instalar PyAudio:
sudo apt-get intall python-pyaudio
Después de esto, puede probar y ejecutar el programa para asegurarse de que esté funcionando correctamente.
Solución de problemas
Puede experimentar el siguiente error:
IOError: [Errno Input overflowed] -9981
Para solucionar este problema, simplemente aumente el número asignado al fragmento de la variable hasta que ya no aparezca el error.
Modificando
La variable barkLength dicta el número de veces que el programa se repite antes de que un ruido ya no se vea como un ladrido, sino como un aullido. Si su perro aúlla pero solo lo hace por un breve momento, debe disminuir este número.
Las variables rojo y verde se refieren a los puertos de salida que se utilizarán para los indicadores LED. Estos se pueden cambiar para adaptarse a sus necesidades.
Aunque no utilizo activamente la variable delay en mi programa, se puede observar que indica la frecuencia de los ladridos o aullidos.
La retención variable se refiere a cuántas veces se repite el programa cuando el nivel de ruido está por encima del umbral y se utiliza para determinar si se está produciendo un aullido. Esta variable no debe modificarse de ninguna manera ya que los aullidos se detectan mediante la manipulación de la variable barkLength.
La variable de umbral puede reducirse si el ladrido no es muy fuerte o aumentarse si hay ruido de fondo que podría malinterpretarse como ruido que emana del perro.
Paso 5: hardware
Es en este punto que debería tener un programa en pleno funcionamiento que muestre en la pantalla lo que hará el hardware. Este punto del proyecto es donde debe decidir si se trata de un micrófono estacionario que se coloca en un lugar (por ejemplo, un lugar de la casa donde el perro suele frecuentar o entra en contacto con los visitantes) o si el proyecto se minimizará. y se adjunta al collar del perro para proporcionar retroalimentación inmediata a la persona que interactúa con el perro.
Estacionario
Lo más fácil de hacer es dejar todo en una placa de pruebas, ya que no habrá ningún movimiento que pueda desprender los cables. Conecte los cátodos de los LED rojos al pin de tierra en la Raspberry Pi y los ánodos a través de una resistencia de 330 ohmios o directamente al pin 7 de la Raspberry Pi. Haga lo mismo con los LED verdes pero conecte los ánodos al pin 5. Ejecute el programa y debería tener un proyecto completo una vez que haya modificado el código según sus necesidades.
No estacionario
Recomendaría completar la versión estacionaria primero solo para asegurarse de que todo esté funcionando y luego seguir adelante soldando todo para que ningún cable se desconecte del movimiento del perro.
Coloque los LED en el collar para que ambos estén en una posición cómoda y puedan ser vistos por alguien cuando se acerque.
A continuación, conecte su fuente de alimentación externa, como la que se ve AQUÍ, a la frambuesa pi y fíjela al collar de una manera que sea cómoda para el perro.
Una vez que todo esté asegurado en su lugar, ejecute el programa, coloque el collar en el perro y ¡listo!
Recomendado:
Comedero automático para perros: 4 pasos
Comedero automático para perros: ¡Fácil, útil y saludable
Alimentador automático para perros: 6 pasos
Alimentador automático para perros: este es mi proyecto de un alimentador automático para mascotas. Mi nombre es Parker, estoy en el grado 11 y realicé este proyecto el 11 de noviembre de 2020 como CCA (Actividad culminante del curso) en este proyecto, les mostraré cómo hacer un comedero automático para mascotas con Arduino UNO
Arnés para perros con indicador de distancia LED: 5 pasos (con imágenes)
Arnés para perros con indicador de distancia LED: Normalmente llevo a mi perro Rusio a pasear cuando se pone el sol para que pueda jugar sin calentarse demasiado. El problema es que cuando está sin correa a veces se emociona demasiado y corre más de lo debido y con poca luz y los otros perros
Alimentador automático para perros Raspberry Pi y transmisor de video en vivo: 3 pasos
Alimentador automático para perros Raspberry Pi y transmisor de video en vivo: este es mi alimentador automático para perros Raspberry PI. Solía trabajar desde las 11 de la mañana hasta las 9 de la noche. Mi perro se vuelve loco si no le doy de comer a tiempo. Navegué en Google para comprar alimentadores automáticos de alimentos, no están disponibles en India y son costosas operaciones de importación
Correa para trípode con correa para perros: 3 pasos
Correa para trípode con correa para perros: he estado tratando de encontrar o hacer una correa para mi trípode para que sea fácil de llevar sin una bolsa o sosteniéndolo en mi mano. Estaba buscando en mi armario alguna cuerda, pero encontré una correa de perro que ya no usábamos. Esta correa de perro mide aproximadamente 5 pies