83 lines
2.9 KiB
Markdown
Executable File
83 lines
2.9 KiB
Markdown
Executable File
# LightSabre
|
|
|
|
LightSabre is a project designed to control WS281x RGB LEDs using the Secondary Memory Interface (SMI) of a Raspberry Pi, tailored for scenography and lighting applications.
|
|
|
|
## Features
|
|
|
|
- **WS281x LED Control:** High-performance driving of addressable RGB LEDs via the Raspberry Pi SMI.
|
|
- **ArtNet Support:** Receives color data over the ArtNet protocol, allowing the Raspberry Pi to function as a DMX controller.
|
|
- **Standalone Mode:** Analyzes audio input from an I2S microphone, performing spectral decomposition to generate dynamic lighting effects.
|
|
- **Web Interface:** Local web server for configuring and tweaking standalone behavior.
|
|
- **MIDI Integration:** Supports real-time control and parameter adjustment via MIDI controllers.
|
|
|
|
## Technology Stack
|
|
|
|
- **Backend:** Written in Rust for robust and efficient controller logic. Some low-level operations may be implemented in C or Assembly (to be determined) for optimal performance.
|
|
- **Frontend:** Built with Vue.js, providing a modern and responsive web interface for configuration and control.
|
|
|
|
## Use Cases
|
|
|
|
- Stage lighting and scenography
|
|
- Interactive art installations
|
|
- Music-synchronized light shows
|
|
|
|
## Getting Started
|
|
|
|
1. **Hardware Requirements**
|
|
- Raspberry Pi (any model with SMI support)
|
|
- WS281x-compatible RGB LED strip
|
|
- I2S microphone (for standalone mode)
|
|
- Optional: MIDI controller
|
|
|
|
### System install
|
|
|
|
The project is design for running on top of [Raspberry Pi OS Lite 32bits](https://www.raspberrypi.com/software/) (formerly Raspbian).
|
|
|
|
Raspberry Pi OS Lite provides device access through file system, networking tools for network interface management, POSIX sockets, native threading, and process control, covering all system features needed by LightSabre.
|
|
|
|
What about Realtime ?
|
|
|
|
#### Network AP / infra
|
|
|
|
`sudo raspi-config`
|
|
|
|
See. `nmcli`
|
|
|
|
`nmcli c up preconfigured`
|
|
|
|
|
|
#### Rust
|
|
After installing Raspberry Pi OS we need to install Rust toolchain:
|
|
```
|
|
sudo apt update
|
|
sudo apt full upgrade -y
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
|
```
|
|
|
|
For more details : https://rustup.rs/
|
|
|
|
#### I2S Microphone
|
|
|
|
[I2S microphone](https://learn.adafruit.com/adafruit-i2s-mems-microphone-breakout/raspberry-pi-wiring-test)
|
|
As we are using [cpal](https://crates.io/crates/cpal) crate to access microphone from alsa, libasound2-dev is necessary:
|
|
|
|
```
|
|
sudo apt install libasound2-dev
|
|
```
|
|
|
|
|
|
## Documentation
|
|
|
|
- [ArtNet Protocol](https://art-net.org.uk/)
|
|
- [WS281x LEDs](https://cdn-shop.adafruit.com/datasheets/WS2812.pdf)
|
|
- [I2S microphone](https://learn.adafruit.com/adafruit-i2s-mems-microphone-breakout/raspberry-pi-wiring-test)
|
|
- [Raspberry Pi SMI](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html)
|
|
- [MIDI Protocol](https://www.midi.org/)
|
|
|
|
## License
|
|
|
|
MIT License
|
|
|
|
---
|
|
|
|
*For detailed setup and usage instructions, see the [Wiki](./Wiki.md).* |