If you prefer videos, go check out the elaborate youtube playlist instead. If you want to jump to the fun stuff, then just scroll to the bottom.
This was a crazy project. When I took it on, I was only going to be building an LED subsystem for others to install. By the time it was done, I was managing most of the lighting in the sculpture. By building the support system, I studied the main Sensacell system more than anyone else, and so had to develop plans for it.
In the beginning, I considered using UEXT modules as building blocks because they had LED strip controllers, and RS-485 modules to link to them, but I looked into Adafruit's NeoPixels and they seemed like they'd do the job admirably. I've become a great fan of Adafruit over the last year because their documentation is incredible, and libraries abundant.
Getting started with NeoPixels was easy. I ordered 5 meters and ran one of the examples. Then, I started addressing each pixel individually. These are nice moments, because you got something up and running to show a client with minimal effort.
Next, I turned my attention to the Sensacells to understand how to communicate with them. They have an API, which is just adequate enough. F-Minus, the architecture firm that hired me, had already chosen this system and had purchased the modules, and so Sensacells were a given. They are actually impressive, and work well for large scale architectural projects. Each Sensacell is a 1' x 1' LED panel with 16 LEDs, and 16 capacitive sensors for detecting bodies. Essentially you wave your hands over top and they change color or pattern depending on how their programmed. They speak to each other and to any peripherals via RS-485. Dozens can be daisy-chained together to cover large surfaces like a wall. I used Processing to talk to them, and started with just changing their colors as a test.
Okay, with that working it was now time to integrate the two sides. This was much more complicated than I expected as the Arduino Uno and Mega that both use 16 Mhz crystals don't speak well at 230400 baud, the rate that Sensacells talk at. After messing with swapping the crystal. I switched to a Due, which worked.
The Due ultimately had it's own problems. For one, it required level shifting the outputs from 3.3V to 5V to get it to work, but also I had some problems which I never solved, because I switched tack first.
Next, I had to test the distances at which NeoPixels that could be run. Critically, this would determine how many strips we could run off one Microcontroller. If they needed to be close then I'd have to disperse many micros throughout the large sculpture. If not then it might be possible to use one...that ended up being the case (although it might have been better to have two; one in each side).
We also found that the same color values used on the Neopixels and Sensacells didn't even nearly match, so I added some pots to control color.
By this time, I was pretty convinced that NeoPixels were the way to go, and had already invested a lot of work into them. In the next log, I'll look at moving to scale.