Yiwu’s Hallowenn custom

This dress is a cloak. At the beginning, I wanted to catch the light. Because light will slow down in special materials. I think we can have a material that can slow the flow of light so that the human eye can see it?
In the end I found it impossible, at least for now. So I want to use leds to simulate the flow of light. Then put it in the clothes.
After this idea was formed, because I had referenced the code of the project I was wearing on my head, the code of this project did not seem to change. I thought about how to change it. So I decided to add a sensor. Let it make some changes. Finally, I decided to use a sound sensor to change the light state according to the size of the external sound.

I used the RGBW light strip and sound detection module. I also bought a super large battery.

As for the Arduino technique(s) I’m using, I will combine the light drop and rainbow in the Arduino code.

Shuyi’s Final Halloween Scarecrow

Throughout the whole parade I finally found my Scarecrow family in the crowd!

The Details of the Headwear

The process of making the headwear


  1. A plastic crow
  2. A toy brain
  3. A headband
  4. Straws


  1. One scissor
  2. One knife
  3. Glue gun
  4. Red and black pigments
  5. Blushes
  6. Soft paper material


  1. Using a scissor or a knife to take off the eyes and legs of the crow ( no mercy!)
  2. Using a knife to cut a middle hole at crow’s belly
  3. Putting two LEDS into its eyes first,then soldering
  4. Using the headband through the crow’s belly
  5. Using glue gun to make some blood on crow’s mouth


  1. Using a scissor to cut the toy brain
  2. Painting the dark red in the gap of the brain
  3. Spreading your brain and stick your brain to the straw
  4. Using the glue gun to add some unknown special effects on the brain
  5. After the glue is dry, color the brain


  1. Cutting a shape for my own head make it be sticked with the straw
  2. Putting the LEDS into the straw hair


I thought the parade was really fun and my headwear attracted a lot of people. Doing headwear on my own is really fun. I combine the brain and crows together on the head is the suggestion which becky gave. I decided to put the crow on my head at the beginning, because a scarecrow is made of straw, they will attract a crow, but they have no life, if I cos the scarecrow, if crow once parked in my head, my brain will peck, it will be shown, so I design the headwear. In parade, I made a scarecrow makeup, a little scary makeup, so becky let me try to frighten children, successfully scared some of them that made me so have the achievement, but also there were some brave boy didn’t be scared, it made the atmosphere very embarrassed, so I just gave them high-five interaction, ease the atmosphere.

I wanted to find more scarecrows in the crowd, but I only found a very tall scarecrow and I took the chance to take a photo with him, but the other time I did not find a scarecrow. Many adults liked my headwear and took photos with me. If I could add with more LED over my head that would make me had a better headwear, but considering the cause of the battery, I used four led, but let me surprise was that until end of march it still could light, before the parade becky helped me calculated that the led may need two pieces of batteries that I could make headwear shine until end of march.

The next time I do something more scary, like a two-headed woman, to scare more kids !!!

Halloween code:

// the setup function runs once when you press reset or power the board

#include <Adafruit_NeoPixel.h>

#define PIN 0

#define NUM_LEDS 8

#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() {
pinMode(1, OUTPUT);
strip.show(); // Initialize all pixels to ‘off’

void loop() {
digitalWrite(1, HIGH);
customFunction(strip.Color(255,120,0), 10);


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

Zhenxuan’s homework 9

This is my final photo of the costume.
These are my making process.

This is my sketch.

And this is the image that inspiration me to make a wand. I learn from the part of this wand to make my own.

The material and tools:

  1. Wood club
  2. Kitchen paper
  3. Masking tape
  4. Soldering tools
  5. Spray-paint
  6. Wire
  7.  Ribbon
  8. Easter Grass

Arduino code

// Code by Erin St. Blaine for Adafruit Industries

// Color Touch Pendant Tutorial: https://learn.adafruit.com/color-touch-pendant-necklace/introduction

// Two neopixel rings connected on pin 1 will cycle through gradient colors when the pendant is touched.  For Gemma M0.

#include “Adafruit_FreeTouch.h”

#include <Adafruit_NeoPixel.h>

#define CAPTOUCH_PIN 0  //capacitive touch pin

#define NEOPIXEL_PIN 1  //neopixel ring pin

#define NUM_LEDS    16  //how many pixels total

//#define LED_TYPE    WS2812


Adafruit_NeoPixel strip(NUM_LEDS, NEOPIXEL_PIN, NEO_GRBW + NEO_KHZ800);

//CRGB leds[NUM_LEDS];   //LED array  

// Calibrating your capacitive touch sensitivity: Change this variable to something between your capacitive touch serial readouts for on and off

int touch = 400;    

long oldState = 0;

// set up capacitive touch button using the FreeTouch library

Adafruit_FreeTouch qt_1 = Adafruit_FreeTouch(CAPTOUCH_PIN, OVERSAMPLE_4, RESISTOR_50K, FREQ_MODE_NONE);

//TBlendType    currentBlending;

//CRGBPalette16 currentPalette;

void setup() {


  if (! qt_1.begin())  

   Serial.println(“Failed to begin qt on pin A1”);

   //FastLED.addLeds<WS2812, NEOPIXEL_PIN, COLOR_ORDER>(leds, NUM_LEDS);  // Set up neopixels with FastLED

   //FastLED.setBrightness(BRIGHTNESS); // set global brightness

   //FastLED.setMaxPowerInVoltsAndMilliamps(3,350);  //Constrain FastLED’s power usage

    strip.begin();           // INITIALIZE NeoPixel strip object (REQUIRED)

  strip.show();            // Turn OFF all pixels ASAP

  strip.setBrightness(50); // Set BRIGHTNESS to about 1/5 (max = 255)


void loop() {


  Serial.write(‘ ‘);

  checkpress();   //check to see if the button’s been pressed



void checkpress() {

// Get current button state.

    long newState =  qt_1.measure();  


   if (newState > touch && oldState < touch) {

    // Short delay to debounce button.


    // Check if button is still low after debounce.

    long newState =  qt_1.measure(); }

  if (newState > touch ) {  

  colorWipe(strip.Color(0,   0,   0,255)     , 50); // white



        colorWipe(strip.Color(0,   0,   255, 0) , 2); // off


  // Set the last button state to the old state.

  oldState = newState;

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




The whole parade I really get fun. And this is my first time to participate in Halloween parade, and I never dress up and make up for Halloween. It was really worth to make a lot of effort in preparing this event. Actually,I bought the custom before I figured out what exactly I want to do. Due to this custom, I decided to do a wand to match my custom. And it was successful in the end because at my first time I didn’t know if I can make it or not. I used a free touch to change the color of light inside of crystal ball. In the beginning, it was hard to find the use of the paper for making a wand look like hardness. Finally, I got masking tape to wind-up the wood. And I found the way to hide the circuit and the light which inside of crystal ball. The really tricky one was hiding switch because I pierced a hole to let me turn on or off. But even I can not find this hole quickly turn on or off the light. Also, the whole process is not easy; everyone gets fun in the parade.

Bethany’s Witch Costume




Materials and Tools:

  • Knit fabric
  • Wire
  • Red scarf
  • Polymer Clay
  • Pleather
  • Brass Belt Buckles
  • Brass/Gold Grommets
  • Silk Ribbon
  • Brass pipe
  • Toilet paper roll
  • Acrylic paint
  • Brass push pins
  • Blue Foam
  • Adafruit Flora Board w/ battery pack
  • Objet filament/resin
  • Sewing Machine
  • Object 3D printer
  • Soldering Iron

I have always had an affinity towards witches and I think that they are an iconic part of the Halloween culture which is why I chose this costume direction. My goal was to make a slightly more modern/gothic version of a traditional witch. My costume was actually quite comfortable and I had no complaints about wear-ability. I learned a lot about sewing through this process, especially in regards to clothing seams and measurements. If I were to do the project again, I would give myself a little more time for details and I would start working on the circuit earlier so that I could get it working in time. I would also make some changes to the physical appearance of the staff. I had a lot of trouble deciding what I wanted the staff to look like and how I would build it, so it ended up being a bit sloppy in execution. Overall I really enjoyed this project and liked how it turned out, but I would like to refinish it when I have the time.

Joey’s Halloween Costume




define N_LEDS 16

define PIN 1

Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {

int pos = 0, dir = 1; // Position, direction of “eye”

void loop() {
int j;

// Draw 5 pixels centered on pos. setPixelColor() will clip any
// pixels off the ends of the strip, we don’t need to watch for that.
strip.setPixelColor(pos – 2, 0x100000); // Dark red
strip.setPixelColor(pos – 1, 0x800000); // Medium red
strip.setPixelColor(pos , 0xFF3000); // Center pixel is brightest
strip.setPixelColor(pos + 1, 0x800000); // Medium red
strip.setPixelColor(pos + 2, 0x100000); // Dark red


// Rather than being sneaky and erasing just the tail pixel,
// it’s easier to erase it all and draw a new one next time.
for(j=-2; j<= 2; j++) strip.setPixelColor(pos+j, 0);

// Bounce off ends of strip
pos += dir;
if(pos < 0) { pos = 1; dir = -dir; } else if(pos >= strip.numPixels()) {
pos = strip.numPixels() – 2;
dir = -dir;


I learned a lot through this activity. First, I know how to do a complete costume. During this process, I think my sew skill is improved. Besides, I think coding actually is not very difficult, especially some basic coding. If we know the resource of coding library, it will be very convenient to do it.






Xiaohan’s Halloween Costume

Fox Spirit

My costume consists a skirt, a fox mask and a fan with Neo pixel lights.


The first three pictures are the ideas about the outfit and how the lights are set up. And the two on the bottom are the references.


In the end of the process, I attached the Neo pixel to a traditional Chinese fan to show a beauty of Chinese culture.

Materials and Tools Used

Fabric/ Paper/ Arduino software/ Soldering Station/ Silicone wire/ Neo Pixel


The whole process is challenging but really fun. I really like that we have this opportunity to make a halloween costume. This is the first time I went to a parade, and it is amazing. I first settled down with the outfit idea, and started to make a circuit, then put the circuit onto the costume. My costume is pretty comfortable to wear, and I realized the more LED you have on your costume, the greater attention you will get from the audience. I am glad that we elaborate LED into our costume.


// A basic everyday NeoPixel strip test program.

// NEOPIXEL BEST PRACTICES for most reliable operation:
// – Add 1000 uF CAPACITOR between NeoPixel strip’s + and – connections.
// – MINIMIZE WIRING LENGTH between microcontroller board and first pixel.
// – NeoPixel strip’s DATA-IN should pass through a 300-500 OHM RESISTOR.
// – AVOID connecting NeoPixels on a LIVE CIRCUIT. If you must, ALWAYS
// connect GROUND (-) first, then +, then data.
// – When using a 3.3V microcontroller with a 5V-powered NeoPixel strip,
// (Skipping these may work OK on your workbench but can fail in the field)


ifdef AVR

#include // Required for 16 MHz Adafruit Trinket


// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1:

define LED_PIN 1

// How many NeoPixels are attached to the Arduino?

define LED_COUNT 60

// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 3 = Pixel type flags, add together as needed:
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
// NEO_KHZ400 400 KHz (classic ‘v1’ (not v2) FLORA pixels, WS2811 drivers)
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

// setup() function — runs once at startup ——————————–

void setup() {
// These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
// Any other board, you can remove this part (but no harm leaving it):

if defined(AVR_ATtiny85) && (F_CPU == 16000000)



// END of Trinket-specific code.

strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
strip.show(); // Turn OFF all pixels ASAP
strip.setBrightness(50); // Set BRIGHTNESS to about 1/5 (max = 255)

// loop() function — runs repeatedly as long as board is on —————

void loop() {
// Fill along the length of the strip in various colors…
colorWipe(strip.Color(255, 0, 0), 50); // Red
colorWipe(strip.Color( 0, 255, 0), 10); // Green
colorWipe(strip.Color( 0, 0, 255), 50); // Blue

// Do a theater marquee effect in various colors…
// theaterChase(strip.Color(127, 127, 127), 50); // White, half brightness
// theaterChase(strip.Color(127, 0, 0), 50); // Red, half brightness
// theaterChase(strip.Color( 0, 0, 127), 50); // Blue, half brightness
// rainbow(10); // Flowing rainbow cycle along the whole strip
// theaterChaseRainbow(50); // Rainbow-enhanced theaterChase variant

// Some functions of our own for creating animated effects —————–

// Fill strip pixels one after another with a color. Strip is NOT cleared
// first; anything there will be covered pixel by pixel. Pass in color
// (as a single ‘packed’ 32-bit value, which you can get by calling
// strip.Color(red, green, blue) as shown in the loop() function above),
// and a delay time (in milliseconds) between pixels.
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

// Theater-marquee-style chasing lights. Pass in a color (32-bit value,
// a la strip.Color(r,g,b) as mentioned above), and a delay time (in ms)
// between frames.
void theaterChase(uint32_t color, int wait) {
for(int a=0; a<10; a++) { // Repeat 10 times…
for(int b=0; b<3; b++) { // ‘b’ counts from 0 to 2…
strip.clear(); // Set all pixels in RAM to 0 (off)
// ‘c’ counts up from ‘b’ to end of strip in steps of 3…
for(int c=b; c<strip.numPixels(); c += 3) {
strip.setPixelColor(c, color); // Set pixel ‘c’ to value ‘color’
strip.show(); // Update strip with new contents
delay(wait); // Pause for a moment

// Rainbow cycle along whole strip. Pass delay time (in ms) between frames.
void rainbow(int wait) {
// Hue of first pixel runs 5 complete loops through the color wheel.
// Color wheel has a range of 65536 but it’s OK if we roll over, so
// just count from 0 to 565536. Adding 256 to firstPixelHue each time // means we’ll make 565536/256 = 1280 passes through this outer loop:
for(long firstPixelHue = 0; firstPixelHue < 5*65536; firstPixelHue += 256) {
for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip…
// Offset pixel hue by an amount to make one full revolution of the
// color wheel (range of 65536) along the length of the strip
// (strip.numPixels() steps):
int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels());
// strip.ColorHSV() can take 1 or 3 arguments: a hue (0 to 65535) or
// optionally add saturation and value (brightness) (each 0 to 255).
// Here we’re using just the single-argument hue variant. The result
// is passed through strip.gamma32() to provide ‘truer’ colors
// before assigning to each pixel:
strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue)));
strip.show(); // Update strip with new contents
delay(wait); // Pause for a moment

// Rainbow-enhanced theater marquee. Pass delay time (in ms) between frames.
void theaterChaseRainbow(int wait) {
int firstPixelHue = 0; // First pixel starts at red (hue 0)
for(int a=0; a<30; a++) { // Repeat 30 times… for(int b=0; b<3; b++) { // ‘b’ counts from 0 to 2… strip.clear(); // Set all pixels in RAM to 0 (off) // ‘c’ counts up from ‘b’ to end of strip in increments of 3… for(int c=b; c RGB
strip.setPixelColor(c, color); // Set pixel ‘c’ to value ‘color’
strip.show(); // Update strip with new contents
delay(wait); // Pause for a moment
firstPixelHue += 65536 / 90; // One cycle of color wheel over 90 frames