CMSC 838F
YouTube Video


GitHub
GitHubPage


Assignment 2 Write-up

Pressure Sensing Seat-Pad Interface for Tangible Interactive Computing
Kotaro Hara, koe.bluebear@gmail.com
Allan Fong, af2012@gmail.com
2012-10-05 16.06.27_copy.jpg
Figure 1: Seat-Pad interface for mouse and arrow control



Motivation:
There are many ways to interact with a computer that goes beyond the traditional mouse and keyboard interaction. We wanted to explore interaction techniques that depended on your body movement. One motivation for us is the movement your body naturally make when playing video games. For example, it is easy to find yourself leaning left if you want your avatar or racecar to go left. Your body naturally wants to connect with what is going on in the screen through similar motions. For this project, we wanted to take advantage of that natural tendency by making a pressure sensing seat-pad interface that will let you control the mouse and arrow buttons on your computer.


2012-10-05 15.42.53.jpg
Figure 2: Sensor layout on the Seat-Pad

Description:
For this assignment, we used four 0.5” Force Sensitive Resistors (FSR), www.sparkfun.com/products/9375, to sense changes in body position on a seat. As shown in Figure 2, the four sensors are mounted on the four corners of a foundation pad (a hardcover book) in a rectangular configuration to best detect weight shift in two directions, x and y. The sensors acted as a voltage divider and are connect to a Leonardo. The pressure sensors are sensitive between 100g and 10kg and change their resistance from 1megaohm to 0 resistance depending on the applied force. Because our sensors maxed out at 10kg, we had to use some reverse logic in our programming to control the mouse and arrow buttons. We mapped the analog input from 1023 to 500 to 0 to 127 because of the constraints associated with the Leonardo mouse API. For example, when no pressure is applied on a sensor, the FSR will be larger than 1megaohms, 5V will be sent to the Leonardo input channel and the 1023 value (5V) will be mapped to a 0 value which will be sent to the mouse or arrow functions on the computer. Furthermore, we connected a push button switch to allow users access to the spacebar function, which is essential to many games such as like Space Invaders. Our circuit design is summarized in Figure 3.

Assignment2.jpg
Figure 3: Circuit design


Discussions:
2012-10-05 15.29.28.jpg
Figure 4: Playing Space Invaders with button clicker

This project was both fun and rewarding. We successfully built and tested a pressure sensing seat pad to control the mouse and arrows on your computer. We were able to use our interface to play several games like Pac-Man and Space Invaders, see Figure 4. Our seat-pad interface can be used to play any game that involves mouse and arrow control.

We did face some challenges with this project. First, it was difficult to calibrate the sensors for individuals of varying weight and body dimensions. The interface works best when the weight is equally distributed across the four sensors. We went through a couple of sensor layout iterations, including a diamond arrangement. We found that placing the sensors in the rectangular layout as shown in Figure 2 works best. In addition, we had initially wanted to activate the spacebar by jumping on the seat. Our thought was that when you jump in your seat, we will be able to capture the signal corresponding to zero pressure on the sensors. However, this was not the case during implementation because we tend to lean forward slightly in the seat before the jumping. We would rarely separate from all the sensors at the same time, cleanly, and for enough time to grab an useful signal. Constantly jumping in your seat was also tiring. As a result, we decided to map a push button switch to the spacebar functions.

Furthermore, the pressure sensors work best when mounted to a firm surface. Although we mounted the sensors on a stiff book, we had to place the book on an already existing seat. Most seats have cushioning in them and we didn’t want to take apart a desk chair for this project. As a result, the chair cushions acted as a dampener and caused some delay in the input response. Nevertheless, we found these limitations to be minimal and still had a great time playing Pac-Man with our new interface.


Some additional inspiration and related work:
Sensing body posture while sitting is not a new idea and have been research in several applications. Some of the previous work are linked below and were inspirations for our assignment:
Automated posture analysis for detecting learner's interest level
Affect-aware tutors: recognising and responding to student affect
The Art and Science of Pressure Distribution


Possible further work:
We are very interested in body posture when sitting. This has many implications ranging from physical health to gaming. It may also be possible to create interactive scenarios with your chair. For example, if you are sitting on your chair with poor posture, perhaps the chair can speak back at you, or even adjust itself to give you better posture. A cheap and easy way to sense body posture can also be helpful perhaps in detecting fatigue and sleepiness in drivers.