Sama Srinivas – Warm Hugs: A Sun Lamp For Seasonal Depression

My mother used to put me to sleep by covering my eyes with her cool hand. It’s a memory that fills me with a lot of warmth. While surrounded by the darkness in the winter time, thinking of family and comfort is especially warming to the soul and body. Warm Hugs is informed by that personal memory and sentiment.

Warm Hugs is a sculptural lamp for those who endure seasonal depression during the cold, winter months. It is a natural alarm clock triggered by the sunrise and can also act as a warm lamp during the dark hours.

Final Product:

Process

Sketches

Failures

Construction

I forgot to take pictures of the clay modeling (probably because my hands were so full of clay)

Learnings + Future Projections

I had a lot of failures in this process, and I think the biggest lesson I learned is the first thing you try might not work, so always have a back up plan. I originally thought I could make my sculpture out of foam and use a hot wire cutter to shape it. That turned out to be an expensive epic failure. Thankfully, I pivoted to clay and it turned out pretty great.

I also learned to think ahead while troubleshooting circuit and code construction. I soldered both sides of my strip because I wasn’t sure what side needed to be facing the Huzzah, and that saved me a lot of time in the long run.

In terms of further refinements, I would have loved to use my clay model as a positive mold and make the final prototype in plaster and possibly also make the base in wood. But the planter plate ended up looking great after being painted.

I also would have loved to work on my video a little more. I didn’t get the opportunity to film during sunrise time, which would have added to the feel of the video I think. Overall, this was a very interesting journey with lots of twists and turns.

Instructables Draft

Sama – Final Project WIP

For my final project, I will be making a sculptural sun lamp to combat seasonal depression! The idea is for people like me who tend to lose a lot of motivation and energy during the winter months where our sun exposure is less than normal.

In terms of the market for these lamps, there are a lot out there. Looking at form, a lot of the shapes are classic geometric shapes especially round spheres, rectangles and lines.

When looking at functionality, a lot of these are golden hour projections or just regular lamps that give off a warm white light. I wanted to add a differentiator to my idea which is having the lamp wake up up at night and be used as a night light during the evening i.e. adding alarm clock functionality. I want to connect my huzzah to a weather api so the sunrise and sunset can trigger the alarm sequence.

But when looking at the market again, it was saturated with spherical versions of this idea.

So I thought one differentiator could definitely be form. But I as also thinking of how I can add functionality to this as well. So I wanted to add functionality that if you got a text from someone you love ‘i.e. Mom’ this would trigger a reaction in the lights as well.

Final Idea:

Based on all of this research, my final project is [name undecided].

I have 3 goals for this product:

  1. Needs to be easily accessible from bed (thinking about size and placement)
  2. Should have an intriguing story (it is a sculpture)
  3. Should be pretty! (so it can appeal to lots of people)

Form: (Might not be this exact position, but abstract figures yes)

I want the material to be like a plaster? or an earthy stone-like looking material (which could be done in post prodcition)

Story:

My mother used to put me to sleep by covering my eyes with her cool hand. It’s a memory that fills me with a lot of warmth. It made me less afraid of the dark which in the winter is what we are surrounded by. I think the idea of family and support and comfort during the winter is especially warming to the soul and body. The form of this product is informed by that personal memory and sentiment.

Final Project Video:

For my final project video, I would like to set the scene with a mother putting her daughter to sleep but it will be reminiscent and nostalgic in terms of coloring. Then it will fastforward to the daughter grown up walking in the winter blowing on her hands to keep warm. She is walking home and goes into her apartment that is dark and dreary. She sighs. But she notices a package waiting by the door and its from her mom. She opens it and finds [name]. She reads the note left by her mom and smiles. She plugs it in and goes to bed. Cut to the morning where she wakes up with the lamp and is happy and humming.

Google Doc: https://docs.google.com/document/d/1PuXFkS6zfixkMVf0BXRLgX-nKgosK4lOc3Ksw9SHWVc/edit?usp=sharing

Instructables: https://www.instructables.com/member/samasrinivas/

Sama – IoT Exercise + Final Project Ideas

Huzzah Exercise:
Final project Ideas:

Idea #1: Synesthesia

Alarm or wall clock/mirror/object that changes the music/vibe/color of the room based on the weather outside

Idea #2: Quirky, Interactive Lamp

Idea#3: An interesting API project

  • please recommend me some cool APIs to look into!
  • I want to make a sarcastic project, possibly making fun of the user with!

Team Fairy: Earth, Wind, & Fire

About The Costume

Team Fairy made LED light-up wings from scratch. We used a variety of materials to create iridescent and beautiful wings representing three different elements: earth, wind, and fire. We chose colors that represented these elements and consistently used them in both the wings and the rest of our costumes. Cyntia is earth and chose green and yellow for her palette. Sama is wind and chose blue and white. Prerna is fire and chose to go with the colors red, orange, and yellow.

Why we made it + how it is to wear it

We made these because we were looking for inspiration on Pinterest and were inspired by all the pretty wing shapes and designs and decided to try our hand at it. Wearing them was actually pretty comfortable but because they were wide we ran into some trouble of knocking into people and things. The crab walk was our friend especially at the halloween parade.

Learnings from the process + what would I do differently

Sama

The most tiring and nerve wracking part of this process was the soldering of the LEDs. I was a solder monkey for about 5 hours soldering all of the joints. I think if I could do it differently I wouldn’t cut my strip so many times to make the soldering easier and more feasible. The most fun part was sketching and designing the wings. Surprisingly, one super time consuming part was wiring and taping the wings to give them more strength. Overall, this process was a lot more complex than I thought it would be going into it, but I’m really proud of the results and enjoyed walking in the parade!

Designing the wings

Soldering the LEDs, wiring and taping wings

Cellophane!

The results

Prerna

The process that took the most amount of time for me was the soldering but the most frustrating was understanding the code. I had a tough time figuring out how to translate what I wanted the lights to do in a language that the Gemma would understand but working with my team really helped.

My strengths lay in the physical making of the project. I really enjoyed designing the shapes of the wings, cutting them out, figuring out how to make them strong and how to attach everything together. Even though the soldering took a while and I had some issues with my connections (due to the LED pointing in the wrong direction) I did really enjoy the whole process.

If I were to do this project again, I would add more a few more LED strips and make the brightness a bit higher.

Cutting out the wings, deciding placements of lights and wiring.

Gluing the cellophane layers with spray adhesive.

Adjusting placement and height of wings.

I am really happy with how the wings turned out! The cellophane reacts really well to the light and also helps with the diffusion.

Cyntia

Creating this costume was more complex than we thought but the most exhausted and frustrating part for me was the soldering. I redid the circuit 3 times and I had a really bad time doing it, but as happens in life, it was part of the process. At the end of the day, the lights turned on and I loved the result and how the green color matched with the cellophane.

Sketching my wings was my favorite part. I tried to create a pattern of leafs as a symbol of Earth.

Designing my wings and wiring them

Circuit working

Materials List

Circuit diagram

Arduino code

Sama

// NeoPixel test program showing use of the WHITE channel for RGBW
// pixels only (won't look correct on regular RGB NeoPixel strips).

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif

// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1:
#define LED_PIN     1

// How many NeoPixels are attached to the Arduino?
#define LED_COUNT  48

// NeoPixel brightness, 0 (min) to 255 (max)
#define BRIGHTNESS 20 // Set BRIGHTNESS to about 1/5 (max = 255)

// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRBW + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 3 = Pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

void setup() {
  // These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
  // Any other board, you can remove this part (but no harm leaving it):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  // END of Trinket-specific code.

  strip.begin();           // INITIALIZE NeoPixel strip object (REQUIRED)
  strip.show();            // Turn OFF all pixels ASAP
  strip.setBrightness(BRIGHTNESS);
}

void loop() {
  //fadeFire(50);
  fadeWind(50);
  //fadeEarth(50);

}

// ------ Wind ---------------------------------------
// colorWipe(strip.Color(0, 0, 0, 255) ,50); //White
// colorWipe(strip.Color(0, 255, 216, 0) ,50); // Teal
// colorWipe(strip.Color(90, 0, 255, 0) ,50); //Indigo 
// colorWipe(strip.Color(0, 0, 255, 0) ,50); //Blue

void fadeWind(int wait) {

// Fade from White (0, 0, 0, 255) to Teal (0, 255, 216, 0)
  for (int fadeValue = 0; fadeValue <=216; fadeValue += 100) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(0,fadeValue, fadeValue, 255)); //use two fadeValues to add both green + blue = teal
                                    // Final Color (0, 216, 216, 255)
      strip.show();                       
    delay(50);
  }
  strip.show();                        
    delay(50); 
  }

// Add blue 216 -> 255  
  for (int fadeValue = 216; fadeValue <=255; fadeValue += 100) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(0,216, fadeValue, 255)); //add to 255 of blue
                                    // Final Color (0, 216, 255, 255)
      strip.show();                       
    delay(50);
  }
  strip.show();                        
    delay(50); 
  }
   

// Fade from teal/blue(0, 216, 255, 255) to Blue (0, 0, 255, 0)
  for (int fadeValue = 255; fadeValue>=0; fadeValue -= 100) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(0, fadeValue, 255, fadeValue)); //fading green and white out to get blue
                                      // Final Color (0, 0, 255, 0)        
      strip.show();                        
    delay(50);
  }
   strip.show();                          
    delay(50); 
  }
  

// Fade from Blue (0, 0, 255, 0) to White (0, 0, 0, 255)
  for (int fadeValue = 0; fadeValue <=255; fadeValue += 100) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(0,0, 255, fadeValue));         //increment white up
                                      // Final Color (0, 0, 255, 255)        
    strip.show();                         
    delay(50);
  }
    strip.show();                         
    delay(50); 
  }

// Fade out blue and keep white
  for (int fadeValue = 255; fadeValue>=0; fadeValue -= 100) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(0,0, fadeValue, 255));         //increment blue down to leave only white
                                      // Final Color (0, 0, 0, 255)        
    strip.show();                         
    delay(50);
  }
    strip.show();                         
    delay(50); 
  }

  // // Fade from no color to White (0, 0, 0, 255)
  // for (int fadeValue = 0; fadeValue <=255; fadeValue += 5) {
  // for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
  //   strip.setPixelColor(i, strip.Color(0, 0, 0, fadeValue)); //fades up white only  
                                      // Final Color (0, 0, 0, 255)              
  //   strip.show();                          
  //   delay(50);
  // }
  //  strip.show();                          
  //   delay(50);   
  // }

}




// ------------------------------- Original function ------------------------

 //--- Original Function Call (Void Loop) -----
  // Fill along the length of the strip in various colors...
  //colorWipe(strip.Color(0, 255, 0)     , 50); 
  // colorWipe(strip.Color (0, 255, 44)     , 50); 
  // colorWipe(strip.Color(174, 255, 0)     , 50); 
  // colorWipe(strip.Color(255, 216, 0, 0) ,50); 

void colorWipe(uint32_t color, int wait) {
  int i = 0;
  int fadeValue = 0;

  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, color);         //  Set pixel's color (in RAM)
    strip.show();                          //  Update strip to match
    delay(wait);                           //  Pause for a moment
  }

   for (int fadeValue = 0; fadeValue <=255; fadeValue += 5) {
    strip.setPixelColor(i, strip.Color(255, 0, fadeValue));
    delay(30);
  }

}

Prerna

// NeoPixel test program showing use of the WHITE channel for RGB
// pixels only (won’t look correct on regular RGB NeoPixel strips).
#include <Adafruit_NeoPixel.h>
#ifdef _AVR_
 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1:
#define LED_PIN     1
// How many NeoPixels are attached to the Arduino?
#define LED_COUNT  100
// NeoPixel brightness, 0 (min) to 255 (max)
#define BRIGHTNESS 20 // Set BRIGHTNESS to about 1/5 (max = 255)
// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRBW + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 3 = Pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic ‘v1’ (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
void setup() {
  // These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
  // Any other board, you can remove this part (but no harm leaving it):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  // END of Trinket-specific code.
  strip.begin();           // INITIALIZE NeoPixel strip object (REQUIRED)
  strip.show();            // Turn OFF all pixels ASAP
  strip.setBrightness(BRIGHTNESS);
  Serial.begin(9600);
}
void loop() {
  fadeFire(50);
  // Fill along the length of the strip in various colors...
  //colorWipe(strip.Color(0, 255, 0)     , 50);
  // colorWipe(strip.Color (0, 255, 44)     , 50);
  // colorWipe(strip.Color(174, 255, 0)     , 50);
  // colorWipe(strip.Color(255, 216, 0, 0) ,50);
}

// ------ Fire ---------------------------------------
// colorWipe(strip.Color(255, 255, 0) ,50); //Yellow
// colorWipe(strip.Color(255, 50, 0) ,50); //Orange
// colorWipe(strip.Color(255, 0, 0) ,50); //Red
void fadeFire(int wait) {
  //from red (255, 0, 0) to orange (255, 50, 0)
  for (int fadeValue = 0; fadeValue <=50; fadeValue += 100) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(255, fadeValue, 0));         //  Set pixel’s color (in RAM)
  
  // Serial.print("red= 255 green= ");
  // Serial.print(fadeValue);
  // Serial.println(" blue= 0");
  strip.show();                          //  Update strip to match
    delay(50);
  }
  }
  strip.show();                          //  Update strip to match
    delay(50);


//from orange (255, 50, 0) to yellow (255, 100, 0)
  for (int fadeValue = 50; fadeValue <=100; fadeValue += 100) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(255,fadeValue, 0));         //  Set pixel’s color (in RAM)
                               //  Final color (255, 100, 0)
    Serial.print("orange to yellow! red= 255 green= ");
  Serial.print(fadeValue);
  Serial.println(" blue= 0");
      strip.show();                          //  Update strip to match
    delay(10);
  }
  }
  strip.show();                          //  Update strip to match
    delay(10);


//from yellow (255, 100, 0) to orange (255, 50, 0)
 for (int fadeValue = 100; fadeValue >=50; fadeValue -= 100) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(255,fadeValue, 0));         //  Set pixel’s color (in RAM)
                               //  //  Final color (255, 50, 0)
      strip.show();                          //  Update strip to match
    delay(50);
  }
  }
  strip.show();                          //  Update strip to match
    delay(50);

//from orange (255, 50, 0) to red (255, 0, 0)
 for (int fadeValue = 50; fadeValue>=0 ; fadeValue -= 100) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(255,fadeValue, 0));         //  Set pixel’s color (in RAM)
                               //  //  Final color (255, 0, 0)
      strip.show();                          //  Update strip to match
    delay(50);
  }
  }
  strip.show();                          //  Update strip to match
    delay(50);
}

// //from red to orange
//   for (int fadeValue = 255; fadeValue>=0; fadeValue += 5) {
//   for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
//     strip.setPixelColor(i, strip.Color(255,fadeValue, 0));         //  Set pixel’s color (in RAM)
//                                //  //  Final color (255, 100, 0)
//     Serial.print("red to orange! red= 255 green= ");
//   Serial.print(fadeValue);
//   Serial.println(" blue= 0");
//       strip.show();                          //  Update strip to match
//     delay(50);
//   }
//   }
//   strip.show();                          //  Update strip to match
//     delay(50);
// }

Cyntia

// NeoPixel test program showing use of the WHITE channel for RGBW
// pixels only (won’t look correct on regular RGB NeoPixel strips).
#include <Adafruit_NeoPixel.h>
#ifdef _AVR_
 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1:
#define LED_PIN     1
// How many NeoPixels are attached to the Arduino?
#define LED_COUNT  8
// NeoPixel brightness, 0 (min) to 255 (max)
#define BRIGHTNESS 20 // Set BRIGHTNESS to about 1/5 (max = 255)
// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 3 = Pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic ‘v1’ (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
void setup() {
  // These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
  // Any other board, you can remove this part (but no harm leaving it):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  // END of Trinket-specific code.
  strip.begin();           // INITIALIZE NeoPixel strip object (REQUIRED)
  strip.show();            // Turn OFF all pixels ASAP
  strip.setBrightness(BRIGHTNESS);
}
void loop() {
  fadeEarth(50);
  // Fill along the length of the strip in various colors...
  //colorWipe(strip.Color(0, 255, 0)     , 50);
  // colorWipe(strip.Color (0, 255, 44)     , 50);
  // colorWipe(strip.Color(174, 255, 0)     , 50);
  // colorWipe(strip.Color(255, 216, 0, 0) ,50);
}
// ------ Wind ---------------------------------------
// colorWipe(strip.Color(0, 240,0); //Green
// colorWipe(strip.Color(0, 240, 55); //Green blue 
// colorWipe(strip.Color(55, 240, 55); //Forest
// colorWipe(strip.Color(140, 240, 159); //Pistacchio
// colorWipe(strip.Color(140, 240, 0); //yellow green

void fadeEarth(int wait) {
  for (int fadeValue = 0; fadeValue <=55; fadeValue += 5) {
  // Fade from green to green blue
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(0, 240, fadeValue));
    strip.show();
    delay(50);
  }
  }
  strip.show();                          //  Update strip to match
    delay(50);
// Fade from green blue to forest
  for (int fadeValue =0 ; fadeValue<=54; fadeValue += 5) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(fadeValue,240, 55));         //  Set pixel’s color (in RAM)
                               //  Pause for a moment
      strip.show();                          //  Update strip to match
    delay(50);
  }
  }
  strip.show();                          //  Update strip to match
    delay(50);
// Fade from forest to pistacchio
  for (int fadeValue = 0; fadeValue<=55; fadeValue += 5) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(fadeValue,240, 55));         //  Set pixel’s color (in RAM)
                               //  Pause for a moment
      strip.show();                          //  Update strip to match
    delay(50);
  }
  }
  strip.show();                          //  Update strip to match
    delay(50);
    // Fade from forest to pistacchio
  for (int fadeValue = 55; fadeValue<=150; fadeValue += 5) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(fadeValue,240, fadeValue));         //  Set pixel’s color (in RAM)
                               //  Pause for a moment
      strip.show();                          //  Update strip to match
    delay(50);
  }
  }
  strip.show();                          //  Update strip to match
    delay(50);
// Fade from pistacchio to yellow green
  for (int fadeValue = 150; fadeValue>=0; fadeValue -= 5) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, strip.Color(150, 240, fadeValue));         //  Set pixel’s color (in RAM)
                               //  Pause for a moment
      strip.show();                          //  Update strip to match
    delay(50);
  }
  }
  strip.show();                          //  Update strip to match
    delay(50);
}

Sama, Prerna, Cyntia – Earth, Wind & Fire (Fairy Edition)

Wings with LEDs

List of Materials Needed:

  • Wire for frame of wings
  • Strip LEDs (one big roll that changes color)
  • cellophane (mutlicolor)
  • Shoulder straps
  • Heat gun
  • Battery (what kind of battery would we need)
  • Rest of costume (for each color)
  • Head pieces/headbands/wigs?
  • Other accessories? (Ears/Sunnies/bracelets)

Techniques for making:

Arduino Animation:

  • colors traveling through entire strip
  • like a rainbow wave but range is different hues of the color (red, blue, green)
  • On/Off Switch attached to strap (around the shoulder)

Potential tinkercad to use (still need the animation portion)

https://www.tinkercad.com/things/2LAWINtp5DE-copy-of-forming-all-the-seven-colours-of-the-rainbow-using-rgb/editel?sharecode=moDY_F–FjuzrQ1pj7nzEESx8wT0-y7F91phyONChD4

Arduino + Halloween Ideation – Sama

Arduino Exercises

Original Code
with animation

Tinkercad Public Link: https://www.tinkercad.com/things/6hD7IVF9jzq

Halloween costumes:

Joint Costume with Cyntia & Prerna

Idea #1: Formula 1 Ferrari pit crew girls

Parts:

  • hat
  • jacket/jumpsuit
  • motion sensor or vibration sensor?
  • LED strips
  • drill

Idea #2: Powerpuff girls

Parts:

  • wigs
  • hair accessories (can make them)
  • cape
  • LED strips
  • Motion sensor or photo resistor?

Idea #3: With wings

Parts:

  • headband with antenna
  • wings
  • dress (can dye myself?)
  • photo resistor?
  • LED strips

Gudetramp

This nightlight was primarily made for myself and others who enjoy the cute and humorous character that is gudetama. As you can see, I have used the LEDs to highlight the most important feature of gudetama – his derrière. He also has a heart tramp stamp because he has class!!! The plush provides a warm and comfortable tactile experience as well as some humour every time you look at it!

Material + Parts

  • 2 White LEDS
  • 2 100 Ohm Resitors
  • Battery pack with switch
  • 3 AAA Batteries
  • Shrink Tube
  • 2 types of fabric: white (stretchy) and orange (textured and transparent)
  • Sewing Needle and Thread
  • Cotton Stuffing

My Journey

Everything about this journey was new. I used a soldering iron, sewing machine, hand sewing techniques, and created something I am really happy with!

There were a lot of surprises. I was first worried that the circuit portion of this assignment was going to be the most difficult, but surprisingly I found that the sewing and putting my pattern together took the most mental acrobatics.

If I had more time to work on this project, I would want to make the buttocks portion a bit cleaner by refining refine the sewing and shape.

Circuit

Process Images

Sama’s Plush Nightlight Proposal

I have two types of fabric to use for this project, mostly to fulfill the first idea. But modifications (like dyeing fabric) is something I want to explore if I go with the other ideas!

Gudetama Plush!

I started this idea during the exercise in class, but wanted to work on a higher fidelity prototype for this project!

Gudetama has been my favorite Sanrio character forever, and I love the idea of squishing him to death, so that’s why I proposed this idea.

For this idea, I would use the LEDs on the egg part of the design and possibly one in the butt area (but this is still undecided).

This the circuit diagram I am thinking of using.

I have some for the white, stretchy fabric from class, and an orange/yellow fabric to complete this design.

2. Heimlich Plush

Bug’s Life is an underrated Pixar movie and is the only thing related to bugs I will ever be okay with. My favorite character from the movie is a fat caterpillar named Heimlich who (spoiler) by the end of the movie sprouts these ridiculously small wings on his body.

I wanted to make this pattern of colors on his body by dyeing the fabric Something like this:

Source

The LED’s in this project will primarily be in the wings, which because of their size (small) might prove to be very difficult to actually execute. Feedback on how to achieve this is welcome!

3. Spirited Away Soot Plush

One of my all-time favorite movies is Spirited Away and I am obsessed with these little soot characters in it!

The colors of the candies would be created witj LEDs, so again using the white fabric I have. The black for the character is on the way!

Arduino Intro Exercises – Sama


In Class Exercise: Red LED On/Off

https://www.dropbox.com/s/iph7md3ll7nghdl/InClassExercise.mov?dl=0

2. Add More LEDs

https://www.dropbox.com/s/meb75wrm2qt8s2l/AddMoreLEDs.mov?dl=0

3. Fade LEDs

https://www.dropbox.com/s/eqglvgiflsszoms/Fade.mov?dl=0

4. RGB LEDs

https://www.dropbox.com/s/90x1ynlwqfoszva/RGDLEDs.mov?dl=0

4b. RGB LEDs w/ Brightness

https://www.dropbox.com/s/378yo04vtykueje/RGBLEDsWBrightness.mov?dl=0

5. Digital Input

a. Turn Off

https://www.dropbox.com/s/kao2itrj0lf3k4o/ButtonTurnOff.mov?dl=0

b. Turn On

https://www.dropbox.com/s/ytegtbkz0ept9su/ButtonTurnOn.mov?dl=0

c. Turn On w/ No Resister

https://www.dropbox.com/s/huxnvonskwz7mxe/ButtonNoResister.mov?dl=0

6. Serial Monitor

https://www.dropbox.com/s/a6mk92ac0j5wuvh/SerialMonitor.mov?dl=0

7. Analog Input

https://www.dropbox.com/s/a6mk92ac0j5wuvh/SerialMonitor.mov?dl=0

Spectrum TV Remote Teardown

The Teardown

Initially, when starting to disassemble this TV Remote, I was stumped. I did not see any screws to take this apart. After asking my classmates, I took my exacto knife and started to try to unfasten the outside shell of the remote. After getting a few clasp unfastened, the remote fell apart pretty easily. All the pieces inside were big and easy to disassemble. I was overall really pleased with how easy this process was for me!

Tools Used To Take it Apart

  • Exacto Knife

Parts Breakdown

Materials Used + Manufacturing Techniques

While searching for information on the parts and materials used in this remote, I came across this article that summarizes the processes and parts used in different types of remote control. I will be quoting information from the article in this blog post!

A. Circuit Board

From what the parts tell me, this remote has a PCB or a printed circuit board.

A PCB is “an electronic circuit with lines and pads that connects various points together allowing signals and power to be routed between physical devices. It is made by combining different sheets of non-conductive material, such as fiberglass or plastic coated with a very thin layer of Copper on the Top side that easily holds electronic circuit. 

The PCB process starts with heating and cutting of CCL sheets, chemical pre-treatment and brushing, CCL sheets are then sent for masking, etching and drying. After whole manufacturing process PCBs are sent for Bear board testing and Visual QC check. Then these PCBs are sent for mounting.

Mounting is done by two ways:-

  • Through Hole Technology (THT)
  • Surface Mount Technology (SMT)

Once mounting is done these PCBs are again tested and are sent for further proceedings. These all steps integrate and provide error free PCBs.”

“Electronic components are assembled on printed circuit boards. The components which are assembled on most remotes are integrated circuit also known as an IC… In this circuit, the IC works when a key is pressed. It then translates the key into a sequence code, with a different sequence for each different key. The IC then sends these signals out through the IR/RF to its receiving end or dedicated device for which remote is made for.”

Remote Control Contact Spring

“Remote Battery Contact Springs are manufactured on precision CNC forming machines by using high quality material such as steel and stainless steel wire.”

B. Outer Shell AKA Plastic Cabinets

The plastic cabinet of this remote was most likely polycarbonate plastic or acrylic but there are many options depending on the product requirements, “such as acrylic, polycarbonate plastic, ABS, nylon, silicone, styrene and thermoplastic polyurethane, known as TPU and thermoplastic elastomers, or TPEs.”

Injection moulding is a likely technique used to mold the pieces and printing, screening, or designing is used in post-processing.

C. Keypad

The keypad is made out silicone rubber and

This PDF showcases all the buttons’ functions on the keypad.

D. Plastic Layer with Holes for Buttons

I think this piece’s use is to provide structure for when the button is pressed to come into correct contact with the corresponding spot on the circuit board.

It seems to be made out of plastic, and the technique was most likely through a mold!

Design Elements

A. Small cylinder to hold parts in place

What I like about this element is it is a very simple solution to what could be a huge consideration when design a small device with many parts. This small column allows for easy assembly and disassembly but also provides a dumb and easy way to keep all the elements in their correct position.

B. Backlight button

The second element I like is the button with the sun on it. It provides the user with the ability to backlight all the buttons in case their environment is too dark to see in. I think the placement is easily accessible and the icon is easy to understand. Mostly, its function solves for a particular pain point while many users watch tv in the dark.