Piezo elements are small devices that can turn vibration into electrical current and vice versa. In this short exploration, we examine how Piezo elements can be exploited to create some unique sensing objects.

The sensing objects we created are:  Silicone hair, silicone blob, spring, fur and water balloon. This video shows a small board with each of the objects driving an LED.

Silicone Hair

Because of its consistent density, silicone is very good at transferring vibrations over short distances (as it is essentially adsorbing them and efficiently turning them into heat).  This allows for very small scale interactions to be detected and differentiated.

This object consists of a silicone base with an embedded Piezo and a 4*4 grid of cylindrical “hairs.”  Agitating the hairs causes the vibration to be detected.

Silicone Blob

The Piezo is simply moulded into a small piece of silicone.  


The spring is mechanically coupled to the face of the Piezo and glued in place. Some supporting structure is added to the bottom of the spring to hold it in place as it is actuated. 


The Piezo is glued to the bottom of a piece of fur and then sandwiched with another piece of soft material. This allows stroking actuations to be detected down to a very low level.

Water Balloon

The Piezo is sandwiched between a balloon filled with water, and another balloon containing the water-filled balloon. (We put one balloon inside the other and then added the Piezo and carefully filled the inside balloon with water).

This allows for touch and pressing detection over the entire surface of the balloon at any point away from the Piezo. 

The water balloon exhibits two interesting characteristics:

The Piezo is able to hold a steady-state under pressure. So if the balloon is pressed, the sensor reading will remain the same until released. This is not the case if the balloon is filled with air, then we observe the detection of the first derivative of force, as we expect. This perhaps offers a viable alternative to force sensors.

The Piezo exhibits capacitive/inductive properties, in that it can detect when a body part is close.  It will hold the reading until the body part moves further in or out of the field. The field appears to be uniform around the surface of the balloon.

Further exploration is needed into these properties but initial results are intriguing. We must conclude however, that the sensor is no longer exhibiting piezoelectric properties as it is able to detect static forces.


These small objects describe the potential of using Piezo sensors in this way as an alternative to traditional force- and proximity- sensing. Piezo elements are typically much cheaper than active sensors and are usually smaller, lighter and do not have the power and support-circuitry requirements of other sensors.

However, as the data from the Piezo is time-dependent, it requires much more processing than a resistive sensor. The Piezo data typically looks like modulated version of the expected resitive curve. Our lightweight quick-and-dirty algorithm does the following to the raw data. Ignore samples below threshold > RMS over 30 samples > Normalise and take square root > map to 0-255 PWM range, map from linear to logarithmic curve. 

A better method would be to use a windowing function to detect peaks and then interpolate between peaks.


An Arduino code example is available on GitHub. This example maps one piezo sensor to the PWM range of one output pin so that an LED may be controlled.

More information on how Piezos work can be found on Wikipedia