-
Notifications
You must be signed in to change notification settings - Fork 5
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!
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.
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.
- 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.
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.
- Snake
- Pong
- Tetris
- FlappyBird
- Minesweeper
- Conway's game of life
- Connect Four
- Fractal visualization
- Image slide show
- Animations
- Board Games
- Clock
- TMP2-Playback
- Menu App
- Shutdown App
- Update App