Our electrical system consists primarily of 36 servos controlled by an Arduino Mega. They are powered in five groups, each one connected to a voltage regulator with a 9V power source.
We purchased 38 Hextronik HXT900 servos from HobbyKing. Halfway through the project, we were waiting for the servos to ship, and needed some immediately, so we bought 5 Hossen SG90 servos from Amazon. These two brands of servos are very similar: high-torque and equivalent dimensions. The Hextronik servos have slightly more torque than the Hossen servos, although for our purposes we found the difference to be negligible.
The current system includes thirty-six servos, which span three octaves on the keyboard.
To send the control signals to the motors, we used an Arduino Mega. We chose the Mega because it has more SRAM memory, more EEPROM memory, and more digital output pins than the Arduino Uno we began prototyping with. The Mega is powered via USB, and it provides PWM control signals to each servo.
We found that 36 servos were drawing too much current for the Arduino to power them all from the same rails. We solved this problem by using voltage regulators, which connect to a 9V wall wart and pass 5V into the rails, to power a group of seven or eight servos. The capacitors between the pins of the regulator prevent servo twitching. Calculating how much current our motors draw allowed us to determine that we can power a maximum of eight servos per group. Then, we connected the digital output pins of the Arduino to each motor individually so we were able to use distinct PWM signals to control each servo.
The diagram to the right reflects one of five power groups we created.
We had originally planned on soldering our servo connections to a protoboard instead of having them in a breadboard, and powering them simply from the Arduino 5V rails. However, after soldering, we found two problems interfering with the system: some of our solder joints had shorts, and our servos were drawing too much power from the Arduino.
We solved these problems somewhat simultaneously: first by backtracking and deciding to stay with a solderless breadboard setup, and next by re-evaluating our power system. We chose to use 5V voltage regulators to power groups of servos, in order to overcome the power problem. The re-design of the electrical system was a whirlwind adventure in which we learned a lot about different types of power sources, electrical connections, and rapid prototyping.