Для научного ярмарочного проекта моей дочери (категория «Компьютерные науки и математика») она хотела бы использовать RPi, чтобы обойти и измерить, находятся ли различные громкие звуки выше порога боли и повреждают ли наши уши. Она шестиклассница, но у нее есть опыт работы с RPi и программированием на Python. Филип Хилс Николс ответил на несколько вопросов на странице FB RPi, но предложил прийти сюда за дополнительной помощью. Она хочет откалибровать Пи с помощью измерителя звукового давления (у меня есть один из них), чтобы выяснить, сколько производится милливольт
Вот что мы думаем до сих пор. Мы купили adc (mcp3008) у adafruit и ожидаем его прибытия. Если мы подключим цифровой выход от АЦП к контакту 11 GPIO и к контакту 12 GPIO с красным светодиодом, сработает ли эта простая программа?
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 ??
Если это сработает, какой код можно поставить в конце для сброса программы нажатием кнопки, подключенной к выводам GPIO? Она хочет, чтобы это было переносимо, поэтому она не сможет набирать команды для повторного запуска программы.