Jellyfish Costume-Final Retrospective

IMG_3610

 

My costume was completed in time for Halloween and I am pretty satisfied with the way it came out. For how much attention I had to pay to the details of the wiring, I would say this was a success.

Materials:

  • 1 Cotton Shirt
  • 1 yard of fringe
  • 30 feet of white wire
  • 10 neopixel leds
  • thread
  • circuit.

Initial Sketch and circuit diagram:

IMG_3479

IMG_3540.JPG

The longest processes by far was sewing all the fringe onto the shirt and then measuring all the white wire for the neopixels. after I measured out each length between the neopixels, I had to cut 3 pieces for power, ground and input. Then I had to put the neopixels on the tassels.

So I wanted the the neopixels initially to twinkle with white and blue lights when I lifted my arms up. Unfortunately, I underestimated just how long sewing the tassels, glueing them and adhering the neopixels would be that by the time I finished doing that, I went for the easiest code possible in terms of what to do. I ended up editing the neopixel code we used earlier in the semester.

IMG_3482IMG_3535

IMG_3603.JPG

Crypt Cat – Halloween Final

P2290597 2_edited_1920

Hi guys!

I think we can all call Halloween a success this year! Despite some mid-project set backs, I was able to pull together a satisfying compromise to my original Light up costume plan. Chc

Materials:

  • 6 RGB Neopixel LEDs
  • 1 Gemma Sewable Microcontroller
  • 1 AAA 3-battery pack
  • Styrofoam
  • Black mesh
  • Black Felt
  • Black “Satin” Fabric
  • Two Tone Sequin Fabric

Initial proposal:

My initial proposal for the light up, LED component of my halloween costume was to solder two identical circuits, that would display simultaneous code, and place them glowing from the shaped hears on the cat hood.

However, the soldering of the Neopixels was a very intricate task and harder then I had expected. With time limitation on my weekend I decided to adjust my end plans for a single 6 LED’s circuit and create a spooky glowing neck pendant for the Crypt Cat.

IMG_0599_1920

I cut a shape to curve around my neck out of black poly satin and then shaped a piece of styrofoam into a triangular, gem shape. I covered the styrofoam in two layer of black mesh to help in the diffusion process, for overall color and to help attached the foam to the main black piecing. I then sewed the circuit to the back of the styrofoam piece as a means of diffusing the light and creating an overall glow.

I stitch a pocket to the back solder piece that the battery pack and Gemma would sit in. As I was working on it the soldering snapped so I ended up also reinforcing the integrity of the circuit by sewing the wires to the main fabric.

IMG_0552_1920IMG_0562

I really wanted to play around with coding the sequence of LED’s for this project as I feel a bit unsure about code/writing code still and thought it would be good practice. I wanted to have the pendant glow, like a heartbeat, and transition colors as it pulsed in and out. For this, assigned specific RGB values to integers and then created a function using, set.brightness, that I could pull into the main loop and insert the RGB value into.

The other component I wanted to include is what I’m calling “Snake,” where the LED’s light up one at a time in succession. This was way more complicated for me and with some help, I learned in theory how it works although this one is still a bit of a comprehension challenge for me.

Either way, it’s be a fun a challenging project for me! Below you can find my code, and a video and more pics.

IMG_0601_1920IMG_0484_edited_1920


#include

#define PIN 1

#define NUM_LEDS 6

#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_GRB + NEO_KHZ800);

uint32_t Gold = strip.Color(255,206,0);
uint32_t Turq = strip.Color(41,196,204);
uint32_t Green = strip.Color(22,142,42);
uint32_t White = strip.Color(75,75,75);
uint32_t Blank = strip.Color(0,0,0);
uint8_t count;

void setup() {
strip.begin();
strip.show(); // initialize all pixels to “off”
}

//Main program box
void loop() {
Fade(Gold);
delay(200);
Fade(Turq);
delay(200);
Fade(Green);
delay(200);

for (count = 0; count < 5; count++) {
Snake(White);
}
delay(200);
}

// Brightness Function
void Fade(uint32_t color) {
uint16_t i, j;

//Increase brightness sub-loop
for (j = 0; j < 75; j++) {
for (i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, color); strip.setBrightness(j); } strip.show(); delay(50); } // Decrease brightness sub-loop for (j = 75; j > 0; j–) {
for (i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, color);
strip.setBrightness(j);
}
strip.show();
delay(50);
}

}

// Snake Function
void Snake(uint32_t color) {
uint16_t i;

for (i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, Blank); //Clears pixel memory to start Snake
strip.show();
delay(25);
}
strip.setBrightness(50); //Resets brightness after Fade
//Snake loop
for (i = 0; i < strip.numPixels(); i++) {
if(i<1){
strip.setPixelColor(i, color);
strip.show();
delay(100);
}
strip.setPixelColor(i, Blank);
strip.setPixelColor(i+1, color);
strip.show();
delay(100);

}
}

Halloween Costume Update — Helen, Wes, Felix

Here is an update on our journey of making our Tetris costumes from flat pieces of foam core to full-size Tetris blocks with LEDs programmed to fade in and out. We have a ton of process photos, so enjoy!

We traced our bodies on brown paper to figure out the measurements for our blocks that would fit all three of us:

IMG_2229

IMG_2187

Taking measurements to paper before cutting foam core:

IMG_6072IMG_6074

From 2D to 3D—costume assembly and fitting phase:

IMG_2266

Sewing straps to reinforce the internal structure and soldering LEDs:

IMG_2275

Attaching long circuits of LEDs to the Tetris blocks:

IMG_2298IMG_2301

Getting there!

IMG_2306IMG_2303

Coding the LED fading functions:

IMG_2307IMG_6149

Attaching circuit and Arduino inside the costumes:

IMG_6152

Finishing touches:

IMG_6150IMG_2317

THE BIG REVEAL! 

Halloween Costume Updates

This week, I finished coding for my broomstick and finished soldering and making the exterior part of the broomstick. I was almost done making the exterior part last week but after soldering my parts I felt the need to remake it, so I just undo the things and remade it.

I experimented with colors first without mic amplifier and wrote the code. After writing the code and soldering it, I tried out different version of code to make the sensor react more sensitively to the sound. However I chose not to use that code considering the noise level of Halloween parade. (Actually it’s my first time participating so I am still not sure haha)

The interesting part was that mic amplifier reacted in different way depending on where it was connected to. At first, I was powering by my computer and it worked well. However when I connected to my battery pack and put the mic amplifier to breadboard, it did not reacted in the way I wanted. (It turned red even in quiet situation) After connecting the amplifier to the 3.3v pin of Arduino board, the problem was solved.

In order to put my board inside the broomstick, I wrapped and attached my board with fabric that does not block the light and then wrapped/attached that to the handle part of the broomstick.

Except for the time when soldered parts came apart several times, I enjoyed the whole process a lot!!:) I became familiar with codes and also practiced soldering a lot.
 

Below is the code that I used.

#include 
int SAMPLE_WINDOW =33; // Sample window width in mS (33 mS = ~30 Hz)
int LED_PIN = 6; // DIGITAL pin # where LEDs are connected
int MIC_PIN = 1; // ANALOG pin # where microphone "OUT" is connected
int NUM_LEDS = 8;
#define BRIGHTNESS 50
Adafruit_NeoPixel strip = Adafruit_NeoPixel(8, 6, NEO_GRBW + NEO_KHZ800);
void setup() {

pinMode(MIC_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);

strip.setBrightness(BRIGHTNESS);
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}

void loop() {
// Listen to mic for short interval, recording min & max signal
unsigned int signalMin = 1023, signalMax = 0;
unsigned long startTime = millis();
while((millis() - startTime)  255) n = 255; // Limit to valid PWM range
else if(n < 0) n = 0;
ColorWipe(strip.Color(255, 255-n, 255-n), n); 
void ColorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}