-
Notifications
You must be signed in to change notification settings - Fork 5
Home
--------------------Under Construction--------------------
This wiki is a compact summary of all features and the required setup instructions to build your own LED-Matrix-Table!
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.
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) that supports the TPM2-Protocol. Currently only a single LED layout is implemented (see setup instructions), but in the future it could be possible to support multiple arrangements of LED strips.
Similar to the display modules, the system supports different types of input devices.
- 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. The instructions and files to build these controllers are listed on Thingiverse. This functionality is only available if you have I2C-tools installed.
- 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 engine/audio.cpp
The engine also supports a few basic settings that can be changed via the integrated menu structure. To give a full overview over the currently implemented applications, I wrote a short summary:
- Snake: The basic snake game, but with multi player support! Try to kill other snakes and look for food to grow!
- Pong: A simple Pong implementation that allows player vs. AI or player vs. player matches.
- Tetris:
- Menu application: Allows hierarchical menus and sub-menus. Each menu entry can have an individual implementation (adjust settings, start other apps,..)