Buddy - The Fit Project

Made by Jiaxin Wu, Yuan Sun and Saumya Sharma

Found in DIoT - Augmented Objects

Connect people over distances with a common goal of staying fit by building an avatar to visualize fitness stats.

0

Outcome

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.).

0
0

This is for Betty.

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:

  • She likes to collect risograph prints designed by her friend since they are the reminder of memories.
  • She sticks them on refrigerator, keeps it on bookshelf or window sill. 

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.

0
Objects gifted to Betty by her friend
Img 8907
0

Inspiration 

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.

0

Intention

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.

0
System Diagram
Fatproject
0

Prototyping Process

First Attempt

We tried to use foam core to make the first prototype. Challenges we encountered:

  • No humanly look
  • Not enough space for the cam wheel

Second Attempt

We added fabric to the prototype. Challenges we encountered:

  • Stuffing too tight
  • Cannot hold up straight

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. 

Video Link to Third Attempt 1

0
Third Attempt Prototype
Img 9234
0

Iteration and Refinement

During our initial prototype review, we received both positive and critical feedback. Following are some of the points we addressed in the final prototype:

  • Feedback of message received by the partner

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.

  • Too noisy

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.

  • Fitness Context

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.

  • How to deal with the negative feedback

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.

  • FSR positioning

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.

  • Real time data tracking

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.

  • Location: Just at home or can be carried with the user

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. 

0
Feedback received from the crit
Img 9239
0

Final Prototype

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

Link: https://vimeo.com/375570119

0

List of Components

- Argon x1
- Servo x2
- Red LED x2
- Fsr x1
- Breadboard x1
- Wires & jumper wires xN  


0
Circuit Diagram
Complete bb
0
Final Code
//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
0

Next Steps

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. 

  • Hair style, hair color, Expression and clothing. This would involve the physical appearance of the dolls, which may be quite easily changed during the manufacturing process once pre-determined. This will require more user research beforehand in order to tailor each doll to-context. 
  • Exercise context. Users may do different exercises to keep fit. This will involve different stickers on the magnet board to represent the context, and also integrated different data sources to derive the amount of exercise each day. Currently only fitbit data is allowed.
  • Expand context. Users may want to carry their dolls with them or place them on their office desks. Different holding, stands, or context-enabler should be created for such situations.
0

Reference

References for use of Servo and connectivity.

http://diotfall2019.daraghbyrne.me/

0
Avatar Design Ideation
Figuringout
x
Share this Project

Courses

49713 Designing for the Internet of Things

· 16 members

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


Focused on
About

Connect people over distances with a common goal of staying fit by building an avatar to visualize fitness stats.

Created

November 21st, 2019