Bedside Pocket Sorter

Final Documentation

Team:

The Daisies

Members:

Aiden Magee, Gus Gamble & Audrey Reiley

Photo of our team, our client Drayton and his mother Nancy

Photo of our team, our client Drayton, and his mother Nancy the day of our final critique.

Introduction

We first meet with our client Drayton at the CLASS facilities to learn more about his daily routine through an interview to identify any issues he had in his daily life. This led us to prototyping our Bedside Pocket sorter for Drayton. To ensure that the device had all of the features and functions Drayton wanted, we designed two cardboard prototypes for him to review. We also reached out to his mother Nancy to gain more detailed information about his likes, dislikes and alternative music that we could use for the music portion of our device's functions. Drayton offered various information such as, but not limited to: his favorite color (orange) his love for sushi and the Pittsburgh Penguins, and a desire for our team to place our signatures on the device. This collaborative effort with our client helped us make informed discussions about the device's design so that it could not only address his needs but also to appeal to his aesthetic wants.

What We Built 

Our device holds a watch, a wallet, and a phone, and has an screen that will display which items do not have something in their assigned slot. When each slot is filled, our device shines blue lights and plays Farewell, a soothing piece of music composed by Nelson Foltz, before shutting off a minute later. 

Overhead shoot of Bedside Pocket Sorter which is made out of clear orange acrylic and shows a divot to place a wallet, an arm to place a watch, and LCD screen, and a divot to place a mobile cellphone

Our final device! It is made of clear orange acrylic with frosted white clear acrylic for a base. It boasts places to store our client, Drayton's, phone, watch and wallet, and can detect when each is put in the proper storage slot. Some fun design choices were made to add a small duck statuette and to etch in things Drayton enjoys to the box, such as the Pittsburgh Penguins logo and his name, surrounded by sushi.



IMG_3481 (1).mov

Brief video showing the interactions and functions of the device: placing wallet, phone and watch in their designated areas, blue light turning on, and client's brother's music Nelson Band's song "Farewell" playing.

Detailed Images

Front view of our device that features our clients name and sushi motifs engraved
Detail image of the wallet placement with the word "wallet" and a Pittsburgh Penguins Logo engraved into the surface of the device

Front view of our device that features our clients name and sushi motifs engraved. 

Detail image of the wallet placement with the word "wallet" and a Pittsburgh Penguins Logo engraved into the surface of the device. 

Detail image of the the devices area where clients phone can be placed. Also shown is the LCD and the small rubber ducky we embedded into the device
Detail image of where client will place their watch. Also shown is the word "watch" engraved into the device and a proximity sensor to sense if the watch has been placed

Detail image of the the devices area where clients phone can be placed. Also shown is the LCD and the small rubber ducky we embedded into the device.

Detail image of where client will place their watch. Also shown is the word "watch" engraved into the device and a proximity sensor to sense if the watch has been placed.

Narrative Sketch

Drayton gets home after an enjoyable day at CLASS, eats some dinner with his parents, and then gets ready to head to bed. He's just about to get in bed when he realizes that the display on his bedside table reads MISSING: PHONE WALLET WATCH. He checks hit pockets, then notices he's left his phone unplugged in the bathroom! He walks back, collects his phone, then sets it into the slot at the back, remembering to plug it in as he does.

His bedside pocket sorter's display shifts to MISSING: WALLET WATCH; as it does, he removes his watch and rests it on the stand, nestling it between the two walls. The display changes again, now only saying MISSING: WALLET. He takes his wallet from where he forgot it on his chest of drawers and, smiling at the Pittsburgh Penguins logo etched into the holder, places the wallet in its receptacle.

Immediately, he hears the sweet opening strains of Farewell, a song his brother composed and performed. Soft blue lights shine out of the device, and the display changes one final time to GOODNIGHT DRAYTON. As he gets in bed and pulls up the covers, he relaxes as the music and light pours out of the device on his nightstand. A minute later, the device finishes playing the music and shuts off the lights, and Drayton falls asleep.

In the morning when he wakes up, he will have immediate access to his most important possessions, and his phone will be fully charged, helping him be prepared for the new day.

How We Got Here 

Our greatest challenge as a team was trying to create a device that would both be small enough to please our client and be useful to him, while also being able to hold all of our wiring. We were told at first that the available space was so small that our final product ought to be about the size of a deck of cards; however, we explained why that wasn't a realistic goal, and ended up with a relatively small box that could still handle a lot of what we wanted it to.

Our second greatest challenge was the MP3 player and speaker. Try as we might, it took us two separate videos and three different libraries and coding attempts to get it to work; and even then, we had to change speakers to get the sound to come out properly. With help from classmates and the professor, though, we managed to get it to play "Farewell" correctly.

We planned for our final product to hold everything Drayton might have in his pockets, to remind him to store his items before he went to bed, and to play relaxing music and shine soft blue lights to help him go to sleep once he'd finished his nighttime routine. In the end, we were able to accomplish all of those goals; By talking to Drayton, we learned that the main things he needed to store were his phone, wallet, keys, and watch. As he kept his keys in his watch, we knew we would only need three receptacles in total.  

Another source of inspiration and help for us was Drayton's mother, Nancy Foltz. She was an enormous help, and we can't thank her enough; she gave us excellent constructive criticism to keep the box both useable and useful, as well as giving us the music our device ultimately would play for Drayton- "Farewell", by his brother Nelson. Staying in email contact with her was a huge boon.

Overhead image of prototype A  made out of cardboard with a flat design. Prototype has designated areas for client's phone, wallet, and LCD and raised side attachment for client's watch.

Overhead image of prototype A  made out of cardboard with a flat design. Prototype has designated areas for client's phone, wallet, and LCD and raised side attachment for client's watch.

Prototype & Process

Brief

This prototype was designed to help answer the design questions: 

Our prototypes were composed of cardboard. Given our goals, we sought to make multiple prototypes to test which architecture suited Drayton best. 


Reflection

Our Prototyping process was built around asking how Drayton would most like to store his objects. We designed three prototypes for this purpose- one where everything would be laid flat, with an LCD screen to help him recall what needed to be put up; one with no LCD and a raised backrest for his phone; and a minimalistic design where the phone fit vertically into a slot, and the wallet rested in a divot while the watch fit onto a holder sticking out from the device. 

Drayton most approved of our final prototype, but also appreciated the LCD screen, so we sought to incorporate that as well. He also seemed most inclined to store his phone in a horizontal/landscape orientation, leading us to alter our design for that to work. Overall, we received no feedback we couldn't work into our final design, so we made sure to work everything we got in.

The surprises we encountered along the way were mostly centered in putting together our final project and getting our MP3 player to work properly. Our size constraint led to us having a very small box to fit our wiring into, making it cramped and creating an issue where our watch sensor wouldn't fit perfectly.


Process Images

Overhead image of prototype B  made out of cardboard with a flat design for the wallet and an angled slot for client's phone to sit upright. Prototype has designated areas for client's phone, wallet, and LCD and raised side attachment for client's watch.

Overhead image of prototype B  made out of cardboard with a flat design for the wallet and an angled slot for client's phone to sit upright. Prototype has designated areas for client's phone, wallet, and LCD and raised side attachment for client's watch.

Overhead image of prototype C  made out of cardboard with a flat design for the wallet and an angled slot for client's phone to sit upright. Prototype was designed in an attempt to reduce the size of prototypes' A & B.

Overhead image of prototype C  made out of cardboard with a flat design for the wallet and an angled slot for client's phone to sit upright. Prototype was designed in an attempt to reduce the size of prototypes' A & B.

Image of our team sketching out ideas for our prototype

Image of our team sketching out ideas for our prototype

Our team comparing our carboard prototype with the potential final prototype made out of acrylic

Our team comparing our carboard prototype with the potential final prototype made out of acrylic.

Our team soaking our final prototype in rubbing alcohol to loosen the acrylic glue because we needed to embed the electronics in the device and overshot the assembly process.

Our team soaking our final prototype in rubbing alcohol to loosen the acrylic glue because we needed to embed the electronics in the device and overshot the assembly process.

Our team's signatures which were later vectorized and engraved onto the device as per our client's request.

Our team's signatures which were later vectorized and engraved onto the device as per our client's request.

Close up shot of our team trouble shooting the DFPlayer with a breadboard and speaker.

Close up shot of our team trouble shooting the DFPlayer with a breadboard and speaker.

Photo of our team member Aiden and professer Garth as Garth helps Aiden with the Arduino software.

Photo of our team member Aiden and professer Garth as Garth helps Aiden with the Arduino software.

Our team member Aiden soldering wires onto the final board to be inserted into our device.

Our team member Aiden soldering wires onto the final board to be inserted into our device.

CLASS coordinator Mal showing our team where we should place text on the device to orient Drayton when he needs to place his personal items away for before bed.

CLASS coordinator Mal showing our team where we should place text on the device to orient Drayton when he needs to place his personal items away for before bed.

Our team measureing Drayton's watch to better understand how large the wallet holder on the device should be.

Our team measureing Drayton's watch to better understand how large the wallet holder on the device should be.

Conclusion & Lessons Learned

In our initial interview with Drayton, two big motifs kept coming up: Drayton wants to have a firm routine he can rely on, and his phone and watch are very important to him, as they help him keep track of his routine. In fact, in the interview, Drayton couldn't figure out where either his phone or watch were- although it turned out his phone was charging and his watch had been left at home. This led to our ultimate idea- we planned to create a device that could help Drayton set a routine that would make sure he knew where his various important items were in the morning, so he wouldn't need to worry about misplacing his watch or phone in the future. Our device was originally designed to have a large backing, and to have a charger installed in it for Drayton's phone; but in order to suit size constraints and design something that would ultimately be most useful for Drayton, we altered our design throughout the process to get to our final product. Ultimately, I think we did get the proper result, if not exactly what we planned for. 

Unfortunately, our end result wasn't perfect. Drayton would have preferred solid orange acrylic, our phone sensor shorted after we sealed the entire box, and the final result is much wider and longer than the requested size. However, I think ultimately we did quite well with what we had- IDeAtE Lending did not stock the acrylic we wanted, and to make the box any smaller, we would need to compromise on either the wallet storage divot or on the LCD screen, both crucial to the device's functionality. If we were to make a second iteration, I think we would want to make the inside of the box slightly larger, so that it could more comfortably fit together and hold our wiring more easily. We also had two separate internal task areas; Gus designed, laser cut, and constructed the final product, while Aiden coded and wired together the electronics. Audrey was a sort of jack-of-both-trades, helping significantly with the final construction and with getting the mp3 player and speaker working properly. It would likely have been easier, though, if everyone had worked at least a little on everything; having the team split into an assembly-line-esque setup made minor issues into bigger problems when we realized later on that the electronics would fit, but only barely.

Our final critique was widely positive; Ms. Foltz said that we "really got to the heart of Drayton" with our final design, and even mentioned that the device could possibly have some market viability. However, some issues were brought up- our watch holder's sensor juts out from the base of the stand, which is a bit awkward, and the back panel we had designed for access to our wiring hangs open if not sealed shut with tape; a future design would include a magnet to keep it closed. The various designs and etchings we had added to the box, such as the Penguins logo, sushi, and our signatures (by Drayton's request), also were met with acclaim by our reviewers. The box's design was also cited by several to "be good for setting habits," which was our goal. We were even able to take and implement some advice immediately by gluing down the box's lid to its base, helping it look more put together and securing the electronics inside.

Technical information

/*


Bedside Pocket Sorter


Detects the presence of objects and plays a sequence (shines an LED strip and plays a song) when all the objects are detected


Code written for an Arduino Uno circuit board.


pin mapping:


Arduino pin |   role | macro name | description

___________________________________________________________________

A0          input     SENSOR_PHONE  Reads phone proximity sensor

A1          input     SENSOR_WALLET Reads wallet proximity sensor

A2          input     SENSOR_WATCH  Reads watch proximity sensor

6           output    LED_PIN       Sends Data to the LED strip

10          input     SPEAKER_RX    Receives data from the speaker

11          output    SPEAKER_TX     Transmits data to the speaker


Credit to:


   NeoPixel Ring simple sketch (c) 2013 Shae Erisson

  




Code released to the public domain by the author, 04/03/2024

Aiden Magee, amagee@andrew.cmu.edu


*/


#include <LiquidCrystal_I2C.h>

#include <mp3tf16p.h>

#include <Adafruit_NeoPixel.h>

#ifdef __AVR__

#include <avr/power.h>

#endif



#define LED_PIN        6

#define NUM_PIXELS 27

#define SENSOR_PHONE A0

#define SENSOR_WALLET A1

#define SENSOR_WATCH A2

#define SPEAKER_RX 10

#define SPEAKER_TX 11

#define PHONE_RANGE 100

#define WALLET_RANGE 100

#define WATCH_RANGE 100

#define printInterval 2000


bool prevItemsPlaced = false;

bool itemsPlaced = false;

float lastPrintTime = 0;

bool ledsOn = false;

float sequenceStart;

// Keep the leds on for a minute

const float ledDuration = 60.0*1000.0;


MP3Player mp3(SPEAKER_RX, SPEAKER_TX);

Adafruit_NeoPixel pixels(NUM_PIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);

LiquidCrystal_I2C lcd(0x27,20,4);


void lcd_print(bool phoneDetected, bool walletDetected, bool watchDetected)

{

 lcd.clear();

 lcd.home();

 if (itemsPlaced){

   lcd.print("Goodnight Drayton");

 }

 else{

   String firstRow = "Missing: ";

   String secondRow = "";

   if (!phoneDetected){

     firstRow += "PHONE ";

   }

   if (!walletDetected){

     secondRow += "WALLET ";

   }

   if (!watchDetected){

     secondRow += "WATCH";

   }

   lcd.print(firstRow);

   lcd.setCursor(0,1);

   lcd.print(secondRow);

 }

}


void setup() {


 delay(1000);

 lcd.init();

 lcd.backlight();

  pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)

 mp3.initialize();


 pinMode(SENSOR_PHONE, INPUT);

 pinMode(SENSOR_WALLET, INPUT);

 pinMode(SENSOR_WATCH, INPUT);


 Serial.begin(9600); // starts serial communication at 9,600 baud (the rate)

}


void loop() {

 int phoneVal = analogRead(SENSOR_PHONE);

 int walletVal = analogRead(SENSOR_WALLET);

 int watchVal = analogRead(SENSOR_WATCH);


 bool phoneDetected = (phoneVal > PHONE_RANGE);

 bool walletDetected = (walletVal > WALLET_RANGE);

 bool watchDetected = (watchVal > WATCH_RANGE);

 Serial.println("phoneVal");

 itemsPlaced = phoneDetected && walletDetected && watchDetected;

 if (itemsPlaced && !prevItemsPlaced){

   ledsOn = true;

   sequenceStart = millis();

   // Initiate the sequence

   pixels.fill(0x0000FF, 0, 27);

   pixels.show();

   mp3.playTrackNumber(1,100, false);

 }

 else if (prevItemsPlaced && !itemsPlaced){

   ledsOn = false;

   // Stop the sequence

   pixels.clear();

   pixels.show();

   // Is there a better way to stop the song?

   mp3.initialize();

   delay(500);

 }

 // If the leds have been on for longer than the set duration

 if (ledsOn && (millis() - sequenceStart) > ledDuration){

   pixels.clear();

   pixels.show();

 }


 if (millis() - lastPrintTime > printInterval){

   lcd_print(phoneDetected, walletDetected, watchDetected);

   lastPrintTime = millis();

 }

 //lcd_print(phoneDetected, walletDetected, watchDetected);

 Serial.println(phoneVal); // push the most recent value to the computer


 prevItemsPlaced = itemsPlaced;

 delay(100); // slow the loop down a bit before it repeats

}