Can I tell you a secret? I don't like handshakes. I really don't. Handshakes just make me feel dirty. It's too impersonal. It's a gesture with no soul and reeks of a corporate entity. Why must we limit ourselves to this one boring interaction? Of all the split second human gestures we could do, it's the lamest. Even the handshake has so many different variations, yet we choose the same boring one every time. Why not a fist bump, shoulder tap, giving skin, the hungry chicken, or my personal favorite, the high five.
The high five. What a wonderful thing. You can give a random high five to a stranger and, more than likely, it will make them feel better. Some of my best high fives were with strangers. My most memorable one happened years ago at 2AM on a bike trail in Minneapolis. Some guy biking the other way stuck his hand out and I reciprocated. Our hands made contact underneath a bridge and the sound reverberation created the greatest sounding high five I have ever heard. Do you remember any handshakes like that? I'm going to doubt it.
And so, I bring you the high five camera. Another ridiculous contraption that will hopefully extend an appreciation of the mighty high five. The quickest and most universal gesture for telling someone, "you are awesome".
So, if we ever meet, keep it up high because I will be coming in for the highest of fives.
Step 1: How it works
I modified a helmet to mount a GoPro behind me. It points towards the person I am high fiving. The GoPro has remote capabilities over WiFi so you can control it with your phone or a WiFi remote. Using an Arduino Yun, which is a WiFi enabled Arduino board, I can control the GoPro. I'm using an accelerometer to determine when a high five is about to occur and tells the GoPro to start taking footage. After the high five has commenced, it tells the GoPro to stop capturing footage.
Overkill? Of course. However, it does reduce the video editing time a bunch. It also gave me an opportunity to play around the with Arduino Yun and see what it can do.
Step 2: Materials Needed
Here is what I used to make it.
Helmet - I found this helmet at a thrift store. I think it is for riding horses.
Swing Arm Lamp - Also found a thrift store. This one is nice because it has tightening bolts on the joints to make it more rigid.
3D printed GoPro mount - For modifying the lamp to attach a GoPro camera to the end of it.
GoPro Hero3+ - I chose a GoPro because it has a wifi communication with remotes and a wide angle lense. It's also small and light.
Arduino Yun - For communicating with the GoPro.
Accelerometer - I used an ADXL335 for sensing the motion of my hand.
1.5" diameter aluminum rod - I found a short piece in the waste pile.
8-32 X 1/4" setscrew
8-2 X 1" pan head machine screw (4 total)
1/8" plywood scrap - For laser cutting. Found this in a different waste pile.
1/2" webbing and snap buckles - For attaching the electronics to my arm.
1 LED, 1 sliding switch, male header pins, female header pins, 330 ohm and 10K ohm resistor - Additional electronics for the arm system.
FR-1 Copper PCB Board - For milling out the circuit board shield.
5V battery pack with USB - For powering the Arduino.
Step 3: Assembling the Electronics
In addition to the Arduino Yun, the circuitry is relatively simple. It's an accelerometer, a switch, and an LED. The accelerometer is what senses the arm movement. The switch is for turning off the capture functionality of the system. Without it, anytime my hand was in an upright position it would be taking video footage. So, I would have a bunch of footage of me readjusting the helmet or scratching my face. Not the most entertaining thing to watch. The LED was used for debugging my code.
Here's the schematic.
At my job, we had just received an Othermill for milling out circuit boards. So, of course I had to make an Arduino shield for the high five camera. I also came across the curvy traces that you can do on Fritzing. So, of course I had to make a circuit board with a bunch of curvy traces.
Here are the gerber files to reproduce the shield.
Step 4: Electronics Wrist Mount
I had to mount the electronics to my arm, so I laser cut a wood panel to attach it to my wrist with some webbing. I used zip ties to attach the 5 Volt battery pack on the underside of the mounting panel.
Step 5: Hack a Lamp
I found a swing arm lamp from a thrift store and it seemed like it would perfect for mounting a GoPro to a helmet. So, I hacked away and reverse engineered the lamp connection that I would have to recreate and modify to mount the camera to. With careful measurement with a digital caliper and 3D printing a quick test piece to make sure the dimensions were all correct, I made the design for the GoPro mount.
I modeled the piece in Autodesk Inventor and printed it out at Pier 9's Objet Connex printers. I'm an Artist in Residence there. They don't require me to throw in these key words but I know they like it.GoPro Mount.stl
Step 6: Modify a Helmet
The helmet I also found at a thrift store. I needed a way to attach the swing arm lamp to it so I had to lathe out a piece of aluminum rod to make the attachment. For a piece to lathe, it's not too terribly difficult to make. I bored out a half inch hole all the way through the center and reduced the material as much as I could. I tapped in 8-32 holes into it for attaching it to the helmet with the bolts and also for a set screw in the side.
I love machining aluminum. It's such a pleasant material to work with. When you are finished it has a real nice sheen. I end up taking a long time to make parts because I'm enjoying myself too much to rush it. If you haven't spent time in a machine shop, I recommend it.
Step 7: Assemble the Helmet Rig
The assembly is pretty straight forward. Attach the lathe piece to the helmet with some 8-32 bolts and attach the end of the swing arm lamp and tighten with the set screw. Badda bing, badda.
Step 8: Setting up the GoPro and Uploading the Code
Here is a video to get the Arduino Yun connected to the GoPro over WiFi. After you do this you can download the code here.
Towards the bottom of the code there are a bunch of functions that control certain parts of the GoPro. In the lines that start with client.get, you need to change PASSWORD to your actual password for the GoPro's WiFi.