Wearable Jack-O-Lantern

Here is an awesome project to get you in the Halloween spirit, 3D print the STL files attached below to make a Wearable Jack-O-Lantern. I have made 3 version of this project, from a simple 3D wearable Jack-O-Lantern to slightly more advance version to help you/your kids with social distancing. For each of these versions I have designed 3D printable STL files which you can find in the blog post below. And, I am posting this blog post a few days before Halloween, so if you 3D print the files attached below, don't forget to post a picture in the comment section below..

 

#1 3D printed Wearable Jack-O-Lantern

This is the simplest version, if you have a 3D printer then you just need orange and black filament. Ideal for folks like me, who wait for the last minute image ..

image

STL attached below - Pumpkin_simple.stl

 

#2 Light up Wearable Jack-O-Lantern

If you having a house party and trying to keep it low key this year because of the pandemic, and only plan to invite a couple of friends. Then, make you self a glowing wearable Jack-O-Lantern, using a Arduino based micro controller and  led strips. Pretty sure your friends will forgive you for not wearing a costume image. In my case, I am using  Adafruit's Trinket, but the 3D printed part will fit Arduino Nano /micro with out the pins, and for LEDs I am using a NeoPixels.

 

STL attached below - Pumpkin_neopixel.stl + Pumpkin_base.stl

 

#3 Social distancing Wearable Jack-O-Lantern

Now if you/your kids plan to go Trick-or-treating, add an ultrasonic sensor to your project so that you can maintain that 2 meter/6 feet distance. And as Mr. Jack Ula, CEO of Halloween on element14 community site says  - make you Halloween adifferenthalloween image. Here I am using a  Maxbotix Ultrasonic Rangefinder - LV-EZ4, as this is the idea form factor for the Jack-O-Lantern nose.

 

STL attached below - Pumkin_TopMaxbotix.stl + Pumpkin_base.stl

 

Now, to get started and make one of the versions of Wearable Jack-O-Lantern, fire up you 3D printer and load the Gcode for STL file attached...

 

3D printed Wearable Jack-O-Lantern

In my case, I printed the STL files using the Flashforge creator pro which has a pause and un-pause option in the menu. And for slicing I am using Slic3r with the layer height set to 0.3mm and infill density to 70%.To print the Pumpkin_simple.stl file, I started of with Orange PLA filament, and then switched to black PLA at about 80% of the print, and then green when 92% of the print was complete.Now if you don't have orange PLA you can use white PLA and the use a Uni Paint pen as you see in the picture below, to paint pumpkin, you should be able to find these pens at you local craft store..

image

 

Light up Wearable Jack-O-Lantern

 

To make this version, you will need a Arduino based micro controller, RGB LED strip, slide switch and a small Lipo and lipo charger, here are list of components I am using for the build, but the 3D printed part should fit and Arduino nano or mini.

Here is the circuit diagram, to solder the 4 Neopixel to the trinket

image

Once done, upload this simple Arduino sketch to the Trinket, which makes the 2 pixels glow green for the eyes and the middle two pixels that will be hot-glued to the mouth blink red.

//Create for Light up Wearable Jack-O-Lantern, based on -NeoPixel Ring simple sketch
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif


#define PIN        1 //Neopixels connected to pin#1
#define NUMPIXELS 4


Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 1000 // Time (in milliseconds) to pause between pixels


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.
  pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
}


void loop() {
  pixels.clear(); // Set all pixel colors to 'off'
  // pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
  pixels.setPixelColor(0, pixels.Color(0, 150, 0));//green for the left eye
  pixels.setPixelColor(1, pixels.Color(150, 0, 0));//red for the mouth
  pixels.setPixelColor(2, pixels.Color(150, 0, 0));
  pixels.setPixelColor(3, pixels.Color(0, 150, 0));//green for the right eye
  pixels.show();   
  delay(DELAYVAL); 
  
  pixels.setPixelColor(0, pixels.Color(0, 150, 0));
  pixels.setPixelColor(1, pixels.Color(0, 0, 0));
  pixels.setPixelColor(2, pixels.Color(0, 0, 0));
  pixels.setPixelColor(3, pixels.Color(0, 150, 0));
  pixels.show();   
  delay(DELAYVAL); 
}

 

 

image

Now it is time to 3D print the Pumpkin_base.stl with black PLA, And once done print Pumpkin_neopixel.stl with transparent, followed by orange, black and then finally green PLA using the pause the un-pause menu item of the 3D print as you see in the picture below. If you don't have pause function in the middle of the print on you printer, use octoprint or you will have to figure out how to manually add lines of Gcode to pause, retract, load filament and then un-pause.

image

Once done, hot glue the slide switch to the base and all the other electronic components to the top, and now you are ready to pass a string/chain and wear the Jack-O-Lantern, around your neck

imageimage

 

Social distancing Wearable Jack-O-Lantern

 

Now, in addition to the electronic components above, if you plan on making the social distancing version, you will need an ultrasonic sensor which will detect if there is some one/thing 2 meters in front of you, ideal if the kids are going for trick-or-treating and you have to wait your turn. As part of the circuit the Maxbotix Ultrasonic Rangefinder - LV-EZ4, instead of HC-SR04, as this has a good form factor to form the nose of the Jack-O-Lantern, and is connected to pin#2 of the Trinket as you see in the picture below

image

for more info on the Maxbotix Ultrasonic Rangefinder - LV-EZ4 check out - https://www.maxbotix.com/documents/LV-MaxSonar-EZ_Datasheet.pdf

Here is the Arduino sketch to upload to the trinket -

//Create for Social distancing Wearable Jack-O-Lantern, based on -NeoPixel Ring simple sketch  
//and https://www.maxbotix.com/documents/LV-MaxSonar-EZ_Datasheet.pdf
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> 
#endif


#define PIN        1 //Neopixels connected to pin#1  
#define NUMPIXELS 4
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500 


const int sonar = 2; // Maxbotix sensor connected to pin#2
long duration, cm;


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.
  pixels.begin();// INITIALIZE NeoPixel strip object (REQUIRED)  
  pinMode(LED_BUILTIN, OUTPUT);


}


void loop() {
  duration = 0;
  cm = 0;
  // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  pinMode(sonar, OUTPUT);
  digitalWrite(sonar, LOW);
  delayMicroseconds(2);
  digitalWrite(sonar, HIGH);
  delayMicroseconds(5);
  digitalWrite(sonar, LOW);
  // The same pin is used to read the signal from the PING))): a HIGH
  // pulse whose duration is the time (in microseconds) from the sending
  // of the ping to the reception of its echo off of an object.
  pinMode(sonar, INPUT);
  duration = pulseIn(sonar, HIGH);
  // convert the time into a distance.
  cm = microsecondsToCentimeters(duration);  
  if ( cm > 50 ) { // change to 200, setting to 50 for testing and recording video demo
    digitalWrite(LED_BUILTIN, HIGH);
    pixels.setPixelColor(0, pixels.Color(0, 150, 0));//green for the left eye 
    pixels.setPixelColor(1, pixels.Color(0, 0, 150));//blue for mouth
    pixels.setPixelColor(2, pixels.Color(0, 0, 150));
    pixels.setPixelColor(3, pixels.Color(0, 150, 0));//green for the right eye 
    pixels.show();
    delay(DELAYVAL);  
  }
  else{         
    digitalWrite(LED_BUILTIN, LOW);
    pixels.setPixelColor(0, pixels.Color(150, 0, 0)); // all red, object/person detected
    pixels.setPixelColor(1, pixels.Color(150, 0, 0));
    pixels.setPixelColor(2, pixels.Color(150, 0, 0));
    pixels.setPixelColor(3, pixels.Color(150, 0, 0));
    pixels.show();  
    delay(DELAYVAL);  
  }          


}


long microsecondsToCentimeters(long microseconds)
{
  // The speed of sound is 340 m/s or 29 microseconds per centimeter.
  // The ping travels out and back, so to find the distance of the
  // object we take half of the distance travelled.
  return microseconds / 29 / 2;
}

Once done, 3D print the base  Pumpkin_base.stl in black PLA and follow the simlar method above to print Pumkin_TopMaxbotix.stl

image

Once done hot glue the slide switch to the base, and all the other electronic components to the pumpkin including the Maxbotix sensor, as shown in the picture below. In my case I am using a 110 mAh lipo,as that was the only small lipo I had, but I would suggest using a 450mAh lipo for a longer run time. And also don't forget to carry your Lipo charger and power bank, when you out and about..

imageimage

 

In addition if you have a small vibration motor handy, there is enough space in the 3D printed base to add it,  so if an obstacle is detected at 2 meter the motor would cause a vibrating sensation, in addition to all the neopixels glowing red.

 

So, on Halloween since there was no trick-or-treating allowed in my apartment complex, I left candy with 3D printed version of the Jack-o-Latern in a zip lock bag at the door for my neighbours, and here is a picture of my neighbours daughter wearing the Jack-o-Latern, and she did send me note saying that all the kids in her daughter class, via zoom conference appreciated it,  when they learnt it was 3D printed..

 

image

Attachments:
STLfiles.zip
Related
Engagement
Recommended