Go Down

Topic: Smooth animation with an 8x8 RGB LED matrix (Read 25 times) previous topic - next topic

giladaya

Below are several videos that demonstrate smooth animations running on an 8x8 RGB LED matrix.

The main factors that contribute to the effect:

  • Use of a diffuser screen, placed at just the right distance from the LEDs.
    I used a tracing paper for the screen - it is opaque enough so the pixels blend, but not too much so some contrast remains.
    The physical setup can be seen in the attached images.

  • The calculations that produce the animation are done using a larger number of "virtual pixels" than the ones actually available. These are then rendered onto the low-res matrix.

  • The frame rate is high enough to create the illusion of smooth motion




Examples:
Fire simulation
The logic here is pretty simple.
For each keyframe, a new row of pixels with random brightness values is generated.
In each sub-frame, the matrix is gradually shifted up, interpolating between full rows.
The calculated "raw" brightness is faded according to a fixed mask, to give the flame a shape.
The hue of each pixel is taken from a constant mask, so the inner area of the fire is yellow and the outer area deep red.
The code for this example is available on github.
http://www.youtube.com/watch?v=AspZ8Np3_Bo

Particle systems
These next examples use the same hardware setup, but the animation is generated using a particle system library that I posted about yesterday.
http://www.youtube.com/watch?v=dpA7wznAwgc

http://www.youtube.com/watch?v=w89Qrq5i1SE

http://www.youtube.com/watch?v=9r_VlEYINW4


Enjoy

fungus

No, I don't answer questions sent in private messages (but I do accept thank-you notes...)

JoeN

Holy cow that is really well done.  Where did you get that diffuser screen?  I don't know a lot about them but I have tried diffusing with thin white cloth and paper and never got a good result.

Care to share any code or schematics?
I have only come here seeking knowledge. Things they would not teach me of in college.

giladaya

Thanks, sure :)

The diffuser screen is made of a sheet of tracing paper, attached to a frame made of foam core - see attached image.
Standard paper is too white and opaque which results in really low contrast and the light hardly getting through.
Note that the distance of the screen from the LED matrix is really important and will be different depending on the specific material used.

The circuit itself is just an off-the-shelf Colorduino - I believe that a Rainbowduino would work just as well.

The code for all the examples (library and sketches) is available on github.



Riva


The circuit itself is just an off-the-shelf Colorduino - I believe that a Rainbowduino would work just as well.

Hi giladaya,
I can confirm the code works on Rainbowduino with very little modification. Fantastic work.

Go Up