Runners aid (Posture Sensor) workshop #3

The world of sensors and feedback

For this assignment. We were given a choice of making sensors or to try out existing sensors like heart rate monitor, EMG sensors to select and experiment with keeping in mind the idea of self reflection or self expression.

I tried out the the EMG sensor with my class Nick. From my understanding of the sensor  senses muscle activation. You can then use it to connect to the arduino to get value mapped to sensor value by using a simple serialInputOutput code from sketch examples.

Testing out the the emg sensor. The EMG sensors uses a surface which acts like a bandage on the skin. The accuracy of the reading go down for more than a couple uses.
Testing out the the emg sensor. The EMG sensors uses a surface which acts like a bandage on the skin. The accuracy of the reading go down for more than a couple uses.




Workshop 3 handout
Workshop 3 handout

1)How could your design follow the design recommendations? 1) Instead of representing numbers, represent through materials and aesthetic visuals


Thee posture sensor is used for “running in the dark”it not only activates light. This helps the runner maintain a steady speed while keeping them safe. This falls under the idea of biofeedback, using the bodies momentum.

Thee posture sensor is used for “running in the dark”it not only activates light. This helps the runner maintain a steady speed while keeping them safe. This falls under the idea of biofeedback, using the bodies momentum.

2)Instead of designing for affect-as-information, design for affect-as-interaction. Treat the biofeedback as a prompt for social interaction or personal self-reflection.

I see this sensor as being more of an interaction with the surrounding. Night runs are a great time for reflection and solitary activity. Sometimes, due to some areas not having enough light runners are put in harm’s way from vehicles and unlit paths. I can also see the device having two lights. One to illuminate the path, and one which maybe is connected to a heart sensor.

Sketch based on question 1 of Handout. Sketched out idea with emphasis on material and Aesthetic value
Sketch based on question 1 of Handout. Sketched out idea with emphasis on material and Aesthetic value
"runners aid" sensor. The idea is that the metal piece willsway due to the body's forward momentum lighting up the LED and proceeding with ambient light
“runners aid” sensor. The idea is that the metal piece willsway due to the body’s forward momentum lighting up the LED and proceeding with ambient light

3) Have enough ambiguity that the individual must interpret what the visualization means for themselves.

4) When designing, constantly reflect on how you are making meaning for the individual through your designs. Could you be insinuating that something is negative, unhealthy, etc. ?

5) Reflect on the authority you are giving to the biofeedback device. How could you transfer this authority to the individual instead?

6) Instead of focusing on self improvement

Building sensor

Materials needed


Building the sensor
Building the sensor


Testing out to see the sensor worked. For this I powered the two conductive materials and grounded the metal piece to achieve the led to go off and on. This is a way to switch the circuit on and off.

Using the same principle of circuit connections, I then proceeded to light two LEDS.

Code considerations

I didn’t use any code to light these LEDS up. If I were to do it, I will connect the two pieces of conductive material to different pins which would trigger the led.


This was an interesting experiment. Building the sensor rather than using an established sensor helped a lot with understanding how they can used to trigger information. One thing that I realized with this sensor was that i am calculating and triggering information about movement.

Conclusion and future considerations

This sensor is something I can see being incorporated into running and interval training. For example during interval training, runners sprint until they reach a certain heart rate and slow down and sprint again. It would be interesting to have this sensor also be attached the a heart sensor. The heart sensor could trigger a red LED which would inform the runner that it is the optimum time to slow down. The slowdown of the heart rate would then let the runner know again at the optimum time to start sprinting. This would be interesting for athletes who use interval training regularly in their training.








Muscle Manager

img_20190207_083929 docu3screenshot_20190207-085348



I get headaches often. I clench my jaw when I’m stressed, when I’m focusing, or when I’m nervous. Discussions with many professionals  throughout my life have convinced me that habitual jaw clenching is bad for my teeth, my bones, my muscles, and is major factor in my headaches.

Mindfulness practice has helped somewhat. With increased body awareness I have been better able to notice when my jaw is clenched, and adjust. I then also ask myself “why might I have been clenching my jaw? What here is making me stressed, or anxious, or focused?” With the symptom noticed I am then able to look outward for the cause.


I imagined a simple wearable (a hat or band?) that could conceal the sensor-stickers of an EMG muscle sensor. I’ve been enjoying playing around with If This Then That (IFTTT) in another class and having fun with it, and I thought this might be a fun way to integrate it as an unobtrusive opportunity for self-reflection.

My concept, then, was a wearable that detects jaw tension. When the tension is sustained the wearable sends a notification to the wearer’s phone, reminding them that their jaw is tense. No judgement is implied; it is simply a statement of fact. The wearer can self-reflect and adjust as required.

A high sensor reading is sent to Adafruit IO, which triggers an IFTTT applet, which sends a notification to the user’s phone.


After playing with and testing the sensor on various muscles with the help of my friend and colleague Amreen, I wrote some code interfacing with Adafruit IO and commented it for clarity, viewable here.

The code uses the Adafruit Feather microcontroller and Adafruit IO Wifi to connect the board to the internet. I used the Adafruit IO Arduino library and the guide here. Note that the Adafruit Feather won’t connect to 5G wifi networks!

In summary, the code checks every ten seconds to see if your tension is above a threshold. If it’s above the threshold twice in a row (signifying extended tension) it sends a “1” value to Adafruit IO. An IFTTT applet, listening to the feed, sends a notification to the user’s phone with a non-judgemental reminder that they are experiencing jaw tension.


Wiring is simple.  From Getting Started with MyoWare Muscle Sensor from the Adafruit website:


My code includes an LED so you can have a real-time visual representation of the sensor’s readings. That LED is currently assigned to pin 13, the built-in LED on the microcontroller, so no wiring is necessary.


The Adafruit IO feed is created automatically when the Feather sends data to it.



Stumbling Blocks

Everything works in theory, but the fact that the electrodes on the EMG sensor are only good for two or three placements has been an impediment to testing. Early in testing I was able to get values consistently from the sensor, but by the end it was unresponsive and was only delivering the same, very high, result.


The upshot of this is that the infrastructure of the project – Adafruit IO to IFTTT – can still be tested, and that it works consistently.

Next Steps

More tuning of sensor placement and adjustment of thresholds and timing is required. If this project was to become a wearable it would have to move away from the MyoWare EMG sensor, as the sticker-based electrodes are not feasible for long-term use or use with a piece of clothing.


This is ultimately a very personal self-reflection project, as I have lived most of my life with physical issues caused by or related to jaw tension. I imagine that this system, were it used by other people, would be adapted into a system that manages whatever tension points they hold.

I chose to send a smartphone notification rather than some other form of feedback because the smartphone is ubiquitous, and notifications tend not to draw undue notice. As monitoring one’s body is a personal experience, I would prefer to have the feedback presented in a relatively subtle and unobtrusive way.

The other option for feedback I considered was haptics, but this still felt more obtrusive than I would have liked. A smartphone notification can be ignored or forgotten, while a physical sensation can not. The intention with this piece is to gently remind the user that they’re carrying tension, and communicate that information when the user is ready for it, not to force them to confront it.


Welcome to Adafruit IO. (n.d.). Retrieved from


Ifttt. (n.d.). IFTTT helps your apps and devices work together. Retrieved from

The Calming Sensor

By Omid Ettehadi & Veda Adnani

Github link:

Stress, anxiety and anger are all emotions or states that most of us deal with in today’s day and age. All of them, are also contagious and easily spread amongst people. It’s best to attack and deal with these emotions. It’s best to nip these emotions in the bud using technology to facilitate the process.

The idea for our low fidelity prototype is to create a device that can calm its wearer during the moments that they feel like everything is the worst. Using biofeedback for self-reflection or somaesthetics, the device senses the heart rate of the wearer and provides them with instant motivational feedback in stressful situations (as opposed to just raw data). The purpose of this device is to induce instant calmness, promote self-efficacy, help keep the user motivated and empower them to tackle stressful situations that they otherwise may avoid in their day to day lives.

Subtleness: The vibration is soothing and gradual, pleasant and relaxing.

Intimate correspondence: The vibration frequency and motivational interface react to the heartbeat rate captured by the pulse sensor.

Making space: The device is extremely light, easily portable and can give the user a few moments of personal headspace even in the most crowded gatherings.

Articulation: The rhythmic vibration, along with the encouraging interface helps a user relax and calm down. Research shows that positive quotes can promote self-efficacy and it is our hope to encourage that through this prototype.


Fig 1: Low fidelity prototype placed in a glove, shown here with the wearer and without.


In Class reflection

Something that really stuck with us during the class was the discussion on the different approaches to biofeedback. When dealing with Biofeedback as a form for self-reflection, you need to consider the way the device provides you with more insight and awareness about your own body. Something that was challenging in our project was to find the ideal method of communicating with the user without publicly sharing their data.



Our research process led us to discover that there are several products in the market that detect stress, very few of them actually help the wearer actionably deal with the stress. Most wearable devices currently also detect heart rate but rarely give the wearer any feedback/ insight or call to action on the data gathered. This tends to make the wearable experience dull since the wearer cannot act upon the data and improve or amend things as they might the desire to do.


Fig 2: From left to right: Our vision for the prototype was inspired by HeartMath sensor, Stress chips, and a vibrating watch(Doppel)

Idea and worksheet

Having worked out the sheet in class, we had a clear picture of the prototype idea. We wanted to create a device that regulates stress, anxiety and other forms of negative emotions that trigger elevated heartbeat. It comprises of minute sensors on the wearer’s fingertips, and a stylish wrist band to enclose the microcontroller seamlessly.


Fig 3: Idea sketch for high fidelity prototype


Fig 4: In class worksheet


The device consist of a pulse sensor and an output component in the form of vibration. It also contains an interface output on a screen that corresponds with the user’s heart rate.

1 x Arduino Micro

1 x USB cable

1 x 2mm Mini Vibrating Disk Motor

1 x Pulse Sensor

1 x Glove

Ancillary material to sow sensors, and a computer to process the code



As shown in the ideation section, we turned the glove inside out and sowed the heart rate sensor onto the pinky finger and the vibration motor onto the ring finger. Thereafter we connected them using cables to the Arduino micro, which we fastened to the wearer”s wrist using the glove itself.




Fig 5: Inside out glove few for fabrication of components. They were sewn onto the glove for this prototype.


To get a better understanding of the sensor and its capabilities, we started experimenting with the examples from the PulseSensor Playground. After going through all the examples, We Chose the Getting_BPM_to_Monitor example as the base for our code and made our modifications to that file. We initially tried using the Adafruit ESP32 Feather for the project, so that we could connect the glove using the internet to the user’s mobile phone. Due to the limitations of this board in dealing with Analogwrite, we were not able to run any of the examples on the Feather and therefore decided to stick with the Arduino micro for this stage of the project and use the Serial Control to communicate with the computer.

In the Getting_BPM_to_Monitor example, the device already calculates the beat per minute of the user and prints on the Serial monitor, in addition to turning onboard LED one every time it detected a heartbeat. We added another pin to control the vibrating disk motor. We set the code, such that if the heart rate of the person went higher than the threshold set by the user, the vibrator would turn on. We experimented with leaving the vibrator on for the duration of the time the heart rate of the user was higher than the preset value, but after some testing, we saw that the constant vibration leads to an increase in the heart rate of the user. We made some changes to the program so that if the user’s BPM passed the threshold level, the device would vibrate at a 50 per minute rate to mimic a slow heart rate and using the body’s natural reaction to the frequency to lower the user’s heart rate.

The next step was to connect the Arduino to P5. We used the serial control, so that every 200 ms, the Arduino would send the status of the LED (indicating heartbeat) and the BPM to the P5. We wanted to use this information and further assist the user in their attempt to lower their heart rate. We decided to stick with something simple. We used a drawing of a heart to indicate the user’s heartbeat and to print out positive thoughts when the user’s BPM passed their preset threshold. This was to make sure the data is perfectly transmitted between the devices. By finding the right conditions, we can now set the P5 to do any actions we want in order to lower the user’s heart rate, such as play relaxing music or etc.


Fig 6: Circuit



Fig 7a and b:  7a shows the calm state, and 7b shows the stressful state with calming motivational messages.


Fig 8: WIP CODE with preview > Arduino and p5.


As a team, we were fairly clear about a realistic scope for the timeframe we were given. Our priority was to get the sensor working to the vibration and only thereafter did we incorporate the interface functionality.


The vision for the final product

If we were to develop a higher fidelity prototype, we envision gaining more accuracy with data for thresholds of stress, anger, anxiety or any other negative emotion that is accompanied by a change in heartbeat patterns.

We would also focus on improving the ergonomics of the sensors, and making them more wearer friendly and unintrusive. The vibrations on the current prototype are fairly simple, however, we would love to customize the vibration to the emotion in a rhythmic way, so as so as to maximize its effectiveness in tackling the stressful situation. We would even consider personalizing this motion to its user depending on how they react since every user is unique and might respond differently to different emotions.

It would also benefit us to help track and save the data that we are able to gather for the wearer to determine their emotional patterns and help them tackle their issues in a sustainable long-term manner.



Wearable vibrating wrist watch:

Stress strips:



Panic Attack Sensor

 I’d like to design a biofeedback device that is a stress management tool for people suffering from panic attacks or anxiety disorders. It is a device designed for self-reflection that make a person aware of one’s own feeling.

Panic attacks are sudden periods of intense fear that may include palpitations, sweating, shaking, and shortness of breath. The symptoms are sudden, frightening, and difficult to manage. They typically reach their peak within ten minutes and resolve within thirty minutes. Deep slow breathing, coping statements and distractions help to shift focus from this overwhelming situation.


I will use a breath sensor that detects a panic attack through the symptom of shortness of breath. The device should interact by distracting the individual from a fearful situation by engaging the person in a multi-sensory experience through producing sounds and scents for a calming ambient.

The device will be a band that wraps around the diaphragm. Stretching the band will trigger a lavender scent to be released from an embedded essential oil cartridge, and will play a deep calming slow breathing sound track to AirPods speakers that are wirelessly controlled.


Initially I was aiming to use the Eeonyx Stretch Fabric sensor. In class and with the DIY_analog_senor.ino Arduino code, I measured the variable resistance at rest and when stretched to determine the minimum and maximum sensor values. The minimum value at rest was 60, and the Maximum value when stretched was 140.




Then, because of the limited supply of the Eeonyx Stretch Fabric, plans changed and I decided to use Rubber Stretch sensors instead. I went through measuring the variable resistance at rest and when stretched again to determine the minimum and maximum sensor values of that resistive material. Surprisingly, the resistance increases when the rubber is stretched, so when stretched the minimum sensor value was 480, and at rest the maximum value was 685.


Serial Monitor images below show readings of the rubber sensor values at rest and when stretched.



The Rubber stretch sensor is sewed to the interior side of a tank top. It is attached to an elastic band that is situated under the chest and wrapping around the breathing diaphragm. I intended to embed the sensors and wiring being invisible to make them feel more personal for self reflection.







Testing the prototype:



This prototype promises to interact by producing a qualitative effect that is a calming personal ambient for individuals to relax and be mindful of their own situation. When the breath sensor is activated the algorithm sends current to the Lavender oil cartridge to release a calming subtle scent, and also sends a current to a recorder to play a slow breathing sound track to co-perform with the individual as a way to guide for a deep relaxed breath. The device responds to a panic attack event and waits 5 minutes before repeating the loop. This delay allows the individual to have time to react and relax before repeating the loop of dispensing scent and producing sound.




Next Steps

I’m investigating in ways in giving authority to the individual with this breath sensor biofeedback device. That might be achieved by controlling the aromas and intensity of the released essential oils, and also by having control of playing, stopping or changing the sound track.

Information sources:

Corset Breathing Sensor









Compact Tones

Workshop #3: Soma Aesthetics & Bio-Feedback
Compact Tones
Olivia Prior 


Compact Tones is a compact mirror that responds to the user’s stress levels. The mirror gently hums when left alone and is activated by being held by the user’s touch. The mirror responds to the moisture on the user’s palms and correlates this to the tone emitting tone. The tone changes every five seconds unless the user is in extreme duress. If this is the case, then the tone will repeatedly alter until placed down. This device gives space and reflection through audio to bring attention and presence to the act of gazing at oneself in a mirror for an extended period.


With this assignment, my goal was the create a self-reflexive experience on adjusting and looking at yourself in front of a mirror. I wanted to create a relationship with the mirror that is a non-visual experience to reflect on the act of engaging in an activity that was purely visual. The use of the compact mirror is to reflect the one on one relationship that we have with our own bodies. This project aims to highlight the act of habitually monitoring our own bodies and how one may use appearance as a coping mechanism when they are stressed.

The range of the tones was selected to avoid connotations of irritation when the tone is too high or apathy if the tone is not present. The mirror is always gently humming, and the pitch does not exceed too high of a tone. This does not dictate or prescribe any standard of a norm as the tone is always changing slightly when by itself. When the mirror detects the user’s touch it alters to a chirp, as if it were having a conversation with the user. This allows the user to be in full control of the device and their part in the conversation, and motivation in using the device.

Workshop notes
Workshop notes


For this project, I chose to use galvanic skin response as a method of bio-feedback. I chose this method because I wanted to measure the activity of someone holding a contact mirror.

My first step was to test out the technique myself. I took two pieces of aluminum foil and taped them around my fingers to see if I could get a measure. I found at first that I was not getting a drastic change in numbers, but the more I tried I noticed my readings were increasing. This was an interesting experience as I was visually seeing the change through the readings as I was constructing the piece.

Initial investigation of the sensor.
Initial investigation of the sensor.

My next step was to visualize how the aluminum foil would be placed on the mirror. As I needed two detached pieces of aluminum I decided to place the foil on either side of the packet. For the speaker, I decided to place it on the bottom of the compact so that the emitting tones would not be as blaring.

Diagram of the compact mirror being held.
Diagram of the compact mirror being held.
Top view of the compact mirror assembly.
Top view of the compact mirror assembly.
Bottom view of the compact mirror assembly.
Bottom view of the compact mirror assembly.

After testing and sketching, I started to assemble my piece together. I cut out two pieces of aluminum foil roughly the size of each side of the compact mirror. I used electrical tape the secure the pieces down. I left two slots open on either side to allow for the alligator clips to clip into easily.

Materials required for assembly of the sensor.
Materials required for assembly of the sensor.

Video of the assembly of the compact mirror

I tested out the values with the compact. Similar to my first experience, I found that my readings were not significant until after a few times when my hands were actively moving and producing sweat.

I then connected the speaker to the circuit and added in tones. Initially, I created an array with a list of tones that were in the order of a musical scale from low C to a high C. I did this so that I would have any obnoxious tones that would be distracting to the experience of the mirror. I then took the values of the compact mirror and mapped them to the length of the array. The outcome of the mapping would be an integer that would then be used to indicate what value of the array would be the emitting tone.

Initially, the range of tones was distracting. When untouched, the mirror would emit a very low buzz, and then when activated the pitch would starkly change to a high whining tone.  I then mapped the tones to go from a low to a mid-range pitch so that the interaction would be more musical and smooth.

My next step was to include a time aspect to the piece. I did not want the compact mirror to instantly respond to palm because that would make the compact mirror more or a musical instrument rather than a tool for slower reflection.  I chose to code the compact mirror to take into account the sensor reading in correlation to the time spent holding the mirror. For testing purposes, I chose five seconds as a time measure. If the sensor value is over a certain threshold, and a certain amount of time passes (five seconds) then the tone scale would increase as a response. Once put down the tone would then go back to a lower tone.

Arduino code for the compact mirror and GSR sensor
Arduino code for the compact mirror and GSR sensor

Demo of the compact mirror responding to being touched.

Something I discovered as I was testing was that if the compact mirror was left by itself untouched, the tone would change every five-second increment. This was interesting and I chose to leave this as it made the experience of the tone changing when picking up the device a more natural and less judgemental interaction.

Another discovery I noticed when testing was that once I removed my hand from the device the tones would “wind down” in the scale in quick succession. Once again, it seemed like it heightened the natural interaction of human to mirror and decided to leave the code untouched.

Challenges & Outcomes

The main challenge of this project was thinking of how to create a non-judgemental response when holding a compact mirror. Having a reaction to looking yourself in the mirror could be a very loaded action: it could be immediately judgemental, it could be stressful, or it could a deterrent from the action. My initial thought was to have LED lights to respond to the proximity of being in front of a mirror, but I thought that the light would interfere too much with the act of looking at your reflection. I ended up playing around with tone as an alternative but was also concerned with the connotations of tones. Such as: Would it sound too much like an alarm? Would it turn into an instrument rather than create a reflective space? These were my main concerns pursuing this output.

I found that I did not a steady data set to work with using the aluminum foil. I thought that I would have a more gradual input of data, but it seemed fairly binary as I was working with the material. I also suspected the readings to be closer to 0 when the mirror was left alone but found that it was steadily around 200. Rather than calibrating the data set, I chose the threshold for the sensor to reflect a very high level of moisture on the skin (900 out of 1023), and for the lower inputs to be mapped to the tones so there was always the “hum”.

I found that using a found object to be an effective foundation for this project. Placing the aluminum foil on the mirror and using alligator clips to connect it the breadboard worked well for testing. Beyond testing, this would be inefficient for a portable item. If I were to make a future rendition having all of the components together would be problematic. The aluminum foil on the compact mirror is flimsy and only attached by the edges. I found that the foil ripped easily when the mirror was moved around extensively. As well, the foil covers all of the surfaces. This would be problematic for attaching any microprocessors or protoboards as they would most likely to be attached to one of those surfaces. The components would either have to be wireless or the foil would have to be connected to accommodate to the hardware.

In a future iteration, I would use recorded sounds rather than tones. I think the tones are playful but still come across as distracting and stark. If there were softer sounds that were less removed from the context of alarms the soma aesthetics of the interaction would give more space for reflection.

Overall, I think that this project could be elevated to be used beyond compact mirrors. The inputs from the galvanic skin response sensors mapped to sounds could be applied onto many other items. The act of physical touch mapped to an ephemeral output such as sound creates space for reflection on many other interactions such as using a pen or typing on a keyboard. Galvanic skin response as bio-feedback is interesting because it can incorporate time – the data inputs can change over the time of the interaction. This project is only a small experiment in the greater potential of using the galvanic skin response in combination with sound as an output.

References and Research 

Galvanic Skin Response Tutorial 

Basic Tones Code for Speaker Output

Galvanic Skin Response Explained 

Harvard step test

What is Harvard step test?

“The Harvard step test is a type of cardiac stress test for detecting and diagnosing cardiovascular disease. It also is a good measurement of fitness and a person’s ability to recover after a strenuous exercise by checking the recovery rate. The more quickly the heart rate returns to resting, the better shape the person is in.” (wikipedia)

The procedure of Harvard step test.

“The person who is taking the test steps up and down on a platform in a cycle of two seconds. The platform is at a height of about 50 cm or 20 inches(usually 16 inches for women). The rate of 30 steps per minute must be sustained for five minutes or until exhaustion. To ensure the right speed, a metronome is used. Exhaustion is the point at which the subject cannot maintain the stepping rate for 15 seconds. The subject immediately sits down on completion of the test, and the heartbeats are counted for 1 to 1.5, 2 to 2.5, and 3 to 3.5 minutes.”(wikipedia)

  • Strategy:  

The professional step testing process is very complicated, and people do not often do step testing, but the recovery of heart rate after exercise is a very important indicator to detect heart health. Although my equipment is not that professional, they can immediately check their physical recovery status when people go to the gym. On the one hand, people have an intuitive understanding of my heart health or physical changes, and they can make corresponding adjustments to the amount of exercise they do.

How does this device work?

The more quickly the heart rate returns to resting, the better shape the person is in, normally heat rate should return to normal within 1 minute after regular exercise.

Test your heat rate after exercise > Your heart rate is very high right after exercise and the red led light up > If your heart rate return to normal the blue led light up > buzzer works as a timer, if your heart rate return to normal within 1 minute you pass the exam.


Describe your concept. What sensor would you like to use? What will your device do? Is your design for ☐ Self-reflection or ☐ Self-expression?
How could your design follow the design recommendations?

  • 1)  Instead of representing numbers, represent through materials and aesthetic visuals.

Instead of representing user’s heart rate in number, I used different color of led light as an indicator for people to read. In general, red is a passionately color and blue is a clam color. I choose red and blue leds to send notification to people.

  • 2)  Instead of designing for affect-as-information, design for affect-as-interaction. Treat the biofeedback as a prompt for social interaction or personal self-reflection.
  • I assume it is a self-reflection device because it can immediately check their physical recovery status when people go to the gym. It is a device that reflect people’s health condition.  
  • 3)  Have enough ambiguity that the individual must interpret what the visualization means for themselves.
  • For this project, it can be improved by adding visualization part of this device.
  • 4)  When designing, constantly reflect on how you are making meaning for the individual through your designs. Could you be insinuating that something is negative, unhealthy, etc. ?
  • Since people cannot change the code for this device, they cannot change the heat rate number.
  • 5)  Reflect on the authority you are giving to the biofeedback device. How could you transfer this authority to the individual instead?
  • 6)  Instead of focusing on self improvement, and prescribing an ideal, how could you help individuals with their own personal motivations?
  • For further steps for this project, I want to create a webpage, which can read the number of your heart beat. So people can know their heartbeat in every single time.

Howell, N., Chuang, J., De Kosnik, A., Niemeyer, G., & Ryokai, K. (2018). Emotional Biosensing: Exploring Critical

Alternatives. Proceedings of the ACM on Human-Computer Interaction, 2(CSCW), 69

  • Documentation:

Step1: test heat rate sensor.

I tested both the example code class provided. They all didn’t work at first. Since it is example code, the code is fine and I uploaded the code successfully. I checked the wire connection, port and Arduino board. They all good. After I asked for help, I realize I connect heartbeat sensor in a wrong way:

Most analog sensor with three wires, such as potentiometer, distant sensor. The wire on the sides connect to ground and power, and the one in the middle connect to analog pin. I did the same to heart sensor. I read the instruction on the bag and made it right.

(Left) Green –

(Middle) Yellow +

(Right) Red A0


(Heat sensor)

I tested both code and open the serial monitor. Everything works as expected.

Step 2: circuit and wiring


(Circuit Diagram without heartsenser)

I used fritzing to make this circuit diagram for leds and buzzer. It is very simple and clear with just two leds(one is red and one is blue). Since I cannot find blue led in fritzing, I used two red leds in the diagram. I also couldn’t find heat rate sensor, so I attach an circuit image below.


(Circuit Diagram with Heart Sensor)

Step 3: write Arduino code

I just changed few lines of code of the example code. I used if condition statement and set up a delay time for buzzer.

Code for buzzer:


Code for leds:


Step3: testing in real life

I used it right after aerobic exercise. It worked very well.

The more quickly the heart rate returns to resting, the better shape the person is in, normally heat rate should return to normal within 1 minute after regular exercise.

Test your heat rate after exercise > Your heart rate is very high right after exercise and the red led light up > If your heart rate return to normal the blue led light up > buzzer works as a timer, if your heart rate return to normal within 1 minute you pass the exam.

I tested my heart rate after I went to gym.

  • Insights:
  1. When connecting Arduino board to Arduino IDE, the very first thing you should check is the port name and board name. If you connected to different board. Arduino IDE cannot detect your board and code cannot be uploaded. Both port and board are under Tool at the top of Arduino IDE.
  2. Most analog sensor with three wires, such as potentiometer, distant sensor. The wire on the sides connect to ground and power, and the one in the middle connect to analog pin. I did the same to heart sensor. I read the instruction on the bag and made it right.
  3. Be careful of the led legs. The pin nearest the flat edge will be the negative, cathode pin.


  • Information sources:

I added one buzzer into my code and circuit. The buzzer works as a timer.


  • Next Steps: How would you improve upon what you made?

For this project, it can be improved by adding visualization part of this device.




Dog Activity Sensor

Experiment by: April De Zen


This experiment I wanted to create a fabric sensor that could track a ‘swaying’ motion. I really like the idea of creating electronic sensors with house hold items and I decided to continue in that fashion. I will be creating two strands of beads with a metal bead at the end of each strand. When the metal beads touch it will complete the circuit and turn on the LED. When the sensor is completed, I want to create a dog collar that will track the motion of a beloved pet dog. After we have a LED lighting successfully, the next stage will be to hook the sensor up to an Arduino and track the collars swaying motion through the serial monitor.

Step 1: Materials & Tools

  • 1 roll of conductive thread
  • 1 roll of regular thread
  • 1 roll of wire
  • 1 piece of sheet felt
  • 1 3V round battery
  • 1 adafruit sequins LEDs
  • Sewing needles
  • 3 Alligator clips
  • A bunch of plastic beads
  • 1K resister
  • Scissors
  • Needle nose pliers

Step 2: Beading
Luckily, I didn’t need to buy anything for this experiment since I had a bag of plastic beads from some kids crafts and the rest of the materials I already had in my kit. I sorted out a nice variety of beads I wanted to use and set them aside. I had about 10 beads for each strand. I don’t have any medal beads so I decided to make some by wrapping wire around a pair of needle nose pliers until I started to see a nice looking ball. Then I make a loop with the end of the wire and tucked the end of the wire into the ball to make a loop. I’ll use the loop to connect the wire bead to the conductive thread later.


From there, I added a piece of conductive thread to the metal bead making sure to double up the thread so it will hold the current of electricity better. Then I started started stringing the beads on to the conductive thread and stitched the excess thread into a piece of felt sheet. One strand was stitched to the right and the other was stitched to the left. I added and LED light and stitched a connection from the positive to the right side and the negative to the left side.


Step 3: Testing circuit
When I plugged in the LED came on immediately so I knew I did something wrong. The LED shouldn’t go on until the metal beads touched and complete the circuit but it looks like the circuit was already completed and when the 2 beads touched it would short out the LED and drain the battery. I had to go back to the drawing board and see where I went wrong.


Step 4: Fixing the circuit
After drawing out the circuit, I can see where I went wrong. Connecting the LEDs to each side completed the circuit so I needed to keep the LED on one side. Since I would be hooking this up to an Arduino eventually I would also need a third wire (or thread) to connect to that. When I saw the circuit on paper it made more sense and I was able to map it out better. Following the drawing, I made a new circuit and this time — it worked!


Step 5: Testing with Arduino
I wanted to track the motion of the dog so when it was moving the beads should touch sending a signal to the Arduino. To do this, I used some sample code provided by Arduino. I used the ‘Digital Input Pull Up’ to test it out. If it worked properly this code will return a ‘1’ when the beads are touching and a ‘0’ when they are touching. According to the code I would need to use pin number 2 to track the signal. I connected that pin to the thread that came out the top of the sensor using alligator clips. I connected the ground to ground and made sure to add a 1K resister to the 3.3 volt just incase. I’m actually not sure this needed it but it worked.


Step 6: Having fun with Dog
The next step was to see if this sensor would even work with the motions of a pet. For the sake of science, I put it on my dog. I disconnected the sensor for my Arduino and taped off the third line to convert this sensor back to just battery operated. I used some leftover wire to twist around the conductive thread on both sides. After that I connected the wire to each side of the battery pack and tucked it behind the collar. The sensor worked perfectly so I attempted to put it on the dog.


This is Sparkles Joey Joey Superhero. Not a typo, my kids named her and they must feel very strongly about the name ‘Joey’. I had to bribe her with many treats but I got her to wear the collar without trying to chew it off. She ran around with it on and I noticed that the beads didn’t always touch when she was moving but it did light up many times while she wondered. I think another iteration of this should have more strands of beads and maybe a larger surface for the circuit to connect (longer metal bead?) I also wondered what would happen if she fell asleep with the beads touching. That would technically register as movement if the Arduino was hooked up to it.


Low Blood Sugar Tracking with PulseSensor (Pulsewear)


Following in the footsteps of trendy wearable fitness bands, Pulsewear is one specifically designed for diabetics.

Insufficient blood sugar levels can cause a rapid heartbeat and heart palpitations. It happens when you experience low blood sugar so often that it changes your body’s response to it. Normally, low blood sugar causes your body to release stress hormones, such as epinephrine. Sometimes, people do not realize their low blood sugar level, or it can fall down suddenly. Going low during sleep is one of the biggest fear of people with diabetes. They can enter a coma, or even die during their sleep. So, most of them prefer staying high, wake up at night. This is also parents worry on their child that they check on their child often during their sleep.

My device will warn the person when he/she has a rapid heartbeat in order to inform his/her low blood sugar level.

I want to design an appealing wristband, which does not look like a medical device and fits and adolescents’ lifestyle.  It changes colour with LEDs and gives a signal by vibrating as well.

You can see the mages of my concept.



Image 1: Concept sketches and features

In order to develop its prototype, I am using a pulse sensor.

Code: “heart_rate_LED” with delay set to 100ms
Hardware: PulseSensor circuit and Arduino-UNO
Software: Arduino (Arduino code) 
Spreadsheet Data: workshop-3-worksheet_erman

To set the Arduino and codes I followed the tutorial. (


Image 2: Arduino and circuit setting

Your resting heart rate is when your heart is pumping the minimal amount of blood that your body needs because you’re at rest. Normal resting heart rate can vary from person to person, but for most adults, it’s between 60 and 100 beats per minute.

Children’s heart rates are normally faster than those of adults. According to Cleveland Clinic, the normal resting heart rate for a child aged six to 15 is between 70 to 100 beats per minute.

Continuous heartbeats over 100 and lower 60 may be a sign of a medical condition. I primarily want to use heartbeats over 100 because of my concept on lower blood sugar level of the users.

Because of these ranges, I added conditionals and texts for the warning.

if (myBPM >= 100) {

digitalWrite(LED13, LOW);

if (myBPM <= 100) {

digitalWrite(LED13, LOW);

if (myBPM <= 60) {

digitalWrite(LED13, LOW);
else {


Image 3: Monitor readings “High!” and “Normal!”


Image 4: Plotter readings

What is expected of my low-fidelity prototype:


Image 5: PulseSensor on low fidelity prototypes.

I expect it to light up light up when the pulse is over 100.

I hope to develop another version of the prototype with a continuous heartbeat in a dangerous zone may cause a warning, sending a message to your family, friends or caregivers. Moreover, it can call 911 if it really goes high and the user does not turn it off.  Turning off will be a sign for the consciousness of the user.


I am happy about learning new sensors. Each week, I am learning more about what can be done with Arduino. Still, I have some limitations about using Arduino.  For example, I wanted to create a voice alert; however, for a reason, I could not make it work. I also could not create a conditional for time tasks. For example, I wanted to write do something if this situation continues more than  60 seconds.

Next steps:

  • I still want to work on in and make more complex operations with it.
  • I want to add a voice alert to my concept.
  • I want to create a wearable version of this and hope to make it work remotely with fewer visible cables.
  • The unit also supposed to feature a handy app, accessible on any smart device, or an insulin pump that pairs with the device to provide the user with real-time pulse readings (or even glucose reading) and an easier way to manage their logbooks and analyze health patterns.

You can see the image of the worksheet below.


Image6: Worksheet workshop-3-worksheet_erman

Finger Activity Tracking with the PulseSensor

Tyson Moll

Code: “GettingStartedProject” with delay set to 100ms
Hardware: PulseSensor circuit to record data as stipulated for above example. See
Software: PuTTY (serial logging to .csv), Excel, Overwatch
Spreadsheet Data: Download Here

This week, my task is to find a good use for a PulseSensor; a device that uses a light sensor and green LED to determine your heart beat.

At first glance, I wasn’t totally sure how I could use the sensor beyond translating a beat into sensory phenomena. Strictly using the device as a heartbeat monitor did not appeal to me, so I began to explore ways that the device could be used differently to track bodily behaviors.


Turns out it also works relatively well as a speed radar! Since the light sensor is measuring changes in light, the device effectively can be used to determine how fast an object passing over the sensor is with ‘BPM’. It might not be the most standard unit of measurement, but it inspired me to observe ways I could accurately measure using the device.


In a previous project I worked with Ultrasonic sensors to measure the distance between it and objects. One of the notable quirks of the ultrasonic device was that it required a relatively flat surface to reflect its signals off in order to function most accurately. The PulseSensor tends to behave in a similar fashion, working best when the sensor is aimed upward and away from objects.


I tested out the sensor inside of the finger-sized device I made for my previous blog post and it was relatively successful in tracking the activity of my finger as I moved it, so I thought it would be interesting to better secure the device inside the “finger pocket” and record the data it collected into a spreadsheet. I wasn’t entirely sure whether the device would be accurately recording the behaviour of my heart or the movements of my finger but I was interested in studying the analog behavior nonetheless.


PuTTY presented itself as a viable solution, having the option to send serial data to a printable output log file; all I had to do was send it to a .csv instead of a log file and open the .csv with Microsoft Excel in order to retrieve the data output. For the sake of getting an accurate reading without too many data points, I chose to use the “GettingStartedProject” example in the PulseSensor arduino library with a serial delay of 100ms, which provides the value of the sensor as received by the Arduino’s analog input pin.

putty1 putty2

I recorded the data with PuTTY in two sessions: one consisting of relaxed typing activity comprised of cataloging records in an online music archive and another consisting of activity recorded while playing the computer game Overwatch in its Deathmatch game mode.


I plotted the information I collected into the line graphs above and below, clipping data collected when setting up the device and restricting the view to information between analog values 650 and 350 (the Y-Axis). The numbers along the X-Axis relate to the sample number and constitute about 5 1/2 minutes of time (since each sample is recorded every 100ms). The graphs seem to indicate that Regular Activity (RA) values gravitated towards an analog value of 520, whereas Gaming Activity (GA) values tended to be slightly lower on average. However, GA did exhibit more consistent spikes in activity as well as much more obvious fluctuations, waving up and down versus RA’s relatively flat behaviour. While RA did have several periods of high level spikes, it seems likely that they do not act as clear representatives and could possibly be due to some human error on my part (sometimes the device was adjusted during this first trial, and the end of the RA data constitutes taking the device off).


In order to get a better view of this data behaviour, I overlayed the two graphs and reduced the information collected to a representative sample between X values 2100 and 2600, which seemed to further support my understanding of the behavior of the recording data.

Ultimately, this experiment provides visual insight into data that a user may not be able to examine while preoccupied with an activity. Although this data is largely technical in scope, it does leave me imagining ways of using data collected via bio-metrics that does not express itself instantaneously and rather leaves its findings to be reflected upon at a later time. The obvious comparison would be to medical or sports analysis devices applied to a user, but I am interested in how such devices integrate in ways that do not interfere with their analysis and how they might move beyond the sterile environment of scientific analysis.

Perhaps such a device could monitor and save data over a period of time (with an SD card instead of a serial connection) and if it crosses a particular threshold over a sustained period of time create some sort of alert that may be informative to a user. Especially if this device is a more long-term use product such as an insulin pump, it could be interesting to explore how such devices could be better adapted to everyday human use.


Interactive Massage Gloves

The objective of this workshop is to test resistive materials and analyze how they can be used as soft sensors.

First, we measured and recorded resistance values of all materials with a multimeter, and then measured their sensor values with voltage divider circuit and Arduino using “Analog ReadSerial” example; both at rest and when activated.


For Eeonyx StaTex Conductive Fiber and Eeonyx Stretch Sensing Textile we attached alligator clips directly to materials on both sided. For Velostat and Eonyx pressure sensing textile, we assembled contact pads with conductive tapes on either face to allow testing through pressing the resistive material.

Resistance values were read with the multimeter, and sensor analog values (0-1024) were read in the Arduino serial monitor.

img_7889 img_7893

img_7894 img_7895


  • Velostat reduces resistance when pressed or flexed. It’s pressure-sensitive and pressing it makes it highly conductive.
  • Eeonyx Pressure Sensing Fabric reduces resistance when pressed
  • Eeonyx StaTex Conductive Fiber reduces resistance when squished.
  • Eeonyx Stretch Sensing Textile reduces resistance when stretched

img_7896 img_7897


Create a Body-Centric Sensor Design, focusing on sensor construction and sensor calibration.


I worked towards designing an interactive smart massage gloves that have the ability to manipulate the ambient of the treatment room. The advantage of the interactive glove is that it gives the therapist the ability to control lighting remotely and simultaneously depending on the patient’s state while under treatment. The therapist can increase or decrease force on specific pressure points on the treated body to reflect muscle tension and therefore produce a relaxing ambient that will calm the patient. I constructed sensors for three fingers: thumb, middle finger and pinky finger. I had plans to give every finger the control of a different feature (such as light, sound, and scent), or of 3 different light locations in the room.


 Sensor Design Materials

  • Velostat
  • Felt material
  • Conductive fabric
  • Latex gloves
  • Conductive thread
  • Sewing thread & Needles
  • Arduino Uno and Bread board
  • 10k ohm fixed resistors
  • LED lights (blue, red, yellow)
  • Alligator clips and jumper wires

I constructed 3 pressure sensors using Velostat as it’s a force sensitive resistor.  the velostat was sandwiched between 2 layers of conductive fabric in the interior and felt in the exterior.

img_7905 img_7906

Each sensor was attached to the corresponding finger on the sanitized latex gloves using sewing thread. Then conductive threads ran down along the fingers to be connected to the microcontroller. For the experiment purposes, I attached them from outside, but ideally they should be invisible and embedded inside the glove’s fingertips.


For the time being, I experimented with the thumb to control the intensity of one LED light.


I realized that the sensor is very sensitive and the LED light was always on, even without poking it. So, I had to control the relation between pressure and light intensity and this was by uploading Calibration sketch to Arduino in order to be able to map the minimum sensor value to 0, and the maximum sensor value to 255. I modified the code to allow it to print the sensor values on the serial monitor to watch the changes in relation to light intensity.

screen-shot-2019-02-01-at-3-02-19-pm screen-shot-2019-02-01-at-3-02-44-pm

Click on the links below to watch videos of the experiment:



From this experiment I learned a great deal with Arduino. I had lots of failures during my experiments. I went through many trials and errors with the sensor assembly, with the circuits and with the code. I learned that Velostat is highly sensitive and conductive, and it’s tricky to control. Also, using latex gloves wasn’t a great idea as they’re delicate and not durable. The process of experimenting with one sensor and one LED light can be duplicated to be tested with the other two sensors and whatever desired ambient feature to be manipulated.

Information sources:

Next Steps:

For next steps, I wish to work more on the aesthetics of the interactive gloves, that is by hiding the sensors inside the gloves and by choosing a more comfortable, durable and visually appealing material. Next I want to learn how to manipulate the lights remotely by researching wireless applications and studying the required software and hardware systems to achieve a successful end result.