Update: I've just added a full video outlining the frame's capabilities. Check it out above!
Stuff that makes you say "how did they DO that?!", good magicians, artists, extreme sports, I love watching it all. Most of the time I just stare in disbelief, but when I saw Slow Dance, I was hooked. Hooked because I knew that I could make one - both the technology and materials were not only within reach but quite affordable and deceptively simple. It's slight of hand, something truly magical you can actually reach out and touch.
TL;DR & spoilers
"Slow Dance" is a frame that allows you to put delicate, everyday objects in (such as flowers or feathers), and makes them come alive, appearing to move or dance in slow motion. It works by simply vibrating the object at one frequency (~80Hz) under a very brief strobe at a very slightly different frequency (eg. ~79.5Hz). The difference in frequencies (sometimes called the "beat" frequency) becomes the apparent frequency of oscillation of the object (in this case 0.5Hz - your petals or feather appear to wave back and forth once every 2 seconds, like slo-mo).
I determined I would make one for my dear wife for Christmas. I'm constantly amazed at her patience and support, in spite of my constant tinkering away at something, she even encourages me to have a night off every week, just to make stuff! What a girl, I'm so lucky to have her. And what better gift than something that amazes her in return. Well, Christmas 2016 has come and gone and this gift went down a treat, we've used it dozens of times and we just don't tire of it. It's a great conversation piece for visitors too.
This build is fairly detailed so it took many, many hours to complete, but I'm incredibly happy with how it turned out. It combined lots of the things I love to do and play with: wood working with beautiful recycled timber, a laser cutter, circuits and electronics, programming, strong magnets, metal work, design and making beautiful stuff.
While the style is along the lines of "Slow Dance", I've borrowed code from TimeFrame because, well, his code is awesome and he released it well before I'd finished my first prototype. Thanks dude. And for others reading this, you should really go and buy one of his kits, it will make this whole thing really easy. No, really, he's done most of the hard work so you don't have to (no affiliation, just a very happy co-maker).
Features unique to my Slow Dance frame
- Made from beautiful dark reclaimed / recycled timber (Merbau, Jarrah or Red Gum, not sure which)
- Ability to control brightness, speed and strength of oscillation, which is useful for tuning a new object
- A slowly pulsating power/mode button entices you to turn it on, then dims so it's not distracting
- Custom laser engraved panel hides all electronics except coil
Parts you'll need
(numbered for reference throughout this Instructable):
- Wood for the frame
- I chose a darker timber as I think it increases the contrast of the object in motion
- My timber was about 40x65mm (1.5x2.5"), but this is flexible. If you go thicker than 40mm you'll be able to fit more LED strips in (the more the better). Also make sure your timber is as straight as possible. warped timber is very difficult to make a square frame from!
- My frame is approx 360mm x 460mm, so I needed about 1.7m of timber. If you're going reclaimed get some extra just in case some splits or you make a mistake.
- Wood for the base: ~6mm ply
- Wood for the electromagnet holder: 3mm ply
- (a) 90-100mm (3.5-4") wood screws x 2 (frame bottom corners)
- (b) 50-60mm (2-3") wood screws x 2 (frame bottom corners)
- (c) 12-15mm (1/2") countersunk wood screws x 8 (frame top corners)
- (d) 8-10mm (1/4-1/2") pan head wood screws x 2 (electromagnet mount)
- (e) M6 x 12mm (#12 or 1/4" thread x 1/2 inch long) pan head screw or bolt x 2 (EM ends)
- (f) M3 x 8mm chrome plated male-female standoffs x 4
- (g) Assorted M3 screws and nuts, 4-8mm
- A 12mm (1/2") diameter x 120mm (5") partially threaded bolt, or steel rod about the same diameter, ~70mm long
- Round neodymium magnets (I used 10x2mm and 12x3mm, two of each)
- Thickness gauge x 2. I found 0.24mm or 0.01" to be the ideal thickness, but anything from 0.2-0.3mm will work.
- 7x2 O-ring x 4 (I think that's 7mm inside dia, 2mm thick, or about 1/4" ID, 1/16" thick)
- Enamelled copper wire 0.4mm x 45m or about 50g (26 gauge x 150' or about 1.8oz)
- Warm white 12v LED strip x 5m - get the brightest one you can
- PCB and components from Cubic Print's TimeFrame (Seriously, save yourself the trouble and buy the kit)
- An Arduino Nano
- 3 x 10K linear potentiometers with knobs
- 1 x LED pushbutton
- These come in two varieties, one has an LED and resistor built in, the other has the LED inside and optionally comes with a series resistor separately. You want the latter. I mistakenly ordered the former so I had to set up another MOSFET to drive it because I didn't have time to wait for another one (ugh, inefficiency!)
- Loctite or similar thread locker
- 12V, 1.5A+ wall wart with matching panel mounted socket.
- 2 x right angle brackets to fit inside the LED channel and secure top corners
- Assorted hookup wire
- Heat shrink tubing
- 3mm / 1/8" black perspex
- Wood glue
- Wood/furniture wax polish
- Gloss black spray paint (and preferably a primer)
- Soft adhesive pads for the base
- Lathe to machine electromagnet (EM) core
- Lathe or electric drill that can turn slowly enough to safely wind the coil (~1 revolution per second)
- Laser cutter to cut EM holder and back panel
- Table router or milling machine to cut channels for LED strip
- Drill press
- 35mm / 1 3/8" forstner bit to dig cavity into the base
- Countersinking bit
- Mitre/drop saw
- Soldering iron
- Sand paper and sanding block
- Rotary tool with 2.5mm diamond engraver/drill bit
- Thread tapper to match the M6/#12 screw above
The usual assortment of hand drill, drill bits, screwdrivers, pliers, etc
Let's get making...
Step 1: Preparing the Frame
While this part arguably took the longest for me, I'm going to keep it comparatively simple (yes, it's still long).
Make sure that you've picked your framing wood (#1) well. If you're going for reclaimed timber make sure it isn't too cracked or oil-stained (unless that's the finish you're after). Old timber can be quite dry and brittle, and small cracks will keep splitting if you screw it in the wrong pace. Make sure it's dead straight, and decide which pieces (wood tone, patterns) are going to match up best.
Build a test frame (or two)
Second, make an entire test frame (or two) from scrap timber that's about the same cross sectional size as your frame timber. The test frame doesn't have to be as big as the real thing in fact it can be tiny, you're just looking to see that your mitred corners don't have gaps and your angles are all square. If your mitre saw is not at exactly45° then your frame is going to be much harder to get right - you've got 8 mitred edges, if each one is just 1/4° out, you could end up with a gap of up to 2° depending on how you make each cut, which is pretty unsightly. Also make sure that parallel sides are exactly the same length.
Pick your patterns
Once you're happy with the cuts and confident that you can make perfectly square corners with no gaps, decide how you're going to cut the timber for best effect, then go ahead and cut the frame. I made sure an oil stain was on the back while the best grain patterns are on the front. Mark each piece with pencil clearly so you know which side is front, and which piece is top/bottom/left/right - its very easy to get mixed up. Be sure to save a small scrap offcut, you'll need it in the next step.
Routing a channel
Take the top, left and right pieces and route a channel into them either on a table router or milling machine (make sure channel is on the shortest/inside face!). How deep and wide you cut the channel is entirely up to you. A deeper channel hides the LED strip better but can mean a weaker frame, wider channel reveals the LED strip more but also lets you run more strings of lights. Mine is 13mm (1/2") deep, 28mm (1 1/8") wide.
Recessing and cavity
Marking out the bottom piece and recessing it for the control panel can be tricky to get right, but there are a couple of ways to do it. First laser cut a dummy panel (in the SVG file below) from scrap acrylic so you can test the recessed depth and fit around the edges. Then either:
- Place the dummy panel in the exact centre of the back side of the bottom piece. Trace around it, mark 5mm in from each edge for the cavity, OR
- Put the bottom piece into the laser cutter, line it up just right to centre the pattern and do a few cuts of the panel template (second pattern in the SVG below) on full power, straight into the timber. You'll want quite a high linear speed to avoid charring and keep the blower on (on our 50W laser I used about 40mm/s and did about 6-8 cuts with a few seconds to cool between each). Test depth by inserting a piece of paper into the cut I could tell when the cut was deep enough. The template SVG also cuts the cavity lines.
Use a Forstner bit and the depth stop on the drill press to drill out the cavity leaving about 7-8mm (1/4") of the frame thickness remaining and then chisel out the recessed border and square up the cavity (see images above).
Mark the exact centre on the front of the bottom piece and drill a hole the right diameter for the push button. Using the dummy template for positioning, drill the screw holes into the frame.
LED wire holes
Drill 2-3 large holes side by side on the mitred edge going diagonally down into the cavity, this is for feeding the LED strip wires through. Make the holes larger than you think (8-12mm?), I drilled 6mm holes the width of the channel and found (after I'd assembled and glued the frame) they weren't big enough as I wanted to conceal both the wire and the solder join inside the hole. It wasn't easy, but I made it fit.
Finally, ensure the angle brackets (#17) fit into the channel in the top corners of the frame. Drill and countersink holes to fit the screws (#4c), and then carefully position the frame on a flat surface, put the brackets in and mark the holes in the channel. Pull it apart and pre-drill on these marks about 0.5mm smaller than the screw diameter.
Step 2: Assembling the Frame
Assembly is a bit tricky, but if you prepare well and check for fit several times throughout, it should go well.
Start by marking and drilling 45° holes through the bottom piece, two on each side as shown in the first photo. You can see from the image how the screws will sit inside the frame, this should give you an idea where the screw holes should be. I didn't measure this, I eyed it up and made sure the holes wouldn't cut through the cavity, while spacing them out enough to ensure it was wide apart maximum joint strength, and far enough from edges to minimise the risk of the wood cracking.
The second image shows a sketch of how to accurately drill the 45° angle in the drill press. Clamp it nice and tight so the wood can't slip.
Remember, if you're using old reclaimed timber like me, it can be very dry and brittle. I had an offcut split in two with very little pressure on it, and I constantly got splinters in my fingers :( Pre-drill everything to around 0.5mm smaller than the thread diameter before screwing into it, and wear leather gloves when handling, except around power tools as this can be dangerous.
Once the bottom piece is pre-drilled, you'll need to pre-drill the sides to match, which can by tricky. Having done this the hard way, if I were to do this a second time I'd definitely make a jig to firmly hold all sides of the frame in place. If not, put the frame back together firmly and carefully mark through the diagonal holes in the base onto the side pieces. You can use a long thin scribe or needle for this purpose. Drill bits in the 3mm range are usually not long enough to reach through the long hole, so you have to drill it separately and hope the holes you've drilled line up perfectly. Get your angles right and measure everything twice.
Once drilled, double check that it all fits together by assembling the whole frame, but don't screw the screws right in just yet, just enough to make sure the holes are in the right place.
Using rough sandpaper or a belt sander, make a couple of spoonfuls of sawdust using the offcut from the previous step. You'll use this as a gap filler below.
Happy with the fit? Add wood glue to one corner at a time and screw each joint together (screws #4a, #4b and #4c). I also added some glue under the right angle brackets in the top corners. Screw it together quickly, tightening each corner a bit at a time until they are all tight and frequently checking that everything is square and sits flat. You may find, in spite of all your efforts that there are still gaps or it doesn't quite sit flat. Not to worry, get it as square as possible and gently clamp it to a flat surface. Mix a small amount of the sawdust with the wood glue to make a thick paste. Using your finger rub it deeply into any gaps in the corners, then scrape off any excess and allow the whole frame to dry. Repeat on the other side if necessary.
Once the frame is dry, start sanding the frame to smooth out anywhere the joints are not flush and sand off excess glue-filler. Use a sanding block to ensure a nice flat finish.
Be careful to follow the grain as best you can, which is not easy when you have two very wavy grains that meet at right angles! Start with about 60-80 grit for any heavy sanding on the corners joints and work up to 120-240 grit or higher all over until smooth.
Step 3: Winding the Coil
When electrons flow through a wire they create a magnetic field, although it's usually not very strong unless either the current is very high or there is a lot of wire involved. Electromagnets use the "lots of wire" factor to create a useful magnetic field around and through a tightly wound coil, and this field is greatly enhanced when certain materials are used as a core for the coil.
I based my core off a 12mm (1/2") diameter bolt with a partial thread (because that's what was lying around). I cut off the thread and bolt head giving an iron rod about 70mm (2 3/4") long. I then put this into the lathe to machine and drill the ends. I drilled about 20mm (3/4") into each end with a 5mm bit then slowly and carefully tapped the hole with an M6 tapper. If you haven't done this before, read up on it before you try.
Open the SVG file below for the EM bracket plans. I used Inkscape to create it, so if you open it in another program you may need to adjust the scale. Also check that:
- The holes in the sides match the diameter of your core
- The distance between the outside of each vertical side is the same length as your core
- The smallest width of the rectangular holes in the base are the same width as your 3mm ply (#3), plus kerf
Use a laser cutter to cut the EM bracket from the plans, glue and assemble, and wait for it to dry. Once dry, spray with a coat of primer undercoat followed by 2-3 coats of gloss black paint (#23), following application instructions and drying times.
While you're waiting for it to dry, let's get onto the coil!
If you're building an electromagnet from scratch it can be tricky to work out exactly how much enamelled copper wire you need. The three main variables here are wire diameter, core diameter and core length. I've made a spreadsheet to help with the calculation (see attachments below).
Enter the values on the right of the spreadsheet and you can see a table on the left that shows (approximately) the total length of wire required to complete each layer, the total resistance in ohms of that length, and the resulting coil diameter. I was looking for a peak current flow of 2 amps (I) at 12 volts (V), using Ohm's law (V = I x R // R = V / I) I calculated I'd need a resistance (R) of at least 6 ohms.
My wire was 0.43mm diameter, core length 70.53mm, diameter 11.5mm. The spreadsheet told me that a tightly would coil 7 layers deep would take ~52m of wire, totalling 6.65 ohms and the coil would end up just under 18mm in diameter. Since copper wire is commonly sold by weight I calculated that I should have enough for this with a bit left over. Note this calculation doesn't take into account the enamel thickness.
I cut two circles out of 3mm acrylic to place over each end to use as an "end stop", to make the coil slightly shorter than the core, and to ensure that there was clearance on either end for the core ends to go into the bracket ends when mounted. I then wound the coil very carefully on a small lathe on its slowest settings (about 60rpm), hand on the stop button, stopping many times through the process to adjust the winding and fix mistakes.
It turned out that I had enough for an 8th layer (just!), so this leaves me with just under 8 ohms, which means around 1.5A peak current if you were to just apply 12V across the terminals, and that's well within both the MOSFET limits and the heat dissipation I had in mind (~18W x 25% duty max = ~4.5W). More windings can only be a good thing, so long as I've still got enough current flowing.
Once the coil is wound, apply a bit of glue to both ends to set the wire in place and stop the ends from unravelling. Be very careful with this coil now that it doesn't get scratched and that the free ends of wire aren't moved too much. The last thing you want is for the coil to unravel or be damaged. Put some masking tape over it to protect it until it's ready to mount.
Step 4: Adding the LED Strips and Polishing
12V LED strips come in segments of 3 LEDs each with a built-in series resistor for each segment. I bought some of the brightest LED strips you can get (cheaply), codename "5630", I got a 5M reel (#10) for a few dollars from China. You can cut LED strips as long (up to a limit) or short as you like, so long as you cut them between segments.
I figured I could just squeeze in 19 segments around the frame. I managed to fit 4 strips side-by-side into the channel by overlapping them slightly. So 3 LEDs x 19 segments x 4 strips is a whopping 228 super bright LEDs. If I had room I would have added a fifth strip. You'll need to work out how many you can cram in before you start, because the more you have the better the effect - I still wish mine were about twice as bright.
Why so many? You've got a brightness knob, can't you just crank it up to 11?
Not really. The LEDs flash once every 12.5 milliseconds or so, but they only stay on for a very short time (the "duty"). In my code the brightness knob adjusts the duty from 0% (LEDs off completely) to about 20% (on 20% of the cycle, or 2.5ms), and I usually keep the duty at around 8-12% for best effect. Remember that you're performing high speed flash photography with your eyeballs to capture a very rapidly moving object, and each "photo" you take is a frame in an animation. The longer the LEDs are on when they flash, the further the object travels in that time hence the blurrier your photo. But for a short flash if you have more LEDs your photo will be brighter and clearer. This is even more important as ambient light gets brighter relative to the LEDs - otherwise you start to see hazy ghosting around the object.
If your LED strip has an adhesive back it may stick well enough to the bare wood. If not you can stick it down with some craft glue. Working one segment at a time from the side of the frame without the hole for the LED wires, peel back the waxed paper and stick the strip down firmly, but when you get to the end of the strip leave some backing paper on while you solder on the wires. Solder a link to each of the negative terminals and one to each of the positive terminals with a main wire coming off each - we want to join the strips in parallel. Ensure joins are insulated with tape or heatshrink tubing and that the wires are long enough to reach down into the cavity and over to the far side where we will attach it to the PCB.
After soldering the wires peel off the rest of the backing, carefully tuck the wire through the hole and stick the remainder of the strip down.
In case your frame has picked up any dings, you may wish to give it another light sand. Remove all dust with a vacuum and brush attachment.
You can use any wood finish you like, I opted for a fairly standard wood wax polish with Eucalyptus oil, and it looks and smells great. Give the whole frame a good coat or two, taking care not to get it too close to the LED strips, if wax gets in behind the strips they'll lose their stick. Polish off any excess with a clean rag after letting it soak in for a few hours.
Step 5: Assembling the Electromagnet (EM)
Once the EM bracket is completely dry, measure, centre, and then screw (#4d) it directly onto the frame (don't forget to pre-drill!).
Drill two 2mm (3/16") holes through the bracket and frame into the cavity as shown in the second picture. This is where the coil wires will go.
Slide the acrylic circles off the ends of the core and discard, taking care not to disturb the coil.
Carefully wedge one end of the coil core into one side and slide the other into the other side. If your measurements were right, you should have a nice snug fit.
I flattened the heads of the two pan head screws for the core ends (#4e) with a grinder so that they were nice and parallel with the fixed magnets as you can see in the last photo above (fully assembled).
Place the screws (#4e) into each end of the coil through the bracket and tighten as shown, this should stop the coil from moving, sliding or vibrating.
Cut two lengths of 2.5mm (1/8") heatshrink tubing to fit in the holes you drilled above, just long enough to reach the cavity. If you shrink about 3/4 of it, it should fit down into the holes and you can pass the wire through. Push the un-shrunk tube into the hole, it should sit quite snugly to stop it slipping around. In this case the heatshrink is used to protect the enamel from wearing off slowly with vibrations, rather than insulation.
Get the two strips of spring steel (thickness gauges, #7) and mark where the holes need to go for mounting, close to the bottom. The screws need to match up with the holes on the side of the bracket, the hole centres should be 6.25mm (1/4") apart.
Using the diamond bit in a Dremel or similar rotary tool, slowly and patiently drill your way through the strips. Regular high speed drill bits will not work in toughened spring steel. The key here is to keep the diamond bit cool or you will end up wearing out the adhesive that keeps the diamond on the bit, then it's all over. I drilled them over a small container with water in and always kept it wet. Take extra care not to slip, you can do serious damage to your finger if you're not patient with it...
By the end you should have two nice clean holes in each strip. Check that the male end of the standoffs (#4f) fit nicely and then tighten M3 nuts (#4g) on the other side. I went for nylock nuts, but in hindsight I think I should have used threadlock instead, eventually I'll be adding some. Even the nylock nuts loosened very slightly over time, enough to make a bit of noise when you turn it on.
Finally add your magnets to each strip. I used a 2mm thick one on the inside, 3mm on the outside, but it's not too important. The outside magnet keeps the inside one stuck to the strip (instead of sticking to the EM), and doubles as an easy way to slide the inside magnet up and down.
Hold the strip where it will be mounted, check for spacing to the electromagnet, and adjust using washers or swapping for longer or shorter standoffs if needed. You should have just enough space that the magnets don't flip off and stick to the electromagnet and the spring steel doesn't bend and stick to the electromagnet. I've got about a 4mm gap and this seems to be just right. The further away you get, the less influence the EM will have, but if you get too close the magnet and strip pull inwards and just to stick to the ends of the EM.
When you have it right, mount each strip with two short M3 screws through the bracket into the standoffs. Again, threadlock would be useful here.
Step 6: Arduino Code and Electronic Assembly
I'm assuming you've got a fully assembled Cubic Print PCB with the Nano attached. I've modified the code and added several bits from the original by Cubic Print. My latest code is available on Github here.
Once you have that loaded, you'll need to do the following, remembering to insulate all joins to avoid shorting:
- Replace the two trimpots with full panel-mount potentiometers (#13) connected via about 15cm (6") of hookup wire or three-stranded ribbon cable so the pots can reach the holes in the panel.
- Solder one wire of a third ribbon cable (about 10cm/4") to the PCB at the A2 pin on the Nano. This will go to the centre tap on the third potentiometer (#13) which controls EM duty.
- Solder another wire to ground (-) and one to +3.3v. These will go to the two outer poles of the pot above.
- Place the LED pushbutton into the hole in the base of the frame and mount it firmly with the nut. Mine was a waterproof version that included an O-ring, but I removed this to mount it flush with the wood.
- Solder a second wire to ground and one to the D5 pin, and solder the other ends to the pushbutton's LED terminals, (- or K for cathode, and + or A for anode respectively). This is assuming it doesn't have the built-in resistor I mentioned in Step 1.
- Mount the power socket (#16) to the panel and screw it tight.
- Add power wires from the power socket to the board, observing correct polarity and double checking. Typically (but not always) the centre pin is positive and the outer ring is negative. Test with a multimeter if you're not absolutely sure.
- Screw the coil ends to the Coil terminals and the LED wires to the LED terminals, insulating appropriately.
- Now plug everything in and test power and lights (fingers crossed)...
- Do a happy dance when it works flawlessly the very first time!
If all is well, gently coil up any excess wire into the cavity and screw the control panel into the recess. I initially used pan head M3 screws, but later countersunk the panel holes and changed the screws to match.
Step 7: Final Assembly
The electromagnet just pulses on in one direction (ie. just a "push", it doesn't "push-pull"), so one end will always be magnetic north and one will be south.
I was experimenting with a push-pull oscillation in my original design by using an H-bridge, before I found out about Cubic Print's code and PCB, which does a single polarity pulse. It works almost as well as my original one and reduces complexity a lot because you can simply use a single MOSFET, which also dissipates very little heat compared to the H-bridge.
Check that you have your magnets oriented correctly, when you hold it in your fingers you'll feel a bit of a push when the coil is on. If you feel a push rather than a pull, you have it the right way around.
The magnets can slide up and down the spring strips and you'll find a sweet spot where the oscillation is at its peak. This changes slightly depending on what you attach to the strips, heavier things oscillate differently to light things.
Add a couple of O-rings (#8) to each spring strip, they should be tight enough that you can slip the small stem of a flower or feather between it and the spring and it will hold firmly.
Cut a base for the frame out of ply (#2), the size is not too important, just enough to give a bit of stability. Make sure the ply is not warped or it may not sit flat. Sand it smooth on all edges then remove dust, prime and paint as per the electromagnet bracket. Work out where you are going to put screws through the base and into the frame, such that you don't accidentally damage any electronics (if screws are too long or in the wrong place). Drill and countersink the screw holes, pre-drill carefully through into the frame and attach with appropriate countersunk screws (#4h).
Finally, add the soft feet (#24) and check for stability.
Sit back and admire the completed frame!
Step 8: Conclusion and Thoughts
Things that work well in the frame:
- Feathers are probably best
- Delicate flowers
- Small, green, soft foliage
When you first show people their first thought is usually that there's air blowing in the frame.
Turn it to mode 2 ("distorted reality") and that will have them puzzled further. Then when you're ready for the big reveal, turn the LEDs right down (off) to show the vibrating feather/plant material, then and slowly ramp the lights up. The effect is really neat.
I can't help but think that a project would be so much better with water. I've toyed with the idea of making a plastic version with a small water spout at the top to reproduce the water droplet strobe effect, or the same effect that's captured by a 24fps camera with a subwoofer and sine wave. An indoor water feature would be neat but it complicates things a lot :)
Anyhow, this has been one of the most rewarding things I've ever built. If you build one, leave me a note in the comments, I'd love to see it.