Choose a pressure sensor (or how much respiratory pressure can the human lung create?)

A project log for Space Whistle - wind controller - musical IoT

A highly responsive wind controller with expressive continuous push buttons based on linear hall-effect sensors - A musical IoT device -

ventosusventosus 07/27/2014 at 17:500 Comments

We need a a means to measure respiratory pressure for our wind controller. So which one should we choose? What are our prerequisites? Are there different kins of sensors out there?

To mimick a wind instrument best, we would have to go with a flow sensor, but we opt for a simple pressure sensor instead, because they are cheaper.

Using a simple pressure sensor may get tedious to operate though, as the air cannot escape which is kind of unnatural for a wind instrument. But we can easily come by this by introducing a so called bleed to the system. The bleed is nothing else than a small escape route (aka hole) in the system for the air. Ideally the bleed can be made dynamically adjustable by means of a valve.

We need it to operate at 3.3V and we would like to get an analog signal back from 0-3.3V, too over the range of pressures a human can produce.

So what is this human pressure range? The answer can readily be found in a paper:

As we will use a bleed for a more agreeable play we take a conservative value for women out of the article which is a maximal respiratory pressure when exhaling of 100cmH20. Height water column is not that common a unit these days, though, so we need to convert it to proper SI units and possibly to the imperial &@%#, too, which gives as 9.8kPa or 1.42 PSI.

As we are mainly interested in relative pressure (relative to ambient), we need a differentail pressure sensor rather than an absolute one (relative to a vacuum). With an absolute one, we would also have the possibility to suck on the sensor, but the quiescent output would vary depending on ambient pressure (e.g. height above sea and influenced by weather), which we would rather not have to deal with.

Responde time should be at least around 1ms, a prerequisite for an expressive play.

Those are our prerequisites, now we fill them in to DigiKey and out we get a differantial pressure sensor for up to 10kPa (1.45 PSI) @3.3V, the MP3V5010DP from FREESCALE for around 8.5€.

The MP3V5010 series piezoresistive transducers are state-of-the-art monolithic silicon pressure sensors designed for a wide range of applications, but particularly those employing a microcontroller or microprocessor with A/D inputs. This transducer combines advanced micromachining techniques, thin-film metallization, and bipolar processing to provide an accurate, high level analog output signal that is proportional to the applied pressure.

The datasheet tells us that the sensor will output an analog signal linear to pressure from 0.1-3.1V when operated at 3.3V. We may thus want to scale this to the full 0-3.3V range for full resolution sampling by the ADC with some simple OpAmp circuitry.

Next step will be to design a breakout board for the MP3V5010DP and test it. Although the MP3V5010DP is a surface mount part, it is big and comes with huge J-wings and only 3 of the 8 legs need to be connected. It should be easy even for breadboarding if you should be in a hurry.

Our next step will be to design a breakout board for this sensor to make it easily embeddable into any wind controller project (we have got more ideas than this one only, ....)

Note to us: The datasheet says that the sensor was designed for dry air and may be adversely affected by moist air, we need to address that somehow by separating the really wet air (from the lungs) and the dry air acting upon the sensor. E.g. we may want to put some hydrophobic liquid (aka oil) in between two separate air columns to hinder moisture to reach the sensor...