In this section I'll show a different way of illuminating the back of the canvas using the parts shown above, which are also listed just below. The primary part is a NeoPixel strip with 30 RGB LEDs. This will be controlled by a Gemma M0. A USB cable is needed to connect the Gemma M0 to the Raspberry Pi. Finally, another piece of the 8 inch by 10 inch foam board will be used to secure these parts behind the canvas.
Before getting into the weeds of this section, I want to stress a few points about this approach to interior lighting:
- In the previous section, the NeoTrellis M4 had 32 NeoPixels directed straight out from behind the canvas. The arrangement here will have 30 NeoPixels directed sideways out from the center of the canvas. To help visualize this, refer to the picture above where the small white squares on the NeoPixel strip are the actual NeoPixels which will be aligned parallel to the foam board. Overall this should fill the interior of the canvas with lots of light and color, but the effect will be more diffuse than with the NeoPixels facing the canvas.
- The parts used here did not play well with the exterior lighting parts used in the next section. The main issue is of space behind the canvas. The NeoPixel strip used in this section will interfere with the USB panel mount cables used in the next section.
- There are many different NeoPixel strips to choose from. Another one that I have used before is this 20 NeoPixel strand. Using this would allow for facing the LEDs straight out from behind the canvas and also allow for more positioning options than the part I chose. You would need a different way of attaching to the Gemma M0 - this "bolt-on" kit is what I would try first.
In these pictures, I'm trying to show that the NeoPixel strip will occupy a bit more depth behind the canvas than the NeoTrellis M4 does. When arranged on the foam board, it needs to avoid obstructions like the PoE adapter, the speaker, and the USB and Ethernet ports on the Raspberry Pi.
These pictures show how I use the foam board setup from the last section to trace out where to cut the new foam board for this section. The previous cut was a bit gnarly so I rounded out my trace and then made the cut and checked that the foam board does indeed fit behind the canvas.
This series of pictures shows how I've tried to map out the canvas interior to identify where the NeoPixel strip can be placed. There is quite a bit of eye-balling and fuzzy logic to this process....
Here I'm starting to attach the NeoPixel strip to the foam board. I'm going to use the twist-tie that came with the USB cable. You could also use bits of wire or small zip ties for this.
Note how I'm using the awl to poke holes in the foam board and then threading the twist-tie through the foam board and around end of the NeoPixel strip.
As I go forward here, I'm trying to keep the NeoPixel strip inside the lines I've marked on the foam board. In some cases my initial mount points didn't work, so I poked more holes and re-positioned the NeoPixel strip. The foam board can withstand a lot of damage and is relatively inexpensive, so buy a few extra pieces and don't fear about experimenting with alternate configurations.
I actually have a collection of these twist-ties, saved from the purchase of many cables and other assorted things. Here I've selected a range of colors and I'll place them at different points to hold the NeoPixel strip to the foam board while avoiding obstructions of parts attached to the canvas.
Bits of stiff wire can also be used.
The first picture here shows how I ultimately connected the Gemma M0 to the foam board and the NeoPixel strip. The additional pictures show how I got to this point, measuring, marking and using the nylon screw parts to mount the Gemma M0 on the foam board.
Note that the Gemma M0 is connected to the NeoPixel strip alligator clips as follows:
- Red alligator clip to Vout
- Black to GND
- White to A1/D2
See also this NeoPixel page from the Gemma M0 guide which shows a wiring diagram and has a CircuitPython code example.
In these pictures I've booted up the system and am testing the lights. In the first picture, the green light is the NeoPixel at index 0. The rest of the NeoPixels on the strip are blue. The pinkish light is the DotStar on the Gemma M0.
To control these lights through the CircuitPython REPL, you will need code something like this:
import board, neopixel
pixels = neopixel.NeoPixel(board.A1, 30)
Due to the orientation of the NeoPixels, this is a more subdued lighting style than shown in the last section, but it covers more of the canvas interior.