Thoughts on the laser cut structure design

A project log for CasioKeyBot

This funky Arduino-powered robot adds MIDI capability to an old Casio SA-21 keyboard.

igor-angstIgor Angst 10/06/2018 at 19:160 Comments

This is actually the first assembled object that I have realized using laser cut parts. I had to go through a number of prototypes and bad designs before ending up with the 1.0 arms and support structure. My first version was a robot standing in front of the keyboard, but it would tip over once it pressed down a key. So I came up with the idea to extend the robots base so that I could put the keyboard on top. This turned out to be very effective and it gave the whole thing a very interesting look - form follows function.

I also had some trouble getting the fingers lined up at the exact distance of the small keys - the SA-21 is a toy keyboard with miniature keys. The servos are much bigger (in z direction) than the key-to-key distance. I thought about putting the servos upright behind the manual and having some transmission mechanism, much too complex... Finally I figured out that I could superpose two servos, such that every the motor of every odd key turns in the opposite direction. This way, 8 servos would fit next to each other to cover one octave.

The last thing to construct was the actual key pressing mechanism. The problem is that even micro servos have quite a torque and pressing down a key beyond the playing angle would simply break the whole mechanism, I had some fingers flying around my ears. I first thought about integrating torsion springs into the fingers but couldn't find springs with a goof form factor for my purposes. The final solution to this is a combination of hardware and configuration: I tested different laser cut wooden S-shaped fingers that act like a spring in order to amortize the last few millimeters when pressing down a key. I went through multiple designs with varying material thickness and shapes until finding a good compromise between robustness and flexibility.

Secondly, I integrated a configuration mode in the client software, such that the upper and lower angles of each servo can be configured separately for each finger using a MIDI controller nob. This allows fine-tuning each finger such that it just gently presses down the key without destroying itself during the performance.

Finally, I had some fun giving the whole thing - the arms, fingers and the support structure - a kind of organic or maybe steampunk-like look.