From the beginning of this semester, our concept for our 'Jump On The Line' (JOTL) game remained almost unchanged. The design described on the products page is virtually identically to the game proposed in the early weeks of this semester. Some features were added/removed of course, but as a whole, the concept remained untouched. The aspect of the project that did change throughout the semester, was how this original concept could be effectively realised.

I did extensive work throughout the semester on this project, below are a few tasks I was responsible for:

  • Developing concepts,
  • Researching how to implement Jump On The Line,
  • Designing the frames,
  • Researching the many types of plastic,
  • Contact plastic retailers to get the best price,
  • Researching types of illumination,
  • Researching how the game could be powered,
  • Researching what kind of LEDs were needeed,
  • Designing the pressure sensors (all designs),
  • Design the wiring for the LEDs and Pressure Sensors,
  • Understanding the keyboard IC,
  • Devising a method for controlling the LEDs in the floor,
  • Researching Charlieplexing, Multiplexing and Shift Registers,
  • Researching Transistors,
  • Writing code for the Phidget,
  • Solving all electrical problems (with the help of the people ETSG)
  • Soldering all IC into a veroboard,
  • And a heck of a lot of driving.

Some of the group tasks I contributed to were:

  • Soldering LEDs
  • Soldering connections to keyboard IC
  • Attaching alfoil tape for pressure sensors
  • Wiring up pressure sensors
  • Spraying perpex with frosted glass spray
  • Attaching all the LEDs to the Phidget circuit.

This page is divided up and details the several of the design choices and research that I made and conducted throughout the projects development. My blog contains more detailed information about these design decisions.

Jump To:

1. Physical Game Design

This section focuses on researching how the game itself could be realised. The first method researched was to use a projector or some other form of projected light (e.g. several light bulbs). The light source would project the game onto a pressure sensitive floor. This would be cheap and easy to implement. However, positioning the projector would be very difficult. Any player standing near the light source would block out the light, and thus the game. This would be very detrimental to other players on the game board.

The second method researched was based on using a silicone rubber sheeting and inserting LEDs into the sides of the rubber. The silicone rubber is very strong, enjoyable to stand/jump on and illuminates fairly easily. However, silicone rubber was $300/m2 so this proved to be far too expensive to create a long enough floor.

The third method I came across was seen in this blog from Washington University which showed the construction of an LED dance floor. This method involved creating wooden lattice frames, covering them in a sheet of polycarbonate, and lighting the dance floor from beneath. This method proved to be the most feasible as it was within our budget (around $330 for 5m of 6mm thick perspex) and illuminating the panels from beneath removed the shadow casting which was the major problem with using the projector.

(Back to Top)

2. Illumination

After deciding that we wanted to use illumination from below the frame (not using projected light) we then had to decide between different methods of illumination.

The first method considered was fibre optics. Fibre optics were a good option as the illuminated fibre cable could cover a large area. However, they proved to be very expensive.

Using incandescent bulbs was another options considered. They had the benefit of being able to produce a large amount of light and being very affordable. However, they required a large number of volts to power them. This would require us to get a very expensive power supply or use mains power (which is very dangerous).

The final option considered was LEDs. LEDs were cheap to purchase, could deliver a reasonable amount of light and did not require a lot of power to illuminate them. LED illuminsation was used in one of the related works from The Lightspace Corporation. This was ultimately the type of illumination chosen. However, reflecting on this decision, perhaps using another form of illumination would have been a wiser choice. We had originally assumed that 4 LEDs would be sufficient to light up a whole panel. When we received our LEDs we discovered that placing them in the centre of the panel, they were not nearly bright enough to light up a panel. We then changed our design so that 16 LEDs were placed around the edge of each panel. This created a more aesthetically pleasing effect however, require much more soldering, and thus time, than we anticipated.

(Back to Top)

3. Pressure Sensors

The pressure pad designs went through the most number of iterations of any aspect of the project. The original concept called for analog pressure sensors that could determine how much force a person is using to press down. However, through some testing, we discovered that digital pressure sensors would be sufficient, and far easier to implement. Dance Dance revolution, one of the related works, also uses digital pressure sensors.

Design One

Alfoil was attached to the wooden frame and to the underside of the plastic sheet. Pieces of sponge were used to separate the two strips of alfoil. Wires were inserted into each piece of alfoil. When someone stood on the plastic sheet, the sponge would compress, the pieces of alfoil would touch and the pressure sensor would register a press.

Design 1 (Back to Top)

Design Two

Design One was fairly simple however, as wires were attached to the bottom side of the plastic sheet, this meant the sheet could not be removed. This was a large problem as it meant the plastic could not be removed easily if something went wrong with the wiring inside the panel. Design 2 sought to solve that problem by having both pieces of wire attached to the wooden frame. In this design, we also switched to using aluminium tape (similar to alfoil but with adhesive on one side). In this design, we attached a piece of aluminium tape to the bottom side of the plastic and two pieces of tape to the wood. These two pieces were separated by a very small large and each had a wire inserted into them. When someone stepped on the plastic, the top piece of tape would connect the two other pieces of tape, and the pressure sensor would register a press. Unfortunately, this method proved too inaccurate to use. Due to the plastics ability to bend, sometimes the two pieces of alfoil tape would not be connected.

Design 2 (Back to Top)

Design Three

Design 3 sought to to alter Design 1 so that no wires were attached to the underside of the plastic. For Design 3, no tape was placed onto the underside of the plastic. Instead, a piece of cardboard with tape on its underside was placed onto of the pieces of sponge. A wire was then attached into this piece of cardboard. This design worked very well, and allowed the removal of the plastic sheets whenever necessary.

Design 2 (Back to Top)
(Back to Top)

4. Controlling It All

Flash

As music formed an integral part of our concept, we needed to choose a programming language that allowed us to handle this with ease. Adobe Flash and more specifically, Actionscript 3 was chosen as it was easy to write programs quickly and work with music. Check out the flash demo.

Phidget VS Arduino

Because of my decision to use Flash, it was necessary to choose some kind of microcontroller that could easily interface with Flash. I researched both Phidgets and Arduinos for this task. Though Arduinos had the benefit of being more powerful, having more pins and not requiring a constant computer connection, Phidgets were ultimately chosen as they provided libraries written for Flash which made them far easier to use and control using the PC.

(Back to Top)

Controlling the Input

We needed a way of easily identifying in Flash, which panels had been pressed. Two methods were chosen. The first method used a USB keyboard. The internal IC from a keyboard was removed. The IC consisted of a number of pins. When two of these pins were joined together, the computer registered a keypress. For example, if pin 1 and pin 8 were connected, the computer would register the '2' key as being pressed. If they remained connected, the computer would continue to register '2' keypresses until they were disconnected. Wires were connected from the IC's pins to the pressure sensors. For Example, pin 1 and pin 8 were connected to the pressure sensors in panel 1. When a user stepped on panel 1, the computer would register this as the '5' key being pressed.

The keyboard method was only used for 8 of the panels. In the final 8 panels, their pressure sensors were connected to the Phidget's inputs. This method proved to be far more reliable than the keyboard method.

(Back to Top)

Controlling the Output

The Phidgets Limited Output Ports

One of the major problems with choosing the Phidgets is the fact that they have only 8 output pins. Each pin could only deliver around 5V and 40mA with a max total output of around 200mA. As there were only 8 pins, only 8 different panels could be controlled. For our design, we needed to be able to control 20 panels with two colours each (yellow and green) - 40 'panels' to control. Also, with the electrical output from the Phidget, each Phidget could only light up 20 LEDs at one time. As each panel contained 16 LEDs, this meant only 1 single panel could be lit up at 1 time. This was not acceptable.

And so began my journey to devise a method for:

  • Controlling 40 individual panels, and
  • Lighting up to 640 LEDs concurrently.

Three techniques were studied in detail to determine which would be the most effective method.

(Back to Top)

Technique 1: Charlieplexing

Charlieplexing is a technique that allows n-pins to be able to drive n^2-n LEDs. Charlieplexing relies on the biased nature of LEDs. That is, it utilizes the fact that current can only pass one way through an LED. It also relies on pins on the micro-controller being able to have three states: 5V, 0V and input. By connecting the LEDs in an array, and altering the states of the pins, Charlieplexing allows you to select individual LEDs to light. However, there were several reasons why Charlieplexing could not be used in this project. Firstly, Charlieplexing can only light one LED or one segment of connected LEDs at a time. This meant that if we had two panels that needed to be illuminated, we would have to switch between lighting each panel very quickly. In order for this not to be noticable, the refresh rate would have to be greater than 50Hz. Though doable, introducing more and more panels that needed to be lit at once introduced the chance of 'flicker'. The second, and main reason why Charlieplexing could not be used, is that the Phidget do not have the ability to alter the state of their pins. They have set pins designated for input and output and these cannot be changed.

(Back to Top)

Technique 2: Multiplexing

Multiplexing is similar to Charlieplexing in many respects. Multipexing involves arranging the LEDs in an grid, and connecting together each row of LEDs' anodes and each column of LEDs' cathodes. Multiplexed displays can be seen in everyday life. A typical VGA 1024x768 computer screen would require 785,433 wires to control each individual pixel in a non-multiplexed solution. Using multiplexing, only 1792 wires are needed. Multiplexing also allows the incorporation of transistors. This allows us to use an external power supply to power the LEDs. However, multiplexing was not chosen for this project for two main reasons. Firstly, it still can suffer from the same flicker visible in Charlieplexing. Secondly, to control 9 LED segments, 6 pins are needed. Unlike charlieplexing, separate pins need to be devoted to input and output and this dramatically increases the pin count. This number can be brought down by multiplexing the multiplexed LED array.

(Back to Top)

Technique 3: Shift Registers

Shift registers are a type of integrated circuit (IC) consisting of a cascade of flip flops that share the same clock. In n-bit serial-in, parallel-out shift registers, n-bits of serial data can be shifted into the register and outputted in n-bit parallel format. Shift registers were chosen as the best method for controlling our games LEDs. An 8-bit shift register (that is, a shift register that can control 8 panels) requires only 3 pins from the Phidget - one for the clock (or shift in), one for the load (or output to parallel) and one for the data. Whenever a HIGH is set on the clock pin, the value on the data pin is shifted into the register. Two 8-bit shift registers can be chained together, so that 16 panels could be controlled with only 3 pins. This meant that only 6 pins were needed to light up both yellow and green for 16 panels. We decided that this was a good compromise and changed our design to only light up 16 panels, instead of the full 20. The parallel output of our shift registers was connected to an 8-bit transistor array. This allowed me to power the LEDs from an external power supply, and not from the Phidget.

(Back to Top)

5. Putting It All Together

Time Constraints

Within the given time frame, we were able to complete half of the 5m game floor - complete with LEDs and pressure sensors. Upon realising there was not enough time to complete the second half (as our second order of LEDs was delayed), we decided to brainstorm ways we could quickly finish the second half so we could still fully illustrate our concept. We decided to use a projected light method (from a projector) for the second half. This half still utilised the same frame and pressure sensors design as the first half, only the illumination method was changed.

Our LED shippment being delayed was a burden as well as a blessing. Having both methods of illumination allowed us to evaluate which method users actually preferred.

(Back to Top)

The Exhibit

I was able to finish all of the coding in Flash for the Exhibit at The Edge on the 1st of June. We were very pleased with the results. To see photos from the Exhibit, check out the Product page.

For more information about the design process, check out my blog.

(Back to Top)