Date |
February 2014 - April 2014 |
Technologies |
-
Embedded Linux with custom kernel
-
ARM Cortex-A9
-
DMX512
-
C++, Python
|
Overview
Dedicated lighting system for Galeria Krakowska made just because we can.
Hardware
Single board computer based on ARM Cortex A9 which connects via custom USART->RS485 converter to DMX512 infrastructure.
Software
Dedicated and extendable system for displaying custom animations and shows. System consists of driver used to send frame data to DMX splitter,
sequencer which covers all effects processing and sequencing them.
Sequencer can load native effects (as .so library) or written in Python through Python C API.
Promo video
Sample effects
Python effect
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | import driver, math, time
from scene import *
def init():
global tim, tim2, sc
tim = 0
tim2 = 0
sc = Scene()
def step(dt):
global tim, tim2, sc
tim += dt * 5
tim2 -= dt * 4
sc.zero()
x = math.sin(tim) * 10 + 27 + 31 / 2 + 1
y = math.cos(tim) * 1.5 + 0.5
sc.diffuse(x, y, 9, 1.5, 255, 0, 0)
x = math.sin(tim2) * 6 + 27 / 2 - 1
y = math.cos(tim2) * 1.6 + 0.5
sc.diffuse(x, y, 9, 1.5, 0, 255, 0)
return sc
|
|
Native effect (C++)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | #include <libeffect.h>
Scene s;
float tim;
void init()
{
tim = 0;
s.zero();
}
Scene* step(float dt)
{
tim += dt * 15;
s.zero();
s.setPixel((int)tim % 30, 0, 255, 0, (int)tim % 255);
s.setRow(1, 0, 255, 0);
return &s;
}
|
|