VHS Group project - Multiplayer Pinball

I am helping on this project with the controls system and lighting.

The requirements

  • All three player panels will need 9 outputs, 15 inputs each. (Total of 27 outputs, 45 inputs, more is better) The outputs must drive 5v 20ma replays, the inputs are normally open limits switches.
  • The status of the inputs must be read by the central device running python.
  • The outputs must be controllable by the same central device running python with a 1 sec switching frequency.

The plan

At first I wanted to use a Arduino pro mini per player board and connect them to a central bus that would be read by the Raspberry PI. The main reason that I wanted to go this route is that I have a few dozen Arduino pro mins with screw terminals already, less equipment to buy. The problem is that the Arduino pro mini only has 20 pins per board. I could multiplex the inputs but I wanted to keep the wiring simple.

The Arduino mega 2560 has 54 I/O pins and should be more then enough for all the boards together. The mega can be purchased for as low as $7 USD from AliExpress. A sensor shield that breaks out all the pins on the Mega costs an extra $6. I was hoping for a screw terminal shield for the mega but there don’t seem to be any available on AliExpress. The boards are so cheap I will probably end up getting three of each board and installing a board on each “player panel”. This will give me lots of extra I/O if we decide that we need it, and redundancy if one of the Arduinos fails on site.

Next I plan to install the firmata firmware on the Arduinos. This will give me serial access to configure and access the I/O pins on the Arduinos. The great thing about the Firmata protocol is that I can change the way the I/O pins work on the Arduino remotely via serial commands. The same firmware can be install on all the different Arduinos making them dumb I/O boards.

The three Ardunios will be connected via USB serial to a powered USB hub. The Powered USB hub is connected to a central Raspberry PI. The Raspberry PI will then be running python, and the pyFirmata python library.

I plan on using the LED strips that I purchased from AliExpress for the dome project. We are still thinking about how many LEDS we will need. We are guessing that we will need less then 480 pixels.

As always suggestions are welcome.