Sibling Love connects siblings in a playful way through virtual annoying behavior to let your sibling know you are thinking about them.

0

Description

Sibling Love connects two siblings that are geographically separated. The doll can be placed on a desk leaning against the wall. When one user "pokes" the belly of the doll, the other doll will bite. Similarly, when one user pulls the hair of the doll, the other one will kick. In this way, two siblings can continuously show their love through annoying physical actions even if they are not together. 

0

Process

The first step was to come up with as many annoying actions that siblings do to each other as we could think of. The final list was: biting, kicking, poking, and pulling hair. Afterwards, we developed a storyboard to display the actions we wanted our device to perform. 

0

Storyboard

0

Next we made an initial prototype to test the concept and code. At the same time, we split up the code to work on the poke and bite scenario on one particle, and the hair pull and kicking scenario on another particle. 

0
Initial Prototype Outside
Prototype2
0
Initial Prototype Inside
Prototype1
0

Finally, after testing, we developed our final prototype and code.

0

Components

  1. 2 Solenoids
  2. 2 Pressure Sensors
  3. 2 Servo Motors
  4. Copper Tape
  5. 2 springs
  6. 2 Doll Bodies
  7. 2 Sets of Hair
  8. 4 10K Resistors
  9. 2 Transistors
  10. 2 Diodes
  11. 26 Jumper Wires
0

Circuit

0
Pull hair and kick circuit
Pull and kick
0
Poke and bite circuit
Poke and bite
0

Code

0
Final Code
Servo legs;
int servoPin = A4;
int servoPos = 0;
unsigned long lastPulledTime2=60000;
int pokeState = 0;
int solPin2 = D5;
int pokePin2 = A1;
void setup()
{
  legs.attach(A4);
  Particle.subscribe("hairpulledAmmani", kick );
  Particle.subscribe("pokedAmmani", start_biting_Am);
  pinMode(solPin2, OUTPUT);
  pinMode(pokePin2, INPUT);
}
void loop()
{
  hairpulled2();
  poked();
}
void kick(const char *event, const char *data)
{
  for (int i=0; i <3; i++)
    {
      legs.write (160);
      delay(500);
      legs.write(20);
      delay(600);
    }
}
int start_biting_Am(const char *event, const char *data)
{
  for( int i = 0; i < 5; i++ )
   {
    digitalWrite(solPin2, HIGH);
    delay( 50 ) ;
    digitalWrite(solPin2, LOW);
    delay( 50 );
   }
}
void hairpulled2()
{
  if (millis()-lastPulledTime2 > 10000)
    {
      if (digitalRead(D4) == LOW )
      {
        Particle.publish("hairpulledSurabhi");
        lastPulledTime2 = millis();
      }
  }
}
void poked()
{
  pokeState = analogRead(pokePin2);
  if (pokeState >= 1000)  //if pokeState is low- in case of an FSR, it means I have been poked
  {
    Particle.publish("pokedSurabhi");
  }
}
Click to Expand
0

Video

0
sibling love
Lauren Romero - https://youtu.be/uxwBBpMtXTI
0

Future

In the future, we would like to better manufacture the doll so that it looks more realistic. Secondly, we would like to add more interactions that siblings could do with the doll including adding sound.

x
Share this Project

Courses

49-713 Designing for the Internet of Things

· 26 members

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


About

Sibling Love connects siblings in a playful way through virtual annoying behavior to let your sibling know you are thinking about them.

Created

February 13th, 2017