Medusa and the Stone Man!

Final photos!!!



Process photos

Medusa is my first proposal, the reasons that one of my favorite singer Joplin Tisa has a song named Medusa in 2016, and I was impressed by her style. Also, there’s a movie Percy Jackson & the Olympians which has a Medusa performed in that movies, the animation attracted me a lot. It is burned my interest in making Medusa costume. Before started with my costume, I already found some reference for Medusa costume on Instagram.
Initially, Karan wanted to make an Indian turban of Medusa.

However, according to the legend, if someone sees Medusa’s eye, they will turn into a stone man. So based on Karan’s introvert personality, he was willing to be a stone man. 😂 We worked our own part separately but made every decision together.

If the time permits, we would try to install to the sensor in the middle of the headband. When people wave to the sensor, the color will change.

What we both learned from this teamwork, I think is that we trust, understanding each other. We did not have much time to discuss though, but we made the costume efficiency and completely without the pressure. 
Anyway, we had good teamwork at all !!!

List of materials and tools used

Big plastic snake toy *6
Small plastic snake toy *20
LED light *6
Thick headband*1
Soldering machine
Hot glue gun
Gold spray paint

Arduino code

#include <Adafruit_NeoPixel.h>

#define PIN 2

#define NUM_LEDS 1

#define BRIGHTNESS 50

// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_RGB Pixels are wired for RGB bitstream
// NEO_GRB Pixels are wired for GRB bitstream, correct if colors are swapped upon testing
// NEO_RGBW Pixels are wired for RGBW bitstream
// NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels)
// NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRBW + NEO_KHZ800);

void setup() {
strip.begin();; // Initialize all pixels to ‘off’

void loop() {

  // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:

           // check if the input is HIGH
           for(int i=255;i>0;i–){
    customFunction(strip.Color(i,0,0), 20); // turn LED ON
    //customFunction(strip.Color(0,i,0), 100); // turn LED OFF
        for(int i=255;i>0;i–){
    customFunction(strip.Color(0,i,0), 20); // turn LED ON
    //customFunction(strip.Color(0,i,0), 100); // turn LED OFF
        for(int i=255;i>0;i–){
    customFunction(strip.Color(i,i,0), 20); // turn LED ON
    //customFunction(strip.Color(0,i,0), 100); // turn LED OFF


void customFunction(uint32_t c, uint8_t wait){
for(uint16_t i=0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, c);;