For a (crazy) upcoming school project I am converting a piano to be a computer-controlled player piano. I am currently planning on using solenoids mounted under the end of the keys (action side obviously, like Yamaha's DiskClavier system as well as the PianoDisc system).
I am planning on using an Arduino to take MIDI signals and drive all of the solenoids. I need PWM on the solenoids so that I can control the velocity at which the solenoids hit the keys, thereby determining the volume. The problem is, its no easy task to control, using PWM, 88 solenoids using an Arduino.
I was think I could use a generic PWM generator to generate the signals, and there are 16-channel servo PWM generator boards out there that are VERY cheap. However, servos require a very specific type of signal that is rather different that generic PWM which I need here. Does anyone know if these will work to generate generic PWM? (link: http://www.ebay.com/itm/PCA9685-16-Channel-12-bit-PWM-Servo-motor-Driver-I2C-Module-For-Arduino-Robot-/272557014281?hash=item3f75a9fd09:g:6SIAAOSwax5Yozsi)
Once I get a PWM signal, can I just use a MOSFET and diode (for kickback-voltage protection) to drive the solenoids directly?
Anything I'm completely missing here?
Any help and guidance is greatly appreciated.
P.S. I know I'm a little bit crazy trying to do this.