When things break around the house it usually means a trip to the hardware store for replacement parts, but when my doorbell chime stopped working, I saw it as an opportunity to use some animatronics skills and make something more fun and aesthetically pleasing than a standard “ding-dong” type doorbell. This is how ZenBot was born.
ZenBot is an Arduino device that, by means of seven mallet-wielding 2-axis mini robots, can play soothing percussive tones on a meditation drum, aka tongue drum. While ZenBot was meant to be a basic doorbell, it has potential to be expanded into a MIDI instrument by using available open-source libraries, or even downsized to work with a smaller drum in order to significantly reduce material costs.
In this article I’ll cover my design process while also providing enough explanation and online resources for you to build one of your own. Along the way you’ll learn about design organization, setup and use of Dynamixel robotic servos, and beginner-level Arduino programming. Before we jump in, check out the video of ZenBot playing Tears for Fears’ “Mad World” below. You’re going to want to build this.
Design Guidelines
As a starting point, I set a few guidelines and limitations for myself in order to narrow down
the options:
- Utilize Robotis XL330-M288-T servos for their low cost and programmability — and because I already owned a box of 25 of them that were longing to be used.
- Utilize a specific 14″ tongue drum which I had also recently purchased.
All parts must be printable on my Ultimaker 2 Extended 3D printer. (All but one ended up being done this way.) - Design must be modern looking yet work well with the more traditional feel of the drum itself.
- Design must be axially symmetrical in nature.
- Design must mimic human hand motion using rubber mallets. For a while I considered using solenoids, but swinging mallets just felt like a more fun and organic approach.
Building Your Own
To build your own ZenBot, download the Fusion 360 files for printing and the Arduino code for the microcontroller, and watch my video tutorials that will take you through the build in fine detail.
Take care to measure your components well. Drums and mallets that are handmade are not always built to exact measurements. If yours are a bit different than mine, you might need to make minor adjustments to the robot parts. This is where the Fusion 360 files will come in handy.
Taking It Further
Now that you have the skills to build your very own ZenBot, here are some ideas for taking it to the next level:
- Convert the code to accept live input from a MIDI keyboard, or maybe turn it into a modern MIDI-controlled player piano-type instrument.
- Experiment with the anti-dampening mechanism or create your own version. Maybe try a flexible/compliant mechanism instead of the elastic band to make it more durable and use fewer purchased parts.
- Make the trigger button wireless. Maybe use Bluetooth or RF to trigger the drum from a distance.
- Design a smaller, low-cost version by using a smaller drum with fewer tongues. Reduce the servo count from 14 to 7 by eliminating the need to rotate.
- Or take what you learned here and apply it to a xylophone, tubular bells, chimes, or any other melodic or percussive instrument.
No matter what you do with it, one thing is for sure, you will have a beautiful functional art piece that is sure to be a great conversation starter!
This article appeared in Make: Volume 81.