[Interactive Devices] Pong Controller

Pong Controller
By Hannah Kwah, Joan Li & Putri Dina

The main objective of this project is to create a controller for the Pong game using at least two sensors and make the player ‘struggle’ as he/she plays the game.

Brainstorm Sketches

Idea #1 – Voice Controller
The first idea is to have a voice-based controller where the pong pedal is activated by the pitch produced by users. A knob is also used for them to control the speed of the pedal as it goes up and down.

Idea #2 – Balancing Controller
The second idea is to use pressure sensors as a user steps on a board which lifts up according to where he applies his weight on. Light sensors are placed on each end of the board which user has to step on to activate the pressure sensors.

Idea #3 – Blob Controller
The next idea is to create a blob-like system using light sensors. There will be holes on a board and use has to cover those holes to move the pedal up and down. A pressure sensor is also used at the side for them to control the speed of the pedal.

Idea #4 – Tilt Controller
The last idea is have a see-saw-like device which uses a tilt sensor where user has to step on to control the pedals. We then realised this idea was quite similar to our second one so we scrapped it off the list.

Final Sketch
After much consideration, we decided to go for the second idea but tweaked the concept slightly. The device purely tests the user’s balancing skills and concentrating skills as he plays the Pong game.
A balance board is used as the main base of the device and the iCubex driver will be placed on the underside. An additional plank is placed on the board which represents the physical form of the Pong paddle. On the plank, a tilt sensor (Orient3D) is positioned in the middle to get the central point/value.

Photoresistors are placed on each end of the plank for user to cover using their feet if they want to activate the tilt sensor. 

First Prototype
The first step that we took was to get feedbacks from the tilt sensor. We applied the ctlin and sel functions to get three different values : -1 for left, 0 for middle point and 1 for right.

Then, we decided to create a range of values for the three tilt stages by using split. Since we did not have the physical prototype of the board yet, we estimated the angles of the tilt sensor to activate certain stages. 

After tidying up the programme, we also tried get a second player to play the first prototype by duplicating the controller.

The next problem that we faced was disabling the tilt sensors. Our plan was to use the photoresistor sensor (labeled as control 6) to activate the tilt sensor (labeled as control 3). Otherwise, user would not be able to play the game until he closes control 6.

Second Prototype
The next stage was building the physical prototype as proposed. Now that we had the actual thing, we were able to get accurate range values of the tilting stages. We had to do some trial and error for the Pong paddle to move up and down smoothly.

Final Prototype
To finalize our Pong controller prototype, we had to combine both the tilt and photoresistor sensors so they were able to communicate to each other.

We implemented a gate right after the photoresistor control in such a way that only when Control 6 is activated, Control 3 will be activated as well. Otherwise, the bangs under Control 3 will not work.

Class Demonstration

Final Video Documentation


Published by


Believes in creating works that someone can not only see or touch but be part of, to be within them.

Leave a Reply