Pinball games have managed to stay very popular, and at some point, every new tech seems to find its way into a pinball machine.
Ian Cole set himself up for a lot of trouble when he bought the playfield of a pinball machine to turn into an art piece. You see, Ian has two young boys, in whom he has instilled the ideals of a maker. He initially thought he would simply animate some lighting effects with an Arduino and hang it on the wall, but one of his kids asked "Can you make it play?"
At this point, he was faced with a decision. There are only two possible answers to this and they both start with "yes."
Yes, I could, but I'm not going to.
You can guess how that conversation ended. Ian lost his fancy piece of artwork and gained a project.
He started out with illumination. He used an Arduino for all the lamp timing and effects so that his Raspberry Pi was freed up for other things. He kept the standard lamps in place, so he also had to create a transistor array to handle the voltage. After that, he began to use the Raspberry Pi for the solenoids, but ran into a problem.
Apparently, you can turn off the Pi but leave a pin "high," allowing a solenoid to sit with full power applied until it is ruined. It's a simple oversight due to Ian's experience being almost exclusively with the Arduino, which does not do this. He ended up switching the solenoids to the Arduino as well -- a switch that also gave him somewhat better timing on the solenoids.
Now that he had the basic functions of the play field in shape, he had to move on to the next level, which was how to make all of this a playable game. The Raspberry Pi becomes the puppet master here. All data for controlling lights an solenoids is sent out to the Arduino and all sensors are read back in. It also handles displaying artwork and scores on a 24" 1080p LCD.
Here is what he lists the Raspberry Pi as doing:
reading switches from the lamp / switch Arduino when that slave pulls an interrupt pin hi (read by Pi GPIO after a level shifter)
sending commands to the lamp / switch Arduino to turn on / off specific lights
sending commands to the solenoid driver to fire specific solenoids
Although it is playable, and being used a lot, it is still a work in progress. He keeps working on cleaning up the wiring, mounting things in a more organized fashion, and even adding features such as a small external screen for scoring. His blog has many pictures of the construction and circuits, as well as videos of several of his accomplishments. Be sure to check it as he seems to be updating it from time to time.