Here‘s Drix’s code for the Teensyduino powering the four micro servos! I built most of the player, using servos, guitar picks, wooden dowels, and copper and steel wire. (There are also pennies between the servos, to space them correctly.)
Inspiration: Music and robots, of course :)
I recently acquired a new uke (a $40 Makala Dolphin) because this one’s action is too high, meaning that the strings are too high off the fingerboard. So, you can tune the strings to one another, but when you try to play other notes using the frets, it all goes sideways. The tension changes too much, and everything you play is sharp (but not in an even way, and the strings are still normally tuned). So, we use only a metal slide to change the pitch of the notes (as suggested by Ken, who was sitting in on the Science Box team).
- Durability: I chose “thin” Fender picks, because the servos are small and I didn’t want to strip them out with too much physical resistance. This was good, because we have only a scratcher/engraver and not a Dremel to make holes in the picks; however, this also made them flimsy, and they’re cracking.
- Stabilization: I used wooden dowels for much of the structure, because it doesn’t require specialized tools to work with. However, metal would have been much better for stability. The structure started moving away from the strings around 3:30am, and I decided to go to bed, so Cédric used some silver armature wire to secure it to the body as a whole. I added some more dowels and wire in the morning, and it seems stable for now…
We were originally going to 3d-print a robot hand (probably this one) and modify that to use picks for the fingernails. Drix wisely reminded me that for hackathons, simpler is better, and building stuff always takes longer than you expect. Thanks to this sage counsel, I’m sitting here writing this instead of frantically scrambling to finish before our deadline at 13:37.
I attached the servos to each other, and to the uke, before attaching the picks, so that I could position them well. Lots of learning here; the picks on one side seem slightly higher than the others, and that’s not factoring in the ones that have been crudely trimmed down with clippers so that they’ll play.
This process brought the power of iteration into full focus. My best solution secures the pick to the servo with wire around the little fastening screw, which is then wound around the servo arm and through these holes (made with a tungsten scratcher-engraver thingy).
Let’s talk servos for a second!
A servo is like a rotary motor; however, instead of sending it on/off and power level information, you give it a heading in degrees. Most servos can only rotate 360º, then must stop or return the other way. They generally come with a variety of little heads; as you can see here, the rotating part itself is a little white plastic toothed nubbin that the heads fit onto. Here, we’re using a one-sided arm attachment. You can secure the heads on using a little screw that comes with the servo, and there may also be two or more larger screws, which can be used to fasten the servo to your support structure. (In this case, we’ve used wire instead.)
And another side note: wire is a great structural material for prototyping because you can add tension easily at arbitrary points; just grab it with the pliers and give it a twist. I’ve just used this to pull one side of the servo bank closer to the strings, by adding a copper wire connection between a tension dowel and Drix’s silver structural wire. We turned it on, and I added twists to the wire until the pick sounded loud and clear. I also like this method because it adds cool little lightning bolt shapes to the project. :)
By the way, this is Cosmo Punk, the official mascot of the Space Team (Punkulele and ScienceBox):
Making us proud!
p.s. I SLEPT IN THE AQUARIUM (Drix did not sleep)
Special thanks to Nic Weidinger (for servos and more!) and Ken Fujimoto (for suggesting the slide method of playing).