Summary of Sensing Squeeze using Arduino
This project develops a squeezeable tactile sensor using flex sensors mounted on a spherical rubber toy to detect squeeze force, sustained squeezes, and squeeze-release events. An Arduino (Atmega168) samples each sensor at 10 Hz via ADC and sends data over serial to a computer, where exercise software interprets events for anti-RSI training routines that time sustained squeezes and count discrete squeeze-release repetitions.
Parts used in the Sensing Squeeze using Arduino:
- Arduino board (Atmega168)
- Flex sensors
- Rubber spherical toy (rubber dog toy)
- Wiring/connectors for sensors to Arduino
- Analog-to-digital conversion (ADC) on Arduino
- Serial connection between Arduino and computer
- Computer running exercise/analysis software
I’m researching squeeze sensing as a mode of tactile interface. Here I will cover the process of developing a squeezeable sensor and the firmware/software concerns associated with interpreting the data from the sensor. This fulfills the “sensor project” for my class called Computational Principles in Media Arts taught in AME at ASU by Todd Ingalls and Hari Sundaram.

First off, how do we sense “squeeze?” People squeeze all kinds of things: lemons, steering wheels, loved ones, toothpaste and other toiletries, pimples, stress balls, hand exercisers. I would like to focus on the latter two, which provide a therapeutic activity for those with Repetitive Strain Injury (RSI). Using flex sensors arranged in a certain pattern on a spherical object, in this case a rubber dog toy, one can capture whenever the ball is squeezed. Here’s a sketch of the sensor layout:
There are three types of interactions I wish to sense with this setup. The first is how hard the user is squeezing. The second is whether or not that squeeze is sustained. The third is if the user is squeezing and releasing the sensor. With these three pieces of information, I believe it’s possible to create a software exercise program to prevent RSI symptoms by strengthening hand muscles.
In regards to sampling rate, I am inputting this data via analog-digital conversion using an Arduino board (Atmega168). My firmware samples the state of the each sensor ten times every second and delivers it via serial to the computer. The sampling rate has to be high enough to sense quick changes in the state of the sensor, such as quick squeezing and releasing, but not too fast as to overload the serial port receiving the data.
In the imagined scenario of an anti-RSI exercise software application, the routine would guide you through a program of motions and evaluate them in real time. For instance, a command might be given to say “squeeze the ball as hard as you can for 10 seconds,” then start timing when you start squeezing, showing you on screen how many seconds you had left to squeeze. In another exercise, you could be instructed to “squeeze and release the ball 20 times.” The software would then count how many discreet squeezes were performed and allow you to complete the routine when all 20 squeezes had been counted.
For more detail: Sensing Squeeze using Arduino
- How is squeeze detected in this project?
Squeeze is detected using flex sensors arranged on a spherical rubber toy, with their analog readings sampled by an Arduino. - What interactions does the system sense?
The system senses squeeze force (how hard), sustained squeezes, and squeeze-and-release events. - What sampling rate is used for the sensors?
The firmware samples each sensor ten times per second (10 Hz). - How are sensor readings transmitted to the computer?
Sensor readings are delivered via serial communication from the Arduino to the computer. - Why is the sampling rate chosen at 10 Hz?
10 Hz is used to be high enough to capture quick squeezes and releases but low enough to avoid overloading the serial port. - What microcontroller handles the ADC and sampling?
An Arduino board based on the Atmega168 handles ADC and sampling. - How would the exercise software use the sensor data?
The software would time sustained squeezes and count discrete squeeze-release repetitions to guide anti-RSI exercises in real time. - Can this setup support routines like squeeze for 10 seconds or 20 repetitions?
Yes; the system can start timing when a squeeze begins for timed holds and count discrete squeezes for repetition-based routines.

