Final Project: Chill buddy

 

 

How to wear it: red pad on right wrist, green on left, yellow on your foot, and an accelerometer attached to your shirt.

When it comes to exercises like pilates and yoga that requires constant attention to breathing and posture, which can be hard for people to follow while exercising.

The other key part of these types of exercises is that the user should have a good balance of the reflection of their state and maintaining the focus on their body. To assist them, they should be able to know how they are breathing and how they are holding up the posture, yet also they should not be interfered from being zen.

Therefore, I came up with a device that assists people with both breathing and posture.

The main problem with designing a device for this was that it has to be light and intimate to the body. If it is too heavy, it is uneasy for the user to focus on inner peace. If the user has to carry/hold on to the device, that would hinder the user from holding up a posture.

Component diagram:

The device consists of three parts: an ECG sensor, a LED neopixel, and an accelerometer. The neopixel lights up in an ideal breathing tempo, and the ECG sensor monitors your heartbeat and your breathing.

The ECG sensor solved the problem of the lightness and closeness to the body. The ECG sensor comes with three attachable pads. They are light and thin, which made it easier for me as a user to focus on myself.

Explanation video: https://drive.google.com/file/d/1ynT0niDqBbBioUs-JuklcV1FvNpeHiIn/view?usp=sharing

Demo video: https://drive.google.com/file/d/18wtBSU3APmGJdT1yotgQdTB6aySNxs1L/view?usp=sharing

default state; inhale according to the tempo of LED neopixel
default state; exhale according to the tempo of LED neopixel
when the heartbeat rises, the light changes to pink and tells you to calm down.
when the back is not straight, the LCD tells you to straighten your back.

Schematics:

Code:

#include <Wire.h>
#include <LiquidCrystal.h>


LiquidCrystal lcd(13, 12, 5, 4, 3, 2);

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif

#define PIN 8
#define NUMPIXELS 8

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 500; // delay for half a second
int zpin = A1;

void setup() {
// initialize the serial communication:
Serial.begin(9600);
lcd.begin(16,2);
pixels.begin();pixels.begin();

pinMode(10, INPUT); // Setup for leads off detection LO +
pinMode(11, INPUT); // Setup for leads off detection LO -
pinMode(zpin, INPUT);
}

void loop() {

for(int i=0;i<NUMPIXELS;i++){

// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(0,150,0)); //green

pixels.show(); // This sends the updated pixel color to the hardware.

delay(delayval); // Delay for a period of time (in milliseconds).

lcd.setCursor(0,0);
lcd.print("INHALE ");
lcd.setCursor(0,2);
// lcd.print(" ");

}

for(int k=NUMPIXELS;k>0;k--){


pixels.setPixelColor(k, pixels.Color(0,0,0));

pixels.show();

delay(delayval);

lcd.setCursor(0,0);
lcd.print("EXHALE ");
}

if (analogRead(A0)>700){
for(int i=0;i<NUMPIXELS;i++){


pixels.setPixelColor(i, pixels.Color(235,64,52));

pixels.show();

delay(delayval);


lcd.setCursor(0,2);
lcd.print("CALM DOWN ");

}

for(int k=NUMPIXELS;k>0;k--){


pixels.setPixelColor(k, pixels.Color(235,64,52));

pixels.show();

delay(delayval);


lcd.setCursor(0,2);
lcd.print("CALM DOWN ");

}
}

if(analogRead(zpin)>300){
lcd.setCursor(0,2);
lcd.print("BACK STRAIGHT");
}

if((digitalRead(10) == 1)||(digitalRead(11) == 1)){
Serial.println('!');
}
else{
// send the value of analog input 0:
Serial.println(analogRead(A0));
}
//Wait for a bit to keep serial data from saturating
delay(10);

}

Pilates buddy

As a person who always sits in front of the monitor 24/7, my colleagues and I started to realize that we are beginning to establish another commonality other than our majors — back pain. Then I started to brainstorm around the problems of keeping up a good posture, and I got an idea of what other exercises require one to be in a straight back position.

Then I thought of pilates. Pilates, an exercise that requires one to not only have a straight back, but also a regulated breathing technique, and I thought making a pilates tracker would fit the agenda of the final crit.

There are two main interactions I am trying to tackle: the back posture and the breathing tempo.

For the back posture algorithm, I thought of manipulating the accelerometer’s XYZ values on each. If each value shifts in an inclined position, then the vibration motor 1 would buzz.

For breathing, two variations would be needed for the vibration: a short breath and a long breath. By having a button, one can change the tempo of the vibration motor 2. The vibration motor will pulsate in a standard breathing tempo.

Then the additional feature would be background music. It will be peaceful, zen music to corporate with one’s respiration as well. This will be done by integrating the mp3 function in the code.

 

The image on the left would be a more realistic appearance compared to the one on the right. The band will have the accelerometer in the middle, and the two vibration motors on each side.

 

This is what it would look like as a sketch.

Ambition:

  • Developing a UI
  • Visualizing the band with real scale components in them
  • Other components?

 

I’ll take that as a “Yes”

Have you ever had an experience of not being able to talk for some reason?

For instance, when you took your wisdom teeth out, broke your jaw, someone taking a mold of your face..and so on.

One of the biggest fights that I had with my sister started with when she couldn’t understand my murmurs when I took my wisdom teeth out.

So I decided to make a communicator.

Video demonstration: http://drive.google.com/file/d/1M4TKym7BnJNcziB2OL4j2dgWhBx9dFqx/view?usp=sharing

It comes with two parts: a Joystick and a button. The joystick is for a simple answer, and the button is for inquiries.

The joystick corresponds with one’s positivity in the answer in counterclockwise order, following down (no), right (maybe), up (yes), left (sounds great). The pitch of the sound corresponds as well, from a lower to higher pitch depending on the positivity in the answer.

Down; C
Right; D
Up; E
Left; F

The button shows one’s inquiry in order. The user can change the message as well, but you can assign each note that corresponds with your inquiries.

Default
Pressed once; G
Pressed twice; A
Pressed three times; B
Pressed four times; next octave C

Q&A

What if I am not a perfect pitch?

  • Does the pitch of notes corresponding with your answer help? Does LCD? Please let me know!

Schematics:

//Codes
#include <Wire.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(13, 12, 5, 4, 3, 2);


int speaker = 7;

const int button = 6;
int val;
int counter;
int pressed;


void setup() {
lcd.begin(16,2);

pinMode(speaker, OUTPUT);
pinMode(button, INPUT_PULLUP);

Serial.begin(9600);
lcd.print("Default");

}

void loop() {
val = digitalRead(button);

int sensorReading = analogRead(A2); 
int sensorReading2 = analogRead(A3);

if (sensorReading < 300) {
lcd.setCursor(0,0);
lcd.print("Yes. ");
tone(speaker,659); 
delay(500);
noTone(speaker);
}
if (sensorReading > 800) {
lcd.setCursor(0,0);
lcd.print("No. ");
tone(speaker,(523)); 
delay(500);
noTone(speaker);
}
if (sensorReading2 <300) {
lcd.setCursor(0,0);
lcd.print("Maybe. ");
tone(speaker, 587);
delay(500);
noTone(speaker);
}
if (sensorReading2 > 800) {
lcd.setCursor(0,0);
lcd.print("Sounds great. ");
tone(speaker, 698);
delay(500);
noTone(speaker);
}



if (val == LOW){
pressed=counter ++; 
delay(250);
Serial.println(pressed);

if (pressed == 0){
lcd.setCursor(0,0);
lcd.print("I need water.");
tone(speaker, 784);
delay(500);
noTone(speaker);
}
if (pressed == 1){
lcd.setCursor(0,0);
lcd.print("I want food. ");
tone(speaker, 880);
delay(500);
noTone(speaker);
}
if (pressed == 2){
lcd.setCursor(0,0);
lcd.print("Can you bring");
lcd.setCursor(0,2);
lcd.print("my phone?");
tone(speaker, 988);
delay(500);
noTone(speaker);
}
if (pressed == 3){
lcd.setCursor(0,0);
lcd.print("I need to be ");
lcd.setCursor(0,2);
lcd.print("alone. ");
tone(speaker, 1046);
delay(500);
noTone(speaker);
}

}
}

Mini assignment 9

What sounds would you add to your house to make it more accessible?

  • Pretty much every gadgets in my house talk/play sound when something happens (even the cat feeder..or the toilet..) but one thing I wish is my studio room!! As you can tell from my past projects I have many issues with my studio regarding my health! Wouldn’t it be nice for my studio room to have a detector that tells me how toxic the air level is right now..
  • Or I want some sound that tells me how the water temperature is just right when I shower. Like when the water’s temperature reaches the user’s set temperature, it makes a sound.
  • My dad tends to fall asleep while he is boiling something on the stove, and it sometimes overflows. He says that he wishes that the sound could tell him that the stove is overheating.

Singing toilet but make it less obvious

As Jet briefly mentioned in class, in some countries including Korea/Japan, the “singing toilets” can be commonly found. Even the toilet at my house not only plays music but also it has a speaker and a microphone that connects to the doorbell, so you can answer someone outside the door while you are using the toilet.

I wondered, why does it play music? why not just a sound? Is it also a way to show the luxury of listening to classical music even while you do your business? I asked around many people, but I couldn’t really get an answer. Therefore, I called the interior consultant who installed this at my home.

He says it is more of a cultural thing. Not only the calm music lets you concentrate better on your business, but basically, for the toilets that are located in a shared area such as a public bathroom/my parent’s room, it is considered “rude” to let others hear the sound that your stuff makes. Therefore, there’s music to stealth the sound so that you don’t feel embarrassed. It is not always music, too; for example, the Incheon airport toilets have buttons next to them that you press when you use the toilet, and it makes a flush sound — no, it doesn’t flush the toilet, it only makes a flushing sound (you flush your toilet after pressing the flush sound button.

Therefore, I wondered again. While I use the microphone in the bathroom, classical music doesn’t stop. However, everyone in this building has the same toilet installed, so I was always afraid that the delivery guys can hear the music while I talk. The fact that the music doesn’t stop while talking on the microphone is defeating the whole purpose of that music.

So I designed a singing toilet module that fulfills all of the purposes.

https://drive.google.com/file/d/1pMVpjTm3tO2JzSIfYPkowj36UpNh8F3g/view?usp=sharing

It plays the intro of “Spring” by Vivaldi. (this is where my musical talent came in handy) The full jingle can be played here:

https://drive.google.com/file/d/1cWwLkompyNM6D4IXzH8UUfemVE9Hp2lo/view?usp=sharing

From the left: speaker, photocell resistor, button, and a blue LED
While the photocell is blocked (the equivalent of someone sitting on the toilet) the music plays and the blue LED comes on.
Someone presses the doorbell at the door! The music pauses, and the LED turns off as well to alert the person that it is paused.

+

What’s up with the LED? Why is it necessary?

  • According to the interior design consultant, he says that so that the “visual” bothers the person less.

Assignment 8

Mini assignment: Listen to sounds and relate how they make you feel, both physically and emotionally. If the Star Trek sounds didn’t have titles/names, could you still guess what they mean? Do car sounds carry any emotion? How do you respond to special effects sounds for sounds you’ve never actually heard? How loud is a gun shot? How loud is a baby crying?

The sound itself evokes various physical interactions. When I hear a car honk, I jump. Or when I hear the helicopter flying on Craig street, I unconsciously raise my volume when I talk to my friend. Emotionally, they can often petrify me when I hear something squeak when I am alone, or make me nervous/lazy when I know that my morning alarm will ring soon. Or even my cat, when she meows, I instantly feel curious and try to communicate.

I think the sound itself is important as well but the fact that we can mimic the sound plays a big role. Like your question, if the sound effects didn’t have titles/names, for example, 808 base, one can mimic the sound and go “boom boom boom” and someone would be able to tell that it’s 808 base.

The reaction I had when I heard a sound that I never heard in my life from sci fi movies, the weird thing about it is that I just believed it. Like Wall E, I don’t know what I imagined future moon robots to sound like, but beep boop is very convincing to my expectations.

There are some sounds that carry emotions. The best and the most expectable example would be music. Because music without language such as EDM can also bring happy emotions to people which even increases people’s heartbeat to the rhythm.

I feel like decibel plays a lot in the world of sound, but the part I am interested in sound is what kind of interaction thunder brings. Thunder is not only shockingly loud but also evokes an immediate physical reaction in people. Moreover, the distance becomes ambiguous. Like when you are trying to walk towards the moon and can never get closer, that’s how I feel about thunders.

Make it So Chapter 6,10

After reading Make it So Chapters 6 and 10, I have realized that sound has many more roles than I thought. To people, sound can provide clues of the size of the space, direction, or even the distance. It is far more capable of being used as an alert/alarm. The sound is one of the strongest elements to involve in a device. It does not only interacts with people physically but also psychologically. Sound is a valuable part of human memory. This means, that in a device, one can even approach to condition one to the sound of the device. For example, when we hear our phone ding, the thumb is already tapping the screen for thumbprint recognition/password. The power of sound can also be seen in emotional interaction. For example, music can make one feel the whole spectrum of emotions such as being gloomy or calm. This can be used in devices that cooperate for one’s emotional support in situations like when one indicates physical signs of being angry such as faster heartbeat/increase in blood pressure, the device can detect those signs and play calm music. Sound can also interact with the user from sound to sound —  like a conversation. As Chapter 10 mentions, features like playback can also play a big role in devices even if the sounds don’t necessarily make a full-on conversation (even siri today fails to make a smooth conversation!) Sound gives people a lot of space to work with, and the fact that sound doesn’t necessarily have to be audible to human sounds makes it even more potent.  (If anyone’s a fan of the netflix show Umbrella Academy, *spoiler alert* I think you would know that the sound is so powerful)

Sound in Physical Interaction Examples

Korean rice cooker: when the rice is ready, the voice says “Delicious rice is ready to be served” and the lid automatically opens. Based on time/water level one sets, the rice cooker serves the most ideal type of rice.

Theft alarm in stores: When people walk out with a product without paying, the alarm detects it and makes a loud noise.

Automatic Cat feeder at my house: whenever it is user’s set time, the voice recording of me saying “time to eat kitties!”(which I trained my cats to come and eat when I say this) plays automatically, and the chamber inside the feeder rotates and sends out cat food.

Not related to this topic, but I also made something similar in my last semester’s class, which is an automatic feeder that detects cats movement and also a cat exerciser.

I’m your fan

In counter-clockwise order, a fan, accelerometer, gas detector, and a PIR sensor.

To an artist, one’s respiratory health is one of the priorities. Spray paint, paint fume, melting plastic… even with a mask on, the fume still enters my lungs. Right now, being able to work on my projects from home, I had to make a compromise with my parents and trade my ventilation with an at-home studio. The room has no windows other than a door. However, to have a fan in the room, the foam particles will fly everywhere and stick to my sculptures or get into my eyes, which is not an ideal situation. But just leaving a door open doesn’t do much to ventilation either.

Therefore, I came up with a fan that interacts with my presence, action, and the gas level.

Video demonstration:

https://drive.google.com/file/d/1VG5g9sS6BtFTEqqUuGJY6JN5LMpSzvyK/view?usp=sharing

If people had a hard time understanding since I was struggling to talk, film, move an accelerometer, and light a candle all at the same time, basically the fan works in this way:

Fan gets activated:

  • when it detects no movement in the room and the doorknob was pulled
  • when the toxic gas level (flamable gas) is too high in the room, no matter of my presence in the room.

Fan is off when:

  • when it detects a movement in the room with a low gas level

Now it is time to get real.

 

 

The first demonstration is activating the fan with no movement and the door knob.

So this is my dusty, non ventilated studio. Since I am moving in the room, the fan is off.

Currently, there is a movement detected in the PIR sensor, so the fan is off.

So I opened the door, AKA activated the accelerometer.

The fan turns on and ventilates the room.

 

 

Now it’s time to test the flamable gas detecting interaction.

Now I am in the room again, and moved infront of the PIR sensor. The fan is off.

I give the toxic gas detector (flamable gas detector) a whiff of my spray foam,

The fan turns on, even though there is movement detected in the room.

 

<Schematics>

<Code>

int GasPin = A0;
int PIR = 7;
int motorPin = 8;
int Ypin = A1;


int yVal;
int oldY;
int dif;

void setup()
{
pinMode(GasPin, INPUT);
pinMode(PIR, INPUT); 
pinMode(Ypin, INPUT);
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
analogWrite(motorPin, 0);
}
void loop()
{
oldY= yVal;
yVal = analogRead(Ypin);
dif = abs(oldY - yVal);
// delay(250);
//Serial.println(dif);


if (digitalRead(PIR) == LOW && dif>5){ 

/*Serial.println(dif);
Serial.println("PIR OFF");
Serial.println(analogRead(GasPin));
Serial.println();
delay(1000);*/
analogWrite(motorPin, 255);
}
if(digitalRead(PIR) == HIGH){
/*Serial.println(dif);
Serial.println("PIR: ON");
Serial.println(analogRead(GasPin));
Serial.println();
delay(1000);*/
analogWrite(motorPin, 0);
//delay(4000);
}
if(analogRead(GasPin) > 330){
/*Serial.println(analogRead(GasPin));
Serial.println("PIR: ON");
delay(1000);*/
analogWrite(motorPin, 255);
//delay(4000);
}
}

<Reflection>

Hardships:

  • initially I had an LCD display, yet for some reason it was glitching not by itself, but also making the whole arduino glitch, and even my computer. The wiring was correct and everything, and that gave me a hardship of setting the range of gas level, because the serial monitor was already showing so many values from different sensors.
  • the both ground and vcc wire of my fan got detached. I didn’t have soldering equipments or anything so I took a knife and peeled some of the wire and used a piece of tape to hold them together.

For future:

  • Buy a bigger fan and actually use it.

 

ROBO CAT!

Sometimes we need an animal for emotional support; however, not everyone can afford to have pets! Therefore, I introduce a (part) of my robocat.

For cats, tail is one of the biggest indicator/langauge for how they feel right now.

Unlike dogs, cats wagging their tail indicate that they are agitated. The more they are annoyed, the more they wag their tails. So I created a module of correlation between petting and a tail overtime.

The button stands for a body part. When it is pressed, it. means that the cat is being pet. The LCD monitor shows the state of the cat literally.
The cat is pet for twice (button is pressed twice). The tail wags a little bit.
The cat is pet four times. The tails wags more, but still slowly.
The cat is pet for multiple times now. The cat is now starting to get annoyed.
You pet the cat for too many times! The tails wags rampantly, and now the cat hates you.

But cats, unlike humans, they are fast at forgetting.

After 10 seconds of being mad at you, the cat is now back to where she was.

(in the video, for convinience I set the timer as 3 seconds)

Video demonstration:

https://drive.google.com/file/d/1UfTICAObl-EV51BOliyEytrU68ZdZQGh/view?usp=sharing