- 1 Overview
- 2 Team Members
- 3 Objectives
- 4 Challenges
- 5 Gantt Chart
- 6 Budget
- 7 Design and Solutions
- 8 Project Presentation
- 9 Diagrams and Schematics
- 10 Results
- 11 Links and References
Light up clothing has always been a crowd favorite. But what if light up clothing could be more exciting than just a piece of clothing with blinking lights on it?
For our project, we provide users with a piece of light up clothing that does far more exciting things than just blink. We are making a vest that is covered in LED light strips. We are incorporating a sound sensor and an accelerometer so that the LEDs on the vest will reflect the users' surroundings. Some of the LEDs will reflect data from the sound sensor and other LEDs will reflect data from the accelerometer. The LEDs connected to the sound sensor will blink to the beat of the music, making our vest a party must-have. The LEDs connected to the accelerometer will change color if the user spins, and the color will be determined based on the direction the user spins.
The vest, called “Zesty Vesty”, both reflects the user’s surrounding, as well as has an interactive portion to it. The goal of this project is to successfully integrate both sensors into the vest, and make an eye-catching piece of wearable technology that is exciting to users. We will be using Arduino (which uses C++) to read in data from the sensors and then display on the LEDs. We plan of having a button on the vest so that the user can turn the vest on and switch between different modes.
- Andre Cook
- Gillian Laming
- Kenneth McNelly
- TA: Chance Bayles
- Instructor: Jim Feher
- Understand how the Fast Fourier Transform works, and use it to read in data from the sound sensor
- Learn how to use and program on Arduino
- Have the Arduino reading in data from both sensors
- Connect the LED light strips with both the sensors so that they reflect the data
- Have the LEDs blink to beat of music and change color when the user spins
- Connect the buttons successfully with the Arduino so we can change modes
- Assemble all components together so that vest is wearable
We anticipate that we will face challenges coordinating all of the different aspects of the project (the two sensors and manipulating the LEDs). We plan on using a Fast Fourier Transform from the sound sensor, and because this is a new concept to us, it will take us some time to learn and understand. We were originally going to use a Raspberry Pi as the main component of our project, but in a last-minute pivot, decided to use Arduino. We will have to learn and understand how to use Arduino in a very short amount of time. Additionally, the vest will need to be worn by the user, so we need to make sure that it is both comfortable and practical. This could be difficult given the lights and features we intend on adding to the vest.
Not everyone in the group was familiar with different aspects of the project. This meant we needed to learn:
- Arduino and C++: These two programs were new to some of the members of the team
- FFT: Fast Fourier Transform was a concept that was also new to everyone. The concept of FFT revolves around combined signals and how they could be separated into their fundamental frequencies. This concept would work well with the sound sensor. When FFT is applied, not only could we separate notes into their fundamental frequencies, but we could also see which of those notes were most prominent. This allowed us to create a mode that would show the prominence of the fundamental frequencies. For instance, if a song had more bass, the lower LED lights would shine brighter. In order to successfully and effectively run the FFT code for the Arduino, we needed at least a basic level of understanding when it came to how Fourier Transforms works.
Due to unforeseen issues, we had to drastically change the project’s overall design. Originally, we intended to use an LED matrix on the back of the vest and have this light matrix work with a Raspberry Pi, and three sensors. Unfortunately, this light matrix stopped working and we had to switch over to using Arduino as our main processor and LED light strips to represent the sensor data. This allowed for us to get creative in different ways.
We had other challenges in addition to our late-in-the-game project shift. These challenges were: · Fitting the lights onto the vest. We 3D printed clips to slide the LEDs through to keep them attached to the vest · Working with a sensitive accelerometer. The accelerometer was very inexpensive, which meant that it was difficult to work with. We were trying to isolate the acceleration in the z direction so that when the user would spin, the LEDs would change color to indicate the direction in which they were spinning. It was difficult to get a solid reading for the acceleration in the z direction, and we noticed that the “base” acceleration (so the acceleration when the user was standing still) kept changing. · Binning the frequencies using the FFT data. Even after getting the FFT to give us readings of frequencies, we needed to figure out how to represent those frequencies on the LEDs, and categorize all of the frequencies into bins.
Splitter Charger Cable: $5.59
Power Plug Adapters: $6.39
LED light strips: $26.99
Sound Sensor: $13.76
Battery Pack: $19.19
Design and Solutions
The goal of our project was to create a vest that would have LEDs that represented data from a sound sensor and an accelerometer.
- A vest: the choice for the vest was very important. The best design for the vest would be one that would have enough pockets and/or compartments that could hold circuits we built. We used a clear pocket on the top part of the vest to put the protoboard in so that the user could see the buttons that controlled the LED modes. We used a the bigger pocket near the hip to store the battery and cords.
- Added features: To ensure the Arduino and circuitry stayed protected, we 3D printed a box to hold the protoboard and cords. We glued the accelerometer to the side of the 3D printed case so that it would read acceleration data in the correct directions. The 3D printed case also served as a level of protection for the protoboard.
we still need this
We put a lot of thought into how to layout and wire the vest so that everything worked and it was wearable. As stated before, the LEDs were sensitive. We had to make sure that the LEDs were securely fastened on the vest but also not hinder the movement of the person who was wearing it.
Our vest is powered by a battery which is stored in the lefthand pocket of the vest. There are some safety concerns associated with this.
If the battery is exposed to extreme temperatures (hot or cold), there is a risk of it short circuiting. Additionally, although most of our vest is water resistant (the protoboard is in a water resistant pocket and the LEDs are contained in water resistant silicon), if the battery were to get wet, the functionality of the vest could be affected, as well as the user's safety could be put at risk. We advise users to remain indoors when wearing and operating Zesty Vesty.
The next step for this project would be to try and incorporate the proposed light matrix from before into the vest. This might require the use of a Raspberry Pi for coding purposes. The cords we had could have been better organized. One next step is to create a container for the cords so that they are stored neatly in the pocket of the vest. Additionally, a next step would be to explore different options to power the Arduino and light strips. Instead of using the battery pack with a bunch of usb cords coming out, we would have another circuit board that routed all the powers. We would connect the battery pack to the circuit board then there would be wires off the circuit sending power to the various components. This would also give us liberty to add more things (more LEDs, potentially a light matrix, etc) to the vest.
Diagrams and Schematics
Here is our block diagram for the project.
Here is a flow chart of our code. This diagram is a representation of the file aVesty.ino. Initially, the LEDs are in an off state, and then button clicks call the other files from aVesty.ino. The other files run while "checkButtons" is true, meaning they run until the button is clicked to a different file.
Video of Working Vest
Links and References
- "Reading an analog potentiometer with the A/D converter MCP3008 and SPI", http://www.knight-of-pi.org/reading-an-analog-potentiometer-with-the-ad-converter-mcp3008-and-spi/, accessed 10/12/2018
- "Sound Sensor", http://www.piddlerintheroot.com/sound-sensor/, accessed 11/2/2018
- "Driving Matrices", https://learn.adafruit.com/adafruit-rgb-matrix-bonnet-for-raspberry-pi/driving-matrices, accessed 11/13/2018
- "LED Matrix Sand Toy", https://learn.adafruit.com/matrix-led-sand/overview, accessed 11/10/2018
- "MMA8452Q Accelerometer Breakout Hookup Guide", https://learn.sparkfun.com/tutorials/mma8452q-accelerometer-breakout-hookup-guide/all, accessed 11/29/2018
- "Enable I2C Interface on the Raspberry Pi 30" https://www.raspberrypi-spy.co.uk/2014/11/enabling-the-i2c-interface-on-the-raspberry-pi/, accessed 11/10/2018
- "LED Trumpet", http://johnmcnelly.com/led-trumpet/, accessed 11/20/2018
Here is the link to our GitHub repository.