I have a few led rings that are concentric, and actually just ordered a 241 led circle set, the biggest I had was 93 leds so far. Figured I’d write this once, for all cases.
Here’s a generically written, and hopefully easy to understand mapper:
function (pixelCount) {
var map = [];
// put # of pixel in each ring here, starting center outward
// use 0 to add an empty ring for spacing
var rings = [1,8,12,16,24,32];
var numberofrings = rings.length;
var inwardwired = 1; // if outward, set to 0
// it's far easier to calculate this mapping going outward,
// but if lights are wired inward, we'll reverse at the end
for (ring = 0; ring < numberofrings; ring++) {
if (rings[ring] == 0) {
// no ring, just for spacing
} else {
if (rings[ring] == 1) {
map.push([0,0]);
} else {
for (i = inwardwired; i < rings[ring] + inwardwired; i++) {
c = i / rings[ring] * Math.PI * 2
// To change the initial start pixel location from 12 o'clock,
// or the spin direction (clockwise or counterclockwise)
// adjust +/-sign(s) (for 180 + spin)
// and/or swap sin/cos locations (for 90/270 start points)
map.push([0 - Math.sin(c) * ring, 0 - Math.cos(c) * ring])
}
}
}
}
if (inwardwired) {
return map.reverse(); //flip the map, so pixel order runs inward
} else {
return map; // outward is correct
}
}
Hi! Re: polar maps, I know you asked Wizard to explain, but I think I know what’s going on and can give it a try.
Wizard’s shown me a few times how you can use pixel maps as a generalized per-pixel attribute dictionary. For example, there was the recent thread where, if it was a 2D map, you could store extra information in ‘z’, such as a per-pixel brightness coefficient.
I think a polar map just means that you write a map such that the first per-pixel array element (normally x) stores r (distance), and y stores phi (angle). It won’t render correctly in the Mapping tab’s preview anymore, but you can consume it in a render2D as render2D(index, r, phi). Circles, spirals, and Spirograph-esque stuff would be a little faster than using the trig transforms.
Awesome, I sorta kinda was wondering if it was exactly like that, “abusing” pixel attributes that way. I’ll have to play with it. I keep finding areas barely hinted at in the existing examples.
I got in the 241 led circle array and Wow, it’s nice, especially for a meager $30 from Amazon.
3 wire, not 2 (non addressable single color) or 4 wire (non-addressable RGB), these are w2812 in a fairy wire (copper wire) setup, 66ft/200 led (so 30 led/m) also available perhaps cheaper from China (which I was going to do on 11.11 day sales, but decided to check Amazon… And yup, for next day delivery to me… Almost same price, instead of weeks of waiting? Sold.)
Ordered enough to build a massive 10x10x10 cube, and yet didn’t break the bank at all.
@Scruffynerf,
Those don’t look like addressable LEDs. I’d expect rainbows in the previews or mentions about repurposing in the reviews. I have seen RGB 3 wire fairy wire LEDs that are in some sort of charlieplexed configuration, which would be enough to drive the simple patterns shown in the photos. And the price is too good to be true.
There are serially addressable fairy wire LEDs out there, but I don’t think these are it.
They are, look at the video someone posted in the reviews and watch the chase sequence. Plus I did the research and found this elsewhere (AliExpress, similar to Jeff’s link above) with more details. BTF also makes similar for $13 for 50 LEDs no controller, and $20ish for either USB or battery box controller.
I’ll have these tomorrow and will confirm and even hook it up to PB. (I really need some more PBs, I was hoping for the v3s soon ish)
Confirmed. Cracked open the USB controller and it’s got 2 no name/ID 8 pin ICs (plus IR, etc) and the lines are labeled L+, L- and D. Many of the 15 effects are individually addressable across the string, like color each pixel red one at a time, till the strip is red, then change each pixel one at a time to green, then all to blue etc. Will hook up to a PB shortly. Right now, the one I opened is still in 2 round bundles of 100 as I plan how to layout it out on the 12 inch sphere (ok, it’s actually 2 round wire plant hangers, but damn for $20, look at the nifty 12 inch wire sphere…) The PB will be the most expensive part of this build. It even came with a USB wall wart (5v2a)
Heh, so glad I inspired Jeff to build his StarDisc.
My latest arrival on the pile of cool stuff (so many projects, and now I want to do them with videos…) is I snagged a “warehouse” (returned?) discounted (Amazon FTW) 576 pixel micro smd2020 ws2812 board, 18x32 pixels, PCB full of holes so it’s a mesh of LEDs (rigid)
Photo when I light it up.
I also got in some NLED Photon controllers for building a set of wand poi, and the HD107 sticks arrived for that (also photos when I light them up), along with the hd107 8x8 matrix. I got enough sticks of 8 to do multiple poi, and I also got enough PBs (I own 5 now, and 4 sensors) to turn two into poi as well (long down my list). Waiting for more poi bits though.
Found this tip on Reddit at Jason Coons latest ring project (1628 pixels)
Reddit user iscor said:
I recommend adding which “ring” the pixel belongs too as “z” coordinate in your Cartesian coordinate lookup table. I found using that value * 0.01 or so as the z value in noise adds a little extra to the standard 2D noise pattern