The helmet is the most important part of his suit. The most apparent purpose it serves is to help Vader breathe.
The rest of Vader’s suit is mostly made up of protective materials to shield his fragile body, which include garments, an armored breastplate, a girdle, and the system status belt.
A lightsaber in red.
Making Process
Step 1: Cut a 4-5 inches cuboid wood in the half, make a groove in both of pieces, and clue together.
Step 2: Make a specific shape with Wood Lathe Machine.
Step 3: Code in “buttoncycler” with 4 different modes(off, normal on, one by one, and vibration switch) on Gemma.
Step 4: Cut a long clear pipe(size TBD) and put NeoPixel strip inside of it. (TBD: light diffusion)
Step 5: Hide Gemma in a Pingpang ball on the bottom.
Step 6: Spray paint, the end!
Material List
Costume(done)
One PingPang ball(ask CA)
Long clear wipe(Home Depot)
Wood piece(VFL)
Red Long LED Strip(Check with Becky)
Coin-size Batteries(Amazon)
Have a Try on “ButtonCycler”
case 0:
colorWipe(strip.Color( 0, 0, 0), 50); // Black/off
break;
case 1:
colorWipe(strip.Color(255, 0, 0), 50); // Red
break;
case 2:
void setup() {
pixels.begin();
}
void loop() {
setColor();
for (int i=0; i < NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(255, 0, 0));
pixels.show();
delay(delayval);
}
}
case 3:???
For my Halloween costume/prop I’ll be making Dr. Strange’s Eye of Agamotto with the time stone inside. Here’s a list of things I have to buy to make this possible.
The Octacle Skirt is inspired by the camouflaging nature of an octopus that can change its skin color. They have special cells in their arms that facilitate this mechanism. Research shows that when different parts of the octopus’s arm are illuminated, the tip of the arm was the most sensitive to light. Using these concepts, I chose to program the code on my skirt.
My Fascination with the Octopus
I have always been fascinated with the camouflaging nature of an octopus and how they squirt ink to deter predators. My observations and research led me to recreate how an octopus reacts in its natural habitats.
A close look at the OctopusOctopus suckers turning blueOctopus suckers turning pink
Concept Sketches
Brainstorming ideas for skirtFinal sketch idea for halloween costume
Step1: I began by testing my code using a Neopixel strip on the Arduino Uno Board. I programmed the code using 4 main functions:
-The colorWipe and reversecolorWipe that depicted how the suckers of the octopus react at a different speeds.
-The delay function that is a buffer before the octopus changes its color.
-The pulse function that gradually illuminates the color change.
Step 2: Measuring and pinning desired skirt length to trace a paper template.
Step 3: Cutting the skirt template and determining the size of the octopus suckers on the front and back of the skirt to resemble a tentacle.
Step 4: Resizing the 3D model and converting file to STL ready to 3D print. The 25 suckers are meant to act as light diffusers. If I had the right 3D printer I would have preferred to print the model in NinjaFlex rather than PLA.
Step 5: Process of 3D printing diffusers.
Step 6: Testing code on soft neopixels using the Gemma with alligator clips and my battery back.
Step 7: Soldering the Gemma to the soft neopixels.
Step 8: Taping the neopixels to the skirt paper template to test the effect.
Step 9: Marking positions for neopixels and sewing them onto the skirt.
Step 10: Individually sewing the suckers onto the skirt.
Circuit Digram and Code
#include <Adafruit_NeoPixel.h>
#define PIN A1
#define NUM_LEDS 25
#define BRIGHTNESS 25
// 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);
void setup() {
strip.setBrightness(BRIGHTNESS);
strip.begin();
strip.show(); // Initialize all pixels to 'off'
}
void loop() {
// Some example procedures showing how to display to the pixels:
pulseWhite(5);
colorWipe(strip.Color(255, 255, 255), 50); // White
delay(500);
pulsePink(5);
colorWipe(strip.Color(255, 5, 180), 20); // Pink
delay(500);
pulseBlue(5);
colorWipe(strip.Color(0, 0, 255), 50); // Blue
delay(500);
pulseWhite(5);
reversecolorWipe(strip.Color(255, 255, 255), 50); // White
delay(500);
pulsePink(5);
reversecolorWipe(strip.Color(255, 5, 180), 20); // Pink
delay(500);
pulseBlue(5);
reversecolorWipe(strip.Color(0, 0, 255), 50); // Blue
delay(500);
// fullWhite();
// delay(100);
}
// Fill the dots one after the other with a color
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);
}
}
void reversecolorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=strip.numPixels(); i>0; i--) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}
void pulseWhite(uint8_t wait) {
for(int j = 0; j < 256 ; j++){
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,0, j ) );
}
delay(wait);
strip.show();
}
for(int j = 255; j >= 0 ; j--){
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,0, j ) );
}
delay(wait);
strip.show();
}
}
void pulsePink(uint8_t wait) {
for(int j = 0; j < 250 ; j++){
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(j+2,0,j,0 ) );
}
delay(wait);
strip.show();
}
for(int j = 250; j >= 0 ; j--){
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(j+2,0,j,0 ) );
}
delay(wait);
strip.show();
}
}
void pulseBlue(uint8_t wait) {
for(int j = 0; j < 256 ; j++){
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,j,0 ) );
}
delay(wait);
strip.show();
}
for(int j = 255; j >= 0 ; j--){
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,j,0 ) );
}
delay(wait);
strip.show();
}
}
Final Product
Halloween Parade
Takeaways
I really enjoyed this project. The most accomplishing part was understanding the code and being able to resolve minor issues that I was facing. The process of working with the Gemma was fairly easy with minimal soldering to the soft neopixels. I would have loved to use Ninjaflex instead of Hard PLA if I had the right printer. Also, from the beginning of my concept, I was interested in movement triggering the lights effect and so I would like to add this function in the future to my project. This function, would also more closely imitate the octopus’s reaction to camoflaudgye.
In this week, I assembled every part together, thank god my soldering skill has improved a little bit in this process. This work turned out pretty close to my imagination, however, the Arduino board didn’t work well with it. I have the Tinkercad worked, the file transport is fine too, it’s just when I trying to connect the 5V and Ground the board directly turned dark, I haven’t figured what to do yet.
Pumpkins are the first thing came into my mind when thinking of Halloween, that’s one of the reasons I have them as the major decoration of my cape. Besides, each time of this year when I walked into stores, there are all kinds of pumpkins in different scales with various facial emotion, however there are only few costumes using pumpkins as elements, then I decided to create my costume with pumpkin decorations.
Challenges were putting my complete circuit inside the costume and trying to hide them, I failed few times that my circuit broke and had to re-solder those weak connections. Even after solving this part, I struggled to organize all the wires together neat and clean. If I had to redo this project, I would definitely measure the length before building the circuit, so it’s easier for me to put everything inside the cape. Once everything is in place, it’s easy to wear the costume and I could simply touch the decoration on my shoulder to trigger the light changing effects (it’s just a little heavy on the left shoulder because the box itself and the Arduino board inside).
I achieved a great improvement in my soldering skills. What’s more, coding was tough for me when trying to achieve the lighting effects I want, I got several errors and before meeting with Becky for help. After the 1 on 1 meeting and playing with the code, I gained a more comprehend understanding of coding, and could be able to understand the meaning of the codes.