Picture the following: you have an nice white cup in front of you. It’s filled to the brim with sparkling, cool, and refreshing H20. Your fingers curl around the nicely curved handle, and you bring the cup to your lips. Suddenly, a strong vibration assaults the nerves in your hand, causing you to drop the cup and spill water all over every surrounding surface, including yourself. This might not sound too fun for the participant, but I can personally guarantee you that it will elicit much more than a chuckle from any bystanders. Let’s get started making it!
Step One: Print it!
In the attachments section of this build are two .stl files: base.stl and cup.stl. You’re going to have to print both of these out on some type of 3D printer. I have had success with higher infills and small layer heights to maintain the waterproofness of the mug, but you can experiment. Infills around 50% or above give the cup a nice solid feel as well. To print it out really quickly but have some leaks you can use about 20% infill and a layer height of 0.3mm. Don’t use any supports!
Note the orientation of the parts in the screenshot above – this is how they should be printed. The attached files may not default to this.
The reason the mug is in two pieces is so that the electronics can be removed, allowing you to wash it.
Step Two: The Circuit Board
Now you’re going to need to construct the circuit that makes this whole thing fun. It’s actually pretty simple! The way the cup detects if it’s picked up is by measuring ambient light. When there’s a sudden spike in light, it’s safe to assume that the mug has been lifted, and the motors should start vibrating! This light measuring is done through a phototransistor. The motors are driven using small transistors as switches. They are pretty small, so there’s not really any need for a dedicated motor driver chip or circuit; the transistors will do quite nicely. Just don’t connect the motors directly to the pins on your microcontroller!
For more detail: 3D-Printed Prank Vibrating Cup