Results:
In the process of creating the project, we ran into a number of design problems. The first of these was the inability to use the stepper motors that we had designed around. The stepper motors were to be used for precise movement of the hands along the keyboard, but we found them to not be nearly powerful enough for the application. Because of this, we had to alter the design to use more powerful gear motors, which do not provide reliable accuracy. We were forced to implement feedback which we implemented in the form of a light sensor that reads lines of reflective tape along the track. This design was much more difficult to implement and required a lot of calibration in order to work reliably.
Another drawback occurred because of the sheert weight of the numerous solenoids on the left hand, with 4 of them on the accidental keys. This caused a large torque on the drawer slides and made the friction too great for the gears to slide them quickly. The solution for this involved mounting another drawer slide above the first and attaching the left hand to both of them, which alleviated the strain from the first.
We also had a lot of trouble with accomodating the necessary power to the system. Some of the solenoids require over an amp of current, and with 12 solenoids, we certainly needed external power sources. We ended up using three 12V power sources, each connected to four solenoids. In wiring these, we found that h-bridges did not function with that much current and transistors would drop too much voltage across them to power the solenoids. We also needed to use isolation between the expansion board and the external power supplies so that switching the solenoids on did not affect the ground voltage of the expansion board and the devices on it. The solution was to use 5V relays, which act as a switch that completes a circuit when 5 volts is applied, similar to a transistor.