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

Materials:

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

Tools:

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

Step1:

  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

Step2:

  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

Step3:

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

Reflection

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.setBrightness(BRIGHTNESS);
strip.begin();
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);
strip.show();
delay(wait);
}
}

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

//#define COLOR_ORDER GRB

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() {

  Serial.begin(115200);

  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.print(qt_1.measure());

  Serial.write(‘ ‘);

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

  //delay(20);

}

void checkpress() {

// Get current button state.

    long newState =  qt_1.measure();  

    Serial.println(qt_1.measure());

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

    // Short delay to debounce button.

    delay(500);

    // 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

    }

    else{

        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

  }

}

Reflection

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

Inspiration:

https://pin.it/5xt4tu6f4pnquq

https://www.youtube.com/user/punishedprops

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

Inspiration

Coding

include

define N_LEDS 16

define PIN 1

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

void setup() {
strip.begin();
}

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

strip.show();
delay(30);

// 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;
}
}

Reflection

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.

Material

paper

fabric

Led

wire

Xiaohan’s Halloween Costume

Fox Spirit

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

Progress

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.

Diagram

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

Reflection

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.

Code

// 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,
// a LOGIC-LEVEL CONVERTER on the data line is STRONGLY RECOMMENDED.
// (Skipping these may work OK on your workbench but can fail in the field)

include

ifdef AVR

#include // Required for 16 MHz Adafruit Trinket

endif

// 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)

clock_prescale_set(clock_div_1);

endif

// 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
}
}
}

Princess Anastasia Halloween Costume

My Princess Anastasia costume is inspired by Disney’s 1997 rendition of the tale of the lost Princess Anastasia of the Romanov Dynasty. During this film, there is a scene where the Princess and her companions are trying to arrange for the Princess to meet with the Dowager Queen to reveal the true identity of the missing Princess. This scene is the climax of the movie, as it sets into motion the falling action of the tale, which results in the Princess and the Dowager Queen being reunited after being separated for so many years.

This movie is one of my favorite childhood memories, and so I have decided to attempt to live out one of my childhood dreams by being Princess Anastasia (from this scene) complete with a LED and crystal tiara, white opera gloves, and a scepter (which the Princess is never actually pictured with, but I could not resist!).

Making the LED tiara, I learned that soldering small sequin LEDs into a tiara is much more difficult than it seems. Though my circuit is very straight forward, the small space in which I needed to solder all of the wires accurately, to not create a short circuit, was quite the challenge. I learned how to test for short circuits using a micrometer and got tons of practice soldering, which I found quite relaxing, and rewarding once the short circuits were rectified. Next time I make a LED tiara, I will choose to make a bigger one for the sake of soldering circuits!

Final Photo

Inspiration Photos/Links

Image result for anastasia 1997 dress"
Image result for anastasia 1997 dress"
Image result for anastasia 1997 tiara"

https://www.imdb.com/title/tt0118617/

Materials and Tools

Materials used for the LED Tiara include: solid wire, Neopixel individual LEDs, solder, soldering iron, hot glue, Arduino Gemma, Lithium Ion battery (5V), hair pins, and black girl magic.

In-Progress Photos

Soldered to Arduino Gemma and lithium ion battery instead of the featured coin cell battery.

Code

#include <Adafruit_NeoPixel.h> 

#define LED_PIN 1
 
#define LED_COUNT 4
 
#define BRIGHTNESS 50
 
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)

void setup() {
  
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif

  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() {
  // Fill along the length of the strip in various colors...
  colorWipe(strip.Color(255,   0,   0), 50); // Red
  colorWipe(strip.Color(  0, 255,   0), 50); // 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
}




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 5*65536. Adding 256 to firstPixelHue each time
  // means we'll make 5*65536/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<strip.numPixels(); c += 3) {
        // hue of pixel 'c' is offset by an amount to make one full
        // revolution of the color wheel (range 65536) along the length
        // of the strip (strip.numPixels() steps):
        int      hue   = firstPixelHue + c * 65536L / strip.numPixels();
        uint32_t color = strip.gamma32(strip.ColorHSV(hue)); // hue -> 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
    }
  }
}