Dr.Chair

Made by kasandrp

Found in DioT 2019: Augmented Objects · UNLISTED (SHOWN IN POOLS)

Problem Statement: I am Designing for people who spend majority of their time working behind a desk, sitting in a chair. Goal: To design a mechanism that lets people know when they should re adjust their seating position, to properly align their spine. My project does this by vibration, motor movement and flashing when there is too much pressure on one side of the chair for too long and not enough pressure on another side of the chair.

0
  • Problem Statement: I am designing my prototype for the people who sit in an office chair all day and work behind a desk or a computer. 

  • Goal: I want to create a solution that will remind people to realign their posture when sitting to long. I will do this by adding a FSR sensor to detect pressure, a vibrator and a micro servo motor to help with realigning the spine in the chair. After there has been too much pressure on a sensor for too long the LED will activate, then the vibration will start to prevent you from continuing to slouch and when your back is pressed against the back of the chair the servo motor will activate allowing you to realign your spine. For example, if you are slouching by resting your head and arm on the arm rest for too long, hen the actuator and sensors will tell you alert you to put more pressure on the back of the chair in an effort to sit up straight. 

  • Process: During the construction of my circuit, everything was going smoothly. I was able to efficiently get the LED to to respond to my FSR sensor. As the process continued , I was able to provide power to my vibration motor as well as correctly set up my servo motor. I had some troubles with the code, it would not change however, my LED would light up sometimes but not all the time and my code for the micro servo motor did not work like I had hoped. However, I went from one sensor and an LED to an actuator (micro servo) and a motion vibrator. There were issues where my code would not flash to my argon and I had to switch Argon's. After I switched Argon's code would flash for an hour then stop flashing all together. 

  • Outcome:

  • Be able to illustrate the final outcome. Explain how complete the prototypes is and how it works. Your documentation for this section must include:

  • Next Steps: If  I took this project forward, I would implicate it on a much larger scale. I would use a bigger power source and stronger LED's, vibrators and motors and implement it in the inside of an office chair. I would connect it to the internet in such a way that allowed for a reading of how often the person is slouching, how often do they have to reposition their spine. This information can be recorded in their phone to allow them to speak with a chiropractor. 

  • Reflection: I did not get where I wanted because I could not get my code to work as I wanted it to with my sensors and actuators. 

Videos 

https://youtu.be/Ek0aJDP13Ac (LED)

https://youtu.be/xCNBx7Yfp7Y (Buzzer) 

Code Specifically for the Buzzer: 

Servo servo;

int angle=0;

int fsrpin=A4;

int fsrreading=0;

//int counter=0;

void setup()

{

// Serial.begin(9600);

servo.attach(D7); // attach the servo on the D4 pin to the servo object

servo.write(0);

delay(1000);

}

void loop()

{

for(angle = 0; angle < 180; angle += 1) // command to move from 0 degrees to 180 degrees

{

servo.write(angle); //command to rotate the servo to the specified angle

delay(15);

}

delay(1000);

for(angle = 180; angle>=1; angle-=5) // command to move from 180 degrees to 0 degrees

{

servo.write(angle); //command to rotate the servo to the specified angle

delay(5);

}

delay(1000);

}

0
int pressuresensor = A0;

int pos = 0;

//int vibration = 5;

Servo rotation; // create servo object to control a servo

// a maximum of eight servo objects can be created

int led = 3;

//Servo rotation;

//int temp = millis()

int state = 0;

int counter = 0;

void setup()

{

pinMode(pressuresensor, INPUT);

// pinMode(vibration, OUTPUT);

pinMode(led, OUTPUT);

//rotation.attach(D0);

// can be called from the cloud

// connect it to the gong function below

rotation.attach(A0); // attach the servo on the D0 pin to the servo object

rotation.write(25); // test the servo by moving it to 25°

pinMode(D3, OUTPUT); // set D7 as an output so we can flash the onboard LED

}

void loop()

{

int pressure2 = analogRead(pressuresensor);

// if (pressure2>100) {

// //counter=counter+1;

// int start = temp;

// }

// else

// {

// counter = 0;

// }

if (state != 1)

{

while (pressure2>100)

{

counter = counter+1;

// Particle.publish("time",String(count));

delay(1000);

if (counter>6)

{

rotation.write(0); // move servo to 0° - ding!

digitalWrite(D2, HIGH); // flash the LED (as an indicator) digitalWrite(vibration, HIGH);

digitalWrite(led, HIGH);

state = 1;

return;

}

}

}

if (pressure2<100)

{

rotation.write(25); // move servo to 25°

digitalWrite(D2, LOW); // turn off LED

// digitalWrite(vibration, LOW);

digitalWrite(led, LOW);

counter = 0;

state = 0;

Particle.publish("pressuresensor",String(pressure2));

}

// if (counter>5) {

// digitalWrite(vibration, HIGH);

// } else {

// digitalWrite(vibration, LOW);

// }

// Particle.publish("time",String(count));


}
Click to Expand
0
0
0
x
Share this Project

This project is only listed in this pool. Be considerate and think twice before sharing.


Courses

49713 Designing for the Internet of Things

· 18 members

A hands-on introductory course exploring the Internet of Things and connected product experiences.


Focused on
About

Problem Statement: I am Designing for people who spend majority of their time working behind a desk, sitting in a chair.

Goal: To design a mechanism that lets people know when they should re adjust their seating position, to properly align their spine. My project does this by vibration, motor movement and flashing when there is too much pressure on one side of the chair for too long and not enough pressure on another side of the chair.

Created

January 31st, 2019