After discussing with the professor about the direction of the project, it was time to do more designing prototyping and less engineering. The project focuses on exploring these aspects of haptic interaction:
To that end, I prototyped a design I had in mind early in the project: a simple wristband with a vibrator attached. It’s was very simple to make: I just glued a vibrator on it (spending some time to solder more durable leads on the tiny wires). The wristband stays in place using pieces of velcro.
In addition to the haptic sketch, I also updated the Arduino code to produce a more even and noticeable vibration. This is what I changed:
These three changes had noticeable effects:
I recorded the vibration using an iPhone as before. The signal is more clearly defined between low and high haptic noise. The variations in the haptic noise are also somewhat discernible on the chart as well. It’s an open question whether other people can feel the variation in the haptic noise, but I could definitely feel the differences.
One thing I can say is that the improved noisy vibration sure feel “freaky”, but I definitely need more than an N of 1! Next up: show it off, get feedback on how people describe the feeling when wearing the prototype, and explore more form factors.
This week I’ve been putting together a GSR sensor to hook up to an Arduino Uno. The end goal is to measure more than one person’s GSR response and display the group average. The circuit is based on a student project from Cornell University (no author listed), with some important changes:
The circuit signal-response curve and the associated equation are shown below. While the curve is not exactly ideal, it is close enough for our purposes.
Here’s the schematic and breadboard layout.
While doing some research on GSR sensors, I came across the 1971 paper “Direct measurement of skin conductance: A proposal for standardization” by Lykken and Venables. In skimming the paper, I found that they brought up a number of important problems with GSR sensors:
I can add a few issues myself:
While the variations attributable to the construction of the sensor does pose a significant problem if all the sensors were made the same way, individual differences will make it difficult to display a meaningful average GSR response. If the number of people contributing to the average GSR is large enough, the individual differences will average out. However, for small groups, statistics suggests that the readouts will tend to yield extreme results.
An alternative to measuring a noisy GSR signal to use an optical pulse sensor. Using a (pre-made) optical method reduced most of the noise associated with using a custom GSR sensor:
I’m still waiting for mail post to deliver the sensor, but in the mean time, I stumbled across another DIY biosensor: the piezo film pulse sensor. I got some piezo pickups in the mail today, so fingers crossed if the pickups can listen to your pulse!
Next up: build and test this GSR sensor!
For this lab, we started with three words describing a movement. I chose to describe vibrations, exploring how to impart the feeling of stability, instability, or uncertainty.
The prototype consisted of a combination of the “Spin Motor Spin”, “Button Pressing”, and “Squeezing” circuits from the Experimenter’s Guide for Arduino. I programmed the Arduino to respond to button presses by changing the intensity of the vibration between off, low, medium, and high intensities, while the pressure sensor removes a random value up to the selected intensity from the voltage output to the motor.
In less technical terms, this means that the vibration has four intensity settings: off, low, medium, and high. In addition, how much pressure is put on the pressure sensor determines how “noisiness” of the vibration, that is how much random variation there is in the vibration.
While I had the pressure sensor mounted below the transmission surface for one-handed control, I removed it from the platform when using an iPhone to record the vibrations. That way, the dampening from pressing the platform would not be included in the readings.
There were some surprises in the results. In the low noise region (left), the vibration varied evenly between ±0.1 (not sure what the units are), while in the high haptic noise region (right), the variation varied unevenly between ±0.05. One part of the data was expected: time-based variation is greater in the high haptic noise region compared to low haptic noise. However, the larger maximum amplitude in the low haptic noise region was not expected. While I felt the difference in intensity after the fact, I had forgotten to take into account for the RMS (root-mean-square) as a more accurate measure of overall intensity.
All in all, the results were promising. I asked a fellow student the difference between the low and high noise vibrations. She preferred the low noise vibration, calling the high noise vibration a “bad feeling”. The professor, on the other hand, preferred the high noise vibration, mentioning that in her research, having more noise in the vibration meant that her haptic robots would be more believable.
After some reflection, here’s a revised vocabulary based on my experience with the vibrations:
While the vibrations were fairly easily distinguishable, the vibration itself left much to be desired. The motor was cheap, so I didn’t expect much from it. The transmission surface was also cheap, so something that had a more “delightful” feel could have made a difference as well.
From these shortcomings, I think my next project will take on a different form factor and hopefully better motors.