Moving Parts is run using force sensing resistors,
Arduino, and Processing.

Physical
Most of the table, including the plunger and buttons, is made
of wood.

The buttons are set into the table, and at the end of each button
is a spring. When the player presses the button, the spring pushes
against an FSR, which experiences a change in resistance. This
allows the players full control of flipper position.


image of button out of context

The plungers are a work in progress. The dowel of the plunger
is inside a spring, which is attached to the table. When a player
pulls back on the plunger, the end of the dowel is removed from
an FSR, and when the plunger is released, the end of the plunger
presses against the FSR. Currently these are only functioning
as glorified switches, but I've been working on some different
sensors to register the force of the plunger at the moment
of impact.

The resistance of the six FSRs is measured by an Arduino
microcontroller and sent as an array over the serial port
into the Processing program.

Code
The program is written in Processing using (among others)
the OpenGL library, and it would not have been possible without
Daniel Shiffman's Nature of Code class.

You can download the program as an application here.
(The file is pretty large, but it contains applications for
OSX, windows, and linux, as well as some thoroughly uncommented
source code.)