Is it too late now to say sorry?

Made by Grae Prickett, Ke Zheng, Aditi Chalisgaonkar and yifeiy1

Found in Devices for Sharing - Connected Intimacy · UNLISTED (SHOWN IN POOLS)

0
Design for IoT -- Sorry Box
KE ZHENG - https://youtu.be/Xc4GhweXG20
0

Overview: 

Saying you're sorry can be very hard after an argument with a loved one. It is also healthy and natural to want space between you and your loved one after the argument. Taking time to say "I'm sorry" can be the right thing to do. After you and your loved one have parted ways to calm down and think about the situation, be able to say "I'm sorry" without interrupting their space, or when you are no longer within the same vicinity. The Sorry Box can help you do that by sending your loved one a message of "I'm sorry" through a gesture that can be receive on their end. Simply place your preferred object (candy, maybe sea shells because you and your loved one collect those, etc.) into their side of the box. The box will thing be triggered on their end to pop open and have the object appear. The loved one then can reciprocate the message by saying "I'm sorry" back by doing the same gesture with their box.  


Process:

1. Brainstormed ideas. The sorry box was the final winner as we all felt this is something that was different but also very valuable. 

2. Tested out an ultra sonic sensor that is connected to a servo motor, and drew up ideas for the box design. 

3. Ordered two penguin figurines

4. Did some arts and crafts to create the housing for the two Sorry Boxes.

5. Set up a second ultrasonic sensor and servo motor circuit and connected the two circuits by publishing and subscribing to events

6. Started making a storyboard

7. Came up with the igloo idea for the final prototype of the "Sorry Box".

8. Paper mache was used to make the igloos and we painted them white.

9. Constructed the igloo to hold all the electronics and have an opening that will be the trigger motion. 

10. Tested both igloos - had issues with the design triggering the sensor before it was ready. 

11. Brainstormed design to make it work with sensor and had success!

12. Made the video.


Final Prototype Photos:


Bill of Materials:

  • 2 Particle Photon
  • 2 Ultra Sonic Sensor
  • 2 Breadboard
  • 11 Wires
  • 2 Servo Motor
  • Box Material (paper mache, chipboard, and paint)
0
Sorry Box 1
/*
 ******************************************************************************
 *  Copyright (c) 2015 Particle Industries, Inc.  All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation, either
 * version 3 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
 ******************************************************************************
 */
/* HC-SR04 Ping / Range finder wiring:
 * -----------------------------------
 * Particle - HC-SR04
 *      GND - GND
 *      VIN - VCC
 *       D2 - TRIG
 *       D6 - ECHO
 */
#include "application.h"
int candyset = 0;
Servo myservo;// create servo object using the built-in Particle Servo Library
int servoPin = D0;
int handler(const char *event, const char *data)
{
  myservo.attach(servoPin);
  myservo.write(90);
  delay(1000);
  myservo.detach();
  return 1;
}
void setup() {
    Serial.begin(9600);
    Particle.subscribe("candy1", handler);
    myservo.attach(D0);      //Initialize the servo attached to pin D0
    myservo.write(0);        //set servo to initial position
    delay(500);
    myservo.detach();
}
void loop() {
    // Trigger pin, Echo pin, delay (ms), visual=true|info=false
    ping(D2, D6, 20, true);
}
void ping(pin_t trig_pin, pin_t echo_pin, uint32_t wait, bool info)
{
    uint32_t duration, inches, cm;
    static bool init = false;
    if (!init) {
        pinMode(trig_pin, OUTPUT);
        digitalWriteFast(trig_pin, LOW);
        pinMode(echo_pin, INPUT);
        delay(50);
        init = true;
    }
    /* Trigger the sensor by sending a HIGH pulse of 10 or more microseconds */
    digitalWriteFast(trig_pin, HIGH);
    delayMicroseconds(10);
    digitalWriteFast(trig_pin, LOW);
    duration = pulseIn(echo_pin, HIGH);
    /* Convert the time into a distance */
    // Sound travels at 1130 ft/s (73.746 us/inch)
    // or 340 m/s (29 us/cm), out and back so divide by 2
    // Ref: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
    inches = duration / 74 / 2;
    cm = duration / 29 / 2;
    if (inches <= 5)
    {
      if (candyset==0)
      {
        Particle.publish("candy2","yeah!");
        candyset = 1;
      }
    }
    else if (inches>5 && inches <100)
    {
      candyset = 0;
    }
    if (info) { /* Visual Output */
        Serial.printf("%2d", inches);
        Serial.println();
    } else { /* Informational Output */
        Serial.printlnf("%6d in / %6d cm / %6d us", inches, cm, duration);
    }
    delay(wait); // slow down the output
}
Click to Expand
0
Sorry Box 2
/*
 ******************************************************************************
 *  Copyright (c) 2015 Particle Industries, Inc.  All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation, either
 * version 3 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
 ******************************************************************************
 */
/* HC-SR04 Ping / Range finder wiring:
 * -----------------------------------
 * Particle - HC-SR04
 *      GND - GND
 *      VIN - VCC
 *       D2 - TRIG
 *       D6 - ECHO
 */
#include "application.h"
int candyset = 0;
Servo myservo;// create servo object using the built-in Particle Servo Library
int servoPin = D0;
int handler(const char *event, const char *data)
{
  myservo.attach(servoPin);
  myservo.write(90);
  delay(1000);
  myservo.detach();
  return 1;
  myservo.detach();
}
void setup() {
    Serial.begin(9600);
    Particle.subscribe("candy2", handler);
    myservo.attach(D0);      //Initialize the servo attached to pin D0
    myservo.write(0);        //set servo to initial position
    delay(500);
    myservo.detach();
}
void loop() {
    // Trigger pin, Echo pin, delay (ms), visual=true|info=false
    ping(D2, D6, 20, true);
}
void ping(pin_t trig_pin, pin_t echo_pin, uint32_t wait, bool info)
{
    uint32_t duration, inches, cm;
    static bool init = false;
    if (!init) {
        pinMode(trig_pin, OUTPUT);
        digitalWriteFast(trig_pin, LOW);
        pinMode(echo_pin, INPUT);
        delay(50);
        init = true;
    }
    /* Trigger the sensor by sending a HIGH pulse of 10 or more microseconds */
    digitalWriteFast(trig_pin, HIGH);
    delayMicroseconds(10);
    digitalWriteFast(trig_pin, LOW);
    duration = pulseIn(echo_pin, HIGH);
    /* Convert the time into a distance */
    // Sound travels at 1130 ft/s (73.746 us/inch)
    // or 340 m/s (29 us/cm), out and back so divide by 2
    // Ref: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
    inches = duration / 74 / 2;
    cm = duration / 29 / 2;
    if (inches <= 5)
    {
      if (candyset==0)
      {
        Particle.publish("candy1","yeah!");
        candyset = 1;
      }
    }
    else if (inches>5 && inches <100)
    {
      candyset = 0;
    }
    if (info) { /* Visual Output */
        Serial.printf("%2d", inches);
        Serial.println();
    } else { /* Informational Output */
        Serial.printlnf("%6d in / %6d cm / %6d us", inches, cm, duration);
    }
    delay(wait); // slow down the output
}
Click to Expand
0
Breadboard
Screen shot 2017 02 12 at 2.38.43 pm
0
Schematic
Screen shot 2017 02 12 at 2.40.45 pm
0
PCB
Screen shot 2017 02 12 at 2.40.20 pm
0

Outcome:

We were able to create just the product we hoped for. The Sorry Box is able to give each member of the argument have their space, but be able to say they're sorry over a distance when they are ready. By placing the penguin within the igloo it triggers the other person's igloo to open and have them retrieve a present. The retriever of the present can then reciprocate and accept the apology by placing their penguin in the igloo which will replicate the same retrieval of a gift. 

We decided to make the "Sorry Box" and igloo that is activated by a penguin toy. This decision was made based off of two things. The igloo represents "breaking the ice", and the penguins were chosen due to their own habits. Penguins mate for life and the male penguin will give the woman penguin a stone when he has chosen her, much like an engagement ring. This represents a couple who could use the "Sorry Box".  Penguins are also amazing parents, and the male penguin watches the egg over the winter while the woman penguin goes out to see to collect enough fish to feed the baby once it is born. This represents a parent to child relationship. Overall, the "Sorry Box" can be used for any sort of relationship. 

We had issues designing the igloo to incorporate the sensors, but overall were able to accomplish a simple igloo design that houses all the equipment.  Testing our code to have the sensors be just sensitive enough was a huge part of the process. In the end, we all love the final product and would own them ourselves. Being able to say you're sorry is an important part of any relationship, but also having your space is vital too. The Sorry Box gives you both!

x
Share this Project

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


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.


Focused on
About

~

Created

February 11th, 2017