RGB LED Pixel Touch Sensitive Games Table – Part 1

Introducing my latest project using Flowcode and E-blocks. The RGB LED pixel touch table.


My brief was simple, I wanted a new coffee table for my front room and decided to build my own. As I was building my own I could add in some electronics to make the table more functional and useful. When I say useful I probably mean entertaining.

Here are some of the features I wanted to be part of the table design.

  • Array of LEDs
  • IR Touch sensitivity for each LED
  • Audio Output
  • SD Card storage
  • Good quality wooden cabinet
  • Fast processor
  • Bluetooth / WIFI connectivity

With the table’s features in mind here is a list of potential applications I want to be able to run on the table.

  • Tetris
  • Pong
  • Air Hockey
  • Tic Tac Toe
  • Countdown Timer
  • Various Visualisations

Each LED pixel contains a 8-bit PIC microcontroller with a hardware serial UART, a RGB LED, a IR emitter and receiver.

Each LED is connected in turn using the serial UART peripheral. The transmit pin of the first node is connected to the receive pin of the second node and so on. The pixels are all controlled by a master which sends out commands on the serial bus and waits for the command to ripple through the nodes and return back to the master.

Each LED node is programmed with simple firmware to control the RGB LED and take samples from the IR sensor. The IR sensor data is filtered to ensure a nice stable reading when the master requests it. The node firmware supports the following command set via the serial UART.

Here is a photo with the LED nodes exposed.

Using Flowcode I created a simulation to allow me to simulate the end table. Here is a version of Tetris running on the simulated table. Note that this is fully playable even with the free version of Flowcode using the cursor keys on your keyboard.

Here is a link to the Flowcode Tetris example and to the forum discussion.

Here is the end result of playing a game of Tetris on the table hardware.

The table’s Master node is done using a EB091 for it’s fast processor speed and high peripheral count. The ECIO40P16 would also be a viable host target. The audio output is streamed out using the EB037 SD Card board and output using the EB086 DSP output board with it’s high speed 16-bit DAC.

A video showing using a graphical LCD to test the tables IR touch output.

Next time I will go more into detail on the table build process, the electronics and how the menu and games have been put together.

Here is a video of me playing Tetris in the Flowcode simulation. Can you beat my score?

Download Flowcode now to find out.

9,431 total views, 3 views today

Leave a Reply