Hi everyone! I’m just wondering if it’s possible to reproduce Noise effects (as seen in the example included with the library), on a large matrix. The matrix is 5 strips with 300 leds on each. So 5 width and 300 height.
I’ve checked out the Multiple Controller examples but i’d like something that doesn’t just mirror the strips, but instead creates a cohesive display like in a Noise matrix. Is it possible?
Thanks!
@Stefan_Petrick Thanks for this inspiring video!
http://www.youtube.com/watch?v=iN_cfyaNXHo
This is totally possible. This library rocks because it has some high performance features with certain hardware selections.
I would suggest you go the route of using a Teensy3.1 with WS2812’s. You can have 8 lines of parallel output to the LEDs accessing one array. The only thing I see is that you would need a custom XY() function in order to correctly address your custom arrangement of leds.
1500 LEDs is going to pull some serious amps, make sure your power-fu is up to par before diving head in. Good luck!
Thanks for that! Yeah i’ve got some serious 60 amp power supplies that should do the job.
So using an Arduino mega would work in the same way?
So for say, three strips:
#define NUM_STRIPS 3
#define NUM_LEDS_PER_STRIP 300
#define NUM_LEDS NUM_LEDS_PER_STRIP * NUM_STRIPS
CRGB leds[NUM_STRIPS * NUM_LEDS_PER_STRIP];
void setup() {
// tell FastLED there’s 60 NEOPIXEL leds on pin 10, starting at index 0 in the led array
FastLED.addLeds<NEOPIXEL, 10>(leds, 0, NUM_LEDS_PER_STRIP);
// tell FastLED there’s 60 NEOPIXEL leds on pin 11, starting at index 60 in the led array
FastLED.addLeds<NEOPIXEL, 11>(leds, NUM_LEDS_PER_STRIP, NUM_LEDS_PER_STRIP);
how would I use this with the matrix code? Can you give me an example?
No, the parallel output is for the Teensy3.1 only. That package is a serious powerhouse over the MEGA btw. Teensy is overclockable to 96mHz compared to the standard 16mHz Arduino.
The matrix code is pretty well documented. You must crawl before you can run.
As @Jon_Burroughs said. 300 x 5 is possible but might appear very similar to a 1D setup. If you use my code fragments you could play with the scale_x /scale_y ratio to keep it interesting. For 1500 noise values per frame you will need a Teensy 3.1. The ATmega2560 has neither enough RAM nor enough computing power to deal with 1500 leds.
Is there a gotcha using the built-in noise examples on non-square (ish) matrices? I seem to recall them allocating a square array the size of the longest side.
I haven’t looked into this but I was wondering if doing so was just a convenience or if it was an inherent limitation of how the Perlin noise functions worked.
Basically you pass the actual coordinates based on scale values for every single LED to the inoise16 function. No problem to render just a line or a triangle or a rectangle or whatever. And it makes sense to only calculate the noise points you are really using because that calculation eats up the most of the time.
Have been trying something similar on my mega, the sample noise code at the moment uses the largest dimension and squares it.
I have been running out of memory on the mega at around 90 pixels.