This Robot Can Play the Ukulele Better Than You Can
Zeroshot’s robot is coming for the ukulelists by picking and strumming delightful little melodies.
We all grew up believing that when robots and AI inevitably become commonplace, they’ll be doing the sort of manual labor that we humans dislike. But recent AI advances are quickly destroying that idea, as today’s most popular models seem to be intent on stealing the creative jobs that we actually enjoy. Musicians, at least, can rest easy knowing that robots can’t possibly possess the dexterity necessary to replace them, right? Wrong! Zeroshot’s robot is coming for the ukulelists by picking and strumming delightful little melodies.
Ukuleles may seem simple, but they’re almost as complex as guitars. In fact, they’re exactly two-thirds as complex as standard six-string guitars. To bankrupt the world’s professional ukulele players, Zeroshot had to break that complexity down into manageable chunks to automate. He started with plucking the strings.
Zeroshot wanted this robot to be capable of both strumming and picking, so he designed a two-motor mechanism that clamps onto the ukulele’s body using 3D-printed mounts. That mechanism can pivot the pick using a servo motor to swipe at an individual string, or lower the pick and use a stepper motor to slide the entire thing across the strings for strumming. An Arduino Uno board controls those two motors through a HiLetgo L293D motor driver shield paired with a TMC2208 stepper motor driver.
That driver shield also lets the Arduino control power to solenoids mounted above the fretboard, which is how the robot replaces the fingers of a ukulelist’s left hand. Zeroshot’s design supports up to 16 solenoids, which would cover the first four frets across all four strings. Of course, it can also leave all the solenoids up to play open strings.
Alas, there was a problem that Zeroshot didn’t anticipate: string height. When a string is open between the bridge and nut, it rests at a consistent and predictable height below the pick. But if a solenoid holds a string down, the distance to the bridge changes and so does the angle. Geometry being the cruel mistress that it is, that lowers the string below its resting position and that can be too far for the pick to reach.
Fortunately, Zeroshot was able to solve that issue in code by telling the servo to drop the pick further if a solenoid is holding a string down. To celebrate that achievement, Zeroshot showed off the robot’s capabilities by having it play Celine Dion’s upbeat and cheery hit, “My Heart Will Go On.”