Desktop Fist Bumper




Introduction: Desktop Fist Bumper

About: After a fun time making projects for the Instructables design team, I'm now helping to start the robot uprising.

This simple device sits on your desk at work, ready to give you fist bumps throughout the day as you need them. A 3D printed "fist" is moved by a servo attached to a rack and pinion mechanism. An ultrasonic range finder detects when you place your hand near it, and an Arduino Uno controls it all.


Step 1: Make Cables

To connect the electronics, a few cables are needed. First, make a pair of "splitters" for providing power (5V) and GND to the sensor and servo from the Arduino using female connectors. Since both devices need the same Vcc, the splitters make the wiring easier to put together and more compact when it is assembled.

Next, solder a cable to connect to the ultrasonic range sensor. Use a female connector for the end that the sensor will plug into, and solder the other ends of the wires to individual male headers.

Finally, cut off the female connector at the end of the servo and solder the wires to individual male headers as well.

Step 2: Cut the Base and Slide

Using a laser cutter, cut out the parts for the base and slide out of 1/4" plywood. I used fairly low settings for my cuts to keep the tolerances correct - speed 20%, power 35%, and frequency 500Hz.

Step 3: Attach Servo

The servo needs to be secured to its mount before assembling the box around it. Simply use four bolts to attach it, making sure that it is facing in the correct direction.

At this point the pinion gear needs to be attached to the servo horn. The part is a fairly close press fit, but the addition of some hot glue ensures that it won't slip off during assembly. Once glued, the horn/gear attaches to the servo using the screw included in the package.

Step 4: Assemble the Base

Follow the photos above to assemble the base around the servo mount. The parts are all press-fit, and should not require glue (although feel free to add some if it is necessary). First, attach the mount to the front panel and slide on the inner walls. Next, carefully push this assembly onto the inner base part. Add the small guards for the bottom of the slide. Then add the back panel and the upper guard for the slide. Lastly, add the side panels.

Step 5: Add Weights

To keep the fist bumper balanced, weights are added to both the base and the slide. For the base, push the stop into the top of the upper guard for the slide. Find some weights (I used a variety of washers) to fill the pocket you just made on top of the slide guard.

Step 6: Glue on the Top

Using wood glue, secure the top of the base. You don't need to glue it on, but I found that if I wasn't careful the weights would push off the top when I carried the machine around.

Step 7: Attach the Range Sensor

I ended up simply hot-gluing the ultrasonic range sensor to the base. It is likely that you will have to adjust its positioning as you test the code (if it tilts up, it will see the edge of the fingers) and it is easy to pull the sensor off and re-glue it.

Step 8: Print the Hand

The hand was printed on the Afinia H479 printer from PLA (although it should be fine with ABS plastic). All parts were printed at 0.25mm accuracy with hollow fill. In all, it took just over 7 hours of print time and about 160g of plastic filament. The index and ring fingers are identical, so print two copies of the parts labeled "F1" and see step 10 for the arrangement of the fingers on the hand.

As with all printing, rotate the parts to lay mostly flat. In this case, this meant that the sides of the fingers were touching the print surface (see screenshot). Be very thorough removing the support material, as the parts need to be able to fit together and excess material will get in the way of that.

(Note: If you don't have access to a 3D printer, you can make a fist out of cardboard, paper mache, or some other material. I originally intended the hand to be able to move, which is why it is printed in so many parts.)

Step 9: Assemble the Fingers

Although they are printed separately, the fingers are designed to snap together. Line up the finger segments and thread them (in order) with the wire or string. I used a bent paperclip to help me with the string, but when I switched to wire I didn't need it. Double-check that the segments are in the proper order, then snap them together. The middle segment goes on the outside of the lower and tip segments and should fit somewhat snugly. Repeat this process for all five fingers.

Step 10: Assemble the Hand

Once all five fingers are assembled, they can be connected to the palm. Thread the wire/string through the holes in the front of the palm, and snap the lower segment into place. Make sure the finger is oriented properly and is in the correct spot!! The fingers are only designed to bend in one direction and are difficult to remove from the palm if you need to correct them. After the fingers are all attached, flip the hand over and thread the strings through the next set of holes before pulling them tight and tying them together. This will keep them curled into a fist. (if the fingers won't stay, add a dab of hot glue at the joints)

Step 11: Bolt on the Hand

The hand bolts onto the top of the slide, before the slide is assembled. I'd recommend using lock nuts if you have them.

Step 12: Assemble the Slide

Like the base, the slide shouldn't require glue to stay together. Start by adding the sides to the bottom panel, checking that they are in the proper orientation. Then add the stops and insert weights. Push on the top (with the hand attached). You may need to glue the top down to keep it secure. Finally, push the rack into place.

Step 13: Upload the Code

The Arduino code reads in a signal from the ultrasonic range sensor and if there is an object in range (ideally your hand) it turns the servo.

The basic code for reading in data from RadioShack's range sensor can be found here:

Step 14: Wire the Electronics

Solder leads to two of the pins on the power switch, and hot glue it in place on the back of the base. Solder one of the leads to the positive lead from the battery connector.

Step 15: Plug Into the Arduino

All the cables are made, so simply plug everything together and connect to the Arduino. The Vcc cables of the sensor and servo both plug into the power splitter made previously, which plugs into the 5V pin on the Arduino. Similarly, attach the sensor and servo GND cables to an Arduino GND pin. The signal pin for the servo goes to digital pin 8, and the signal pin for the sensor goes to digital pin 7. Finally, the remaining lead from the power switch goes to Vin (on the Arduino) and the GND wire from the battery goes to GND.

Step 16: Close the Base

Flip the base upside-down and arrange the electronics within it (don't forget to add a battery!). Try to make them sit as flat as possible, with the usb connection of the Arduino facing the front (this way, you can easily plug in and edit the code). Put the bottom on and glue if necessary.

Step 17: Test the Fit

Turn the servo so the gear is rotated all the way forward. Then carefully push in the slide until you feel the rack catch on the gear. Test the fit to see if it slides easily. If necessary, sand down the top and sides of the slide. Once done, insert the slide all the way into the base.

Step 18: Done!

The desktop fist bump machine is now done! Turn it on and sit it on your desk.

Be the First to Share


    • Pocket-Sized Speed Challenge

      Pocket-Sized Speed Challenge
    • Super-Size Speed Challenge

      Super-Size Speed Challenge
    • Audio Challenge 2020

      Audio Challenge 2020

    9 Discussions


    5 years ago on Introduction

    Love the idea. Could lead to the Desktop High Five machine (something that swings down to give you a high five). Perhaps a combo of both. I guess basically a desktop robot hand of some sort could be used to make other affirming gestures like a thumbs up. Even somewhat more negative ones like thumbs down or hand wave off, or index finger back and forth movement. Then there is the classic "bird" with optional hand upward movement for added emphasis.


    5 years ago on Introduction

    This is a cutesy project for those who have access to a laser cutter and 3D printer but kind of useless for the many that still don't. The speed is also far too slow, and the printed hand is square and rough.. I wouldn't want to "fist bump" that thing. Since you were 3D printing it anyway, why didn't you make it hand and/or fingers more rounded and natural looking? You could have even used an old leather glove for it by going that way and eliminated tying up those strings.

    Even better would have been to use the servo to close the articulated fingers of that hand as it came out and have them open "explosion style" (infinitely cooler) after the bump and as it retracted back into the base.

    Personally, for this level of movement, I would've used a jersey cotton glove and filled it with expanding foam (like Great Stuff) and bent the fingers into the fist. that would have been lighter weight and softer. Then used a CD tray for extend and retract.

    I am sorry to say, but I really would have expected much better from the instructables team.


    6 years ago on Introduction

    I'll have to concur with the other commenters on the speed, or lack thereof.

    Why not use a used cd/DVD drive we can all find by the truck loads nowadays and is there a way to to not use a uController?

    For the fist I would try mini boxing glove or something soft.

    Now for the serious business: you all really depressed at RS when you do your videos. Lihghten it up a bit for geeks sake.



    6 years ago on Introduction

    Needs faster actuation. You might wish to consider the possibility of using a solenoid plunger or pneumatic piston to actuate it directly, rather than driving it with a rack gear and servo, if you intend to refine the design.

    jack 8 years old
    jack 8 years old

    6 years ago

    Cool and I get all my parts at the shak and did u program it


    6 years ago on Introduction

    Cool stuff, a bit slow though. It would be faster to use stepper motor instead.