├── README.md ├── Schematic ├── Star Man Front (1).stl ├── Star Man Rear (2).stl ├── Super Mario Bros - Star.mp3 CUT.mp3 ├── Top Tube.stl └── starman_rope_light └── starman_rope_light.ino /README.md: -------------------------------------------------------------------------------- 1 | # Arduino-Starman 2 | Light-up Christmas Tree Topper 3 | 4 | Here are all files and assets used for my Arduino Starman. Feel free to use and change as you see fit - just tag me in the finished product so I can learn from your ideas! 5 | 6 | Included Assets: 7 | Starman STL files (front, rear, tube) 8 | Arduino .ino file 9 | 10 | Parts Used: 11 | Clear Filament (https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.reddit.com%2Fr%2F3Dprinting%2Fcomments%2Fk0k0fa%2Four_first_3d_designed_printed_and_programmed%2F%3Futm_medium%3Dandroid_app%26utm_source%3Dshare&h=AT2M3WLfjc25Blx3ync_gJL_UytyvIOUdjuhCddEg6C6lYyN8MPr5PvAA2FX2EDtkYo2Yaxgc5fibfzf3RAYkjJth_AWsz87m32EytEJayO0XoDb1IpLfsCjU1hNo8VI6To) 12 | Arduino Nano (by RexQualis) (https://www.amazon.com/gp/product/B07WK4VG58/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) 13 | Rope Light WS2812B (https://www.amazon.com/gp/product/B01CDTEJR0/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) 14 | DFPlayer Mini MP3 Module with Speaker(https://www.amazon.com/gp/product/B07WNRHH8Z/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1) 15 | Regular push button 16 | 15' Micro USB 17 | 5v / 1A USB-Wall Adapter 18 | -------------------------------------------------------------------------------- /Schematic: -------------------------------------------------------------------------------- 1 | Couldn't get a real schematic to work, but here's my best shot. 2 | 3 | Arduino Nano: 4 | Pin D2 > MP3 RX output via 1k Resistor 5 | Pin D4 > MP3 TX output 6 | Pin D7 > Rope light output 7 | Pin D13 > Button to activate Super mode 8 | 5V > Button 9 | MP3 Module VCC 10 | Rope Light VCC 11 | GND > MP3 GND 12 | Button (via 330 ohm resistor) 13 | Rope Light GND 14 | 15 | 16 | DFPlayer MP3 Module: 17 | (see link for schematic: https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299) 18 | Pin 1: VCC > Arduino 5v 19 | Pin 2: RX > Arduino Pin D2 via 1k ohm Resistor 20 | Pin 3: TX > Arduino Pin D4 21 | Pin 6: Speaker 1 > - side of speaker 22 | Pin 7: GND > Arduino GND 23 | Pin 8: Speaker 2 > + side of speaker 24 | *NOTE: If SD card will not read, try swapping RX and TX. Sometimes that was the problem. 25 | -------------------------------------------------------------------------------- /Star Man Front (1).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datboiii93/Arduino-Starman/1703de8ca2e816638cd987ef47856b52a321e31e/Star Man Front (1).stl -------------------------------------------------------------------------------- /Star Man Rear (2).stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datboiii93/Arduino-Starman/1703de8ca2e816638cd987ef47856b52a321e31e/Star Man Rear (2).stl -------------------------------------------------------------------------------- /Super Mario Bros - Star.mp3 CUT.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datboiii93/Arduino-Starman/1703de8ca2e816638cd987ef47856b52a321e31e/Super Mario Bros - Star.mp3 CUT.mp3 -------------------------------------------------------------------------------- /Top Tube.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/datboiii93/Arduino-Starman/1703de8ca2e816638cd987ef47856b52a321e31e/Top Tube.stl -------------------------------------------------------------------------------- /starman_rope_light/starman_rope_light.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | const int LED_QUANT = 50; 4 | 5 | #define LED_PIN 7 6 | #define NUM_LEDS LED_QUANT 7 | 8 | CRGB leds[NUM_LEDS]; 9 | 10 | int button = 13; 11 | 12 | int redRand; 13 | int greenRand; 14 | int blueRand; 15 | 16 | bool isPlaying = false; 17 | 18 | #include "SoftwareSerial.h" 19 | #include "DFRobotDFPlayerMini.h" 20 | 21 | SoftwareSerial mySoftwareSerial(2, 4); // RX, TX 22 | DFRobotDFPlayerMini myDFPlayer; 23 | void printDetail(uint8_t type, int value); 24 | 25 | void Dormant(){ 26 | for(int k = 0; k < LED_QUANT; k++){ 27 | leds[k] = CRGB(255, 200, 20); 28 | FastLED.show(); 29 | } 30 | } 31 | 32 | void Activate(){ 33 | myDFPlayer.play(1); 34 | for (int i = 0; i < 45; i++){ 35 | redRand = random(0,256); 36 | greenRand = random(0,256); 37 | blueRand = random(0,256); 38 | for(int j = 0; j < LED_QUANT; j++){ 39 | leds[j] = CRGB(redRand, greenRand, blueRand); 40 | FastLED.show(); 41 | 42 | } 43 | //delay(15); 44 | } 45 | Dormant(); 46 | isPlaying = false; 47 | } 48 | 49 | void setup() { 50 | FastLED.addLeds(leds, NUM_LEDS); 51 | 52 | mySoftwareSerial.begin(9600); 53 | Serial.begin(9600); 54 | Serial.println(); 55 | Serial.println(F("DFRobot DFPlayer Mini Demo")); 56 | Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)")); 57 | 58 | if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3. 59 | Serial.println(F("Unable to begin:")); 60 | Serial.println(F("1.Please recheck the connection!")); 61 | Serial.println(F("2.Please insert the SD card!")); 62 | while(true); 63 | } 64 | Serial.println(F("DFPlayer Mini online.")); 65 | myDFPlayer.volume(30); //Set volume value. From 0 to 30 66 | Dormant(); 67 | } 68 | 69 | void loop() { 70 | // put your main code here, to run repeatedly: 71 | Serial.println(digitalRead(button)); 72 | if(digitalRead(button) == 1 && isPlaying == false){ 73 | isPlaying = true; 74 | Activate(); 75 | } 76 | } 77 | --------------------------------------------------------------------------------