Getting a baseline reaction to the Witch Lights from cats.
This is with the acceleration and scanner animation code from last year.
Thinking out loud
Getting a baseline reaction to the Witch Lights from cats.
This is with the acceleration and scanner animation code from last year.
Here we are, about to upgrade the test rig on my workbench.
The current build of witchlights-fastled.ino does not run on the Arduino Mega. It gives memory errors. I don't want to get bogged down with memory optimization at this point in the game. So I'm replacing it with an Arduino Due.
The Due I'm installing is a drop-in replacement module for the control board of the Witch Lights. That way, I'm testing on the exact hardware that will be in production.
The LED strip is a five-meter WS2812B addressible LED strip, with 30 LEDs/meter. Just like the Adafruit NeoPixel strips I used in production, except without the waterproofing. Which won't matter in my home workspace, I sincerely hope.
And that was fast.
The test rig is in place, and the WS2812B strip works fine.
Next up is creating a new Sprite animation subclass, editing its scanner
routine to map to the animation that I was working on the other day.
Speaking of which, it looks like this exported into the arduino sketch format:
// 1234567890123456789012345678901234567890123456012345678901
strcpy(afc_timing-test, "123456788 ");
strcat(afc_timing-test, "1234567888 ");
strcat(afc_timing-test, " 1234567888 ");
strcat(afc_timing-test, " 1234567888 ");
strcat(afc_timing-test, " 123456677888 ");
strcat(afc_timing-test, " 1223344556667788 ");
strcat(afc_timing-test, " 111122233344556667788 ");
strcat(afc_timing-test, " 11111222233344556667788 ");
strcat(afc_timing-test, " 11111222333444555666788 ");
strcat(afc_timing-test, " 1111112223344556788 ");
strcat(afc_timing-test, " 11111223456788 ");
strcat(afc_timing-test, " 11123456788 ");
strcat(afc_timing-test, " 1123467831 ");
strcat(afc_timing-test, " 12468531 ");
strcat(afc_timing-test, " 11386421 ");
strcat(afc_timing-test, " 1287543211 ");
strcat(afc_timing-test, " 18865432211");
strcat(afc_timing-test, " 886443211 ");
strcat(afc_timing-test, " 88765431 ");
strcat(afc_timing-test, " 4887654321 ");
strcat(afc_timing-test, " 4886421 ");
strcat(afc_timing-test, " 138831 ");
strcat(afc_timing-test, " 138831 ");
strcat(afc_timing-test, " 138831 ");
strcat(afc_timing-test, " 138831 ");
strcat(afc_timing-test, " 138831 ");
So that's some progress. Taking a break now.
Things can look like they’re going to work really well, and then just don’t.
This is also tomorrow’s lesson.
Case in point:
I tried to give each pixel of the trail a different acceleration curve, so that they trail behind and (later) fade out.
Mixed results. The different acceleration curves for the pixels mean that they change relative distances between each other, which reads as weird jitter.
More work needed.