Shun Cheng’s Final project (updated)

I combine all my projects in making class into a theme game called “zombie rush”

In this game, you can play games with the gears you choose

If you score high enough you can get a real one as a reward


Rocket shoes:

Ray gun:

I still working on the last gear “raygun”

Parts are sent to the 3D printing

Here are several GIF i made

Here are my process of making ray gun

Thanks to the great tutorial from Ruiz Brother

Here are material List

Tools & Supplies

The 3D print files are very detailed.

You only need some sand to make a flat surface for adhesives to work.

Soldering needs some skill to put both wires into one hole

The most frustrating part was trying to connect adafruit board.

It might be a laptop issue.

unable to find port


Trigger Spinny Animation

// Original Kaleidoscope eyes code from Phillip Burgess. 
// Modified to play spinning animation when push button is set to low
//Written by Philip Burgess for Adafruit Industries.
//Adafruit invests time and resources providing this open source code,
//please support Adafruit and open-source hardware by purchasing products
//from Adafruit!
//BSD license, all text above must be included in any redistribution.

#include <Adafruit_NeoPixel.h>

#define PIN          0  //NeoPixel Pin
#define FIREPIN      2  // Fire button

int buttonState = 0; //Default button state

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(12, PIN);

uint8_t         offset = 0;         // Position of spinny eyes
uint32_t color  = 0x00ff5a;  // HEX color here
uint32_t prevTime;

void setup() {
  prevTime = millis();
  pinMode(FIREPIN, INPUT_PULLUP); //Button enabler

void loop() {
  uint8_t  i;
  uint32_t t;
  buttonState = digitalRead(FIREPIN); //Trigger button state
  if (buttonState == LOW) { // If button pressed
    for(i=0; i<16; i++) { //Run the animation
      uint32_t c = 0; //Blank color
      if(((offset + i) & 7) < 2) c = color; // 4 pixels on...
      pixels.setPixelColor(i, c); //Set the color of pixels

  t = millis();
  if((t - prevTime) > 10) {      // Every 10th of a second...
    for(i=0; i<32; i++) pixels.setPixelColor(i, 0);
    prevTime = t;

  else {
    pixels.setPixelColor(i, 0,0,0); //Button not pressed, turn off pixels; //Show no pixels
    delay(25); //duration of spinniness

Here are some process photos

sample social media post