Help people to monitor and determine most and least optimal days in the female menstruation cycle to conceive a child.

0

Problem Statement:

11% of reproductive-age couples in the United States have trouble conceiving or sustaining a pregnancy (1). The goal of this ambient project is to provide a subtle notification that helps couples understand when is the best time to conceive. Our motivation for making this ambient project is to support our friends that we know are at this stage. 

0

Goal:

Our ambient object is intended to be placed in the bedroom of couples, by a stand, and can be checked whenever they are in the room. As the ovulation period of women increases and reaches the ovulation day, the indicator in our tower moves towards the top of our spectrum signaling to the couple that their chances of conceiving are high. On the other hand, if the indicator is at the bottom of our tower, this signals to the couple that their chances of conceiving are low. Our object is connected with a period app that sends notifications to our object on a daily basis. Couples can glance at our object to understand the likelihood of conceiving on that given day.

Provide a high level design overview that considers and describes: what context it operates in (is it a personal device, site specific, etc.); what it does and how it behaves; how someone would or could interact with it; and how these interactions unfold to lead to the desired outcome? Detail your design proposal with a series of illustrations.

0

Storyboard:

0

Process:

Once our team aligned on the problem that we wanted to talked, we developed a list of to-dos (e.g., API source, creation of code, development of physical prototype). We then brainstormed different ways to display the information of the ovulation and period cycle.The pictures below highlight the different options that we considered for our design. For the ambient output, we considered multiple forms and ways of conveying the information from lights that display where women are in the cycle to a servo that rotates to a particular place to show similar information.    

Challenges:

  • One of the first challenges that we encountered was how to find ovulation and period data that we could connect to our device. We tried to find an app with an open API source data but were not successful. Our second idea was to find a web inter-phase that would add our period and ovulation data to our calendar. Our particle photon would then read this data and update our ambient object 
  • As we developed our physical prototype we encountered a number of design and mechanical challenges. We had to determine the right length of the cord for our motor as well as the weight of our indicator so it would balance
  • Calibrating the motor was also challenging because we found it to be consistent in only one direction. As we understood the motor we were able to develop code to support our gradient progression 

Lesson Learned:

  • Simplicity is better to display key information. When brainstorming we wanted our ambient object to display a lot of information (e.g., when a woman has her period, when she is ovulating, the length of the luteal phase) 
  • Using servos can be tricky. We looked at different motors and their properties before selecting the continuous rotation servo since we wanted it to be able to go through a continuous loop. Looking at the different servos let us make the best design decision for our project
0
Initial sketch of tower with vertical indicator
Sketch
0
Second iteration of tower with base object
Sketch2
0
Results from our brainstorm of multiple options for the physical ambient display
Ideas2
0
Initial prototype of our circuit
Img 3914 %281%29
0
Servo Initial Fritzing Diagram
Ambientdevice 1
0
Prototype of ambient object shell
Prototype
0

Outcomes:

We were able to develop a working prototype that changed based on a period and ovulation schedule. A next iteration or product opportunity could be to change the spectrum of our tower so it shows women when they would be getting their period vs understanding the best time to conceive. 

0
Final prototype
Final display
0

Bill of Materials:

Inside Components:

  1. Continuous rotation servo - RebB
  2. Particle Photon
  3. Micro USB Cable
  4. Breadboard
  5. Jumper Wires
  6. Green LED
  7.  1 220 Ohm Resistors  

Outer Shell:

  1. Foam board (tower and base)
  2. Color Spectrum Paper
  3. A PingPong Ball  
0

Fritzing Final Circuit Board:


0
// Define a pin we'll place an LED on
int led = D3;
int brightness = 0;
int fadeAmount = 5;
Servo Preggo;
int PreggoSig = D0;
int day = 0;
float period_schedule[] = {0,.2,.4,.6,.8,1.1,1.4,1.7,2.0,2.4,2.6,2.8,3.0,2.6,2.2,2.0,1.8,1.8,1.6,1.6,1.4,1.4,1.2,1.2,1.0,1.0,0.8};
float period_status = period_schedule[0];
float period_status_new =0;
float x = 0;
int y = 0;
int test = 0;
void setup() {
  Preggo.attach(PreggoSig);
  Particle.subscribe("day_change", myHandler);
  Serial.begin(9600);
  // Particle.function("servo", servoControl);
  // Set up the LED for output
  pinMode(led, OUTPUT);
}
void loop() {
if(day > 27){
  day = 0;
}
period_status_new = period_schedule[day];
x = period_status_new - period_status;
// x = map(x, -1.5, 1.5, 10, 170);
x = x*50.0+90.0;
Serial.println(period_status);
y = (int) x;
if (period_status_new <= 2.9) {
  test = 0;
}
if (x!=0) {
  Preggo.write(y);
  delay(500);
  if (period_status_new >= 2.9) {
    if (test == 0){
      Preggo.write(90);
      delay(200);
      Preggo.write(88);
      delay(200);
      Preggo.write(86);
      delay(200);
      Preggo.write(84);
      delay(200);
      Preggo.write(82);
      delay(200);
      test =1;
    }
  }
}
period_status = period_status_new;
if (period_status >= 2.9) {
  //et the brightness of pin 9:
    analogWrite(led, brightness);
    // change the brightness for next time through the loop:
    brightness = brightness + fadeAmount;
    // reverse the direction of the fading at the ends of the fade:
    if (brightness <= 0 || brightness >= 255) {
      fadeAmount = -fadeAmount;
    }
    // wait for 30 milliseconds to see the dimming effect
    // delay(30);
}
else{
  brightness = 0;
  analogWrite(led,brightness);
}
}
void myHandler(const char *event, const char *data){
day = day +1;
}
// Servo Preggo;
// int PreggoSig = D0;
// int day = 0;
// float period_schedule[] = {0,.2,.4,.6,.8,1.1,1.4,1.7,2.0,2.4,2.6,2.8,3.0,2.6,2.2,2.0,1.9,1.8,1.7,1.6,1.5,1.4,1.3,1.2,1.1,1.0,0.9};
// int period_status = period_schedule[0];
// int period_status_new =0;
// int x = 0;
// // int position = 0;
//
//
// void setup() {
//   Preggo.attach(PreggoSig);
//   Particle.subscribe("day_change", myHandler);
//   Serial.begin(9600);
//   // Particle.function("servo", servoControl);
// }
//
// void loop() {
// // if(day > 10){
// //   day = 0;
// // }
// // period_status_new = period_schedule[day];
// // x = period_status_new - period_status;
// // x = map(x, -2, 2, 50, 130);
// // Preggo.write(x);
// // delay(1000);
// // period_status = period_status_new;
// Serial.println(period_schedule[3]);
//
// }
//
// void myHandler(const char *event, const char *data){
//     // We'll turn the LED on
// // day = day +1;
// // Preggo.write(100);
// // delay(3000);
// // Preggo.write(90);
// // delay(1000);
// }
// // int servoControl(String command)
// // {
// //   int newPos = command.toInt();
// //   position = constrain(newPos, 0, 180);
// //   Preggo.write(position);
// //
// //   return 1;
// // }
Click to Expand
0
Ambient object - baby maker
Xenia Kolesnikov - https://youtu.be/k4XoQvZrWYE
0

Reflection:

As a team, we enjoyed brainstorming ideas for this project. We wanted to challenge ourselves by finding ways to use movement to indicate a certain state. We learned to use servos as well as prototype shapes to host our ambient object.

0

References:

(1). Reviewed by the BabyCenter Medical Advisory BoardLast updated: April 2017. “Common causes of fertility problems in women.” BabyCenter, 25 Aug. 2015, www.babycenter.com/0_common-causes-of-fertility-problems-in-women_1228906.bc. 

(2). Breathing LED tutorial: https://www.arduino.cc/en/Tutorial/Fade

x
Share this Project

Courses

49713 Designing for the Internet of Things

· 25 members

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


About

Help people to monitor and determine most and least optimal days in the female menstruation cycle to conceive a child.

Created

February 4th, 2018