Intro: NeoMickey: Mickey/Minnie Ears Using Arduino and Neopixels
This article will show you how to make my NeoMickey ears. I made a set of ears for both my girlfriend and I to use at Disneyland. The ears were a huge success and a lot of people wanted to know where to get them. So this is my best attempt to answer that question.
This instructable was transferred from my blog so the steps may refer to images that are not in the correct place. But hopefully all the needed images will be in the appropriate steps. The cost breakdown is included below.
The ears should run off of 3 Duracell AAA batteries for approximately 3 hours. Rechargeable batteries have far less life, so test them before you invest in batteries. There are other battery options for more experienced arduino makers.
I would like to add an IR receiver to this project to integrate the colors into the Glow with the Show hats sold at Disneyland. If anyone has made significant progress with the IR coding for arduino compatible boards, please leave a comment or contact me on google+.
This article was mistakenly deleted so I am re-writing the entire thing and thus pieces may be incomplete. Leave a comment if something is not clear and I will update asap. The twinkle code I used for the inner neopixel strips was written by Balázs Suhajda found on Github
Step 1: Warning & Cost Breakdown
While I shouldn't have to say this anyway....I am not responsible for anything you do. I don't care if you burn your house down or worse. This information is for educational purposes only and you are responsible for your own actions.
This task does involve some soldering. If you have no desire to do that, then you can find someone that knows how to solder or just go do a different project. You can always locate your nearest Hackerspace and there should be plenty of people there that can assist.
This project is my intellectual property that I am giving to the open-source community for non-profit use only.
This project is not exactly cheap. The average mickey themed illuminated head piece sold at Disneyland costs at least $20 and costs $3-5 to produce in bulk. This project is not produced in bulk and thus it's going to be more expensive. Plus this project is intended to be heavy on the bling compared to most Disney junk.
So in general, this project is going to cost some cake. Here is a basic breakdown of costs for this project. So the cheapy, not-so-great version of this project is at least $61(after shipping) while the good version is $100 (after shipping). It may not be cheap, but if you wanna turn some heads at Disneyland/Disney World, they are very much worth the effort and money.
Step 2: List of Materials
List of required/optional materials:
- One 3v logic, TINY microcontroller board. For this tutorial I mainly refer to the Adafruit Flora but a Trinket Pro board will also work. A Trinket Pro board is technically the best shape to fit on the alice band, but more difficult to use for inexperienced soldering. You cannot use the smaller Trinket boards as there is not enough memory/flash. Do NOT use 5v boards. (see notes below)
- Two sets of embroidery rings, 4-inch size (I recommend the wood versions, the plastic versions are harder to work with)
- Silicone or super glue, clear in color
- Wire strippers
- Gorilla glue
- Hot glue & hot glue gun (technically optional)
- 2 meters of Adafruit Neopixels (60 pixels/meter)
- Mini push button (optional)
- One AAA battery pack
- Exacto knife
- Minnie Mouse bow (only needed for the Minnie version. either buy one or make one)
- Flat packing material (for diffusion)
- Bubble wrap material (or a clear plastic bag)
- low voltage wire (cat5 cable works great, but always use threaded core, not solid core)
- Alice Band
- Binder clips
- White and black zip ties, smallest size
- Solder and soldering iron
- Heat shrink and heat gun
- Instead of using the 60 pixels per meter strips of neopixels, you could settle for the cheaper strips of 30 per meter. In my opinion, it really doesn't look as good and you would have to adjust the code to make it look decent.
- Instead of using a Flora board for $20, you could use a Trinket Pro for $10. Technically this is a more size efficient board, but harder to work with for the inexperienced. The Flora is bigger and kinda looks odd when placed on the alice band, but it's way easier to solder on wires. If you are experienced with arduino and soldering, go with Trinket Pro 3v. Whatever you do, make sure it's 3v and not 5v boards.
- Instead of two strips per ear, you could just do one outer strip per ear and ignore the inner strips to save $$ on neopixels.
- If you want to spend the extra $$ and go ultra bling, you can get the neopixel strips that are 120 per meter. The animation of the LEDs will be much smoother, but beware more pixels will eat more battery life. Keep in mind I have not tested this so I cannot guarantee the board will be able to provide enough power for that many pixels so proceed at your own risk.
- This project references Adafruit parts which may not be the cheapest but Adafruit is my favorite. You could find something similar for a better price and use those parts instead. But you had best know what you are doing because I am not going to help you figure it out.
- Some people don't like the looks of the AAA battery pack. I can't say I blame them but this guide is for somewhat novice users. So anyone with a deep desire to make it look a tad prettier could switch to a LiPo battery instead. But keep in mind you will also need to buy some kind of a charger and you will want to get at least two batteries so you have a full battery on standby.
Step 3: Measure and Create Neopixel Strips
First grab the embroidery rings and take them apart. You will be using
the inner rings for the main project, and the outer rings will be used later for stencilling. The inner rings will be referred to as "the rings" from this point.
Now take the neopixels and wrap them around the rings to measure the length of neopixels required for this project. You need to cut two strips for each ring, one for the outside of the ring and one for the inside of the ring. You should be able to get at least 18 pixels on the inner ring, and 20 pixels on the outer ring.
Cut the strips to their measured length. The inner strip (the shorter one) should be unsheathed, so remove it from the plastic sheathing. It's easier to just cut off the plastic cover but dont cut the strip. The outer strip, however, needs that plastic sheathing so don't remove it unless you know what you are doing.
The neopixel strips have tiny arrows that point the direction of travel for the data signal. So the first pixel points to the next. Before the first pixel is the copper contact point to where the wires must be soldered. See the image below as the strips are cut in the middle of the contact points. This is where you must cut the strip. The strips always come with a set of thick wires to connect to other devices. These wires are too thick to work with here, and the sheathing is too thick at the very start. So follow the example above and cut the strip starting after the first pixel or two. `
Take the strips and solder a low voltage wire to each contact point. I advise you make the lengths of each wire at least 2 feet to start with. This will give you lots of wiggle room later on. You may need to cut away some of the plastic sheathing for the outer strip in order to attach the wires.
I recommend you use the same color wires for all the 5v (positive) contact points and another color for all the ground (negative) contact points on all four neopixel strips. The data cables, however, should be all different colors as the program calls for 3 different software strips. So two of the data cables will join together as one, and the other two cables are independent. the coordinated use of cable colors will greatly help you later on.
Step 4: Test the Strips Before Going Any Further
Once the wires are attached, first test them on your arduino if
possible. If you don't deal with neopixels a lot, then you will want to test them before you start gluing things.
Connect the 5v wires to the 3v or 5v power win on the arduino board
Connect the ground wires to an available ground pin
Connect the data cable to whatever pin you want to use as the data pin. You will need to adjust the code to use this pin.
Use the testCode.txt file or refer to the NeoPixel uber guide for basic testing instructions.
Step 5: Add Strips to Rings
After a successful test, use the hot glue gun to glue together the
contact points you just soldered on each strip. This will bother waterproof the contact points and also provide additional strength to keep the wires from coming loose.
Now use the hot glue gun and place glue around the inside of the ring. Then quickly place the inner strip on that path of glue till it cools. Next, add some gorilla glue to the outer face of the ring all the way around. This glue won't dry fast so go slowly here and have the binder clips ready. You want to position the outer strip so that the wires begin at the same place as the inner strip (see image below)
Once the outer strip is placed, use the binder clips to hold it in place. Give it about an hour to fully dry. Don't get the glue on the face of the outer strip because once it's dry it will block the light from the LEDs.
Do another test if possible to ensure the wires didn't come loose.
Step 6: Add Diffusion Material
Now it's time to cut out some diffusion material. The diffusion
material I used is the packing material used for new monitors but you can also use the flat packing material found at walmart next to the bubble wrap. If it's very thin, you'll want more than one layer.
Use the outer ring of the embroidery rings as a stencil for this material. Use an exact-o knife to cut out the stencils.
Once you have enough stencils cut, glue on one side using the silicone glue (super glue may not stick well to the plastic sheathing). While it dries, put some weight on it to ensure all 360 degrees of glue is firmly attached. After about 40 minutes, the glue should be plenty dry. Before you attach the other side, first cut up some bubble wrap and place it inside the ring. You really don't need much here. The bubble wrap really goes a long way to help carry the light across the center of the ring. Be careful using hot glue here as it may just melt the material. So test it first.
Once the bubble wrap has been placed, go ahead and add the other side of the diffusion material. If you don't have any bubble wrap, you can use a clear plastic bag from the grocery store.
Give the ears another test when fully dry.
Step 7: Position Rings on Alice Band
Now you need to decide on the positioning of the ears on the alice band. Too high towards the center and it will look like round antennae while too low and you will look like Deamau5 instead of Mickey Mouse. Once you find the ideal location, mark the alice band.
Once you find the vertical positions, you need to decide exactly what part of the rings are going to make contact with the alice band. Using the test code above, you will notice the rotating pattern of the outer strips of LEDs. Both strips have a starting point, so you will need to make sure the starting point of each strip is identical on both sides. After that, you need to ensure the direction of rotation pattern is going around clockwise on one ear and counter clockwise on the other ear.
Once you have that all figured out, you will see the point where the rings make contact with the alice band. From there, you can use the white zip tie to poke a hole through the diffusion material just above the contact point of the ring. Be careful here as neither the glue or diffusion material is very strong so don't let the zip tie pull off the diffusion material. Zip tie the ring to the band where you marked it earlier and tighten the zip tie all the way.
Step 8: Attach Battery Pack and Extend the Wires
Now let's extend the battery pack wires. If you intend to use the JST
connector as shown in the image below, then you will need to make the wire longer in order to reach the board on the other side of the alice band. You can also buy a JST extension cable from Adafruit or other places.
Per the image below, the Flora boards have an on/off switch as well. This can be a more convenient switch compared to the battery pack. However, if you are using the Trinket Pro board, it will not have an on/off switch (only a reset switch). Another Flora advantage is you can connect the battery pack's JST cable directly into the JST jack on the Flora board as shown below. This will allow you to use the on/off switch on the Flora. However, if you connect the battery pack directly to the BATT and GND pins on the Flora board, you will not be able to use the on/off switch on the Flora. It will simply always be ON while power is being fed to the board.
If you are not using the JST connector, or if you are using a Trinket Pro board instead, then just cut off the JST end and splice on an extension to the wires. Once the battery pack has a long enough wire, you can attach the pack to the alice band. Hot glue works very well here, but if you want room to change your mind, you can use gorilla glue instead. In any case, I suggest attaching it with a rubber band temporarily so you can test and adjust the positioning as needed. If you glue the pack too low, you won't be able to reach the on/off switch. I've made that mistake so be careful. Also, too high and it could make contact with the ear above it, which could put stress on the pack's wires.
Step 9: Run Wires and Solder to Board
Now comes the very hard part...organizing the wires.
For a full set of ears, you will have 4 five-volt positive wires, 4 five-volt ground wires, 4 data wires, one positive battery wire, and one ground battery wire.
Between the Trinket Pro and Flora boards, their GPIO pin holes are small and can only fit one small wire. So you will need to first splice together all the five-volt positive wires and join then to one new low voltage cable that will fit into the holes of the Trinket board. Same will apply to the data wires for ONLY the outer strips. The ground wires also need to be spliced into one wire, but you also need to add the ground wire for the battery pack into the group of ground wires. From there you have all the single wires you will need to connect to the board. Fyi, cat5 inner wires work perfectly for most boards.
Per the code below, here is how you need to connect the wires.
The ground wire goes to the GND pinThe 5v power wire (+5v) goes to the 3v pinThe wire for the outer strips go to pin 13 for Trinket Pro, or D10 on FloraThe wire for the left inner strip goes to pin 11 for Trinket Pro, or D6 for FloraThe wire for the right inner strip goes to pin 9 for Trinket Pro, or D12 for Flora(optional) If you want to change programs with a push button, then solder in the push button on pins 6 and 3 on the Trinket Pro. For Flora boards, use D9 and the adjacent GND pin, and change the code's INbutton to 9.
Step 10: Adjust and Upload Final Code
You will need to adjust the final code (at the very top) to change the
pin numbers depending on your board. For the Flora boards, leave out the D in the pin number. So for pin D9, just use 9. Once the pin numbers have been adjusted to fit your board, you can upload the code to your board.
If you are making both Minnie and Mickey ears, then you will want to change the color of the outer LEDs. The Minnie code below is set to pink. So I used blue for the Mickey ears, but you can use whatever color you want. To adjust the code, locate and change all the text that reads Color(10,0,10) . From here, change the numbers to match the correct RGB values.
Blue = 0,0,255
Pink = 170,0,170
Red = 255,0,0
Green = 0,255,0
Step 11: Final Adjustments and Considerations
Once the code is uploaded and all is working, take some time to
waterproof any exposed contact points. You don't have to do this, but Disney parks tend to have water here and there, so it's not a bad idea to waterproof. If any water comes in contact with any metal on the board while powered on, the whole thing will be ruined forever. Additionally, this will also provide additional strength to the wires to keep them from ripping out and also prevent them from touching each other and this shorting out the board. To cover the wires running atop the alice band, you could use some electrical tape and glue to keep it in place.
If you're doing the Minnie version, you can now add the red bow to the alice band. I've not found a good glue that works on the outside of the diffusion material to hold the bow in place. I used the gorilla glue but it eventually came loose. The sides won't matter as much. Just focus on gluing it to the top of the alice band. Hot glue works quit well here.
Also be sure to stress test the ears before taking them out for a production run. Test the alice band's movement and ensure the wires aren't too tight and ripping out of the solder points. Also ensure the wires aren't causing the ears to move. Make sure the ears are tightly connected to the alice band. If they wiggle at all, they are too loose. Watch for any signs of electrical problems. If the LED animation freezes on a full battery, then chances are some wires are touching but they shouldn't be.
Adafruit featured my project on their wearable wednesdays episode. My project begins at 4:36. https://www.youtube.com/watch?v=tY0HN77WYiY
Above all the ears were a huge success. We heard lots of comments from people such as "look at those" and "where did they get those ears." But the employees loved them the most. We had a a few employees come right up to us and ask us all about them. And Mickey himself was impressed as well.