Skip to main content
Get your brand new Wikispaces Classroom now
and do "back to school" in style.
Pages and Files
IA01 Background Survey - 1/29
IA02 Arduino Graph - 2/13
IA03 Partner Eval for MPA01 - 3/10
IA04 Partner Eval for MPA02 - 4/02
IA05 Partner Eval for MPA03 - 4/21
MPA01 Input Inventions - 3/3
MPA02 High-Low Tech - 3/26
MPA03 Kinects & Motors - 4/16
Semester Project Assignments
SPA01 Project Pitch
SPA02 Project Presentation
SPA03 Project Instructable
SPA04 Project Video
SPA05 Project Artifact
RA01 Tangible Bits - 1/29
RA02 Arduino Intro - 2/3
RA03 Electricity Intro - 2/13
RA04 Switches (p 39-59) - 2/19
RA05 Input Technology - 2/26
RA05 Sensor-Based Input - 2/26
RA06 Prototyping 3/5
Liquid Lights (mini-project 2)
Anis Abboud, Max Potasznik
Lights Pong is a tangible version of the classic game
. The rules are pretty simple. In the starting position, some of the lights may be on. The goal is to get all the lights on. Clicking a light
(on→off / off
it and its adjacent lights
In our version of the game, the buttons are water cups, pressed by inserting your finger into the water.
The following 5 images, illustrate the complete process of a game play, starting from an arbitrary position, until turning all the lights on and winning the game.
After winning, all the lights will blink to denote that. If you want to play a different level, hit the new level button:
If you are stuck, insert a coin to get a hint. This will flash the buttons that you should click to win the game.
Inside the box, there is a QRD1114 infrared sensor, whose analog input value will go up when covered by the coin, triggering the hint.
This infrared sensor is connected to the Arduino through its own breadboard in our project as you can see in the image above.
However, to make it easier for future reference, if you are considering to use this
in your project, below is an illustration of a circuit containing only the sensor, which is connected to analog input pin 5.
To play the game, you should be wearing the conductive wristband, that is made out of conductive fabric:
The input from the wristband is read as an analog signal, similarly to how MaKey MaKey works:
The image below shows how the wires are connected to the Arduino.
The white wires connect the analog input pins in Arduino to the breadboard.
From there, these are each connected to a 1 mega ohm resistor, which connects them to power (5V), serving as a pull-up resistor.
These are also connected to the cups through the yellow wires which go into the water cups.
The wristband is connected to ground, so when touching the water, you complete a circuit that goes to ground, thus reducing the analog input values. This way we know what was touched!
The black wires connect the LEDs to ground, and the red ones connect their other leg to the Arduino digital output pins.
All the code runs on Arduino. The snippet below shows the mathematical idea behind finding the solution (for the hint).
The mathematical formulas were derived through linear algebra and matrix reductions, in the field Z
9xClear shot cups
Gorilla Glue Epoxy (for waterproofing the cups after we drilled holes in them for the wires)
and cardboard (as a container)
(for new level)
QRD1114 Optical Detector / Phototransistor infrared sensor
(for detecting coin insertion)
(for the wristband)
2 breadboards, resistors, and lots of wires.
Tape, glue, etc.
There were several challenges that were specific to our project. The first challenge was caused by the use of water as our input medium. When using natural substances like water as input in a "Makey-Makey" fashion, it is important to set the sensitivity thresholds based off the actual conductivity of the substance. This was challenging for us because testing with water is potentially destructive if the hardware isn't constructed carefully. While testing by touching either our hands or wire leads to the input contacts, we experienced much different voltage response than we did during testing using water. This should be expected but it is an important factor to consider when using low-tech items.
In addition, we experienced different "conductivity" between our hands. Max's hands are a bit fatter than Anis', so they were better connected to the wristband (which was tighter for this reason), leading to a lower resistance.
The second challenge was caused primarily by our choice of container and lack of experience building non-trivial circuits. We originally intended to use our plastic parts box as the entire enclosure but once we began to wire each cup into the breadboard, we quickly realized the wires would not fit into the space without extreme force or care. We were worried that the upward pressure of the wires on the bottom of the cups would either detach the cups from the lid or push the LEDs through the bottom of the cups and cause leaks. If we had to do this over again, we would consolidate wires into busses and run them along the surface of the container so that each wire would bend in a designated location (i.e. the hinge point).
Finally, we did face a challenge in that several parts we used including the IR sensor and the push button weren't well documented. We overcame this challenge by breaking out the multi-meter and testing each parts behavior with voltage applied.
Thoughts about the project
This project was fun because it allowed us to implement something old in a new way. We have worked on revisiting existing games in previous work but this project allowed us to find and build a new way to play an old game.
While building this project, we also realized the value of rapid prototyping. Using water as an input medium is non-standard so it required a lot of experimentation regarding the proper thresholds in software. Before building the full circuit, we created a model of our cup/buttons using a larger plastic cup to test everything from our waterproofing strategy to the circuit behavior. This initial testing was crucial to our success.
The Arduino code can be found at
We learned how to use human touch as input from this video:
, which pointed us to the following moving-average filter small library:
A version of the game can be played on Android (not ours):
help on how to format text
Turn off "Getting Started"