Iteration 2: Adapt Phase

For the second adapt phase, I conducted interviews with the same target users from the previous adapt phase to get feedback on my iteration of their feedback. I also met with Arielle Hein to get feedback on my hardware set up and troubleshoot. With her knowledge of interaction design and as a mother, she also provided valuable design feedback. In this adapt phase, I was also able to figure out how to connect my LEDs so that they react to my load cells. Lastly, I will also summarize feedback from meeting with my sponsor, FlaVR labs. In this post I will document my feedback approach, interview questions, and findings from the interviews.

Interview Style: For my interviews with Alexis and Rochelle, I asked them for general design feedback based on their initial feedback. Rochelle had previously asked for more access to nutritional information and the most important thing to Alexis was to have the LED component embedded in the plate. Below are summary’s from the interviews.

Interview 1 with Rochelle Kuyper:

  • What are your thoughts on the star tracker being integrated into the housing unit? Compared to being a separate entity as it was before?
    • Before, this is not something I really considered in the first plate you showed me. I think it would make using the plate more convenient, especially in terms of transporting it. The only way I would prefer it to be a separate cube was if it was wireless and connected easily. I hate when it’s not convenient to pair things, thats why I love airpods.
  • What do you think about the placement of the LCD screen?
    • On the side is fine. I think it would be distracting to have it on the front where the stars are and inconvenient to be on the back of the plate. Since usually my girls sit next to each other when they eat, I am used to serving one on the left and one on the right. I would be able to see it for one of the easy but not the other.
  • What do you think about the incorporation of the aroma release component?
    • I think if you didn’t tell my kids this was a thing and it released at every meal, it would set a mood or eventually stimulate their appetite when they smelled it. Due to different meals and such it would be helpful if these were easy to change or refill.
  • How do you think the aroma release will impact the eating experience for you and your child?
    • ^see above with how aroma could eventually trigger appetite subconsciously

Interview 2 with Alexis Morris:

  • What are your thoughts on the star tracker being integrated into the housing unit? Compared to being a separate entity as it was before?
    • I remember last time saying I would use this more if the two became one. I like this design because it is more convenient and there are less things that Cayden can break.
    • It would be interesting to see the stars maybe on the top of the plate so that Cayden could see them light up right by the food. The front doesn’t seem as easy for him to see if he is over it (the plate).
  • What do you think about the placement of the LCD screen?
    • Overall it works, I guess I can’t really imagine where else it would go.
    • You explained how the plate works by weighing the food first, it would be nice for the screen to display how much time I have to get the food on the plate.
  • How do you think the aroma release will impact the eating experience for you and your child?
    • I think it would work really good or bad. I don’t think Cayden would really notice this feature unless he didn’t like the smell it was releasing. That could create a negative connotation with the plate. By not noticing it, I also mean that he would assume it was the smell of his food, if the released smell was able to match the meal I give him.

Meeting with Arielle Hein

  • In my meeting with Arielle, I went into it looking for help troubleshooting in getting my LED strip to interact with my Load Cells. Along with this help, I got some design feedback to consider with my prototype.
  • Arielle recommended I consider where the stars that light up are placed on the plate. Currently, my design has them on the front of the housing unit. Arielle pointed out that while eating, it could be hard or inconvenient to see the stars light up due to their current placement. This gave me the idea to have the stars across the back of the plates top surface, or on one of the sides. The plate’s housing could also take on a slanted rectangular shape so that the sides are 45 degree angles and the star tracker is easier to see. Drawing up some concepts for possible future designs will be included in my next explore phase.
  • As far as troubleshooting, we did not figure out my LED interactions, but Arielle did provide me with some troubleshooting tips to help figure out why they might not be. She told me that my logic was right, and that one of the variables might not be reading what I think they are. Meeting with Max Kitay during class on 3/11, he helped me troubleshoot some of the ideas that Arielle gave me. During this session where we tested what certain variables were printing, we initialized some variables to 0.000 which ended up getting the job done. My logic had been right, but I was requesting a float from the program at the wrong instance.
  • Arielle also asked if there would be a lid on the housing unit to which I explained how the design is intended to have a silicone mat that stretches over the top and can be peeled off for cleaning. She then showed me EZPZ mats that she uses with her own child that are exactly what I am thinking of. Below are the mats, and showing them in my final presentation might help contextualize what a final product might look like
ezpz Tiny Bowl - 100% Silicone Suction Bowl with Built-in Placemat for First Foods + Baby Led Weaning - Fits on All Highch...

Meeting with FlaVR Labs (Ellen Do, Nimesha Ranasinghe, and Darryl Kirsch)

  • In my meeting with the sponsor, they simply had some questions and clarifications about some of the elements in my project around the aroma release component, and the plate housing design.
  • Around the aroma release, the sponsor requested that I incorporate two aroma release units. The other student utilizing this technology, Max Kitay, is using the aroma release in close proximity to the nose. Since we want the aroma release to create a scent in the area where a meal is served we need a little more scent fire power. Therefore, I need to build the circuit and connect one more aroma release unit to the Arduino. Also, on this iteration, I only had a hose going from the air pump into the aroma capsule, but no hose coming out of the capsule for the air to get pushed out. Nimesha pointed this out for me and I will need to add another hole and tube to my capsules for scented air to be released (currently air is only going in and not out). This should be a simple implementation for explore phase 3.
  • Plate housing design feedback:

LEDs Connected to Load Cells

#include <SoftwareSerial.h>
#include <FastLED.h>
#include <HX711.h>
SoftwareSerial OpenLCD(6,4);
byte counter = 0;
byte contrast = 2;

#define LED_PIN  9
#define NUM_LEDS  20
CRGB leds[NUM_LEDS];

float initsum, currsum, iw1, iw2, iw3, cw1, cw2, cw3;
#define calibration_factor 800000//This value is obtained using the SparkFun_HX711_Calibration sketch



#define DOUT1  3
#define CLK1  2

#define DOUT2 11
#define CLK2 12

#define DOUT3 6
#define CLK3 7

HX711 scale1;
HX711 scale2;
HX711 scale3;

void setup() {
  iw1 = 0.0000;
  iw2 = 0.0000;
  iw3 = 0.0000;
  initsum = 0.0000;
  
  Serial.begin(9600);
  while (!Serial);
  Serial.println("Start");
  
  FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
  
  Serial.println("HX711 scale demo");

  scale1.begin(DOUT1, CLK1);
  scale1.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch
  scale1.tare(); //Assuming there is no weight on the scale at start up, reset the scale to 0

  scale2.begin(DOUT2, CLK2);
  scale2.set_scale(calibration_factor);
  scale2.tare();

  scale3.begin(DOUT3, CLK3);
  scale3.set_scale(calibration_factor);
  scale3.tare();
  Serial.println("Place Weight");
  delay(20000);

  iw1 = (scale1.get_units());
  iw2 = (scale2.get_units());
  iw3 = (scale3.get_units());

  
  initsum = iw1 + iw2 + iw3; // wait 30 seconds to grab an initial value to used as initial food weight value
  Serial.println(initsum);
  


  

  Serial.println("Readings:");

  OpenLCD.begin(9600);
  

  OpenLCD.write('|');
  OpenLCD.write(24);
  OpenLCD.write(contrast);
 
    
}

void loop() {

  cw1 = 0.0000;
  cw2 = 0.0000;
  cw3= 0.0000;
  currsum = 0.0000;

  cw1 = (scale1.get_units());
  cw2 = (scale2.get_units());
  cw3 = (scale3.get_units());


  currsum = cw1 + cw2 + cw3;
  

  Serial.print("Initial Weight:  ");
  Serial.print(initsum);
  Serial.print(" lbs");
  Serial.print("/t  ");
  
  Serial.print("Current Weight:  ");
  Serial.print(currsum);
  Serial.print(" lbs");
  Serial.print("/t  ");
  

  OpenLCD.write('|');
  OpenLCD.write('-'); //set contrast and clear LCD
 

  OpenLCD.print("Plate on, Serve Food");

 
  Serial.print("Scale 1 Reading: ");
  Serial.print(scale1.get_units(), 3); //scale.get_units() returns a float
  Serial.print(" lbs"); 
  Serial.print("/t  "); //tab so that the readings are evenly spaced across on serial monitor

  Serial.print("Scale 2 Reading: ");
  Serial.print(scale2.get_units(), 3); //scale.get_units() returns a float
  Serial.print(" lbs"); 
  Serial.print("/t  ");

  Serial.print("Scale 3 Reading: ");
  Serial.print(scale3.get_units(), 3); //scale.get_units() returns a float
  Serial.print(" lbs"); 
  Serial.print("/t  ");
  Serial.println();

  if(currsum > initsum*0.9){
  // if(currsum > initsum*0.9) {
  
  leds[0] = CRGB(255, 0, 0);
  FastLED.show();
  delay(500);
  }
  else if(currsum > initsum*0.8) {
  // if(currsum > initsum*0.8) {
  leds[0] = CRGB(255, 0, 0);
  leds[1] = CRGB(255, 0, 0);
  FastLED.show();
  delay(500);
  }
  else if(currsum > initsum*0.7) {
  // if(currsum > initsum*0.7) {
  leds[0] = CRGB(255, 0, 0);
  leds[1] = CRGB(255, 0, 0);
  leds[2] = CRGB(255, 0, 0);
  FastLED.show();
  delay(500);
  }
  else if(currsum > initsum*0.6) {
  // if(currsum > initsum*0.6) {
  leds[0] = CRGB(255, 0, 0);
  leds[1] = CRGB(255, 0, 0);
  leds[2] = CRGB(255, 0, 0);
  leds[3] = CRGB(255, 0, 0);
  FastLED.show();
  delay(500);
  }
  else if(currsum > initsum*0.5) {
  // if(currsum > initsum*0.5) {
  leds[0] = CRGB(255, 0, 0);
  leds[1] = CRGB(255, 0, 0);
  leds[2] = CRGB(255, 0, 0);
  leds[3] = CRGB(255, 0, 0);
  leds[4] = CRGB(255, 0, 0);
  FastLED.show();
  delay(500);
  }
  else if(currsum > initsum*0.4) {
  // if(currsum > initsum*0.4) {
  leds[0] = CRGB(255, 0, 0);
  leds[1] = CRGB(255, 0, 0);
  leds[2] = CRGB(255, 0, 0);
  leds[3] = CRGB(255, 0, 0);
  leds[4] = CRGB(255, 0, 0);
  leds[5] = CRGB(255, 0, 0);
  FastLED.show();
  delay(500);
  }
  else if(currsum > initsum*0.3) {
  // if(currsum > initsum*0.3) {
  leds[0] = CRGB(255, 0, 0);
  leds[1] = CRGB(255, 0, 0);
  leds[2] = CRGB(255, 0, 0);
  leds[3] = CRGB(255, 0, 0);
  leds[4] = CRGB(255, 0, 0);
  leds[5] = CRGB(255, 0, 0);
  leds[6] = CRGB(255, 0, 0);
  FastLED.show();
  delay(500);
  }
  else if(currsum > initsum*0.2) {
  // if(currsum > initsum*0.2) {
  leds[0] = CRGB(255, 0, 0);
  leds[1] = CRGB(255, 0, 0);
  leds[2] = CRGB(255, 0, 0);
  leds[3] = CRGB(255, 0, 0);
  leds[4] = CRGB(255, 0, 0);
  leds[5] = CRGB(255, 0, 0);
  leds[6] = CRGB(255, 0, 0);
  leds[7] = CRGB(255, 0, 0);
  FastLED.show();
  delay(500);
  }
  else if(currsum > initsum*0.1) {
  // if(currsum > initsum*0.1) {
  leds[0] = CRGB(255, 0, 0);
  leds[1] = CRGB(255, 0, 0);
  leds[2] = CRGB(255, 0, 0);
  leds[3] = CRGB(255, 0, 0);
  leds[4] = CRGB(255, 0, 0);
  leds[5] = CRGB(255, 0, 0);
  leds[6] = CRGB(255, 0, 0);
  leds[7] = CRGB(255, 0, 0);
  leds[8] = CRGB(255, 0, 0);
  FastLED.show();
  delay(500);
  }
  else if(currsum > initsum*0.05) {
    // if(currsum > initsum*0.05) {
  
  leds[0] = CRGB(255, 0, 0);
  leds[1] = CRGB(255, 0, 0);
  leds[2] = CRGB(255, 0, 0);
  leds[3] = CRGB(255, 0, 0);
  leds[4] = CRGB(255, 0, 0);
  leds[5] = CRGB(255, 0, 0);
  leds[6] = CRGB(255, 0, 0);
  leds[7] = CRGB(255, 0, 0);
  leds[8] = CRGB(255, 0, 0);
  leds[9] = CRGB(255, 0, 0);
  FastLED.show();
  delay(500);}


}

The way my code works is that it is creating an array from a declared 20 LED long strip. I am then getting an initial weight reading that I am comparing to a current weight reading. Once the current weight is 10% less than the initial weight, an LED lights up until 100% of the weight is removed and all 10 LEDs are lit up. I use if statements to compare the current weight to the initial weight reading.

Questions to Summarize Findings From Feedback:

  • Based on the feedback, what did you learn?
    • One thing I had not considered was letting the parent know their time window to serve the meal to their kid. Since I am grabbing that initial weight reading after the tare, there is a window where the food needs to be served for the plate to work. Letting users know of this on the LCD will be important for user experience and plate functionality. I will incorporate this feature in phase 3.
    • I will also play with the integration of the star tracker. It seems that their current placement doesn’t maximize interactivity. I will draft some possible plate designs that will change the placement of the star tracker for future prototypes.
  • What was unexpected / what lessons did you learn?
    • In this iteration, not a whole lot was unexpected. I did learn a lot of lessons though. In this iteration I learned how useful and important it is for me to talk through the problems I am dealing with, with others. When I am going through the problem in my own head, I often overlook simple things that I would catch if I had gone through it out loud. Talking with other people also results them in asking questions, a lot of which are often simple, that I also overlooked. For example, when explaining my code for the LEDs reacting to the load cells, I realized I was testing the program by applying weight to the load cells at the wrong instance, and not removing it. I needed to slow down to speed up, and talking to others helped me with this process. Also, describing what I am doing to others has made it so that if something in my project breaks, I know how to fix it quickly or replicate it. Something I learned from iteration 1 that I was able to apply to iteration 2 was ordering hardware in advance. Because I ordered my aroma release components as soon as the sponsor told me they wanted this feature, I was able to get it done when I shifted my focus from working on the LEDs. Iteration 2 definitely went smoother than iteration 1.
  • What worked, what didn’t work?
    • This iteration, adapting to use my time efficiently worked best. In my explore phase, I had getting my LEDs to work as a high priority item, and getting the aroma release hardware my sponsor requested as a low priority item. When I realized that I most likely would not be able to get the LEDs done in time, I adapted and got the aroma release hookups done since I had the hardware ordered in time. I also knew that I would have less overall “figuring out” to do in my adapt phase so carving time out in it for the LED portion of my project was smart. I was able to collaborate and set up meetings to help me troubleshoot the problem and get others’ eyes on things I may have overlooked. What also worked was setting up appointments in advance. My meeting with Arielle was on 3/11 and I had scheduled it on 3/4. Being on top of that really helped.
  • What did you accomplish? Reflect on your time management.
    • I was able to get 3 load cells connected to the arduino providing three separate weight readings.
    • I was able to incorporate a functioning aroma release component to my prototype, with one more to be added in iteration 3.
    • I created a housing prototype, laser cut it, and assembled it.
    • I was able to connect an LCD screen to the prototype that communicates with users that the plate is on and that food is ready to be served.
    • I was able to connect and LED strip that reacts to the weight readings provided by the load cells. For every 10% of the weight that comes off the load cells, an LED lights up.
    • I met with my sponsor, Arielle Hein, two target customers, and classmate Max Kitay in gathering feedback, troubleshooting, and overall discussions about my prototype.
    • Honestly, as a huge procrastinator, this project has been the best time management of any project I have completed in college. I believe that as the project evolves and we get to the next iteration, I am more prepared than the previous one. I have also been successful in prioritizing features and planning ahead for necessary appointments.
  • Changes to be made
    • In the next iteration, there are no procedural changes on physical ones to the project.
    • The first is to incorporate a second aroma release component.
    • The second is to draft new models and ideas for what form of the plates housing might be and how the LED interaction could be different. Depending on how fast I get an initial prototype will determine if I pursue a second one, or if I maybe create a very basic second prototype that focuses only on form not functionality.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create your website with WordPress.com
Get started
%d bloggers like this: