Sige’s There’s Always Sunshine Light

“There’s Always Sunshine” is a LED light made with a UV Light Sensor. It’s for people who’s experiencing seasonal depression to remind themselves that there can always be sunshine and stay positive. The light will work as when the sun goes down / when it’s cloudy or rainy, it lights up. You can toggle a button for the light to fade, otherwise the light stays on.

Instructables

https://www.instructables.com/Theres-Always-Sunshine-Light/

Video – It Works!

Process Photos

Tinkercad

https://www.tinkercad.com/things/0QbKHpFH4T0-copy-of-sige-dec-7/editel?returnTo=%2Fdashboard%2Fdesigns%2Fcircuits&sharecode=3N66N1BoYZz9DblljA5nXa3k6t6JgzLsXnkD5EWszY4

Code

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif

#define BUTTON_PIN   2
#define WHITELIGHT_PIN   5
#define PIXEL_PIN    6
#define UV_PIN    A5
#define PIXEL_COUNT 7
Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

int buttonState = 0;
int lastButtonState = 0;
int buttonPushCounter = 0;
int sensorValue = 0;
//int brightnessWL = 0;
int fadeamount = 5;
bool isFading;

//SETUP
void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  //pinMode(UV_PIN, INPUT);
  pinMode(WHITELIGHT_PIN, OUTPUT);
  //pinMode(PIXEL_PIN,OUTPUT);
  strip.begin();
  strip.show();
  Serial.begin(9600);
}



void loop() {
  //check sensor value
  sensorValue = analogRead(UV_PIN);
  Serial.print("sensorValue= ");
  Serial.print(sensorValue);
 
  buttonState = digitalRead(BUTTON_PIN);
  Serial.print("\t buttonState= ");
  Serial.println(buttonState); 


    if (buttonState == LOW) {
         isFading = true;
        Serial.println("isFading is true");
    }else {
      isFading = false;
      Serial.println("isFading is false");
    }
    

  if (sensorValue <= 2) {
    Serial.println("sensor smaller than or equal to 2, lights on");
    
    colorWipe(strip.Color(255, 70, 10), 5);
    
    if(isFading == true){
      // fade in from min to max in increments of 5 points:
       for (int brightnessWL = 255; brightnessWL >= 50; brightnessWL -= 5) {
        Serial.print("brightness= ");
        Serial.println(brightnessWL);
        analogWrite(WHITELIGHT_PIN, brightnessWL);
        // wait for 30 milliseconds to see the dimming effect
        delay(50);
      }
      
      for (int brightnessWL = 50; brightnessWL <= 255; brightnessWL += 5) {
        Serial.print("brightness= ");
        Serial.println(brightnessWL);
    	  analogWrite(WHITELIGHT_PIN, brightnessWL);
  		  delay(50);
      }
      // fade out from max to min in increments of 5 points:
      
    } else {
      digitalWrite(WHITELIGHT_PIN, 255);
    }


    }
  else if (sensorValue > 2) {
    Serial.println("sensor greater than 2, lights out");
    digitalWrite(WHITELIGHT_PIN, LOW);
    colorWipe(strip.Color(0, 0, 0), 5);
    }
	  // save the current state as the last state, for
  // the next time through the loop
  lastButtonState = buttonState;
}

//SET PIXEL FUCTION
void colorWipe(uint32_t color, int wait) {
  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
  }
}

Sige’s “There’s Always Sunshine” Light Progress

About the Light

“There’s Always Sunshine” light is an UV sensing LED light. It’s for people with seasonal affective disorder. The light will work as when the sun goes down / when it’s cloudy or rainy (no sun out), it lights up (tbd if the light intensity changes with the amount of UV light detected. A button can control if the sun rotates. I want to make this light to remind people that there’s always sunshine.

Circuit Diagram

Video Description

Video 1 will be a step by step progress of how to make the light.

Video 2 will be the story of the light: Girl is happy in her living room because it’s soaked with sunshine. She goes to make coffee, when she returns, it’s cloudy outsite and suddenly she’s sad. Then she notices the Sunshine light in her living room is lit. This makes her happy again and she can focus on work now.

Google Doc Project Tutorial Outline

https://docs.google.com/document/d/1hzzM9REaO9-qtylUiCALcaeAId5oytAz00R_OE658lM/edit?usp=sharin

Instructables

Profile: https://www.instructables.com/member/Sige+Zheng/

Sige’s Final Project Proposal

“There’s Always Sunshine” Light

This is a LED light made with a UV Light Sensor. It’s for my best friend who’s not at the best of her mental health. She enjoys the sun and has a great amount of sunlight at her house during the day. However, when the sun goes down, especially that it happens so early as of Day Light Save, the apartment gets cold and a little sad. So I want to make this light UV light sensing light for her to remind her there’s always sunshine.

The light will work as when the sun goes down / when it’s cloudy or rainy, it lights up (tbd if the light intensity changes with the amount of UV light detected, also tbd if the sun part of the light will rotate with a motor when it lights up).

“There’s Always Waves” Light

This light is the opposite of a “night light”. I will use a Photo Cell / Photoresistor. When there’s daylight, the light will light up and the waves moves with a motor. When at night, the light will be off.

This light is made for me, or my friend. We are both really passionate about surfing. When it’s flat out there (like recently), we feel sad and can’t cope as well with life. This light is designed to sit by the bed so it’s the first thing I see when I wake up. I want this light to remind us that there will always be waves as the first thing in the morning.

“I’m Feeling Dry” Water Pump Reminder

This idea is to make a quite water pump reminder for people to water their plant. It uses a Soil Sensor Capacitive Moisture Sensor. When the soil is too dry, the water pump is triggered in a container, making quite water flowing sound and water movements to remind the owners to water their plants.

Sige’s Halloween Costume – NoFace/TwoFace Ghost

This Halloween I made a costume as the No-face ghost but made it into a two-face ghost. This is an interactive costume – when I high five with another person, the face of white light will flash red; when I make a heart shape with my hand, the neutral face will change into a love face that flashes pink and blue color.

This costume is inspired by the movie Spirited Away. In the movie, the No Face ghost follows Sen, the young girl, at the end of her journey and onto the train. The Two Face ghost follows me around NYC and on the subway of NYC.

Materials

  1. Black cloth
  2. LED light strips
    • strip lights from the front, cut into 12 sections to make the neutral face and the mouths
    • strip lights from the side, cut into 2 sections to make the hearted eyes
  3. Wires
    • to connect lights
  4. Thick wires
    • to make the frame to support the ghost (cloth)
  5. Solder
    • to connect lights and wires
  6. Zip tie
    • to connect the wire frame
  7. Hot glue
    • to seal the sharp wire edges
  8. Electric tape
  9. Gemma
  10. Power Bank
  11. Vibration sensor
  12. Magnetic switch

Circuit Diagram

Arduino Code

https://www.tinkercad.com/things/dKrVTRXBeRQ-siges-halloween-code?sharecode=1lYuPeBtHUzDRoIwtiQ0rHkCWOYn-FoT_Had3ImEeuQ

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

#define BUTTON_PIN   2

#define VIBRATION_PIN   0

#define PIXEL_PIN    1  // Digital IO pin connected to the NeoPixels.

#define PIXEL_COUNT 77  // Number of NeoPixels

// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

boolean oldStateV = HIGH;
int     modeV     = 0;    // Currently-active animation mode, 0-9
boolean oldStateM = HIGH;
int     mode     = 0;    // Currently-active animation mode, 0-9

void grouponeanimate(uint32_t color, int wait) {
  for(int i=0; i<31 ; 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
  }

void grouptwoanimate(uint32_t color, int wait) {
  for(int i=31; 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
  }

void g2Purple(int wait) {
    for (int fadeValue = 0; fadeValue <= 255; fadeValue += 15) {
      for(int i=31; i<strip.numPixels(); i++) { // For each pixel in strip...
        strip.setPixelColor(i, strip.Color(fadeValue,   0,   255,0));         //  Set pixel's color (in RAM)
      }
        strip.show(); 
        delay(wait); 

    Serial.print("fadevalue= ");
    Serial.println(fadeValue);
      strip.show();                          //  Update strip to match
  

  // fade out from max to min in increments of 5 points:
    for (int fadeValue = 255; fadeValue >= 0; fadeValue -= 15) {
      for(int i=31; i<strip.numPixels(); i++) { // For each pixel in strip...
        strip.setPixelColor(i, strip.Color(fadeValue,   0,   255,0));         //  Set pixel's color (in RAM)
      }
        strip.show();   
        delay(wait);    
    }
    Serial.print("fadevalue= ");
    Serial.println(fadeValue);  }
      strip.show();                          //  Update strip to match
}

void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(VIBRATION_PIN, INPUT_PULLUP);
  strip.begin(); // Initialize NeoPixel strip object (REQUIRED)
  strip.show();  // Initialize all pixels to 'off'
}

void loop(){
  boolean newStateV = digitalRead(VIBRATION_PIN);
  boolean newStateM = digitalRead(BUTTON_PIN);

  if(newStateV != oldStateV) {
    // Short delay to debounce button.
    delay(10);
    // Check if button is still low after debounce.
    newStateV = digitalRead(VIBRATION_PIN);
    if(newStateV != oldStateV) {      // Yes
      grouptwoanimate((  0, 0,   0), 50);
      if(++modeV > 1) modeV = 0; // Advance to next mode, wrap around after #1
      switch(modeV) {           // Start the new animation...
        case 0:
          grouponeanimate(strip.Color(180,   180,   255), 50);    // white
          break;
        case 1:
          grouponeanimate(strip.Color(  255, 0,   0), 50);    // red
          break;
      }
    }
      oldStateV = newStateV;
    } else {
      if (newStateM != oldStateM) {
        grouponeanimate(strip.Color(  0, 0,   0), 50);
        g2Purple(50);
        oldStateM = newStateM;
    }
  }
}

Process

1. Make the wire frame for the ghost structure

2. Connect the wire to Arduino and breadboard

I connected 1 long light strip to the Arduino and the breadboard so that I can test the code I will use

3. Write & test code

4. Connect the light and switch and sensor to Gemma, cut light strip into sections, solder them together with wires of various length so I can structure the light strip into the shapes of the face

While I’m soldering the light strips together, I tested the connection after each connection to make sure there’s nothing wrong.

5. Edit the code to fit the number of lights used and the Gemma port

6. Sew the light strip to the black cloth and wire structure

Voila!

Sige’s Halloween Costume Updates

Idea is updated!

I was originally more into the idea of the two-faced ghost using the muscle sensor, but the sensor costs $45!!! So I made some changes.

My new idea is to make a Spirited Away No Face Ghost that follows me – but in my version, it will have 2 faces, a neutral face that’s lit up using light strips in neutral colors (white/light yellow/dark blue/etc) and slowly changing color, and a loving face that only shows up when I make a heart shape with my hands. I’m going to use a magnetic contact switch as the switch for the second face, which will be located on my finger tips.

This costume is to celebrate the movie Spirited Away, but to also give some character to the no face man, while showing the relationship between Sen and the no face man.

Technology

I have bought the magnetic switch and also found a second pair in the studio bins. I have also bought a few vibration sensors, maybe I will program the neutral face to change color if I clap my hands (or tap the ghost).

I will be using light strips. Questions – will the RGB or RGBW light be better for my costume given I might want white lights?

I will also need to buy a big piece of black fabric which I can get at the store near my home this week. I will use some wire structures to support the ghost frame and attach it to my back.

I will use the Arduino to program light changes, controlling light with sensors and switches.

To do list

  • buy black fabric and wires
  • make ghost structure and how it attaches to my back
  • Arduino programming
  • test light colors and programming
  • test switch and sensors functionality
  • finalize costume

Sige’s Arduino Exercise + Halloween Proposal

Arduino Analog Input

NeoPixels

Tinkercad circuit: https://www.tinkercad.com/things/bz8QBfLM4Ol-rgbw-strand-test?sharecode=WRPSc8_1vuxC2CCHnyANICuJc5PxRZdkdhFljR9TNUI

Halloween Proposal

1. LED Face Changing Mask

My first idea is a LED face changing mask. The mask can have many expressions and images lit up on an LED board. The face will switch when I swing my hand in front of my face.

This mask requires the use of an LED board, programing of the difference mask designs, and a motion sensor.

2. LED Dress

The second idea is a LED Dress. Like how the dresses women wear in the European palace a few hundred years ago, this dress will have a LED skeleton. The color changes every step I walk.

This costume will need led strips, pressure sensor, and programming of how the light changes responding to my walking.

3. Two-faced Ghost

My third idea is a two-faced ghost floating and following me from behind (or resting on my shoulder). The ghost will have two facial expressions lit up with LED strips – an angry face and a loving face. The face will change to a loving face every time I flex my muscles.

This costume will need to use a muscle sensor, LED strips, and programming for changing faces.

Sige’s Puss Puss Night Light

The Puss Puss night light is now complete!

The Story

The Puss Puss night light is made to encourage sex positivity for young female adults and let them be more confident and embrace their body. People often don’t view human genitals the same way like other body parts. But artists have been exploring the visual relationship between female genital and natural elements, such as flowers with pebbles, the cut of a strawberry and many other fruits. The layered structures of these beautiful natural elements could help it become easier to view our own body parts.

The Puss Puss light is designed to be put by your bed or pillow. It looks like a vagina from the front view, but is in the shape of a flower when looked from an angle. The surprise outcome is that it also looks like an octopus from the side! The toy lights up with yellow lights and gives a warm feel to the room at night.

The Process

I bought my fabric from New York Fabrics in Bushwick. A really nice lady helped me explore different material and colors.

The end product used 8 yellow LED lights, 1 battery pack, and 4 different fabrics. The darkest color (dark purple) is very soft and stretchy, the second darkest color, the maroon fabric, is thicker and more durable, the burnt orange fabric is silky, and the lightest pick fabric is soft and fluffy.

I started the project with soldering the lights to make sure my circuit works well. Having 8 lights is tough! The hardest part with the light is to connect the 8 light with the really thin battery pack wire – it broke once in the middle of my sewing later, and my solder is so fat that the heat-shrink tube could barely fit… I connected all the positives of the lights with the resistor so it’s easy to recognize them even after the tube shrink after heating. And luckily – the light worked!

I sewed the light from the inner layer to the outer layer. Except from the middle layer, every other layer comes together with two pieces rounding the inner layer like two piece of lips. Something new I tried was to explore how light comes thought different materials – and with the darker and thicker material, it barely comes through. So I had to change my plan of using an acrylic board to defuse the light. Instead, I put one light on the tip of the middle layer (and yes, that’s the clit), and two lights in each of the two outer layers. The thick cotton defuses the light pretty well in my case.

Something challenging was that I couldn’t plan for the side of each layer upfront. For each of the layer I cut, I had to refer to its inner layer in size so the outer layer can wrap around the inner layer well.

The other challenging part was sewing around the soldered wires at the bottom of the lamp. To stick the light inside the sewed pieces, I had to leave a small opening for each piece, and sewing it close around the wire wasn’t the easiest. But because this part doesn’t show on the outside of the lamp, I didn’t need to do a super clean job – it just had to close and stay stable.

To have the light be able to stand on a table, I created a back bubble when I’m cutting the most outer layer, this is where the other 3 lights stays and where the battery pack is.

After sewing the back close, voila! The Puss Puss Light is finished!

Currently this light sits by my pillows along with my other toys.

My cat Haydn likes it 🙂

If I had more time, I think I would solder the wire better at where it connects to the battery pack. I would also add two more LEDs to the back of the light so that the top part of the back can lights up. But I love how it is now!

Sige’s Plush Night Light Proposal

For the plush night light project, I’d like to explore the idea around femininity and sex positivity. Read on for some current work practices and project ideas.

Current Work

I made a plush toy roughly in the H shape with an old t-shirt, cutting out the main pattern on the t-shirt to be the front and back patterns on the toy.

The toy prototype is sized larger than my hand, with full cotton filling. I made it this way so it’s easy to be held in hand – the concave in the shape actually has a nice feel/fit to the hand and feels like it could help me reduce some stress.

This got me thinking a lot about touch – both physical and mental.

The circuit I built was a simple circuit with a battery pack, 1 red LED light and a resistor, build together with soldering and shrinking of tubes to make the connection more secure.

Proposal 1 – Vagina Lamp

The first idea I want to explore is a Vagina Lamp. This is for young female adults to view their feminine body with positivity. People often don’t view human genitals the same way like other body parts. But I find that certain elements in nature shapes similarly to vaginas – flowers with pebbles, the cut of a strawberry and many other fruits are often used to be compared with the look of female genital. The layered structures of these natural elements could help it become easier to view our own body part.

I want to make a vagina lamp that looks like a vagina from the front view, but in shape of a flower or strawberry from the side. This could sit on the bed table of young female adults to encourage them to embrace their body, and be more confidence and sex positive.

I plan to use cloth in different shades of red with fluffy surface, layer them, and stuff them with the cotton filling. The soft touch of the lamp can also encourage the users to freely explore their sexualities.

Proposal 2 – Lip Lamp

My second idea is a lip lamp. People usually express their emotions through various facial expressions and that often involved their mouth/lips. How make-up artists in the recent years start to explore making art on the lips also inspired me to this idea.

I want to make a lip lamp for people to put on their desk or by their bed to remind them to express themselves, be communicative, and most importantly – be happy.

I’m still debating whether to make this lamp with a silky smooth surfaced cloth or one that’s fluffy. But I envision light coming in-between the lips.

Proposal 3 – Teru Teru Bōzu

Dialing away from the human body parts a little bit, my third idea is a Teru teru bōzu doll. This references the Japanese doll, the name “Teru teru bōzu” means “shine, shine monk”, but in Chinese, people often refers to the doll as a “sunny day doll”.

Teru teru bōzu is usually placed hanging outside of the house, singular or in groups. I’d like disrupt this pattern and make a Teru teru bōzu lamp either in a vertical chain or with a BIG head and short body.

This lamp will be for parents with kid(s) or adults who like simplicity and cuteness in their house. It will be made with white minky cloth, stuffed with cotton fillings and lit with LED lights.

Nikon AF 600 Point n Shoot Teardown!

My teardown process at the VFL makerspace

Let’s take a look at my Nikon AF 600 point-and-shoot teardown. This is a compact point-and-shoot camera equipped with a 28mm f/3.5 lens. I’m a huge fan of film cameras so this is super exciting for me to see the inside of this semi-ancient tool. And surprise – it’s way more complicated than I thought!

For the teardown, I used simple tools – 2 small crosshead screwdrivers, and a tweezer plier.

The teardown process is pretty easy. I took the screws off each layer first and separated the plastic parts to expose the next layer of screws until all components were torn down.

Now let’s take a look at a knolling picture of all the components.

The camera is made out of 5 main parts – the skeleton, the motor (that controls the loading of the film roll), 2 circuit boards (one controls the motor, one main board for light sensing, focus detecting, lens control, and communication with the motor board), and the lens.

The skeleton of the camera is made out of plastic. The motor gear is mainly made of plastic while joined with the skeleton with small metal bars. The motor itself is built with 2 metal parts. The lens is a combination of plastic, metal, and glass. All components in the camera were joined together using screws or glue (for batteries and flex circuits), and the communication between the electronic parts is through thin flex circuit belts and thin wires.

Given the size of the screws and how each layer inside the camera is bonded in a super clean and compact way, I doubt this camera was made on a streamlined machine. The skeleton is likely to be made in specially designed molds and put together with all other components by hand.

Take a look from another angle at the components

Because this camera was made in 1993 when the internet was still young, I can’t find any information regarding any of the chip/motor numbers on the camera. Based on my knowledge of the camera, I suppose the chip on the main circuit board numbered “S2914 A1F10 156” is the chip for light sensing and focus control, the most technical and complicated function for the camera. Another number I found was on the motor “A3311” and “3226D”. No records were found on the internet, but these 2 motors combined with each other load and rotate the film roll in the camera.

One really interesting design I found was how the flex circuit belt goes through 3 layers of the camera skeleton. This design achieve a few things – first, the circuit belt needs to reach to several electric components which are located top and bottom, left and right of the camera, the length of the it becomes a weakness of the thin belt, but securing it in-between layers adds extra strength to combat this problem; second, it allows the circuit belt to utilize empty space on each layer it goes through, while it’s glued to the empty spaces, we don’t need designated area to secure the circuit belt; third, this layout also avoids direct overlap of the circuit belt so camera program is likely to be more stable.

Another interesting design is how the motor gear is spread across the bottom of the camera. This design allows the two motors to line up in different directions while still be able to lock into/respond to each other’s movements, it also makes the camera thinner (in width), so it’s easier to be carried around.

Motor gear at the bottom of the camera

That’s it for this round of teardown! I really had fun digging into this ancient tool for photographs. Enjoy more photos of my tear down process below.