This is my latest project that I began in the middle of 2020 and completed in early 2021 (which equates to roughly 3-4 months of total development time).
LEDsign is a two part project: one hardware and one software.
The hardware is an Arduino controlling five 8x8 matrix RGB LED panels configured to make a cube shape. The LEDs are individually addressable and can be customized by a user using the Bluetooth connected Android application.
This Android application allows the user to customize the hardware cube by having individual control of each side's 64 RGB LEDs. The user can apply all sorts of effects such as scrolling text, color fade, theater chase and more.
The project features an Arduino Uno housed in a frame I built out of a few K'Nex pieces. Connected to the Arduino is an HC-06 Bluetooth module and five WS2812B RGB LED panels. These panels are arranged into a cube shape around the K'Nex frame. I've then written some Arduino code to be able to interact via Bluetooth with the Android application that I've also built. Most of this project's functionality and user interaction occurs with the app and its features are:
Simple and intuitive UI for building or editing an effects list
Instant effect previewing with the built-in 3D preview (with its own set of touch controls)
Save and load the customized effects lists (called profiles) from system storage
Quick Bluetooth connectivity between application and Arduino
Upload a profile to the Arduino with the click of a button
Customizable application preferences
Help section with both written and video instructions on how to perform any in-app task
About page with list of all external libraries used to create the application
The source code can be viewed on GitHub.
An installable APK can be downloaded from GitHub Releases.
⭐ Featured on the official Processing for Android gallery.
Android/Java for application development (supports Android 9.0+)
Processing for application's 3D sketch
Arduino Uno for hardware support
Bluetooth for application/Arduino communication
Please see the project's GitHub repository README for a complete list of external libraries used.