Skip to content

Features

Andreas Rottach edited this page Apr 11, 2018 · 11 revisions

The LEDTableEngine is a flexible C++ framework for linux-based LED-Matrix-Displays that provides a simple programming interfaces to implement almost any kind of (multi-player!) game or visualization technique.

Tested and running with Raspberry Pi B and Raspberry Pi 3 B+! Simulation environment tested with Ubuntu 16.04!

Displays

The modular structure enables the support of different types of displays.

  • Desktop-Rendering: As simulation environment for easy development of new applications directly on your computer! The Desktop environment is realized by using the SDL2 and SDL2Image libraries for rendering.
  • LED-Matrix-Rendering: Supports any kind of LED-Controller (tested with Diamex LED-Player S2) that supports the TPM2-Protocol. Currently a zig-zag layout of leds is implemented (line-wise, column-wise). The LED matrix can be mirrored along the x and the y dimension.

Input Devices

Similar to the display modules, the system supports different types of input devices. Keymappings can be modified in the configuration file.

  • USB-Keyboard: Allows you to control your LED matrix with a USB-Keyboard. Currently, keys for two players are supported on a single keyboard.
  • Custom I2C-Controllers: The actual Matrix-Table should be controlled by actual game controllers. Therefore I designed, 3D-printed and built two custom controllers with just a single circuit board inside.
  • Touch-Input: This feature is NOT implemented but planned for the future! If your LED-Matrix-Table contains IR-LEDs and -Sensors in each cell, the engine could be able to detect objects that cover individual cells. Therefore you have some kind of touch sensitive table which will provide a huge number of new possibilities.

Other Features

  • The engine also supports audio output by using the SDL2-Library. Currently only a specific audio format (WAV) with very fixed settings is supported. Have a look at audio.cpp.
  • The engine also supports a few basic settings (brightness, player count) that can be changed via the integrated menu structure. Currently, they are not persistent but this is on the TODO-list!
  • Automated Standby: Each application is able to go into standby. Currently this is only active in text menus. After a short period of time, where no user interaction occurred, the display goes black and the engine waits for a new user input to come back to life!
  • Palette vs RGB color mode: The engine supports two color modes. A more flexible RGB color mode and a restricted but easier palette color mode where a fixed color palette is used for rendering the final image.

Applications

Here is a overview over the currently implemented applications. For a more detailed (and maybe more up-to-date) list, have a look at Application Documentation.

Games

  • Snake
  • Pong
  • Tetris
  • FlappyBird
  • Minesweeper
  • Conway's game of life
  • Connect Four

Visualization

  • Fractal visualization
  • Image slide show
  • Animations
  • Board Games
  • Clock
  • TMP2-Playback

Others

  • Menu App
  • Shutdown App
  • Update App

Clone this wiki locally