Difference between revisions of "Zesty Vesty"

From ESE205 Wiki
Jump to navigation Jump to search
m (Protected "Zesty Vesty" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
 
(46 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Weekly Log ==
 
[[Zesty Vesty Weekly Log|Weekly log]]
 
  
 
== Overview ==  
 
== Overview ==  
Line 26: Line 24:
  
 
== Challenges ==
 
== Challenges ==
We anticipate that we will face challenges coordinating all of the different aspects of the project (the potentiometer circuit, the sensors, reading in data, displaying on light matrix). I will be a challenge to figure out how to read in sensor data and then use that to manipulate the lights/ image displaying on the matrix, particularly because the majority of the code to display on the light matrix is in C++, not python. 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. <br/>
+
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.
Other Challenges:
+
 
*learn how to use raspberry pi
+
=== New Skills ===
*increase understanding of connectivity between multiple devices
+
Not everyone in the group was familiar with different aspects of the project. This meant we needed to learn:
*learn how to incorporate sensors into devices and analyze data
+
*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. 
 +
 
 +
=== Major Pivot ===
 +
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.
 +
 
 +
=== Other Challenges ===
 +
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.
  
 
== Gantt Chart ==
 
== Gantt Chart ==
  
 +
[[File:ganttgak.png|frameless]] <br />
  
[[File:ganttgak.png|thumb|bottom|Outline of anticipated accomplishment milestones.  ]] <br />
+
== Budget ==
  
== Budget ==
+
[https://www.amazon.com/gp/product/B017OQ26OA/ref=oh_aui_detailpage_o09_s00?ie=UTF8&psc=1 Splitter Charger Cable]: $5.59 <br/>
'''Vest Budget'''  <br/>
+
[https://www.amazon.com/gp/product/B00W058HHQ/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 Power Plug Adapters]: $6.39 <br/>
[https://www.amazon.com/dp/B01N4MPIFE/ref=sspa_dk_detail_2?psc=1&pd_rd_i=B01N4MPIFE&pf_rd_m=ATVPDKIKX0DER&pf_rd_p=f52e26da-1287-4616-824b-efc564ff75a4&pf_rd_r=BEGGNYK1TWQNFG3X6HZG&pd_rd_wg=AT29j&pf_rd_s=desktop-dp-sims&pf_rd_t=40701&pd_rd_w=5fmh5&pf_rd_i=desktop-dp-sims&pd_rd_r=a0e6ab41-bdd7-11e8-90fb-9babd353c434 Salzmann 3M Multi Pocket Working Vest]$12.90
+
[https://www.amazon.com/gp/product/B07BB15KPD/ref=oh_aui_detailpage_o08_s00?ie=UTF8&psc=1 Capacitor]: $4.99 <br/>
<br/>
+
[https://www.amazon.com/gp/product/B00ZHB9M6A/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1 LED light strips]: $26.99 <br/>
 +
[https://www.amazon.com/gp/product/B00SLYAI9K/ref=oh_aui_detailpage_o05_s00?ie=UTF8&psc=1 Sound Sensor]: $13.76 <br/>
 +
[https://www.sparkfun.com/products/13926?_ga=2.63109807.1693893565.1539875629-292865884.1539875629%20SparkFun%20Triple%20Axis%20Accelerometer%20Breakout Accelerometer]: $9.95 <br/>
 +
[https://www.amazon.com/dp/B01N4MPIFE/ref=sspa_dk_detail_2?psc=1&pd_rd_i=B01N4MPIFE&pf_rd_m=ATVPDKIKX0DER&pf_rd_p=f52e26da-1287-4616-824b-efc564ff75a4&pf_rd_r=BEGGNYK1TWQNFG3X6HZG&pd_rd_wg=AT29j&pf_rd_s=desktop-dp-sims&pf_rd_t=40701&pd_rd_w=5fmh5&pf_rd_i=desktop-dp-sims&pd_rd_r=a0e6ab41-bdd7-11e8-90fb-9babd353c434%20Salzmann%203M%20Multi%20Pocket%20Working%20Vest Vest]: $12.90 <br/>
 +
[https://store.arduino.cc/usa/arduino-uno-rev3 Arduino]: $22.00 <br/>
 +
[https://www.amazon.com/gp/product/B074KDLHQ4/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 Battery Pack]: $19.19 <br/>
 +
Total: $121.76 <br/>
 +
 
 +
 
 +
 
 +
== Design and Solutions ==
 +
=== Design Components ===
 +
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.
  
'''Sensors Budget''' <br/>
+
===Circuit Diagram===
- [https://www.amazon.com/gp/product/B00SLYAI9K/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1 Microphone Amplifier] – $10.09, <br/>
+
[[File:ZestyCircuit.png|frameless]]
- [https://www.sparkfun.com/products/13926?_ga=2.63109807.1693893565.1539875629-292865884.1539875629 SparkFun Triple Axis Accelerometer Breakout] (Kenneth is providing it)
 
<br/>
 
  
'''Lights Budget:''' $134.90 <br/>
+
=== Layout ===
-  [https://www.adafruit.com/product/3803 64x32 Flexible RGB LED Matrix Panel]-5mm Pitch – $109.95 <br/>
+
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.
 
- [https://www.adafruit.com/product/3211 Adafruit RGB Matrix Bonnet for Raspberry Pi] – $24.95
 
<br/>
 
  
'''Auxiliary Budget:''' ~$42.39 (+ shipping) <br/>
+
=== Safety Concerns ===
-[https://www.banggood.com/5M-RGB-Non-Waterproof-300-LED-SMD-5050-LED-Strip-Light-DC-12V-p-925678.html?rmmds=search 5M RGB LED Light strip] – $4.99,  <br/>
 
  
-[https://www.banggood.com/12V-8-x-AA-Battery-Clip-Slot-Holder-Stack-Box-Case-6-Inch-Leads-Wire-p-80721.html?rmmds=search 12v Battery Pack] – $2.40, <br/>
+
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. <br/><br/>
+
If the battery is exposed to extreme temperatures (hot or cold), there is a risk of it malfunctioning. 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.
Raspberry Pi 3: $35 (provided by department)<br/>
 
  
'''Total''': $168
+
=== Next Steps ===
 +
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.
  
 
== Project Presentation ==
 
== Project Presentation ==
Line 66: Line 85:
 
[https://docs.google.com/presentation/d/18uHGkqm_ZjYHLUOvrxEXVk-uZ8IFe2N3kJIWjgKso3o/edit?usp=sharing Presentation Link]
 
[https://docs.google.com/presentation/d/18uHGkqm_ZjYHLUOvrxEXVk-uZ8IFe2N3kJIWjgKso3o/edit?usp=sharing Presentation Link]
  
== Similar Pi Projects ==
+
== Diagrams and Schematics ==
These are some similar raspberry pi projects to ours. These will be helpful resources when we begin this part of our project next week.
 
  
*This project is for taking in temperature data and logging it for later viewing. [https://projects.raspberrypi.org/en/projects/temperature-log Link]<br />
+
Here is our block diagram for the project.
  
*Randomizes colors and location of blinking lights. Don't think will be super helpful, but may be a good starting point. [https://projects.raspberrypi.org/en/projects/sense-hat-random-sparkles Link]<br />
+
[[File:Zesty.png|frameless]]
  
*Make lights dance to music using pi. Seems very helpful. [http://lightshowpi.org/ Link]<br/>
+
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.
  
*Very similar pi project. Thorough tutorial of all of the necessary steps. [https://www.instructables.com/id/Raspberry-Pi-Home-Automation-Control-lights-comput/ Link] <br/>
+
[[File:Software design model.png|frameless]]
  
These projects are similar in that the lights are being controlled by a raspberry pi, but our project will incorporate additional sensors, and will be controllable from a user's phone.
+
==Results==
  
== References ==
+
=== Demo Poster ===
  
*Tutorial for potentiometer circuit. We also got our code from this [http://www.knight-of-pi.org/reading-an-analog-potentiometer-with-the-ad-converter-mcp3008-and-spi/ website].
+
*Website for Sound Sensor Tutorial: http://www.piddlerintheroot.com/sound-sensor/
+
[[File:Zesty-poster.png|frameless]]
* Light matrix: https://learn.adafruit.com/adafruit-rgb-matrix-bonnet-for-raspberry-pi/driving-matrices
 
*Github with code to test light matrix: https://github.com/hzeller/rpi-rgb-led-matrix/tree/master/examples-api-use
 
*Tutorial for how to use accelerometer with light matrix https://learn.adafruit.com/matrix-led-sand/overview
 
*Helpful page on connecting iPhone with pi over bluetooth https://medium.com/@superlopuh/raspberry-pi-ios-communication-in-bluetooth-c7599e257f2
 
*Guide for sensor code https://www.raspberrypi-spy.co.uk/2013/10/analogue-sensors-on-the-raspberry-pi-using-an-mcp3008/
 
*accelerometer tutorial: https://learn.sparkfun.com/tutorials/mma8452q-accelerometer-breakout-hookup-guide/all
 
*Accelerometer + matrix tutorial: https://learn.adafruit.com/matrix-led-sand/overview
 
*Accelerometer resources: I2C https://www.raspberrypi-spy.co.uk/2014/11/enabling-the-i2c-interface-on-the-raspberry-pi/
 
*Arduino + Accelerometer: https://learn.sparkfun.com/tutorials/mma8452q-accelerometer-breakout-hookup-guide
 
  
== Diagrams and Schematics ==
+
===Video of Working Vest===
  
Here is our block diagram as of now for the project
+
[https://www.youtube.com/watch?v=_yCTgUWRKNo Zesty Vesty Demo]
  
[[File:Block Diagram.pdf|thumb]]
+
[https://www.youtube.com/watch?v=VmUWrBy9uXM Another Zesty Vesty Demo]
  
Here is the schematic for our pi + matrix set up.
+
== Links and References ==
 +
=== References ===
  
[[File:GAKdiagram.JPG|thumb]]
+
*[http://www.knight-of-pi.org/reading-an-analog-potentiometer-with-the-ad-converter-mcp3008-and-spi/ Reading an analog potentiometer with the A/D converter MCP3008 and SPI] , accessed 10/12/2018
 +
*[https://learn.adafruit.com/adafruit-agc-electret-microphone-amplifier-max9814/overview Sound Sensor], accessed 11/2/2018
 +
*[https://learn.adafruit.com/adafruit-rgb-matrix-bonnet-for-raspberry-pi/driving-matrices Driving Matrices],  accessed 11/13/2018
 +
*[https://learn.adafruit.com/matrix-led-sand/overview LED Matrix Sand Toy], accessed 11/10/2018
 +
*[https://learn.sparkfun.com/tutorials/mma8452q-accelerometer-breakout-hookup-guide/all MMA8452Q Accelerometer Breakout Hookup Guide], accessed 11/29/2018
 +
*[https://www.raspberrypi-spy.co.uk/2014/11/enabling-the-i2c-interface-on-the-raspberry-pi/ Enable I2C Interface on the Raspberry Pi 30], accessed 11/10/2018
 +
*[http://johnmcnelly.com/led-trumpet/ LED Trumpet], accessed 11/20/2018
  
== GitHub ==
+
=== GitHub ===
  
 
Here is the link to our GitHub repository.
 
Here is the link to our GitHub repository.
 +
[https://github.com/GAK205/ZestyVesty GitHub]
 +
 +
===3D prints===
  
[https://github.com/GAK205/ZestyVesty link]
+
[https://drive.google.com/open?id=1wRF09lDJIiuxFVg6RvgITAwlqy3Kuxcb Protoboard Case]
  
 +
[https://drive.google.com/open?id=16RklrAUwzD4_Cm56ITFEBoeZbIcKuA3L Vest Bracket]
  
+
=== Tutorial ===
 +
*[[Accelerometer + Arduino]]
 +
*[https://learn.adafruit.com/adafruit-microphone-amplifier-breakout/measuring-sound-levels Measuring Sound Levels]
  
 +
=== Weekly Log ===
 +
[[Zesty Vesty Weekly Log|Weekly log]]
  
 
[[Category:Projects]]
 
[[Category:Projects]]
 
[[Category:Fall 2018 Projects]]
 
[[Category:Fall 2018 Projects]]

Latest revision as of 16:49, 17 December 2018

Overview

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.

Team Members

  • Andre Cook
  • Gillian Laming
  • Kenneth McNelly
  • TA: Chance Bayles
  • Instructor: Jim Feher

Objectives

  • 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

Challenges

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.

New Skills

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.

Major Pivot

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.

Other Challenges

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.

Gantt Chart

Ganttgak.png

Budget

Splitter Charger Cable: $5.59
Power Plug Adapters: $6.39
Capacitor: $4.99
LED light strips: $26.99
Sound Sensor: $13.76
Accelerometer: $9.95
Vest: $12.90
Arduino: $22.00
Battery Pack: $19.19
Total: $121.76


Design and Solutions

Design Components

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.

Circuit Diagram

ZestyCircuit.png

Layout

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.

Safety Concerns

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 malfunctioning. 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.

Next Steps

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.

Project Presentation

Presentation Link

Diagrams and Schematics

Here is our block diagram for the project.

Zesty.png

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.

Software design model.png

Results

Demo Poster

Zesty-poster.png

Video of Working Vest

Zesty Vesty Demo

Another Zesty Vesty Demo

Links and References

References

GitHub

Here is the link to our GitHub repository. GitHub

3D prints

Protoboard Case

Vest Bracket

Tutorial

Weekly Log

Weekly log