Neopixels are color-changing, individually addressable (programmable) LED lights. They are available in various forms from Adafruit.com, but I am particularly fond of the 8-mm "through the hole" traditional LED style. They are bright and beautiful, and you can make your own custom designs as illustrated by the Heart shape example provided herein. Arduino software is typically used to control the LED's.
Please see my YouTube video of the Neopixel LED Heart in light show action. Another fun way to view the Heart it is to point it at a window such as a sliding glass door to see a double-heart image reflection (as shown).
Step 1: Major Supplies
1. Adafruit 8-mm Neopixel LED's (26 needed)
2. Cricut 12x12-in StandardGrip adhesive cutting mat (Walmart)
3. Sparkfun LilyTiny ATTINY85 Logic Chip (and Programming supplies)
4. USB cord for power (Walmart)
5. Gessner small plastic bowl for Base (Walmart)
6. Radio Shack Round Proto Board (or other small proto board)
7. Gorilla Glue Mounting Tape Clear Squares
8. 480 Ohm resistor
+ Dremel and drill and cutter bits
+ Soldering supplies
+ Arduino Programming basics
+ Adafruit Neopixel Library (eg; STRANDTEST)
Note: For those without Arduino programming experience, the LilyTiny logic chip could in theory be supplied already programmed for the Heart, if there is a need. I simply use Adafruit's standard STRANDTEST app with a few tweaks.
(Neopixel LED photos above copied from Adafruit.com)
Step 2: Design of the Heart Circuit Board
First of all, take a look at the first picture of the final assembly. Most importantly, please note that is an approximate 1/2-inch wide tab at the bottom of the heart, that inserts into the base.
I used MicroSoft PowerPoint to develop a printable Heart template (above). Also provided is a cutting guide version. I started with a 26-lobed scalloped heart design I found online, and modified the shape slightly for better appearance with 8-mm LED's. Note that each round LED has four smaller holes which will be drilled later.
The heart diagram is then printed out on photo paper which is next affixed to the adhesive Cricut board as shown. Using scissors, the heart shape is carefully cut out. An Xacto knife was used to get started on the hole in middle of the heart, until scissors could be used.
To the back of the Cricut board, I then place a layer blue masking tape, to help prevent melting of the plastic mat during later soldering steps. The result is a Heart sandwich made of Cricut mat sandwiched between photo paper and blue masking tape.
Using a Dremel with a very thin 1/32-inch drill bit, four tiny holes are drilled for each LED to be insterted into the heart.
Step 3: Insert LEDs and Solder Up
A wiring diagram is shown. The LED's are inserted into the drilled holes in series, with the Data Output wire from each LED bend forward to towards the Data Input pin of the next, the Data Input pin is bent backwards to touch the Data Out pin from the piror LED. The long negative wire from each LED is bent to the right to to join the Negative power rail (which will be inserted later), whereas the Postive LED wires are all bent to the left to touch the Positive rail.
Normally I pre-test each LED with a button battery. They light up Light Blue if powered like a simple "throwie".
After the 26 LED's are inserted, Check your work. The flat side of all LEDs should point the same direction (except corners can be slightly tricky). Each LED should have second pos lead to the left, third neg lead to the right. Check to make sure you have adequate spacing of all the wiring (no shorts).
The next step is to solder all of the connections. I used 24 gauge copper wire to form the Negative and Positive power rails to connect each LED. At the base of the heart for the insertion tab, for structural rigidity, I solder in two header pins - one each for Positive and Negative rail. As shown the two header pins are spaced 4 proto board holes apart (0.4-inch as shown).
Step 4: Testing the Heart Operation With an Arduino
Normally my first step after wiring up is to test assembly operation using a regular Arduino. As you can see, the Heart as designed will now stand upright in a small bread board. Normally I am always tweaking the STRANDTEST app, so this presents an opportunity to test the soldering job as well as the new proposed color program. The LilyTiny boards are slightly challenging to reprogram, so it helps to prove everything out on the standard Arduino set-up before loading the software onto the LilyTiny board.
Step 5: Preparing the Base
In the final project, the Heart assembly will stand upright using the Walmart plastic bowl as a base.
Using a Dremel, first drill a 1/8-inch hole in the center of the plastic bowl. Then switch over to a 1/8-inch cutting bit to prepare the slot. Additionally, a 1/8-inch hole (slightly widened) is needed on the side of the bowl to pass through the USB power cord.
Then try test fitting the Heart assembly into the round Radio Shack proto board (or substitute proto board).
Next affix Gorilla glue pads (cut to size with scissors) to outer sides the proto board and carefully insert the proto board under the slot in the plastic bowl, with the proto board holes aligned with the slot in the bowl such that the Heart can be inserted from above. The glue pads hold the the proto board tightly to the bowl. The coppered side of the proto board should be facing down as shown (facing towards the open end of the bowl).
Insert the Heart from above into the base. The three leads from the Heart (Pos, Data, Neg) should be visible from the underside poking through the proto board holes. Check for levelness of the shape, and then solder the three leads into place. This will lock the Heart into final position.
Step 6: Final Wiring
The power wiring diagram is shown.
A simple USB cord was purchased at Walmart and cut with wire cutters to get the Red (pos) and Black (neg) wires. These are soldered to the LilyTiny pos and neg terminals. Also soldered to the LilyTiny terminals are Red(pos) and Black (neg) wires which connect to and are soldered to the leads from the Heart (sticking through the proto board).
The Data In (yellow) from data port No. 2 of the LilyTiny is a 480-ohm resistor that connects and is soldered to the Data In lead to the Heart.
The LilyTiny has been pre-programmed for the Heart light show. Note that the LilyTiny is wired up such that it is accessible and can be reprogrammed in-situ, should a software correction or light-show improvement be desired. My personal convention is to program the LilyTiny output Position No. 2 for the data input signal to the Neopixels.
The LilyTiny is my CPU board of choice for small size projects, but many other CPU control boards are possible such as Adafruit Gemma and various mini-Arduino boards available on the market. I simply got started several years ago with the LilyTiny board and that is my current go-to. The LilyTiny is basically a ATTINY-85 chip on a small proto board.
Of course, you can alternately use batteries for power. I usually use the LiPo batteries from Adafruit.com. In that case I usually use an ON/OFF switch on the top of the base. For a switch, I usually use the LilyPad Slide Switch from SparkFun.com.
(LilyTiny photo above taken from SparkFun.com)
Step 7: Finishing Touches
The backside of the circuit board is covered with double-stick foam tape, and trimmed with scissors and Xacto knife to the Heart shape. Normally this may be good enough for some shapes, but the for the Heart I affixed some pink photo paper to the outside to help with appearance (given it is hard to do a good job with the foam tape on such a curvey shape).
Step 8: Taking Pictures of the Operation
The Neopixel LED's are incredibly colorful and bright. As some of you know, the challenge with these LED's is capturing via photographs the great beauty that your eye actually sees. I have done my best for this Instructable.
Note that the camera sees things your eyes do not see, and vice versa. In the YouTube video, you can see some apparent oscillations/flickering that your eye does not really see. Also the stop-action of fast-shutter speed during the Theater Chase sequence captures individual LED's being on and off, whereas your eyes just see moving dots. Some of the colors are slightly differernt with the camera, what appears bright yellow to the eyes is a little greenish-yellow in the video.
As mentioned earlier, we also discovered the beauty of double reflections from windows, if the Heart is pointed at, for example, a sliding glass door.
Step 9: Teachings of the Heart Project
For several years I've been thinking about how to best make a Heart shape from circles. If you know my Instructables, that usually means I am wondering how many pie tins I need to buy to make a good looking display. The answer it seems comes from the sewing community that a basic Scalloped Heart has 26 lobes (circles).
But this project has much larger potential than just Hearts, because many more shapes are possible. When the shape is a numeral, I call it an "electronic birthday candle", to be fully implemented in a future Instructable. Our family has already put Age 7 above to good use for this purpose. Suffice it to say, the overall project essentially requires a circle-based font system based built around 8-mm LED circles. We have a 10 year birthday coming up next, that will force the question how to best handle of double numbers.
Aside from shapes, this Instructable presents a method for arranging 8-mm LED's in a custom built strip with double-sided sticky tape on the back. The resulting LED strip could be attached to a wall, or say the inside of a frame for an infinity mirror project, which is my next planned applcation. This technique could conceivably help expand the use of through-the-hole Neopixel LEDs, which are currently somewhat inconvenient to use because the close spacing of the four pins does not always fit well into standard 0.1-inch pitch breadboard and proto boards.
I feel the project also highlights the beauty of these 8-mm Neoplixel LED's, which I am hoping remain avaialble on the market.
If you are new to Arduino programming, the simplicity of the LilyTiny logic chip in the Heart power wiring diagram perhaps more clearly shows the basic idea of how to use the Arduino "development environment". The LilTiny and LilyTwinkle logic chips from SparkFun.com actually come pre-programmed, so if you want to use the preloaded logic, there is no programming required. In this project, I needed to erase the pre-loaded software and add my own software. Of course, it does not take too much coding experience, because you are generally using an app that someone else already developed for you. Once you get the idea, it is not too hard to graduate to that next step.
Participated in the
Epilog X Contest