I’ve decided to build a Pinball Machine. I’ll be utilizing the Raspberry Pi and an Arduino. The Arduino is going to do the heavy lifting, handling the timing for the LED, switches and Solenoids. These tasks are timing sensitive but otherwise not too complicated, the Raspberry Pi is intended to be the brains driving it. It’ll keep track of the score, as well as deal with the general display of information for the player. The score, text messages, taunts, sounds. Anything that won’t directly affect game play.
The Arduino will be programmed into a state machine, the logical flow of the game (various modes) will be handled by the Raspberry Pi, telling the Arduino which mode it should be in.
Pinball Machine Complications:
1. Solenoids used for Flippers need around 48V, Bumpers are similar, although lower voltage solenoids are potentially workable here. 48V DC power supplies are not the easiest things to get ahold of. It turns out they are commonly used by CNC machines though, this means that if we look for CNC power supplies we’ll find potentially viable supplies for our purposes. Ebay turns up a couple of sellers, so for $50 shipped I can get a 48V ~7A power supply. Perfect.
2. LEDs – I’ll need lots of LEDs, and appropriate power for them too. There’s a few ways to deal with LEDs and power. The best option is to cycle through all the LEDs at a high-enough rate to provide them power, and persistence-of-vision will make it look like they are all on at the same time. This will be the primary method to limit the power usage. I’d like to use a lot of tricolour LEDs though, these provide the most flexibility on the board, although they take up a lot of output pins and driving them using PWM could get complicated. (PWM is required to provide a range of colours, solid colours are possible without PWM). I’ll do some tests to determine whether I can drive enough LEDs fast enough to support PWM and if it works out then I’ll figure out how many outputs I’ll need for all the tricolour LEDs I’ll need. If we assume 64 Lights, I’d need 64*3, or 192 Digital IO output to control the LEDs colour. That’s a lot of IO.
At 8 IO per serial/latch I’d need 24 chips to support that much, and I’d probably start running into timing / latency issues. There’s alternatives with LED+control chips, they add to the price but may be viable, they would reduce the IO substantially as they can typically by daisy chained together.