Final Crit Cathy Fang: Millennialism



As a millennial myself, I feel like our generation is very vulnerable to our obsession and addiction to things. As the world evolves at an exponential rate, our generation tries its hardest to keep up with the changes. But sometimes we lose track of what we really want, which makes us want to hold onto certain things in our lives or follow certain ritual/routine that we believe without which our lives would fall apart.

This piece explores the millennial lifestyle with a focus on coffee, cats, and cat cafes. The enlarged coffee cup is a symbol of the amount of stimulant ,like caffeine, that millennials need to start off a day. The logo is a combination of starbucks logo and the internet-famous nyan cat, a product of the meme culture. The user has to “pet” the cup so that it can change color. This interaction symbolizes how the millennials are enslaved to their obsessions. The cup also looks like floating in the air, which is a symbol of this generation that dreams and always has their minds in the air.

Key Features:

  1. Activate with hot water/beverage
  2. While activated, touch the cup to make the Cat happy (LED changes color)

3. When beverage in the cup is being consumed/leaving the cup, the cup animates

Full Video:

Following my previous post (Assignment 7 rough crit: smart cup), I added the temperature sensor. And instead of trying to use a teensyduino, I decided to make a bigger paper cup that can hold my hardware.

By chance, I found a flower pot from ikea that I could use as the top part of the cup. It was an ideal choice because it can hold liquid and is sensitive to temperature change.

Shoving everything into the cup:

In addition, instead of a traditional potentiometer with a rod, I decided to use a soft potentiometer that I can tape to the side of the cup to change the color of my neopixel. This not only solve the problem of limited space, but also made the user experience more interesting (petting the cup to please the cat).

Lessons learned:

  1. Instead of trying to fit everything into a constrained space, I can change the form to make the hardware fit more naturally and securely.
  2. Before, I have never spent that much time on the form of the project. This time, I took my time to make the paper cup and design the logo using Illustrator, which made the project looked a lot nicer and secure.
  3. If I had more time, I would add sound to enhance the user experience. Right now, all the user feedback relies on the change in color of the neopixel, which is quite limiting. I would also add a proximity sensor to make cups interact with each other to furthermore show the social interaction among millennials.


Assignment 7: smartCUP (phase I)


Smart Cup can currently do two things:
1. Tell if your cup is ready to drink; 2. Animates if you are drinkingTo achieve these tasks, my product has 3 component: a NeoPixel (8mm), a potentiometer, and a tilt sensor.

Problems I ran into/Lessons learned:

  1. LED vs NeoPixel
    Initially when I got the NeoPixel
  2. Tilt sensor
    Originally I was going to use an accelerometer to detect the cup’s motion in space. But then I realized I only need a True/False statement about whether the cup is tilt. so I used a tilt sensor instead.
  3. Transfering to small breadboard
    Originally, I got everything to work on a medium-sized breadboard. But my control rod of the potentiometer can only be oriented horizontally. See below video.

So I transferred everything to a smaller-sized breadboard, which allows my control rod to point upward.

4. Adafruit Gemma/ Teensyduino not working with Arduino
Now that I can fit the breadboard into the cup, I need to fit the arduino control in the cup as well.  I first tried Adafruit Gemma and got through the installation process. Unfortunately, the port cannot be recognized by my arduino.

Next I am going to try teensyduino. This will be the next step of my project.

Coming up, I am thinking about incorporating the following things:
1. temperature sensor
2. battery-powered
3. Proximity sensor: if there is the couple cup is nearby, the cup does something
4. Add customization

Final project proposal: smartCUP (updated)

Here is the updated proposal


How do we make art, and better yet, how do we express ourselves through art? Traditionally, people express thoughts and feelings through intentional choices of color, stokes, medium. I want to experiment with idea of skipping artists’ intentional choices and allowing their body (or physical properties of their body make these choices. I believe this will allow artists’ to have a closer (physical) connection with their artwork because their body would go through the same change in states as their artwork.

I want to upcycle paper cups (ones you would get at starbucks) as a tool for drawing. The cup can animate the user’s interaction (opening cup, drinking, warming up drinks, even socializing with cups), and then it will take these (unstaged) interactions into art.

Concept drawing

Cup design: to be added



  • temperature sensor
  • Neopixel LED
  • tilt sensor
  • potentiometer
  • photo-sensitive paint

Software (tentative)

  • blynk — connecting arduino data to PC
  • pygame (looking for better option for UI)

Order of construction and testing

  1. Potentiometer + tilt sensor -> color change of Neopixel LED
  2. temp sensor -> color change of Neopixel LED
  3. Fit things into cup
  4. proximity sensor -> 2 cups interact
  5. make an information poster for the final show
  6. write up my artist’s statement for the final show



How do we make art, and better yet, how do we express ourselves through art? Traditionally, people express thoughts and feelings through intentional choices of color, stokes, medium. I want to experiment with idea of skipping artists’ intentional choices and allowing their body (or physical properties of their body make these choices. I believe this will allow artists’ to have a closer (physical) connection with their artwork because their body would go through the same change in states as their artwork.

I want to make a lantern as a tool for drawing. The lantern will be tied to the user’s hand. User’s body temperature controls how much the lantern expands, which then changes the intensity of color; User change color by changing the orientation of their hand and lantern. A virtual canvas will then capture the states and motions of the lantern to form a painting.

Concept drawing

Lantern design:

Lantern motion:

Sample output:


  • accelorometer
  • temperature sensor
  • Neopixel LED


  • blynk — connecting arduino data to PC
  • pygame (looking for better option for UI)

Order of construction and testing

  1. Accelerometer -> color change of Neopixel LED
  2. make lantern shade
  3. temp sensor -> lantern shade expand and contract
  4. work on data threading (location + orientation)
  5. work on UI
  6. QR code (for user to save artwork)
  7. make an information poster for the final show
  8. write up my artist’s statement for the final show


Assignment 5 (final): Sound Form


To reiterate my idea:

Sound exists as sound wave but is only perceived by us through vibration of objects. In this project, I want to change the way we perceive and manipulate sound by emphasizing on the motion of sound waves.

As a violinist, I feel the music through the position of my fingers. When I first learned how to find the right finger positions  to play different notes, my perception of pitch carries a more physical form (location on finger board). I am inspired by this idea and want to present that experience through this project.

As the user move their hand across the strings, the tensity/deformation of strings varies. The users will then fine tune the instrument by finding the pattern of pitch change with respect to their finger position. The sound is really unstable, which adds emotion and interaction to this instrument.


More problems I ran into/Things I fixed:
1. The IR sensor reading was really unstable. I first changed how often I take the data but the reading still fluctuate a lot. So I googled and found that I should add a 100 uF capacitor.

2. Servo almost did not work. After I fixed the IR reading and sound input, I could not start my servo. I played around with the range of servo input and double checked the wiring, and I did not find any error. Then I increased the current and voltage input and suddenly the servo was running. (the arduino god did not give up on me!!)


Assignment 5: STR

Here is the video:

After first round of prototyping, I decided to make the device hand-held instead of connecting to the power box. 

So I decided to tape the arduino board on the back of the breadboard and use a 9V battery. The plan is to power the speaker and IR sensor using the Arduino and to power the two servo motors by the 9V battery. This means I need to plan out my circuit layout on the breadboard.

This leads to multiple problems:
1. My transistor got really heated. Initially I plugged the +/- wires to the breadboard. Then I tried the embedded power input and use the Vin pin to power the arduino, but unfortunately the same problem occurs. This also leads to my second problem ->

2. My arduino port was not recognized by the program. The error message was:

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

This problem has occurred before when I burned the arduino, so I thought the same thing was happening. But the led light on the arduino was still lit so I decided to google and look into the problem. I did the following things and nothing worked:

– check that I have the right board and port selected in the GUI
– exit Arduino software, disconnect Arduino USB, wait a minute, reconnect and try again

In the end, I unplugged every pin that was connected to the arduino and it worked! And I plugged back the pins one at a time to see what exactly was causing the problem. I came to the conclusion that my arduino could not handle two servo inputs.

To be safe, I decided to get rid of the transistor and go back to using the external power box instead.

3. Servo twitching. I initially mapped my IR read data to a servo range of 0-180, and the servo would twitch and have negative values. I then realized the particular servo I selected had a range of -90~90.

4. I also shortcircuit-ed one of my servos, but my arduino could not handle 2 servos anyway, so I had to rely on the one servo to perform.

Lessons learned:

  1. Do not glue your parts until your are certain the circuit would work. I could have switch out of my burned servo, but I hotglued it for my prototype and it became a restraint.
  2. Be careful when using external power. I have yet to figure out what is wrong and what a better alternative would be.
  3. Wiring should be as simple as possible. I was using a lot of wires to connect things where instead I could have plugged the +/- wires directly into the +/- on the breadboard.

Assignment 5: sound formation

I want to remodel the way sound is formed by emphasizing on its the sound waves. The amount of nodes in one period of a sound wave determines the pitch of the sound. Below is a diagram that explains this concept visually:


Inspired by the Spiral Wall, developed by the P&A LAB (Programming and Architecture LAB)
I want to make simulation of playing a violin by having infrared sensors detect the users’ finger position and then translate that data into the amount of twists in servos and the pitch of the speaker.


Working with one “string”:


The next step would be to make the infrared sensors detect finger positions and map the data to controlling the speaker and servos.

Assignment 4: Dandelion


To me, Dandelion is a symbol for departure, whether it is the children leaving home to pursue their dream, or people coming out of their comfort zone. I left my home in China when I was 13 and came to the United States alone for high school and now college. One time, when I was back home, my mother said to me: “It’s strange but I feel like you have never left home.” This seems like to me is her wish–her daughter is home more often–being reflected and tweaking her perception of reality. I decided to capture that wish in my project. In this project, my dandelion doesn’t become bare after a user blows at it; it only spins faster in the opposite direction, a symbol of my mother’s conflicting emotion.

In developing this project, I ran into a lot of unforeseen difficulties.
1. Motor speed/wrong type of motor. I had to experiment with different motors to get enough torque to spin my dandelion. Some of the motors were not working with my current circuit setup.
2. Wind sensor. I accidentally broke off the little chip on the wind sensor and it was too tiny to solder it back. I got a new one but the new parts are not soldered.

If I had more time, I would set up 2 wind sensors to detect the direction of wind, which determines the direction of the spinning of dandelion. Also, I would make the dandelion “wings” expand and contract more drastically.

Assignment 3 Cathy Fang: Reverse Whack-A-Mole

My idea is to create a reverse Whack-A-Mole. Video demo is here:

The “hammer” (solenoid+motor) tracks the finger’s location and hits your figure if you cover the button (photoresistor).

Challenges and failure:
1. Burned an Arduino when playing around with the solenoid. The solenoid needs a 12v power but I was pulling power from both the power box and the Arduino.

2. The appearance of the project could look more stable. I did not have time or material to build a stable post or box, which affects the performance of the project.