Para el proyecto de la feria de ciencias de mi hija (categoría de Ciencias de la Computación y Matemáticas), a ella le gustaría usar el RPi para medir si los diferentes sonidos fuertes están por encima del umbral del dolor y están dañando nuestros oídos. Ella es una estudiante de sexto grado, pero tiene experiencia con RPi y programación en Python. Phillip Heels Nichols ha respondido algunas preguntas en la página de FB RPi, pero sugirió que viniéramos aquí para obtener más ayuda. Ella quiere calibrar el Pi con un medidor de presión de sonido (tengo uno de estos) para calcular cuántos milivoltios se producen.
Esto es lo que estamos pensando hasta ahora. Compramos un adc (mcp3008) de adafruit y estamos esperando su llegada. Si conectamos la salida digital del adc al pin GPIO 11 y al pin GPIO 12 a un LED rojo, ¿funcionará este sencillo programa?
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.IN)
GPIO.setup(12,GPIO.OUT)
GPIO.output(12,GPIO.LOW) #make sure LED is off
SPL=0 #zero the variable
While SPL<??: #Where ?? is the value in millivolts produced by a sound at 130 db
SPL=GPIO.input(11) #get value from adc connected to microphone
GPIO.output(12,GPIO.HIGH) #turn LED on if the sound level is higher than ??
Si esto funcionara, ¿qué código se podría poner al final para restablecer el programa con solo presionar un botón conectado a los pines GPIO? Ella quiere que esto sea portátil, por lo que no podrá escribir comandos para ejecutar el programa nuevamente.