TweetyBot: choosing sound sensors

The TweetyBot project is underway… The main goal is to learn my birds to sing correctly. This is all about producing, detecting and measuring sounds. Right now, first step is to find a nice design for a sound sensor.
TweetyBot will have at least two sound sensors, in order to determine where sounds come from (left, right). It’ll also need to measure the sound level (high, low). The first type gives binary information: “got sound or not”, determining where the sound comes from is done measuring the time of activation of both sensors. The second type must give a measure, and probably need analog/digital conversion (ADC,DAC).


Googling the whole seems to give three options:

  • First option: having two sound sensor where the sensitivity can be adjusted directly on the board, with adjustable resistors. This means sensitivity cannot be controlled within a software. This probably will require a lot of time to adjust this sensitivity. This option still require another kind of sensor which would be able to measure the sound level.
  • The second option is to combine both types: each sensor will give a sound level measure, the time of activation between both will give the orientation (that is, digital measure + binary information). The PIC 16F628, currently beeing used, doesn’t have any DAC. I could use a dedicated chip, but this project is a nice opportunity to switch to the PIC 16F88 for it has an A/D module (and, more importantly, its memory can be flashed with a bootloader, but it’s out of topic). Now, if the 16F88 is able to convert an analog sound into a digital measure within a very small amount of time, then only two sensors would be useful. From the datasheets, the “minimum acquisition time” depends on the impedence of the analog source, say 20µsec (from example). The great benefit is the sensitivity can be “software” adjusted.
  • Another possibility would be to use dedicated LM3616 chip. This is a Dot/Bar display driver, frequently used in VU meter. It’s used to control LEDs according to the input sound level. Instead of activate LEDs, the results could be transformed into something like a byte. Of course, the value wouldn’t as accurate as when using a DAC, since values aren’t continue. Maybe that’s a nice compromise to determine sounds location without requiring bothersome step (or at least, not too much…).


Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>