Introduction: Interactive Fuzzy LED Belt

About: Also check out my main project site: www.sustainablemagic.org

This is an Instructable to show you how to make an interactive, fuzzy LED belt! Belt can be used in many ways, not just as a belt... wear it as a bandolier, hang it on the wall, wrap it around your backpack or bike... the options abound.

And the most exciting part is this belt is alive! Using two sensors -- a gyroscope and a microphone -- this belt responds to sound and also to being moved. So, when you dance with it at a music event, the colors of the LEDs reflect your movement and the brightness of the LEDs reflect the sound. So much fun! The belt never really looks the same. :)

I first made this belt in 2012 -- it was my first project with an Arduino and LEDs, and since then I've remade this belt a few times and added more LEDs and sensors. But this is a great project for someone starting in with electronics. And you don't have to add the sensors for this belt to be awesome and fun. Make it as challenging as you feel comfortable!

Note: this Instructable assumes some experience with soldering, wire stripping, sewing -- you do not actually need to have this experience, but I am not going to explain in detail how to do these activities because there are many places online that can explain these things quite well.

Step 1: Materials and Tools

Materials:

Tools:

  • Soldering iron
  • Computer
  • Sewing machine or needle and thread
  • Micro USB cable
  • Mini USB cable
  • Xacto blade
  • Wire clippers/cutters
  • Wire strippers

Step 2: Solder the Components Together

Gyroscope (this assumes you are using the gyroscope I linked in materials):

You will need to solder four wires to the gyroscope.

  1. Cut a piece of black, red, yellow, and orange wire of approximately 18mm in length, and strip off the ends some so the bare wire is exposed.
  2. You will then solder the red wire to the "VIN" pin, black to "GND", the yellow wire to "SCL" and orange to "SDA".
  3. You can swap in different colors for yellow and orange, but do not use red or black - those are reserved for power and ground.

Microphone (this assumes you are using the Electret microphone):

You will need to solder three wires to the microphone.

  1. Cut and strip a red, black, and white/or similar wire of approximately 16-18mm in length.
  2. Solder the red wire to the "VCC" pin, the black wire to "GND", and white to "AUD".

3-Way Slide switch:

  1. Cut three pieces of wire, approximately 30mm in length. I used three black wires, but it might be clearer/easier for you if you use three different colored wires, such as yellow, orange, white.
  2. Solder one to each of the three holes/pins of the switch. Let us assume you solder yellow to the left most pin, orange to the middle pin, and white to the right-most pin.

Lipo charger (this assumes you are using the generic lipo charger I linked to in materials):

  1. Connect the switch --
    • Solder the left most wire (yellow) of the switch to the "+IN" pin on the front of the lipo charging board (so next to the mini USB jack).
    • Solder the right most wire (white) to the "BAT+" pin, which is on the back end of the lipo board.
    • Basically we are connecting the left-most position on the switch to the power input pin on the lipo charger -- meaning when the switch is pushed all the way to the left, we will be charging the lipo battery assuming it is plugged into a power source, and when the switch is all the way to the right, we are sending the power from the lipo battery to the arduino. When the switch is in the middle position, nothing will happen.
  2. Connect the battery -- if using a JST two-wire connector for the battery, solder the black wire to the "BAT-" pin on the back side of the lipo board, and the red wire to the "BAT+" pin.
  3. Solder a new piece of black wire to the "IN-" pin on the front of the lipo board, approximately 30mm in length.

LED Strip (this assumes you are using one of the three-wire types of LED strip, such as the WS2811/2):

Note: the LED strip has an input end and an output end, so you must look at your strip to determine which end is which. Usually there are arrows marking the flow of data.

  1. Cut LED strip to desired length. I used two pieces of LED strip - so if you are going to do that as well, cut two pieces of the same length. :) I think two strips are nice and add dimension.
  2. If using two pieces of strip, solder them together by matching the output of one strip's end to the input of the other strip.
    • Lay the two pieces of strip next to each other as you want them to be on your belt (check how they fit on your belt by laying them on it).
    • Cut a piece of black, red, and white (or yellow, orange, etc.) wire - long enough that you can curve them into a u-shape and each end reaches the ends of each LED strip.
    • Solder black to "GND", red to "+5V", and white to "DO" (data).

Now that the LED strip is connected together, we will add one end of the servo extension wire to the remaining input end -- this is where we will connect the arduino to the LED strip.

  1. Cut the servo extension wire in half.
  2. Strip the male side of the wire.
  3. Solder the black wire of the connector to the "GND" pin on the input end of the LED strip.
  4. Sold the red wire to the "+5V" pin.
  5. Sold the white wire to the "DO" (data) pin.

Arduino (this assumes you are using the Arduino Pro Micro):

  1. Add a "master" ground wire - Cut and solder a piece of black wire to one of the "GND" pins and strip the end on the other side to be a bit long. We will be soldering multiple ground wires from the components we already soldered to this wire, since there is not enough room to put all those wires into the two ground pins on the Arduino.
  2. Add a "master" power wire - Cut and solder a piece of red wire to the "VCC" pin, in the same way you did with the black and ground pin. We'll be soldering a bunch of parts to the red wire.
  3. Connect the lipo board - Solder the "IN-" black wire to the black ground wire you already attached to the arduino.This makes it so the lipo board and the arduino share the same ground.
  4. Connect the switch - solder the right most wire (white) to the master power wire. Now the switch can funnel power into the arduino when you move the switch into the right most position.
  5. Connect the microphone -
    • Solder the black wire to the master ground wire.
    • Solder the red wire to the master power wire.
    • Solder the white wire to the "A0" pin. Really any analog pin will do, but I tend to use A0.
  6. Connect the gyroscope -
    • Solder the black wire to the master ground wire.
    • Solder the red wire to the master power wire.
    • Solder the yellow wire to pin 3 (digital),
    • and the orange wire to pin 2 (digital). These are right next to the two GND pins on the pro micro.
  7. Connect the female half of the servo extension wire that you previously cut in half (remember - you soldered the male side to the LED strip).
    • Solder the red wire to the master power wire.
    • Solder the black wire to the master ground wire, or one of the open ground pins.
    • Solder the white/yellow wire to data pin 6.

When we've finished connecting everything together and ensuring it all works, I suggest hot glueing or electrical taping some of the connections to protect them from shorting out or getting ripped out. I'll explain this more later.

Step 3: Make the Belt

  1. Lay the LED strip you've soldered together on your belt. Using clear electrical tape or packing tape, wrap pieces of tape - a few times around in a single spot - around the LED strip and the belt. Be sure to tape the strip down at both ends, and in a few places in the middle.
  2. Cut a piece of faux fur that is as long as you want your belt to be, and wide enough so that the width is approximately the width of the belt doubled, plus around 30mm - that accounts for the fur wrapping around the belt like a sleeve, with some extra room for the sides and the LED strip.
  3. Use an xacto blade to cut the fur gently, by placing the fur fur-down, and gently cutting just the back material with the xacto blade. You want to try to avoid cutting the fur strands.
  4. Now fold the piece of fur in half the long way and inside out, and sew a seam along the edge. After you've sewed it up, gently turn it inside out.
  5. Once you've finished reverising the fur, slide it over the belt.

Step 4: Install the Software and Libraries You'll Need, and Test That You Wired Up the Components Correctly.

Make sure you have the Arduino IDE downloaded and installed.

You'll also want to download and install the L3G gyroscope Arduino library, as well as the FastLED or Adafruit NeoPixel libraries.

And you will also need to install the drivers for the Pro Micro.

You'll need to plug the micro cable into the Arduino and connect it to a USB port on your computer. Make sure in the Arduino IDE that you select the pro micro board and one of the USB ports.

Open up an example file from one of the LED libraries, set the LED pin to 6 and mark the # of LEDs you are using. Upload the code to the board.

Connect the LED strip male servo connector to the female connector on the Arduino. If you connected things correctly, the LEDs should light up and go through some default patterns.

Next you'll want to add the gyroscope library to your sketch. Look that library's example code and documentation to see how to do that properly. You can test if the gyroscope works by uploading example gyroscope code and having the data ouput to your serial monitor. Then move your arduino with gyroscope around to see if the output data changes.

You can test the microphone as well by using the Arduino's example Analog Input sketch, and write the sensorValue to the serial monitor. Upload this code and make some sounds into the microphone -- you should see changing values in the serial monitor.

Step 5: Program the Arduino

This is where you can get creative! However, some simple input mapping can actually generate a fairly interesting and dynamic output pattern on the LED strip.

Simply read in the gyroscope position data and scale it to a manageable number. I keep a running variable for the gyroscope input data (ypos) and every time I loop through an LED position, add a new y value read that I scale down by .0004. I then turn that ypos into a value that can be used to set the hue of an LED -- so I % 255 it: ypos = ypos % 255;

Similarly, I read in the microphone analog data, scale/map it to between 1-255 (I did to 200 because otherwise the belt ends up too bright).

This all goes in a loop where I progress through each of the LEDs, starting at 0, and set the hue of the LED to the ypos value and the brightness of the LED to the audio value.

I actually break the LED counting loop into two parts, one for the upper strip and one for the lower strip, so that we're lighting both strips all the time / are mirroring the data.

Test that you've programmed your board correctly... the colors of the belt should change when you move the arduino with gyroscope around, and the brightness of the LEDs should increase when you make loud sounds at the microphone.

Edit: You can download and use my code here.

Step 6: Seal Up the Electronics

I like to cover up the exposed solder points/joints with hot glue, namely: the spot where the wires connect to the switch, where all the ground/black wires connect to the master ground wire, where all the power/red wires connect to the master power wire, around the sides of the micro jack itself (I've found it's easy for the micro jack to get pulled off on many boards), and around the end of the LED strip where you've attached wire.

Then wrap some electrical tape around the gyroscope and the arduino, and play around with how you can compress/lay the parts down together to take up as little space.

I also like to wrap some electrical tape around the lipo battery where the wires connect, as that connection tends to be fragile and can often inadvertently receive a lot of stress.

Instead of using hot glue, you could also use heat shrink and a hot air gun or blow dryer. I use hot glue usually as it is quicker/easier and generally works just as well for me (or well enough).

Step 7: Mount the Electronics Onto the Belt

Now slide the battery under the fur on the inner side of the belt. You can experiment with different ways of attaching and cover the electronics to the belt. What I did was take a piece of double sided tape and use that to stick the electronics onto the belt buckle. I then took a piece of rainbow duct tape and wrapped it around the whole thing a few times.

In an earlier iteration I design a 3D printed cover, but found that design was too bulky. I've also made an electronics cover/holder by taking a piece of thing polycarbonate/LEXAN and folding it into a rectangular shape, then sticking holographic sticker tape onto it and mounting that on the belt buckle. There are many options... explore! :)

Step 8: Celebrate!

Now you should be DONE! Put your belt on, turn on some music, and dance around with the lights off. :) Invite your friends over! Take a video in the mirror and share it online! Have fun and take joy in the awesome thing you just made -- that's alive!