Fabrication:
I bought the rest of the necessary materials for my project so I could complete the rest of the wind chimes and start properly user testing a first version of my project. This included buying more acrylic tubes from Canal Plastics and using the band saw to cut them down to pieces in ascending length. The largest piece being 30 cm long with the smallest piece being only 10 cm. I ended up having enough extra acrylic to make an extra tube, having six instead of five tubes.

I then used the drill press to make two holes on the top of each tube in order to hand them. The hole was 1 cm down from the top on each tube using a 1.58 mm drill bit.

The final product of all the tubes cut to the proper length with holes, ready to be assembled and hung:

Circuits, Soldering & Sensor Testing:
Sensor Testing:
I started with hanging one tube and attaching the LED strip with the tilt switch sensor to sensor test the tube being hit or touched by the user:
I was getting a sensor read, not much, but I think this should hopefully be enough to work? The sensor was going back and forth between 1 and 2. I will have to spend more time figuring out how to successfully integrate the code of the LEDs with the sensor to fully test this out.
Soldering:
I decided to first focus on getting the wind chimes together and start with soldering the LED strips in series for each of the six tubes before I then added the sensors. GND was the black wire, DIN was the white wire and power (5V) would be the red wire.


The soldering took a while, it was hard to get the wires to the strip properly because the space was small and the wires tended to stick up. Finally, I assembled the long soldered LED wires within the tubes (seen below).

The wires I used to solder the LED strips together is not as flexible and extremely stiff. My worry is that they may restrict the movement of the tubes (along with not making the wind chime look as sleek as I would like it).
Below is a basic concept of how the wind chimes will look without the sensors. I also tried creating a stand for the wind chimes, but it didn’t come out sturdy enough to hold the weight of all the tubes. Having the tubes hanging rather than lying down on the table makes it easier for me to work with adding the LEDs and sensors.
Now that I have the LEDs wired in, I’m focusing on adding the sensors in. I also soldered the tilt switch sensors to longer wires so I could attach them to each tube individually.

Code:
Before I figure out how to code the LEDs and the tilt switch sensors, I tried writing down everything I wanted to implement code wise:

I know that I want all six tubes to share the same light patterns of a slowly changing rainbow hue:
#include “FastLED.h”
CRGB leds[39];
void setup() { FastLED.addLeds<NEOPIXEL, 6>(leds, 39); }
void loop() {
static uint8_t hue = 0;
FastLED.showColor(CHSV(hue++, 255, 255));
delay(100);
}
(Code above is what I want the wind chimes to be without any user input – a slowly changing gradient of rainbow colors)
I have 39 LEDs and 6 sensors, with each of the six tubes corresponding to a certain number of specific LEDs on the strip and one of the six sensors.
What I need to do is break up the LED strips into six parts that correspond to a tube and sensor and define it in the code. I think I need a boolean value for my sensor because I only care if the sensor read is off (not being touched or hit) and on (user touching or hitting the tubes).
So, if my sensor value is off, all LEDs should display code above (slow rainbow gradient)
else, if any of the six sensors detect a change, the LED’s will have a different color pattern ONLY for the specific LEDs allotted to that sensor and tube. This change will last only for a few seconds before returning back to it’s original state. I’m hoping this will make the user feel the need to interact with the wind chimes in order for there to be any response that will trigger a back and forth interaction. The user is acting as the wind.
I want the change in LEDs to be an energetic up and down of each individual Neopixel movement to almost mimic the touch of the user. I think I want to also code it so that if all sensors are on, a change is detected, then all LEDs are triggered into a third different color pattern.
As the initial code stands now (above), I’m coding all the LEDs at once and instead need to break them up and control them in six groups.
Starting with the first tube, I need to control LEDS 1 – 10. Ignoring color for a moment, I’m thinking the code needs to look something like this:
if (sensorVal == 1) {
for (int i = 1; i < 10; i++) {
leds[i] = CRGB::White; FastLED.show(); delay(30);
}
}
else, keep doing original color.
Leave a Reply