At the New York Maker Faire this past weekend Mustafa Bagdatli [http://mustafabagdatli.com/] and I led a hands-on educational session at the ITP pavilion. Our focus was to teach people how to use the Arduino to sense a person’s level of arousal. We want to create an intro to physical computing session that focused on using sensors to capture data about our internal state, rather than the external world.
Here are some pictures from the session, followed by an overview of how the sensor works, and a description of the circuit schematic and the Arduino code.
To sense a person’s level of arousal we take a measurement of their sweat level in order to gauge a their Galvanic Skin Response (GSR). GSR refers to the changes in our level of sweat that happen throughout the day in response to stress, anxiety and excitement. Most often, these changes are so small that we are not even conscious that they are taking place.
We had originally billed the event as build your own lie detector. The reason being, since most people become anxious or stressed when they lie about something that is important to them this technology can be help detect a lie – at least in an unscientific setting. However, after the session we realized that this is a much better embarrassment detector.
We are able to measure GSR with an Arduino because our skin is able to conduct electricity more effectively when it becomes moist due to sweat, the Arduino can detect our sweat level by monitoring these changes to our skin’s resistance. We can accomplish this by attaching two electrodes to our skin, the first providing a small current of electricity (30 to 50 mA), the second reading the amount of electricity that is able to make it through our skin.
Note that the GSR sensors needs to be placed near each other in an area of our body that is prone to sweat. Our fingers, arm pits or feet are all good locations. The sensor we used for this workshop were attached a finger strap. Another important consideration is making sure that the sensors are attached snuggly so that they stay in constant contact to a person’s skin.
Here is an image of the circuit for this project:
The electrode that is used to capture the electricity must be connected to an analog input pin on the Arduino and to ground via a pull-down resistor with a value of 10k Ohm or greater. You may need to test a few different resistors value to find the best appropriate one for you set-up.
The code for this project is quite simple, we take a reading from the GSR sensor and use this value to determine how many leds should light up – one to four, depending on how sweaty you are. Here is the full sketch