Mjolnir is Thor's trusty hammer, and will always return to his hand when thrown (as depicted in the Marvel Cinematic Universe, anyhow). So how do we build our own legendary flying hammer? With Arduinos, of course!
The heart of this hammer is not a dying star, but rather a micro racing drone. The hammer itself is a foam and balsa wood frame built around the quadcopter with plenty of open areas for air flow.
The true test of worthiness, however, is throwing Mjolnir and summoning it back to your hand. That trick is done with an Arduino Uno controlling the quadcopter transmitter via digital potentiometers. Push buttons mounted to a wrist brace control pitch and throttle, and an accelerometer maps hand movements to the quadcopter's roll. With some patience, this makes Mjolnir controllable with one hand, leaving your other hand free to catch Thor's hammer!
This is not a beginner project, and a lot of the hammer's design was modified on the fly (pun intended), so the final product doesn't map perfectly to the provided CAD files. There's also a ton of variability in receivers and transmitters, so you will need strong troubleshooting and trial-and-error skills, and even then Mjolnir handles like a fat cow in the air. You have been warned!Hammer Materials:
The hammer body is mostly made of foam sheet is from Dollar Tree; you'll have to peel off the paper lamination before you begin constructing the hammer! A rectangular frame made of balsa wood holds the quadcopter in place, it's made by laminating two 1/8" thick parts with Titebond III for strength. The adhesives used are 3M 78 for gluing foam to foam, hot glue for everything else, and foam safe CA glue to fix boo-boos after crashes.
The svg used for laser cutting the parts are all on this page. For the foam, all the angled edges were beveled to 22.5 degrees with a utility knife before being glued together. The faces of the hammer are hot glued to the head because the edges didn't line up, and a fillet of glue was needed for structure. The handle of the hammer was not laser cut, because it's just a 4"x10" rectangle of foam rolled up and hot glued shut along the seam.
The frame is the tricky bit, the included files are an older design where the quadcopter was higher up in the hammer. It turns out that the props need to be very close to the bottom of the hammer head to work properly. So in the final design, just the outer rectangular shape of the frame is kept and the prop guards of the quadcopter are incorporated into the structure. The quadcopter used here is an Emax Babyhawk running on a 3S 260mAh Lipo battery, which is tucked into a box above the handle (which was ultimately made to fit the dimensions of the battery by hand, rather than the laser cut part). The handle and battery box are hot glued to the bottom of the quadcopter.
Setting up the Babymax is a whole other tutorial on it's own which is covered extensively elsewhere. I used a Spektrum DSMX racing receiver, which is hot glued to the Babymax camera mount, with the camera gutted since we don't need FPV of the inside of a hammer and it saves a few grams of weight. You'll notice the hammer is two separate parts, with a "base" hot glued directly to the prop guards of the quadcopter, and a top "case" that rests on top. Two rectangular strips of foam were glued to the base to help guide the case on top of the base, and a small set of neodymium magnets secures the case to the base.
Don't forget the paint! Normal spray paints will eat away your beautiful foam creation, so you'll need to use an acrylic paint. If you're fancy, use an airbrush, if you're just a little less fancy like me, use an acrylic based spray paint like Liquitex.
This technique should work on any RC transmitter with potentiometer joysticks. We're going to be adding 3 wire connectors so the joysticks can be bypassed and the transmitter directly controlled by an Arduino via AD5206 10K digital potentiometer.
I used servo extension cables, that way the transmitter can easily be used as normal or connected to an Arduino. Make sure you label your wires! Drill some holes into the transmitter back for the wires to come out from, and close the transmitter back up.
Check out the code included with this tutorial! Refer to your datasheet, the code, and your transmitter to work out wiring the potentiometer to the transmitter. Match the transmitter pot's ground, wiper, and v+ to b, w, and a of the digital pot. This Arduino tutorial is a good resource. Find a couple push buttons and an LIS3DH accelerometer (same one used for firebending!) and connect them as shown in the schematic attached to this tutorial. You'll notice a toggle switch in parallel to a pushbutton switch as input to pin 6; that represents whatever you've chosen as the arm switch on your transmitter. The push button becomes your new arm switch, and the Arduino simply reads the state of the switch so it knows when to throttle up or down.
Load up the included code, plug your Babyhawk into your computer and connect to Betaflight Configurator, and do a system test! You should be able to see the receiver values change by pressing the buttons and tilting the accelerometer.
I used a wrist brace to mount the throttle button, pitch button, and accelerometer. They connect to the Arduino Uno through about 3 feet of wire. The transmitter, Arduino Uno, and digital pot are all just taped to a board of wood with foam mounting tape. Everything fits into a fashionable red sling backpack!
Mjolnir flies about as well as you'd expect a brick shaped object to fly. Any slight gusts of wind knock the poor thing around like crazy, and there isn't really a good way to launch or land. Almost every time the hammer "lands", the handle will probably break off. But that's what glue's for! After a solid day of filming I managed the successfully "throw" and catch Mjolnir about twice, but both times the shock of catching the hammer ended up breaking it. What I'm saying is there is lots of room for improvement here! (Especially since I used the stock PID settings XD)