close
close
This robot can play the ukulele better than you

We all grew up believing that when robots and AI inevitably become commonplace, they’ll do the kind of manual labor we humans don’t like. But recent advances in AI are quickly shattering that notion, as today’s most popular models seem intent on taking away the creative jobs we actually enjoy. Musicians can at least rest easy knowing that robots can’t possibly have the dexterity needed to replace them, right? Wrong! Zeroshot’s robot comes from the ukuleles by plucking and strumming delightful little melodies.

Ukuleles may seem simple, but they are almost as complex as guitars. In fact, they are exactly two-thirds as complex as standard six-string guitars. To bankrupt the world’s professional ukulele players, Zeroshot had to break down this complexity into manageable units to automate it. He started by plucking the strings.

Zeroshot wanted this robot to be able to both strum and pluck, so he designed a dual-motor mechanism that attaches to the body of the ukulele with 3D-printed mounts. This mechanism can pivot the pick to touch a single string using a servo motor, or lower the pick and use a stepper motor to slide the whole thing across the strings to strum. An Arduino Uno board controls these two motors via a HiLetgo L293D motor driver shield paired with a TMC2208 stepper motor driver.

This driver shield also allows the Arduino to control the power supply to solenoids mounted above the fretboard, allowing the robot to replace the fingers of a ukulele player’s left hand. Zeroshot’s design supports up to 16 solenoids, which would cover the first four frets of all four strings. Of course, all solenoids can also be left open to play open strings.

Unfortunately, there was one problem that Zeroshot hadn’t foreseen: string height. When a string is open between the bridge and the nut, it rests at a constant and predictable height below the pick. But when a magnet holds a string down, the distance from the bridge changes and so does the angle. Geometry is a cruel mistress, lowering the string below its resting position and that can be too far for the pick.

Luckily, Zeroshot was able to solve this problem in code by telling the servo to keep dropping the pick when a solenoid is holding a string. To celebrate this achievement, Zeroshot demonstrated the robot’s capabilities by having it play Celine Dion’s upbeat hit “My Heart Will Go On.”

By Olivia

Leave a Reply

Your email address will not be published. Required fields are marked *