No Description

mic.py 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # Author: John Van Drasek <john.r.van.drasek@intel.com>
  2. # Copyright (c) 2015 Intel Corporation.
  3. #
  4. # Permission is hereby granted, free of charge, to any person obtaining
  5. # a copy of this software and associated documentation files (the
  6. # "Software"), to deal in the Software without restriction, including
  7. # without limitation the rights to use, copy, modify, merge, publish,
  8. # distribute, sublicense, and/or sell copies of the Software, and to
  9. # permit persons to whom the Software is furnished to do so, subject to
  10. # the following conditions:
  11. #
  12. # The above copyright notice and this permission notice shall be
  13. # included in all copies or substantial portions of the Software.
  14. #
  15. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  16. # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  17. # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  18. # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  19. # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  20. # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  21. # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  22. import time
  23. import pyupm_mic as upmMicrophone
  24. # Attach microphone to analog port A0
  25. myMic = upmMicrophone.Microphone(0)
  26. threshContext = upmMicrophone.thresholdContext()
  27. threshContext.averageReading = 0
  28. threshContext.runningAverage = 0
  29. threshContext.averagedOver = 2
  30. # Infinite loop, ends when script is cancelled
  31. # Repeatedly, take a sample every 2 microseconds;
  32. # find the average of 128 samples; and
  33. # print a running graph of dots as averages
  34. while(1):
  35. buffer = upmMicrophone.uint16Array(128)
  36. len = myMic.getSampledWindow(2, 128, buffer);
  37. if len:
  38. thresh = myMic.findThreshold(threshContext, 30, buffer, len)
  39. myMic.printGraph(threshContext)
  40. if(thresh):
  41. print "Threshold is ", thresh
  42. # Delete the upmMicrophone object
  43. del myMic