Iteration 2: Explore Phase

In iteration 2: Explore Phase, I worked on developing my hardware and created a second a prototype for my plate’s housing unit. Below is a list of my work planned for this phase of the project.

  • 3 Load Cells connected to HX711 Load Cell Amplifier, connected to Arduino, providing 3 weight readings (6 hours to wire circuit and write code) – 5
    • Utilizing Sparkfun HX711 boards to connect load cells to arduino
    • Includes getting accurate weight readings from the load cells by calibrating them correctly with code and testing
  • LEDs wired to Arduino that light up and react to Load Cell Readings for plate interactions (9 hours to wire and write code – estimated) – 5
    • Have one circuit with all elements, LEDs are functional and dependent on weight readings
    • Writing code to create one variable for all three weight readings from load cells and reacting LEDs to this variable
  • LCD Screen connected to Arduino that shows plate is on and zeroed before food placement (6 hours to code and wire) – 4
    • Most research has been done here, I have the correct hardware ordered, and I will have to wire my lcd screen without a QWICC cable. .
  • Plate prototyping (silicone model, 3D prints, casting?, portion demonstration in design, research into portions) (6 hours) – 5
    • I will again create a rapid prototype (most likely out of cardboard), where I am conceptually with my plate design. I will then also conduct a little more research into portion sizes for young children and how I might display this information for parents when serving a meal.
  • Aroma Release
    • Ordering parts and sending invoices: 1 hour – 5 priority
    • Building Circuit: 4 hours – 2 priority
    • Writing Code to execute aroma release: 6 hours – 2 priority

Now, I will go into detail the work I did for each of these steps and how I prioritized my work.

LEDs wired to Arduino that light up and react to Load Cell Readings for plate interactions: This element has been the hardest part of my project so far. I have been able to get the LEDs to react to my load cell readings, but not in the way I want. I am planning on working on this element actively from the end of explore phase 2 to the end of explore phase 3. I also plan to meet with Arielle during the adapt phase to get her input and advice regarding my LED aspect. Essentially, my problem is that I do not know how to write an if statement that corresponds to a percentage decrease in my initial variable. I can’t find much on this online. I also have a question about how to light up 10 leds on an LED strip one at a time, or do I need 10 separate LEDs. Since I tabled this aspect, I focused on the aroma release aspect that my sponsor wanted me to include.

3 Load Cells connected to HX711 Load Cell Amplifier, connected to Arduino, providing 3 weight readings: I successfully completed this aspect of my project, and no further work is needed here. I have three separate load cells that are connected to 3 separate HX711 chips which are then connected to the Arduino separately. This provides me with three separate accurate weight readings.

LCD Screen connected to Arduino that shows plate is on and zeroed before food placement: I have my LCD screen connected to a logic level converter that allows the 3.3V LCD to be used with my 5V Arduino. The LCD screen turns on when the Arduino is powered on and also lets the user know that the plate is on, zeroed, and ready for food placement. No further work is required here, but I might play with displaying the food weight on the plate after the initial state is displayed. Below is the main hardware I used and some soldering that had to be done to be able to connect the LCD screen to the logic level converter, and then to the Arduino.

Aroma Release: I connected a small air compressor to my Arduino that then pushes air into, and out of a little aroma capsule. The aroma capsule has a cotton ball doused in essential oils, which then creates the scented air as it is pushed through.

Plate prototyping: For this iteration, I made a plate prototype that will be very similar to my final one. I laser cut the housing unit and accounted for all the embedding and hardware accessibility. I began by testing my laser cut on cardboard so that if it did not work, I would not be wasting my wood. My initial laser cut did not scale correctly in export, so then I had to go in to the BTU to do a second laser cut. The front with stars are what will light up one at a time as food weight is eaten off of the plate. The hole on the left side is for the LCD screen to embed in the side wall. The hole is the back is to access the power and cable to the Arduino.

I am confident in the size of my plate, mainly due to portion size recommendations I have found for my target age group of children (4-10 year olds). I found this information from https://www.albertahealthservices.ca/assets/info/nutrition/if-nfs-food-guide-serving-sizes-5-to-11-years.pdf. Alberta health services recommend the below. Information like this could also be included in the packaging of this interactive eating plate to help guide parents.

This video shows all of my hardware working, and the Load Cells providing readings based on pressure applied to them by my fingers.
#include "HX711.h"
#include <SoftwareSerial.h>
//#include <FastLED.h>
SoftwareSerial OpenLCD(6,4);
byte counter = 0;
byte contrast = 2;

int pumpPin = 8;

#define calibration_factor 800000//This value is obtained using the SparkFun_HX711_Calibration sketch

 //#define LED_PIN  9
//#define NUM_LEDS 50
//#define BRIGHTNESS 64
//#define LED_TYPE WS2811
//#define COLOR_ORDER GRB
//CRGB leds[NUM_LEDS];
//#define UPDATES_PER_SECOND 100

//CRGBPalette16 currentPalette;
//TBlendType currentBlending;

#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() {
 // delay(3000);
 // FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
 // FastLED.setBrightness(BRIGHTNESS);
 // currentPalette = RainbowColors_p;
 // currentBlending = LINEARBLEND;
  
  Serial.begin(9600);
  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();

  pinMode(pumpPin, OUTPUT);


  

  Serial.println("Readings:");

  OpenLCD.begin(9600);
  

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

void loop() {

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

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

 
  Serial.print("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("Reading: ");
  Serial.print(scale2.get_units(), 3); //scale.get_units() returns a float
  Serial.print(" lbs"); 
  Serial.print("/t");

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

  digitalWrite(pumpPin, HIGH); //turns pump on for 1 sec
  delay(1000);
  digitalWrite(pumpPin, LOW); //turns pump off for 7 sec
  delay(7000);
}

Above the the current code used to create the output in the hardware video above.

Summary: Overall, I accomplished all of my goals for the iteration. The only place I didn’t was regarding my LED interactions. I did have some low priority items like the aroma release set-up that I was able to do instead of waiting until explore phase iteration 3. I essentially re-shifted two priorities to end up with the same net work done. I also got further with my housing prototype than I thought I would and am at a good spot for putting everything together cleanly. My time spent working on items is in the first section of this blog post, with only the LED item being an estimate for future work.

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: