This vase uses transparent 3D printer filament as a light guide. The filament is integrated in a vase to realize light effects with addressable Neopixel LEDs. Therefore a LED ring is inserted in the base of the vase and controlled by an Arduino board. The transparent filament guides the LED light through channels in the vase structure to the top of the vase.
This project was partly inspired by the3D filament vase from 3DWinnipeg.
Step 1: Design and 3D Files
A simple vase design was used to add spiral channels for the filament. All parts were designed in Autodesk Fusion 360.
The base has channels for guiding the transparent filament to the LEDs of the LED ring. The NeopixelRing and the Arduino board are mounted to the base via screws. The Micro USB port from the Arduino board is easy accessible form the side of the base.
All STL files are uploaded toprusaprinter.org包括用于弯曲3D灯丝的模具。
The vase should be printed in vase mode. I was using a 0.4 nozzle and 1.75mm PETG filament on a Prusa MK3S 3D printer. The base is printed in standard mode and oriented upside down to avoid support structures.
Additional files are added for the filament mold and the mounting bar for the Neopixel ring.
Step 3: 3D Filament As Light Guide
即使我的打印机使用1.75毫米灯丝,light guide is built out of 2.85 mm filament because this diameter fits much better to the Neopixel LED opening, which is approx. 3 mm. So this larger diameter inputs as much light into the filament as possible and still uses cheap 3D printer filament. You can use either PETG or PLA, the PLA I tested was a little bit more diffuse, so it depends on your design what looks better. This vase was build with PETG filament.
The filament comes in a roll, so it is pre-formed in a circle shape and because of its thickness, it is not easy to bend as much as intended for the vase. So it helps to preform it before assembly. I designed a mold with the outside shape of the vase. Originally I planned to put the filament in the mold and then heat it up in the mold (that's why there are the screws attaching the mold on a piece of wood). But this did not work very well.
Much better is to preheat the filament in the oven and then, when it is warm and flexible, put it into the cold mold and let it cool down. This works perfectly. I used a standard kitchen oven heated up to 90°C (approx. 195°F) and put the filament in for 1 minute. After that time, it already straightened a bit and you can put it into the mold. After a few seconds, it has its final shape. Also this procedure prevents local cracks of the filament which could reduce the light guide effect.
- Insert the prepared filament pieces one after the other by inserting them from the bottom of the base to the vase. After a few, base and vase are attached properly together and sliding in is not a problem.
- Cut of all protuding parts on the top of the vase to get a clean border
- Check all filaments again if all of them are clicked in properly
Step 5: Assembly Electronics
Trinket USB -> NeoPixelRing 5V
Trinket GND - > Neopixelring GND
饰品销2 - > Neopixelring DIN
Normally Neopixels are rated for 5V input, but in most of the cases, it also works fine with 3.3V levels like the Trinket outputs. If necessary, you can add a level shifter between the Trinket and the ring. Adding a small resistor (300-500 Ohm) between Arduino and Neopixel isrecommended. Also you can use another pin of the Arduino.
Depending of the screws you are using, you may have to open the holes for the Trinket a little bit.
There are many options for coding effects for this vase with the Trinket M0. For example:
- Using Arduino IDE and Neopixel library
- Using Arduino IDE and FastLED library
- Using CircuitPython
The only things you have to setup are:
- WS2811/WS2812 LEDs
- Pin2 als data PIN
The video shows just some example code from the libraries, but any type of custom animation is possible.
Enjoy the build!
Participated in the