49713 Designing for the Internet of Things
· 16 members
A hands-on introductory course exploring the Internet of Things and connected product experiences.
Found in DIoT - Augmented Objects
Connect people over distances with a common goal of staying fit by building an avatar to visualize fitness stats.
An ambient device that connects partners over distances with a shared goal of staying fit. The device displays fitness information in an ambient format, that not only motivates people, but also provides a sense of connection between partners by allowing them to keep a check on each others' fitness progress side by side, hence, allowing them to work together towards achieving goal. This kind of display also offers a sense of competition or gamification, that is helpful in persuading people to stay motivated.
The device is connected to a health-monitoring device e.g. Fitbit, and retrieves fitness data from there. It then translates the data into mechanical movement and displays the change in a physical way. When data shows lack of exercise, the belly of the corresponding avatar will grow larger, imitating real people and also eliciting concern about health.
The device is a two side-by-side avatars on a magnet that can be placed anywhere around the home (fridge, bedside, etc.).
Our specific user is Betty who is a Public Policy Innovation and Data Science graduate student at CMU. An avid reader, Betty believes that all the objects in her house serves a practical purpose. During the interview process, we observed the following:
We found this particularly intriguing since these objects create a sense of emotional attachment to the user. Initially in the co-design process, we developed an idea to create remembrance magnets : A pair of magnets (for her and her friend) displaying the risograph prints that could be attached to the objects around her house and will light up every time her friend touches the magnet, reminding her of her presence in the house.
Later on the idea was refined by adding the concept of shared goal as explained but the initial takeaway from the interview was to connect people.
What informed the idea?
The inspiration of the project came from our stakeholder, to connect people over distances. One of the products that inspired us was the lamp that gives a sense of connection amongst people who stay far from each other. The idea further extended to creating a common goal (in our case, staying fit), that adds more value to the product.
Context
Think about how reluctant you are to go to gym after a long day's work. Tired, huh? Why not just sneak home, lie on the couch, drink some hot chocolate, and better off with marshmallows and BBQ-flavored chips? But no, you glance up and see 'Buddy', the avatar that represents yours and your partner's fitness.
You've been sitting at your desk for most of the day. Your Fitbit has not achieved beyond 1,000 steps. Your Buddy's tummy, consequently, looms up quite significantly. Oh-no! You silently moan. That would be me in like a month!
What's more, your best friend Alex's avatar is asiding yours. He looks fit! You know he swims at the pool his company provides every day just before dinner. What's more, your Buddy's head just glowed red. Ugggh! He must be making fun of your big belly!
You gather your gym clothes and head down to the gym.
Relation to other work
There is no similar product offered within the current market related to building common goals and presenting that information in an ambient way but the idea of connecting people has been taken a step further by this product.
It is usual for friends to depart to different cities and even countries to pursue their careers and studies. However, all of them still want to maintain the feeling of being next to each other despite the distance.
However, just deliberately keeping track of activities or showing companionship may make the relationship seem meaningless and burdensome after some time. People also need motivation to keep them in daily routines of habit-training or exercise.
Therefore, we combine aligning shared personal goals with staying connected to create a device that both connects friends at distance and help them achieve success, for example, staying fit.
First Attempt
We tried to use foam core to make the first prototype. Challenges we encountered:
Second Attempt
We added fabric to the prototype. Challenges we encountered:
Third Attempt
The basic goals for this attempt was to find a workable version of the doll. Components had to fit together, and the functionality of the product should be evident.
We used foam core as backbone which gave sufficient space for cam wheel and motor and pasted cotton outside fora fluffy appearance.
During our initial prototype review, we received both positive and critical feedback. Following are some of the points we addressed in the final prototype:
When the message is sent by partner A to partner B, the heart(LED) will light up on the magnets of both the partner, which will indicate that the message has been sent and received.
In real situations, the servo motor will only turn gradually and after long intervals, that is when the user is not exercising. It will not generate as much noise as the testing phase.
In order to fit the dolls in the context of fitness, our magnet board is designed with the exercising icons (dumble bells, running shoes, etc.)that represent the workout environment.
We justified this issue with respect to our design audience- The design is particularly for people who are fitness freaks and for life partners / best friends who share exercise as a common goal. We expect that these user groups will be motivated instead of frustrated with the display.
The fsr was previously planned to be placed on the tummy. However, this may not seem obvious to the users, and will bring pressure to the cam wheel, requiring more engineering. We have decided to integrate this with the fitness context (stickers on the magnet board) that allow users to press and send messages to the partners to motivate them to exercise.
This can be resolved through IFTTT applications with a fitbit. The devices can retrieve accumulated number of steps for the day every fixed interval and update the physical status constantly.
For the stakeholder we are designing specifically for, we want the dolls to be stuck on a magnet board on the fridge where she keeps her memorable pictures of her best friend. Carriable dolls may be designed for the more general audience, but not for this case.
Fourth Attempt
We ideated more on how to make the form of the dolls cleaner, more integrated, and display a more dramatic change in the tummy. We finally decided on making a cardboard model covered with fabric in the front, that is attached loosely so that it gives space for the belly to expand.
Video
//my buddy
//my tummy
int servoPin1 = D2;
Servo servo1;
int servoPos1 = 0;
//my heart
int heartPin1=A3;
int heartLight1 = 0;
//my control of his doll
int fsrPin1 = A0;
int fsrRead1 = 0;
String command1;
String command2;
//friend's buddy
//his tummy
int servoPin2 = D3;
Servo servo2;
int servoPos2 = 0;
//his heart
int heartPin2=A4;
int heartLight2 = 0;
//friend's control is not shown here yet.
int fsrPin2 = A1; //use to demo his control of my heart
int fsrRead2 = 0;
int flag=0;
int starttime=0;
int duration=0;
int currentPos1=0;
int currentPos2=0;
void setup() {
// attach servo pins
servo1.attach( D2 );
servo2.attach(D3);
//hearts and fsr
pinMode (heartPin1, OUTPUT);
pinMode (heartPin2, OUTPUT);
pinMode (fsrPin1, INPUT);
pinMode (fsrPin2, INPUT);
//Register our Particle to control the servo
Particle.function("servo1", servoControl1); //my tummy
Particle.function("servo2", servoControl2); //his tummy
// Cloud variable for the current servo position
Particle.variable( "servoPos1" , &servoPos1 , INT );
Particle.variable( "servoPos2" , &servoPos2 , INT );
// Cloud variable for the current heart reading
Particle.variable( "force", &fsrRead1, INT);//Output the fsr reading variable in console
analogWrite(heartPin2, 255);
}
void loop() {
//loop for fsr Readings
fsrRead1=analogRead(fsrPin1);
fsrRead2=analogRead(fsrPin2);
//I press
if (fsrRead1>1000)
{
//his doll on my side blinks: message sent
analogWrite(heartPin2, 0);
delay(200);
analogWrite(heartPin2, 255);
delay(200);
analogWrite(heartPin2, 0);
delay(200);
analogWrite(heartPin2, 255);
delay(200);
}
//Friend press
if (fsrRead2>1000)
{
flag=1; //start to glow
starttime=millis();//record start time of glow
}
if (flag==1) // in glowing process
{
duration=millis()-starttime;
if (duration>300000) //light should fade out now
{
analogWrite(heartPin1, 0);
flag=0;
}
else
{
heartLight1=map(duration, 0, 300000, 255, 0); //light faints out
analogWrite(heartPin1, heartLight1);
}
}
}
//control my tummy
int servoControl1(String command1)
{
// Convert
int exercise = command1.toInt();
int newexercise = constrain( exercise, 0 , 10000); // threshold = 10000
servoPos1 = map(exercise,0,10000,108,9); // CHANGE 0 AND 180 TO APPROPRIATE ANGLES AFTER TESTING
if (servoPos1>currentPos1)
{
for (int i=currentPos1; i<servoPos1; i=i+5)
{
servo1.write( i );
delay(50);
}
}
else
{
for (int i=currentPos1; i>servoPos1; i=i-5)
{
servo1.write( i );
delay(50);
}
}
currentPos1=servoPos1;
// Set the servo
//servo1.write( servoPos1 );
// done
return 1;
}
//control his tummy
int servoControl2(String command2)
{
// Convert
int exercise = command2.toInt();
int newexercise = constrain( exercise, 0 , 10000); // threshold = 10000
servoPos2 = map(exercise,0,10000,95,5); // CHANGE 0 AND 180 TO APPROPRIATE ANGLES AFTER TESTING
if (servoPos2>currentPos2)
{
for (int i=currentPos2; i<servoPos2; i=i+5)
{
servo2.write( i );
delay(50);
}
}
else
{
for (int i=currentPos2; i>servoPos2; i=i-5)
{
servo2.write( i );
delay(50);
}
}
currentPos2=servoPos2;
// Set the servo
//servo2.write( servoPos2 );
// done
return 1;
}
Click to Expand
We worked on a lot of mechanical engineering and soft textile in this project. We recognize that the fitness buddies are very personal, but this form is the best we reached at this stage.
Next step, we would like to bring more customization to the fitness buddies.
A hands-on introductory course exploring the Internet of Things and connected product experiences.
Connect people over distances with a common goal of staying fit by building an avatar to visualize fitness stats.
November 21st, 2019