Workshop Notes #5
Haptic Slider is an experiment that explores movement, response, and time through the use of soft sensors. The slider measures the motion and position of a finger along a sewn path. As the finger moves along the path from left to right, the intensity of the vibration motor increases accordingly. The haptic response creates a dynamic experience; instead of engaging with a dial to control a vibration the user can feel and set the intensity to their liking through the initial contact with the path. The finger becomes the controller and mimics user experience patterns learned on touch devices. The Haptic Slider takes digital patterns that create depth in devices without any and implements the patterns on physical tactile surfaces to give the user a sense of control.
For this project, I was inspired by common user experience patterns that are learned through touch devices like our smartphones. Many of those user experience patterns create space on surfaces where there is visually nothing more than a screen. I wanted to explore how to apply these motions we have learned (such as sliding a volume control down) and apply them onto a surface where depth cannot be changed visually. My experiment is to explore what could this haptic response create when the user performs the action of sliding a finger up and down on a soft surface.
The first instinctual action that I wanted to perform was the act of a finger moving up and down a soft static slider. I drew out a brief sketch of what I wanted to achieve.
Upon looking at my sketch I realized that what I really wanted was a physical potentiometer. I went to How to Get What You Want and explored the tutorials. I found a fabric potentiometer that used resistive material, conductive fabric, and conductive thread.
To follow the tutorial, I decided to change shape of the slider pattern to match the design that they had created. I chose to use Eeonyx Pressure Sensing Fabric resistive material that is used in a pressure sensor as an experiment.
I chose to sew these pieces onto a piece of non-conductive fabric for stability. I used alligator clips with male headers to connect the two pieces of material to my breadboard. I then took a small piece of scrap conductive fabric and moved it along the dome-shaped path of the soft potentiometer.
I uploaded the example code analogInOutSerial to read the differences in values.
Initially, I was receiving a reading between zero to three. I swapped out my 10k resistor for a 1k and found that my range ranged from thirty to three hundred as my piece of fabric moved along the edges. Satisfied with the outcome, I decided to connect a vibration motor to the circuit.
I initially tried to map the value of the sensor to the output value of the vibration motor. I found this ineffective because the motor only really triggered a vibration when the output value was greater than 150. Because I wanted a steady gradient of vibration as someone’s finger travelled along the path I chose to not use this method.
I uploaded the example code for the Haptic Controller Breakout Board. The example code cycles through all of the patterns that are available in the library. I held the vibration motor until I felt a gradient of steady vibrations go from either high to low (or vice versa). The serial port was printing out the number of the example as it was executing the associated code. After a couple of loops, I identified some key pattern sequences that created a steady decrease in vibration. In addition, on the documentation for the breakout board is included a pattern list. I found the specific pattern numbers and isolated the code to loop through those.
My next step was connecting the potentiometer and the pattern library. Through my initial testing, I found that the potentiometer rarely exceeded 300, and the lowest value was 0 when there was nothing touching the fabric.
I created case statements that would determine the increase or decrease the intensity of the motor depending on the analog value from the fabric.
I found that this was simple and effective, but I had an issue when the value was not consistently zero. If it was not consistently zero, the motor would often “glitch” on and off.
After testing again, the initial value of touching the sensor at the farthest edge was thirty, so I decided that if the output value was below twenty-five to set the value to zero.
For documentation purposes, I included an led light on the circuit to visualize the motion of the someone tracing their finger along the path.
I sewed a finger cover out of conductive fabric rather than fumbling with a piece of scrap conductive fabric.
Video demonstration of the Haptic Slider
Results & Next Steps
The potentiometer gives accurate haptic feedback that correlates to the position of interaction on the path. The interaction is a very one to one result. Once the user takes away their finger all elements of interaction immediately stop. The result is no longer a tactile controller but a response to the interaction the user is engaging within. Wherever the user places their finger will dictate the intensity of the vibration.
In the next iteration, I would want to make the slider have a memory and work more like a tool. The user could slide their finger along the path to dictate the level of vibration and once removed the vibration would stay at the last indicated intensity.
I really enjoyed the design as the shape mimics a gauge, similar to that of a speedometer. The visual connotations work well with the response and haptics of a vibration motor. In this design, the vibration motor is visibly separated from the potentiometer and the sewn together base material. To create a more authentic haptic experience, the vibration motor would be placed beneath the potentiometer to give a hidden haptic response. Currently, the visual of the vibration motor is an initial indicator of the intensity as the user interacts, but ideally the user would choose an interact with the tool solely using touch. The other visual indicator that is in this circuit is the LED. This could be removed in future iterations. Currently, it is included for as a visual reference for documentation.
The user is required to use a piece of conductive material to connect the potentiometer pieces together. On How to Get What You Want, there is a demonstration of a potentiometer that uses metal pieces on top of conductive and resistive fabrics. I was tempted to explore this tutorial but I disliked the concept of having to move something physical on top of the potentiometer for this iteration. Ultimately though, it is necessary to connect the two pieces and I chose to sew a finger covering to attain the “magic” of the finger being what controlled the potentiometer.
Overall, I really enjoyed the simplicity and delicacy of crafting the soft potentiometer. Haptics is an interesting exploration because it borders what is simply a reaction and what is a reaction that gives the user meaning to their action. In common haptics we interact with, we receive information on depth and pressure. In this exploration, I aimed to see if I could explore both of these. I am unsure if the one to one relationship that resulted in the interaction of moving a finger along a fabric potentiometer achieved either fully. The mapped interaction of moving the finger along the path to a vibration intensity could have used in practical products as a controller, but on its own, it is simply a calculated response. In a future iteration, it would be interesting to experiment with how this design could be embedded in other technologies to further explore the field of haptic response in body-centric technologies.